public void Should_Map_A_Books_List_To_Its_Model()
        {
            var bruce = new Author
            {
                Id = 12,
                FirstName = "Bruce",
                LastName = "Wayne"
            };
            var author = new Author
            {
                Id = 13,
                FirstName = "Cormac",
                LastName = "McCarthy"
            };

            var model = Mapper.Map<IEnumerable<Book>, BooksListModel>(new List<Book>
            {
                new Book
                    {
                        Id = 5,
                        Title = "The Road",
                        ISBN = "1234567891234",
                        Author = author
                    },
                 new Book
                    {
                        Id = 6,
                        Title = "The Bat",
                        ISBN = "2345678912345",
                        Author = bruce
                    }
            });
            Assert.AreEqual(2, model.Books.Count);
            Assert.AreEqual(5, model.Books[0].Id);
            Assert.AreEqual("The Road", model.Books[0].Title);
            Assert.AreEqual("1234567891234", model.Books[0].ISBN);
            Assert.AreEqual("Cormac McCarthy", model.Books[0].AuthorFullName);
            Assert.AreEqual(6, model.Books[1].Id);
            Assert.AreEqual("The Bat", model.Books[1].Title);
            Assert.AreEqual("2345678912345", model.Books[1].ISBN);
            Assert.AreEqual("Bruce Wayne", model.Books[1].AuthorFullName);
        }
        public void Should_Map_A_Model_To_A_Book()
        {
            var author = new Author
            {
                Id = 12,
                FirstName = "Cormac",
                LastName = "McCarthy"
            };

            var book = Mapper.Map<BookModel, Book>(new BookModel
            {
                Id = 5,
                Title = "The Road",
                ISBN = "1234567891234",
                AuthorId = author.Id,
                IsEditMode = false
            });

            Assert.AreEqual(5, book.Id);
            Assert.AreEqual("The Road", book.Title);
            Assert.AreEqual("1234567891234", book.ISBN);
            Assert.AreEqual(author.Id, book.AuthorId);
        }
        public void Should_Map_A_Book_To_Its_Model()
        {
            var bruce = new Author
            {
                Id = 12,
                FirstName = "Bruce",
                LastName = "Wayne"
            };
            var author = new Author
            {
                Id = 13,
                FirstName = "Cormac",
                LastName = "McCarthy"
            };

            var model = Mapper.Map<Book, BookModel>(new Book
            {
                Id = 5,
                Title = "The Road",
                ISBN = "1234567891234",
                Author = author
            });
            model = Mapper.Map(new List<Author> {bruce, author}, model);
            Assert.AreEqual(5, model.Id);
            Assert.AreEqual("The Road", model.Title);
            Assert.AreEqual("1234567891234", model.ISBN);
            Assert.AreEqual(author.Id, model.AuthorId);
            Assert.AreEqual(false, model.IsEditMode);
            Assert.AreEqual(2, model.Authors.Count);
            Assert.AreEqual(bruce.Id, model.Authors[0].Id);
            Assert.AreEqual("Bruce Wayne", model.Authors[0].FullName);
            Assert.AreEqual(author.Id, model.Authors[1].Id);
            Assert.AreEqual("Cormac McCarthy", model.Authors[1].FullName);
            Assert.IsFalse(model.IsEditMode);
        }