/src/UnitTests/IOC/FluentExtensionTests.cs

http://github.com/philiplaureano/LinFu · C# · 116 lines · 98 code · 18 blank · 0 comment · 0 complexity · 751222ff504a273ec366c559d5e3420f MD5 · raw file

  1. using Xunit;
  2. using SampleLibrary;
  3. namespace LinFu.UnitTests.IOC
  4. {
  5. public partial class FluentExtensionTests
  6. {
  7. [Fact]
  8. public void ServiceContainerShouldSupportInjectingNamedOncePerRequestServices()
  9. {
  10. TestOncePerRequest("MyService", inject => inject.Using<SampleClass>());
  11. }
  12. [Fact]
  13. public void ServiceContainerShouldSupportInjectingNamedOncePerThreadServicesUsingContainerLambdas()
  14. {
  15. TestOncePerThread("MyService", inject => inject.Using(container => new SampleClass()));
  16. }
  17. [Fact]
  18. public void ServiceContainerShouldSupportInjectingNamedOncePerThreadServicesUsingLambdas()
  19. {
  20. TestOncePerThread("MyService", inject => inject.Using(() => new SampleClass()));
  21. }
  22. [Fact]
  23. public void ServiceContainerShouldSupportInjectingNamedServicesOncePerThread()
  24. {
  25. TestOncePerThread("MyService", inject => inject.Using<SampleClass>());
  26. }
  27. [Fact]
  28. public void ServiceContainerShouldSupportInjectingNamedSingletons()
  29. {
  30. TestSingleton("MyService", inject => inject.Using<SampleClass>());
  31. }
  32. [Fact]
  33. public void ServiceContainerShouldSupportInjectingNamedSingletonsUsingContainerLambdas()
  34. {
  35. TestSingleton("MyService", inject => inject.Using(container => new SampleClass()));
  36. }
  37. [Fact]
  38. public void ServiceContainerShouldSupportInjectingNamedSingletonsUsingLambdas()
  39. {
  40. TestSingleton("MyService", inject => inject.Using(() => new SampleClass()));
  41. }
  42. [Fact]
  43. public void ServiceContainerShouldSupportInjectingOncePerRequestServicesUsingContainerLambdas()
  44. {
  45. TestOncePerRequest("MyService", inject => inject.Using(container => new SampleClass()));
  46. }
  47. [Fact]
  48. public void ServiceContainerShouldSupportInjectingOncePerRequestServicesUsingLambdas()
  49. {
  50. TestOncePerRequest("MyService", inject => inject.Using(() => new SampleClass()));
  51. }
  52. [Fact]
  53. public void ServiceContainerShouldSupportInjectingServicesOncePerRequest()
  54. {
  55. TestOncePerRequest(string.Empty, inject => inject.Using<SampleClass>());
  56. }
  57. [Fact]
  58. public void ServiceContainerShouldSupportInjectingServicesOncePerRequestUsingContainerLambdas()
  59. {
  60. TestOncePerRequest(string.Empty, inject => inject.Using(container => new SampleClass()));
  61. }
  62. [Fact]
  63. public void ServiceContainerShouldSupportInjectingServicesOncePerRequestUsingLambdas()
  64. {
  65. TestOncePerRequest(string.Empty, inject => inject.Using(() => new SampleClass()));
  66. }
  67. [Fact]
  68. public void ServiceContainerShouldSupportInjectingServicesOncePerThread()
  69. {
  70. TestOncePerThread(string.Empty, inject => inject.Using<SampleClass>());
  71. }
  72. [Fact]
  73. public void ServiceContainerShouldSupportInjectingServicesOncePerThreadUsingContainerLambdas()
  74. {
  75. TestOncePerThread(string.Empty, inject => inject.Using(container => new SampleClass()));
  76. }
  77. [Fact]
  78. public void ServiceContainerShouldSupportInjectingServicesOncePerThreadUsingLambdas()
  79. {
  80. TestOncePerThread(string.Empty, inject => inject.Using(() => new SampleClass()));
  81. }
  82. [Fact]
  83. public void ServiceContainerShouldSupportInjectingSingletons()
  84. {
  85. TestSingleton(string.Empty, inject => inject.Using<SampleClass>());
  86. }
  87. [Fact]
  88. public void ServiceContainerShouldSupportInjectingSingletonsUsingContainerLambdas()
  89. {
  90. TestSingleton(string.Empty, inject => inject.Using(container => new SampleClass()));
  91. }
  92. [Fact]
  93. public void ServiceContainerShouldSupportInjectingSingletonsUsingLambdas()
  94. {
  95. TestSingleton(string.Empty, inject => inject.Using(() => new SampleClass()));
  96. }
  97. }
  98. }