public void WhenOverridingMultipleDependencies()
        {
            IUnityContainer container = new UnityContainer();

            container.RegisterType <Type4DependingOnOtherType>().RegisterType <IToWhichDependent, Type1ToWhichDependent>(new InjectionConstructor(111)).RegisterType <Dependent>(new InjectionProperty("X", 111));
            Dependent overrideDependent1 = new Dependent();

            overrideDependent1.X = 9999;
            IToWhichDependent overrideDependent2 = new Type2ToWhichDependent(8888);
            DependencyOverride <Dependent>         overrideParam1 = new DependencyOverride <Dependent>(overrideDependent1);
            DependencyOverride <IToWhichDependent> overrideParam2 = new DependencyOverride <IToWhichDependent>(overrideDependent2);

            var result = container.Resolve <Type4DependingOnOtherType>(overrideParam1, overrideParam2);

            Assert.IsInstanceOfType(result.IToWhichDependent, typeof(Type2ToWhichDependent));
            Assert.IsInstanceOfType(result.OneMoreIToWhichDependent, typeof(Type2ToWhichDependent));
            Assert.AreEqual <int>(8888, result.IToWhichDependent.X);
            Assert.AreEqual <int>(8888, result.OneMoreIToWhichDependent.X);
            Assert.AreEqual <int>(9999, result.NewToWhichDependent.X);
        }
示例#2
0
        public void WhenOverridingMultipleDependencies()
        {
            IUnityContainer container = new UnityContainer();
            
            container.RegisterType<Type4DependingOnOtherType>().RegisterType<IToWhichDependent, Type1ToWhichDependent>(new InjectionConstructor(111)).RegisterType<Dependent>(new InjectionProperty("X", 111));
            Dependent overrideDependent1 = new Dependent();
            overrideDependent1.X = 9999;
            IToWhichDependent overrideDependent2 = new Type2ToWhichDependent(8888);
            DependencyOverride<Dependent> overrideParam1 = new DependencyOverride<Dependent>(overrideDependent1);
            DependencyOverride<IToWhichDependent> overrideParam2 = new DependencyOverride<IToWhichDependent>(overrideDependent2);

            var result = container.Resolve<Type4DependingOnOtherType>(overrideParam1, overrideParam2);
            
            Assert.IsInstanceOfType(result.IToWhichDependent, typeof(Type2ToWhichDependent));
            Assert.IsInstanceOfType(result.OneMoreIToWhichDependent, typeof(Type2ToWhichDependent));
            Assert.AreEqual<int>(8888, result.IToWhichDependent.X);
            Assert.AreEqual<int>(8888, result.OneMoreIToWhichDependent.X);
            Assert.AreEqual<int>(9999, result.NewToWhichDependent.X);
        }