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); }
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); }