public void MustCopyParent() { var parent = new TargetContainer(); var overriding = new OverridingTargetContainer(parent); Assert.Same(parent, overriding.Parent); }
public void MustNotAllowNullParent() { Assert.Throws <ArgumentNullException>(() => { var targets = new OverridingTargetContainer(null); }); }
public void OptionShouldBeInheritedByOverridingTargetContainer() { var targets = new TargetContainer(); targets.SetOption <TestOption>("base"); var overriding = new OverridingTargetContainer(targets); Assert.Equal("base", overriding.GetOption <TestOption>()); }
public void ShouldInheritParentRegistration() { var parent = new TargetContainer(); var overriding = new OverridingTargetContainer(parent); var parentTarget = new TestTarget(typeof(int), useFallBack: false, supportsType: true); parent.Register(parentTarget); Assert.Same(parentTarget, overriding.Fetch(typeof(int))); }
public void EnumerableTargetShouldReturnAllItems() { var parent = new TargetContainer(); var overriding = new OverridingTargetContainer(parent); var parentTarget = new TestTarget(typeof(int), useFallBack: false, supportsType: true); parent.Register(parentTarget); var overrideTarget = new TestTarget(typeof(int), useFallBack: false, supportsType: true); overriding.Register(overrideTarget); var fetched = Assert.IsType <EnumerableTarget>(overriding.Fetch(typeof(IEnumerable <int>))); Assert.Equal(2, fetched.Targets.Count()); }
public void FetchAllShouldReturnAllTargets() { var parent = new TargetContainer(); var overriding = new OverridingTargetContainer(parent); var parentTarget = new TestTarget(typeof(int), useFallBack: false, supportsType: true); parent.Register(parentTarget); var overrideTarget = new TestTarget(typeof(int), useFallBack: false, supportsType: true); overriding.Register(overrideTarget); var fetched = overriding.FetchAll(typeof(int)).ToArray(); Assert.Equal(2, fetched.Length); Assert.Same(parentTarget, fetched[0]); Assert.Same(overrideTarget, fetched[1]); }
public void ShouldBindSecondConstructorAndCompleteWithOverridingTargetContainer() { // <example6_2> var targets = new TargetContainer(); targets.RegisterType <MyService2>(); targets.RegisterType <Requires2MyServices>(); var childTargets = new OverridingTargetContainer(targets); childTargets.RegisterType <MyService3>(); // pass the childTargets ITargetContainer to // the container on construction var container = new Container(childTargets); var result = container.Resolve <Requires2MyServices>(); Assert.NotNull(result.First); Assert.NotNull(result.Second); // </example6_2> }