/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
- using Moq;
- using Ninject.Activation;
- using Ninject.Activation.Strategies;
- using Ninject.Tests.Fakes;
- using Xunit;
- namespace Ninject.Tests.Unit.DisposableStrategyTests
- {
- using FluentAssertions;
- public class DisposableStrategyContext
- {
- protected readonly DisposableStrategy strategy;
- protected readonly Mock<IContext> contextMock;
- public DisposableStrategyContext()
- {
- this.contextMock = new Mock<IContext>();
- this.strategy = new DisposableStrategy();
- }
- }
- public class WhenDeactivateIsCalled : DisposableStrategyContext
- {
- [Fact]
- public void StrategyDisposesInstanceIfItIsDisposable()
- {
- var instance = new NotifiesWhenDisposed();
- var reference = new InstanceReference { Instance = instance };
- this.strategy.Deactivate(this.contextMock.Object, reference);
- instance.IsDisposed.Should().BeTrue();
- }
- [Fact]
- public void StrategyDoesNotAttemptToDisposeInstanceIfItIsNotDisposable()
- {
- var instance = new object();
- var reference = new InstanceReference { Instance = instance };
- this.strategy.Deactivate(this.contextMock.Object, reference);
- }
- }
- }