Ejemplo n.º 1
0
        public void ChoosesConstructorWithMaximalNumberOfMatchingParameters()
        {
            TestClassSource source = new TestClassSource();

            source.Property1 = 1;
            source.Property2 = "value2";
            container.AddExtension(
                new TestHelperExtension(context =>
            {
                IContainerPolicyCreator creator
                    = new ConstructorArgumentMatchingPolicyCreator(typeof(TestClassWhereLongestConstructorCannotBeMatched));
                creator.CreatePolicies(context.Policies,
                                       instanceName,
                                       source,
                                       null);
            }));
            TestClassWhereLongestConstructorCannotBeMatched provider
                = container.Resolve <TestClassWhereLongestConstructorCannotBeMatched>(instanceName);

            Assert.IsNotNull(provider);
            Assert.AreEqual(source.Property1, provider.Property1);
            Assert.AreEqual(source.Property2, provider.Property2);
        }
Ejemplo n.º 2
0
        public void DerivedTypesAreAllowedWhenMatchingProperties()
        {
            TestClassSource source = new TestClassSource();

            source.Property1 = 1;
            source.Property2 = "value2";
            container.AddExtension(
                new TestHelperExtension(context =>
            {
                IContainerPolicyCreator creator
                    = new ConstructorArgumentMatchingPolicyCreator(typeof(TestClassWithInterfaceArgument));
                creator.CreatePolicies(context.Policies,
                                       instanceName,
                                       source,
                                       null);
            }));
            TestClassWithInterfaceArgument provider
                = container.Resolve <TestClassWithInterfaceArgument>(instanceName);

            Assert.IsNotNull(provider);
            Assert.AreEqual(source.Property1, provider.Property1);
            Assert.AreEqual("value2", provider.Property2);
        }