public void MapShouldTransposeNestedProperties()
        {
            var john = new John { FirstName = "John", LastName = "Test" };

            var people = BAM.BOOM.Map<John, People>(john, (j) =>
            {
                return new
                {
                    Jared = new
                    {
                        FirstName = j.FirstName
                    },
                    John = new
                    {
                        FirstName = j.FirstName,
                        LastName = j.LastName
                    },
                    Simple = new
                    {
                        FullName = j.FirstName + " " + j.LastName
                    }
                };
            });

            Assert.Equal(people.Jared.FirstName, "John");
            Assert.Equal(people.John.FirstName, "John");
            Assert.Equal(people.John.LastName, "Test");
            Assert.Equal(people.Simple.FullName, "John Test");
        }
 public void ShouldThrowAnExceptionIfDataWouldBeLost()
 {
     var john = new John { FirstName = "John", LastName = "Test" };
     Assert.Throws<BAMStrictMapViolationException>(() =>
     {
         var jared = BAM.BOOM.Map<John, Jared>(john, true);
     });
 }
        public void ShouldMapClasses()
        {
            var john = new John { FirstName = "John!", LastName = "Bubriski!" };

            var jared = new BetterAutoMapper().Map<John, Jared>(john);

            Assert.Equal(jared.FirstName, "John!");
        }
        public void MapShouldIgnoreCasing()
        {
            var john = new John { FirstName = "John", LastName = "Test" };
            var camelCase = BAM.BOOM.Map<John, CamelCaseProperties>(john);

            Assert.Equal("John", camelCase.firstName);
            Assert.Equal("Test", camelCase.lastName);
        }
        public void MapShouldAllowPropertyTransposing()
        {
            var john = new John { FirstName = "John", LastName = "Test" };

            var simplePerson = BAM.BOOM.Map<John, SimplePerson>(john, (j) =>
            {
                return new
                {
                    FullName = j.FirstName + " " + j.LastName
                };
            });

            Assert.Equal(simplePerson.FullName, "John Test");
        }