PageRenderTime 47ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/src/Ninject.Tests/Unit/InitializableStrategyTests.cs

https://github.com/daniyord/ninject
C# | 53 lines | 45 code | 8 blank | 0 comment | 0 complexity | 4cd7381c856c224ef7a6eaee73555de6 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception
  1. using System;
  2. using Moq;
  3. using Ninject.Activation;
  4. using Ninject.Activation.Strategies;
  5. using Xunit;
  6. using Xunit.Should;
  7. namespace Ninject.Tests.Unit.InitializableStrategyTests
  8. {
  9. public class InitializableStrategyContext
  10. {
  11. protected readonly InitializableStrategy strategy;
  12. protected readonly Mock<IContext> contextMock;
  13. public InitializableStrategyContext()
  14. {
  15. contextMock = new Mock<IContext>();
  16. strategy = new InitializableStrategy();
  17. }
  18. }
  19. public class WhenActivateIsCalled : InitializableStrategyContext
  20. {
  21. [Fact]
  22. public void StrategyInitializesInstanceIfItIsInitializable()
  23. {
  24. var instance = new InitializableObject();
  25. var reference = new InstanceReference { Instance = instance };
  26. strategy.Activate(contextMock.Object, reference);
  27. instance.WasInitialized.ShouldBeTrue();
  28. }
  29. [Fact]
  30. public void StrategyDoesNotAttemptToInitializeInstanceIfItIsNotInitializable()
  31. {
  32. var instance = new object();
  33. var reference = new InstanceReference { Instance = instance };
  34. strategy.Activate(contextMock.Object, reference);
  35. }
  36. }
  37. public class InitializableObject : IInitializable
  38. {
  39. public bool WasInitialized { get; set; }
  40. public void Initialize()
  41. {
  42. WasInitialized = true;
  43. }
  44. }
  45. }