PageRenderTime 46ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/src/Ninject.Test/Unit/InitializableStrategyTests.cs

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