コード例 #1
0
        public void MustCopyParent()
        {
            var parent     = new TargetContainer();
            var overriding = new OverridingTargetContainer(parent);

            Assert.Same(parent, overriding.Parent);
        }
コード例 #2
0
 public void MustNotAllowNullParent()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         var targets = new OverridingTargetContainer(null);
     });
 }
コード例 #3
0
        public void OptionShouldBeInheritedByOverridingTargetContainer()
        {
            var targets = new TargetContainer();

            targets.SetOption <TestOption>("base");

            var overriding = new OverridingTargetContainer(targets);

            Assert.Equal("base", overriding.GetOption <TestOption>());
        }
コード例 #4
0
        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)));
        }
コード例 #5
0
        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());
        }
コード例 #6
0
        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]);
        }
コード例 #7
0
        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>
        }