public void BuildAutoResolverMapperTest2()
        {
            TransformerObserver observer = new TransformerObserver();
            Assert.IsTrue(observer.BuildAutoResolverMapper(typeof(User), typeof(UserDto)));

            User user1 = new User
            {
                Name = "name1",
                Surname = "surname1",
                Parent = new User
                {
                    Name = "parteName1",
                    Surname = "parentSurname1",
                    Parent = new User
                    {
                        Name = "parentParentName1",
                        Surname = "parentParentSurname1",
                        Parent = new User()
                    }
                }
            };

            var res = observer.TryToMap<User, UserDto>(user1);
            Assert.IsNotNull(res);

            var res1 = observer.TryToMap(user1, typeof(UserDto));
            Assert.IsNotNull(res1);
        }
        public void MakeTransformerBuilderTest1()
        {
            TransformerObserver observer = new TransformerObserver();
            var builder = observer.MakeTransformerBuilder<User, UserDto>(BuilderType.DefaultMappers);
            //builder.Include(
            //    resolver => new PropertyMapper<User, UserDto>((user, dto) => dto.Parent = resolver.TryToMap<User, UserDto>(user.Parent)));

            builder.Include(
                resolver => new PropertyMapper<User, UserDto>((user, dto) => dto.Parent = (UserDto)resolver.TryToMap(user.Parent, typeof(UserDto))));

            builder.BuildMapper();

            User user1 = new User
                {
                    Name = "name1",
                    Surname = "surname1",
                    Parent = new User
                        {
                            Name = "parteName1",
                            Surname = "parentSurname1",
                            Parent = new User
                                {
                                    Name = "parentParentName1",
                                    Surname = "parentParentSurname1",
                                    Parent = new User()
                                }
                        }
                };

            var resDto = observer.TryToMap<User, UserDto>(user1);
            Assert.IsNotNull(resDto);
            Assert.IsNotNull(resDto.Parent);

            var resDto1 = observer.TryToMap(user1, typeof (UserDto));
            Assert.IsNotNull(resDto1);
            Assert.IsTrue(resDto1 is UserDto);
            Assert.IsNotNull(resDto1.GetType().GetProperty("Parent").GetValue(resDto1, null));

            var resDto2 = observer.TryToMap<User, UserDto>(user1, "mykey");
            Assert.IsNull(resDto2);

            var resDto3 = observer.TryToMap(user1, typeof(UserDto), "mykey");
            Assert.IsNull(resDto3);
        }