예제 #1
0
        public void ChangeDestinationBeforeMapTest()
        {
            var mappingConfiguration = new MappingConfiguration();

            mappingConfiguration.CreateMapping <PersonFrontModel, Person>(
                f => new Person
            {
                PersonId  = MappingOptions.Ignore(),
                Timestamp = MappingOptions.Ignore(),
                FirstName = MappingOptions.Ignore()
            },
                s => s.SourceNamingConvention(NamingConventionType.CamelCase)
                .DestinationNamingConvention(NamingConventionType.CamelCase)
                .BeforeMap((f, p) =>
            {
                if (p.PersonId == 0)
                {
                    p.PersonId = 10;
                }
                p.FirstName = "Brent";
            }));
            var frontModel = new PersonFrontModel();
            var newPerson  = mappingConfiguration.Convert(frontModel).To <Person>();

            Assert.AreEqual(10, newPerson.PersonId);
            Assert.AreEqual("Brent", newPerson.FirstName);
            var existingPerson = new Person {
                PersonId = 9
            };

            mappingConfiguration.MapData(frontModel, existingPerson);
            Assert.AreEqual(9, existingPerson.PersonId);
            Assert.AreEqual("Brent", existingPerson.FirstName);
        }
 private void CheckFrontModel(Person sourceModel, PersonFrontModel resultModel)
 {
     Assert.AreEqual(sourceModel.FirstName, resultModel.firstName);
     Assert.AreEqual(sourceModel.LastName, resultModel.lastName);
     Assert.AreEqual(sourceModel.Address, resultModel.address);
     Assert.AreEqual(sourceModel.BirthDate, resultModel.birthDate);
     Assert.AreEqual(sourceModel.City, resultModel.city);
     Assert.AreEqual(sourceModel.Height, resultModel.height);
     Assert.AreEqual(sourceModel.PersonId, resultModel.personId);
     Assert.AreEqual(sourceModel.PhoneNumber, resultModel.phoneNumber);
 }
예제 #3
0
        public void AfterMapTest()
        {
            var configuration       = new MappingConfiguration();
            var registrationBuilder = new PersonBuilderWithAfterMap(configuration, 0);

            registrationBuilder.RegisterMapping();
            var frontModel     = new PersonFrontModel();
            var currentBuilder = new PersonBuilderWithAfterMap(configuration, 7);
            var newPerson      = currentBuilder.Build(frontModel);

            Assert.AreEqual(7, newPerson.Height);
            var existingPerson = new Person {
                Height = 6
            };

            currentBuilder.MapData(frontModel, existingPerson);
            Assert.AreEqual(7, existingPerson.Height);
        }
예제 #4
0
        public void IsConstructionFlag()
        {
            var mapperConfiguration = new MappingConfiguration();

            mapperConfiguration.CreateMapping <PersonFrontModel, Person>(
                f => new Person
            {
                Height    = MappingOptions.IsConstruction() ? 6 : 7,
                Timestamp = MappingOptions.Ignore()
            },
                s => s.SourceNamingConvention(NamingConventionType.CamelCase)
                .DestinationNamingConvention(NamingConventionType.CamelCase));
            var frontModel      = new PersonFrontModel();
            var convertedPerson = mapperConfiguration.Convert(frontModel).To <Person>();
            var existingPerson  = new Person();

            mapperConfiguration.MapData(frontModel, existingPerson);
            Assert.AreEqual(6, convertedPerson.Height);
            Assert.AreEqual(7, existingPerson.Height);
        }
예제 #5
0
        public void IsConstructionWithIgnoreTest()
        {
            var mapperConfiguration = new MappingConfiguration();

            mapperConfiguration.CreateMapping <PersonFrontModel, Person>(
                f => new Person
            {
                PersonId  = MappingOptions.IsConstruction() ? 10 : MappingOptions.Ignore(),
                Timestamp = MappingOptions.Ignore()
            },
                s => s.SourceNamingConvention(NamingConventionType.CamelCase)
                .DestinationNamingConvention(NamingConventionType.CamelCase));

            var frontModel      = new PersonFrontModel();
            var convertedPerson = mapperConfiguration.Convert(frontModel).To <Person>();
            var existingPerson  = new Person {
                PersonId = 9
            };

            mapperConfiguration.MapData(frontModel, existingPerson);
            Assert.AreEqual(10, convertedPerson.PersonId);
            Assert.AreEqual(9, existingPerson.PersonId);
        }
예제 #6
0
        public void AfterMapWithMultipleSources()
        {
            var mappingConfiguration = new MappingConfiguration();

            mappingConfiguration.CreateMapping <PersonFrontModel, int, Person>(
                (f, newId) => new Person
            {
                PersonId  = MappingOptions.Ignore(),
                Timestamp = MappingOptions.Ignore(),
                FirstName = MappingOptions.Ignore(),
                LastName  = "Johnson"
            },
                s => s.SourceNamingConvention(NamingConventionType.CamelCase)
                .DestinationNamingConvention(NamingConventionType.CamelCase)
                .AfterMap((f, newId, p) =>
            {
                if (p.PersonId == 0)
                {
                    p.PersonId = newId;
                }
                p.FirstName = "Brent";
                p.LastName  = "Smith";
            }));
            var frontModel = new PersonFrontModel();
            var newPerson  = mappingConfiguration.Convert(frontModel, 10).To <Person>();

            Assert.AreEqual(10, newPerson.PersonId);
            Assert.AreEqual("Brent", newPerson.FirstName);
            Assert.AreEqual("Smith", newPerson.LastName);
            var existingPerson = new Person {
                PersonId = 9
            };

            mappingConfiguration.MapData(frontModel, 10, existingPerson);
            Assert.AreEqual(9, existingPerson.PersonId);
            Assert.AreEqual("Smith", existingPerson.LastName);
        }