PageRenderTime 42ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/src/Ninject.Tests/Unit/DisposableStrategyTests.cs

https://github.com/developingchris/ninject
C# | 45 lines | 39 code | 6 blank | 0 comment | 0 complexity | 22d76ec2a86563f06f597430804547c8 MD5 | raw file
  1. using System;
  2. using Moq;
  3. using Ninject.Activation;
  4. using Ninject.Activation.Strategies;
  5. using Ninject.Infrastructure.Disposal;
  6. using Ninject.Tests.Fakes;
  7. using Xunit;
  8. using Xunit.Should;
  9. namespace Ninject.Tests.Unit.DisposableStrategyTests
  10. {
  11. public class DisposableStrategyContext
  12. {
  13. protected readonly DisposableStrategy strategy;
  14. protected readonly Mock<IContext> contextMock;
  15. public DisposableStrategyContext()
  16. {
  17. contextMock = new Mock<IContext>();
  18. strategy = new DisposableStrategy();
  19. }
  20. }
  21. public class WhenDeactivateIsCalled : DisposableStrategyContext
  22. {
  23. [Fact]
  24. public void StrategyDisposesInstanceIfItIsDisposable()
  25. {
  26. var instance = new NotifiesWhenDisposed();
  27. var reference = new InstanceReference { Instance = instance };
  28. strategy.Deactivate(contextMock.Object, reference);
  29. instance.IsDisposed.ShouldBeTrue();
  30. }
  31. [Fact]
  32. public void StrategyDoesNotAttemptToDisposeInstanceIfItIsNotDisposable()
  33. {
  34. var instance = new object();
  35. var reference = new InstanceReference { Instance = instance };
  36. strategy.Deactivate(contextMock.Object, reference);
  37. }
  38. }
  39. }