public void Component_With_Parameter_And_Property_Dependencies_And_ServiceOverride_Resolves_As_Expected() { // arrange var spouseRegistration = new PropertyResolvingComponentRegistration <ICanBePerson>() .DependsOn( ResolvableDependency.WithValue("name", "Akanksha"), ResolvableDependency.WithValue("age", "30")) .WithName("spouse") .ImplementedBy <Person>(); var registration = new PropertyResolvingComponentRegistration <ICanBePerson>() .DependsOn( ResolvableDependency.WithName("name"), ResolvableDependency.WithName("age"), ResolvableDependency.WithComponent("spouse", "spouse")) .ImplementedBy <Person>(); m_container.Register(spouseRegistration); // act m_container.Register(registration); // assert Person person = (Person)m_container.Resolve <ICanBePerson>(); Assert.AreEqual("Akanksha", person.Name); Assert.AreEqual(30, person.PersonAge); Assert.IsNull(person.PlaceOfBirth); }
public void Component_With_Parameter_Dependencies_And_ServiceOverride_Resolves_As_Expected() { // arrange var motherRegistration = new PropertyResolvingComponentRegistration <ICanBePerson>() .DependsOn( ResolvableDependency.WithValue("name", "Snehal"), ResolvableDependency.WithValue("age", "59"), ResolvableDependency.WithName("yearOfBirth")) .WithName("snehal") .ImplementedBy <Person>(); var spouseRegistration = new PropertyResolvingComponentRegistration <ICanBePerson>() .DependsOn( ResolvableDependency.WithValue("name", "Akanksha"), ResolvableDependency.WithValue("age", "30"), ResolvableDependency.WithComponent("mother", "snehal")) .WithName("akanksha") .ImplementedBy <Person>(); var registration = new PropertyResolvingComponentRegistration <ICanBePerson>() .DependsOn( ResolvableDependency.WithName("name"), ResolvableDependency.WithName("age"), ResolvableDependency.WithComponent("spouse", "akanksha"), ResolvableDependency.WithName("placeOfBirth")) .WithLifestyle(LifestyleType.Transient) .ImplementedBy <Person>(); m_container.Register(motherRegistration); m_container.Register(spouseRegistration); m_container.Register(registration); // act Person[] results = m_container.ResolveAll <ICanBePerson>().Cast <Person>().ToArray(); // assert Assert.AreEqual(3, results.Length); // first should be 'snehal' Person snehal = results[0]; Assert.AreEqual("Snehal", snehal.Name); Assert.AreEqual(59, snehal.PersonAge); Assert.IsNull(snehal.PersonSpouse); Assert.IsNull(snehal.Mother); Assert.IsNull(snehal.PlaceOfBirth); Assert.AreEqual(1958, snehal.YearOfBirth); // second should be 'akanksha' Person akanksha = results[1]; Assert.AreEqual("Akanksha", akanksha.Name); Assert.AreEqual(30, akanksha.PersonAge); Assert.IsNull(akanksha.PersonSpouse); Assert.AreEqual(snehal, akanksha.Mother); Assert.IsNull(akanksha.PlaceOfBirth); // third should be 'mihir' Person mihir = results[2]; Assert.AreEqual("Mihir", mihir.Name); Assert.AreEqual(31, mihir.PersonAge); Assert.AreEqual(akanksha, mihir.PersonSpouse); Assert.IsNull(mihir.Mother); Assert.AreEqual("Pune", mihir.PlaceOfBirth); }