public void ShouldOverwriteAComplexTypeArrayToASameComplexTypeDictionary() { var source = new PublicField <Address[]> { Value = new[] { new Address { Line1 = "1.1", Line2 = null }, new Address { Line1 = "2.1", Line2 = "2.2" } } }; var target = new PublicReadOnlyField <Dictionary <string, Address> >( new Dictionary <string, Address> { ["[0]"] = new Address { Line1 = "Old 1.1", Line2 = null }, ["[1]"] = default(Address) }); var existingAddress = target.Value["[0]"]; var result = Mapper.Map(source).Over(target); result.Value["[0]"].ShouldBeSameAs(existingAddress); result.Value["[0]"].Line1.ShouldBe("1.1"); result.Value["[0]"].Line2.ShouldBeNull(); result.Value["[1]"].ShouldNotBeNull(); result.Value["[1]"].Line1.ShouldBe("2.1"); result.Value["[1]"].Line2.ShouldBe("2.2"); }
public void ShouldHandleANullReadOnlyNestedIReadOnlyCollection() { var source = new PublicField <string[]> { Value = new[] { "Alpha!", "Beta!" } }; var target = new PublicReadOnlyField <IReadOnlyCollection <string> >(null); var result = Mapper.Map(source).Over(target); result.Value.ShouldBeNull(); }
public void ShouldHandleAReadOnlyNestedReadOnlyCollection() { var source = new PublicField <string[]> { Value = new[] { "One!", "Two!" } }; var strings = new List <string> { "A", "B", "C" }.AsReadOnly(); var target = new PublicReadOnlyField <ReadOnlyCollection <string> >(strings); var result = Mapper.Map(source).Over(target); result.Value.ShouldNotBeNull(); result.Value.ShouldBeSameAs(strings); result.Value.ShouldBe("A", "B", "C"); }
public void ShouldOverwriteANonNullReadOnlyNestedCollection() { var source = new PublicField <string[]> { Value = new[] { "One!", "Two!", "Three" } }; var strings = new Collection <string> { "A", "B", "C" }; var target = new PublicReadOnlyField <Collection <string> >(strings); var result = Mapper.Map(source).Over(target); result.Value.ShouldNotBeNull(); result.Value.ShouldBeSameAs(strings); result.Value.ShouldBe("One!", "Two!", "Three"); }
public void ShouldOverwriteANonNullReadOnlyNestedHashSet() { var source = new PublicField <int[]> { Value = new[] { 1, 2, 3 } }; var ints = new HashSet <int> { 4, 5, 6 }; var target = new PublicReadOnlyField <HashSet <int> >(ints); var result = Mapper.Map(source).Over(target); result.Value.ShouldNotBeNull(); result.Value.ShouldBeSameAs(ints); result.Value.ShouldBe(1, 2, 3); }
public void ShouldOverwriteANonNullReadOnlyNestedMemberPropertyToNull() { var source = new PublicField <Address> { Value = new Address { Line1 = null } }; var address = new Address { Line1 = "Didn't start as null" }; var target = new PublicReadOnlyField <Address>(address); var result = Mapper.Map(source).Over(target); result.Value.ShouldNotBeNull(); result.Value.ShouldBeSameAs(address); result.Value.Line1.ShouldBeNull(); }
public void ShouldOverwriteANonNullReadOnlyNestedMemberProperty() { var source = new PublicField <Address> { Value = new Address { Line1 = "New value" } }; var address = new Address { Line1 = "Original value" }; var target = new PublicReadOnlyField <Address>(address); var result = Mapper.Map(source).Over(target); result.Value.ShouldNotBeNull(); result.Value.ShouldBeSameAs(address); result.Value.Line1.ShouldBe("New value"); }
public void ShouldMapOnToAComplexTypeDictionary() { Address sourceWorkAddress, targetHomeAddress; var source = new PublicField <Dictionary <string, Address> > { Value = new Dictionary <string, Address> { ["Home"] = new Address { Line1 = "Home", Line2 = "My Town" }, ["Work"] = sourceWorkAddress = new Address { Line1 = "Work", Line2 = "My City" } } }; var target = new PublicReadOnlyField <Dictionary <string, Address> >(new Dictionary <string, Address> { ["Home"] = targetHomeAddress = new Address { Line1 = "My Home" } }); Mapper.Map(source).OnTo(target); target.Value.Count.ShouldBe(2); target.Value.ShouldContainKey("Home"); target.Value["Home"].ShouldBeSameAs(targetHomeAddress); target.Value["Home"].Line1.ShouldBe("My Home"); target.Value["Home"].Line2.ShouldBe("My Town"); target.Value.ShouldContainKey("Work"); target.Value["Work"].ShouldNotBeSameAs(sourceWorkAddress); target.Value["Work"].Line1.ShouldBe("Work"); target.Value["Work"].Line2.ShouldBe("My City"); }