Beispiel #1
0
        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");
        }