PageRenderTime 21ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/src/Ninject.Tests/Unit/StartableStrategyTests.cs

https://github.com/developingchris/ninject
C# | 81 lines | 67 code | 14 blank | 0 comment | 0 complexity | baf6d2a0ef8e38c6a139fda89e967089 MD5 | raw file
  1. using Moq;
  2. using Ninject.Activation;
  3. using Ninject.Activation.Strategies;
  4. using Xunit;
  5. using Xunit.Should;
  6. namespace Ninject.Tests.Unit.StartableStrategyTests
  7. {
  8. public class StartableStrategyContext
  9. {
  10. protected readonly StartableStrategy strategy;
  11. protected readonly Mock<IContext> contextMock;
  12. public StartableStrategyContext()
  13. {
  14. contextMock = new Mock<IContext>();
  15. strategy = new StartableStrategy();
  16. }
  17. }
  18. public class WhenActivateIsCalled : StartableStrategyContext
  19. {
  20. [Fact]
  21. public void StrategyStartsInstanceIfItIsStartable()
  22. {
  23. var instance = new StartableObject();
  24. var reference = new InstanceReference { Instance = instance };
  25. strategy.Activate(contextMock.Object, reference);
  26. instance.WasStarted.ShouldBeTrue();
  27. }
  28. [Fact]
  29. public void StrategyDoesNotAttemptToStartInstanceIfItIsNotStartable()
  30. {
  31. var instance = new object();
  32. var reference = new InstanceReference { Instance = instance };
  33. strategy.Activate(contextMock.Object, reference);
  34. }
  35. }
  36. public class WhenDeactivateIsCalled : StartableStrategyContext
  37. {
  38. [Fact]
  39. public void StrategyStopsInstanceIfItIsStartable()
  40. {
  41. var instance = new StartableObject();
  42. var reference = new InstanceReference { Instance = instance };
  43. strategy.Deactivate(contextMock.Object, reference);
  44. instance.WasStopped.ShouldBeTrue();
  45. }
  46. [Fact]
  47. public void StrategyDoesNotAttemptToInitializeInstanceIfItIsNotInitializable()
  48. {
  49. var instance = new object();
  50. var reference = new InstanceReference { Instance = instance };
  51. strategy.Deactivate(contextMock.Object, reference);
  52. }
  53. }
  54. public class StartableObject : IStartable
  55. {
  56. public bool WasStarted { get; set; }
  57. public bool WasStopped { get; set; }
  58. public void Start()
  59. {
  60. WasStarted = true;
  61. }
  62. public void Stop()
  63. {
  64. WasStopped = true;
  65. }
  66. }
  67. }