PageRenderTime 42ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/src/Ninject.Test/Unit/DisposableStrategyTests.cs

http://github.com/ninject/ninject
C# | 44 lines | 37 code | 7 blank | 0 comment | 0 complexity | 5ff8817629f9112a0c1a3b05a0c0ed7e 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 Ninject.Tests.Fakes;
  5. using Xunit;
  6. namespace Ninject.Tests.Unit.DisposableStrategyTests
  7. {
  8. using FluentAssertions;
  9. public class DisposableStrategyContext
  10. {
  11. protected readonly DisposableStrategy strategy;
  12. protected readonly Mock<IContext> contextMock;
  13. public DisposableStrategyContext()
  14. {
  15. this.contextMock = new Mock<IContext>();
  16. this.strategy = new DisposableStrategy();
  17. }
  18. }
  19. public class WhenDeactivateIsCalled : DisposableStrategyContext
  20. {
  21. [Fact]
  22. public void StrategyDisposesInstanceIfItIsDisposable()
  23. {
  24. var instance = new NotifiesWhenDisposed();
  25. var reference = new InstanceReference { Instance = instance };
  26. this.strategy.Deactivate(this.contextMock.Object, reference);
  27. instance.IsDisposed.Should().BeTrue();
  28. }
  29. [Fact]
  30. public void StrategyDoesNotAttemptToDisposeInstanceIfItIsNotDisposable()
  31. {
  32. var instance = new object();
  33. var reference = new InstanceReference { Instance = instance };
  34. this.strategy.Deactivate(this.contextMock.Object, reference);
  35. }
  36. }
  37. }