PageRenderTime 38ms CodeModel.GetById 8ms RepoModel.GetById 0ms app.codeStats 0ms

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

https://github.com/developingchris/ninject
C# | 53 lines | 45 code | 8 blank | 0 comment | 0 complexity | c4439177602ee4c85b5a50966c027aba MD5 | raw file
  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. }