/src/Ninject.Tests/Integration/ActivationStrategyTests.cs
C# | 60 lines | 56 code | 4 blank | 0 comment | 0 complexity | b1e9cc5c6af136c0aa1e518c7a8a4a4f MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception
- using Ninject.Tests.Fakes;
- using Xunit;
- using Xunit.Should;
- namespace Ninject.Tests.Integration
- {
- public class ActivationStrategyTests
- {
- [Fact]
- public void InstanceIsActivatedOnCreation()
- {
- using ( var kernel = new StandardKernel() )
- {
- kernel.Bind<Barracks>()
- .ToSelf()
- .OnActivation(instance =>
- {
- instance.Warrior = new FootSoldier();
- instance.Weapon = new Shuriken();
- });
- var barracks = kernel.Get<Barracks>();
- barracks.Warrior.ShouldNotBeNull();
- barracks.Warrior.ShouldBeInstanceOf<FootSoldier>();
- barracks.Weapon.ShouldNotBeNull();
- barracks.Weapon.ShouldBeInstanceOf<Shuriken>();
- }
- }
- [Fact]
- public void InstanceIsDeactivatedWhenItLeavesScope()
- {
- Barracks barracks;
- using ( var kernel = new StandardKernel() )
- {
- kernel.Bind<Barracks>()
- .ToSelf()
- .InSingletonScope()
- .OnActivation(instance =>
- {
- instance.Warrior = new FootSoldier();
- instance.Weapon = new Shuriken();
- })
- .OnDeactivation(instance =>
- {
- instance.Warrior = null;
- instance.Weapon = null;
- });
- barracks = kernel.Get<Barracks>();
- barracks.Warrior.ShouldNotBeNull();
- barracks.Warrior.ShouldBeInstanceOf<FootSoldier>();
- barracks.Weapon.ShouldNotBeNull();
- barracks.Weapon.ShouldBeInstanceOf<Shuriken>();
- }
- barracks.Warrior.ShouldBeNull();
- barracks.Weapon.ShouldBeNull();
- }
- }
- }