public void AutoMapperTypeAdapterAdaptEntityEnumerable()
      {
         //Arrange
         Mapper.Initialize(cfg => cfg.AddProfile(new TypeAdapterProfile()));
         var typeAdapter = new AutomapperTypeAdapter();

         var customer = new Customer()
         {
            Id = 1,
            FirstName = "Jhon",
            LastName = "Bep"
         };

         //act

         var dto = typeAdapter.Adapt<IEnumerable<Customer>, List<CustomerDto>>(
            new Customer[]
            {
               customer
            });

         //Assert
         Assert.IsNotNull(dto);
         Assert.IsTrue(dto.Count == 1);
         Assert.AreEqual(dto[0].CustomerId, customer.Id);
         Assert.AreEqual(dto[0].FullName, string.Format("{0},{1}", customer.LastName, customer.FirstName));
      }
        public void TypeAdapter_AdaptMappedTypes()
        {
            //Arrange
            TypeAdapter adapter = null;

            RegisterTypesMap[] mapModules = new RegisterTypesMap[]
            {
                new CRMRegisterTypesMap(),
                new SalesRegisterTypesMap()
            };

            adapter = new TypeAdapter(mapModules);

            Customer customer = new Customer()
            {
                Id = 1,
                FirstName = "Unai",
                LastName = "Zorrilla"
            };

            Order order = new Order()
            {
                Id = 1,
                OrderDate = DateTime.UtcNow,
                Total = 1000
            };

            //Act

            var dtoCustomer = adapter.Adapt<Customer, CustomerDTO>(customer);
            var dtoOrder = adapter.Adapt<Order, OrderDTO>(order);

            //Assert
            Assert.IsNotNull(dtoCustomer);
            Assert.IsNotNull(dtoOrder);

            Assert.IsTrue(dtoCustomer.CustomerId == 1);
            Assert.IsTrue(dtoCustomer.FullName == string.Format("{0},{1}",customer.LastName,customer.FirstName));

            Assert.IsTrue(dtoOrder.OrderId == 1);
            Assert.IsTrue(dtoOrder.Description == string.Format("{0} - {1}",order.OrderDate,order.Total));
        }
      public void AutoMapperTypeAdapterAdaptEntity()
      {
         //Arrange
         Mapper.Initialize(cfg => cfg.AddProfile(new TypeAdapterProfile()));
         var typeAdapter = new AutomapperTypeAdapter();

         var customer = new Customer()
         {
            Id = 1,
            FirstName = "Jhon",
            LastName = "Bep"
         };

         //act

         var dto = typeAdapter.Adapt<Customer, CustomerDto>(customer);

         //Assert
         Assert.IsNotNull(dto);
         Assert.AreEqual(dto.CustomerId, customer.Id);
         Assert.AreEqual(dto.FullName, string.Format("{0},{1}", customer.LastName, customer.FirstName));
      }