/src/Ninject.Tests/Integration/ManualReleaseTests.cs
C# | 47 lines | 38 code | 9 blank | 0 comment | 0 complexity | 880f0d5a46bb98f5f7babbc43c7b93a2 MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception
- using System;
- using Ninject.Tests.Fakes;
- using Xunit;
- using Xunit.Should;
- namespace Ninject.Tests.Integration.ManualReleaseTests
- {
- public class ManualReleaseContext
- {
- protected readonly StandardKernel kernel;
- public ManualReleaseContext()
- {
- kernel = new StandardKernel();
- }
- }
- public class WhenReleaseIsCalled : ManualReleaseContext
- {
- [Fact]
- public void InstanceIsDeactivated()
- {
- kernel.Bind<NotifiesWhenDisposed>().ToSelf().InSingletonScope();
- var instance = kernel.Get<NotifiesWhenDisposed>();
- kernel.Release(instance);
- instance.IsDisposed.ShouldBeTrue();
- }
- [Fact]
- public void InstanceIsRemovedFromCache()
- {
- kernel.Bind<NotifiesWhenDisposed>().ToSelf().InSingletonScope();
- var instance1 = kernel.Get<NotifiesWhenDisposed>();
- var instance2 = kernel.Get<NotifiesWhenDisposed>();
- instance1.ShouldBeSameAs(instance2);
- kernel.Release(instance1);
- var instance3 = kernel.Get<NotifiesWhenDisposed>();
- instance3.ShouldNotBeSameAs(instance1);
- instance3.ShouldNotBeSameAs(instance2);
- }
- }
- }