public void EditIndexShowsBookEditFormWithBookContentWithPopulatedDropDownList() { //Arrange var repository = Mock.Create <IRepository>(); var bookToEdit = BookHelper.CleanCode(bookId: 2, authorId: 1); Mock.Arrange(() => repository.GetBook(bookToEdit.BookId)).Returns(bookToEdit).OccursOnce(); //called to populate the dropdownlist Mock.Arrange(() => repository.GetAllAuthors()).Returns( new List <Author>() { AuthorHelper.RobertMartin(1), AuthorHelper.RoyOsherove(2), }).OccursOnce(); //Act var controller = new HomeController(repository); var result = controller.Edit(bookToEdit.BookId) as ViewResult; var model = result.Model as BookEditViewModel; var selectedItem = model.Authors.Find(b => Int32.Parse(b.Value) == bookToEdit.AuthorId); //Assert Assert.IsNotNull(model); Assert.AreEqual(model.BookId, bookToEdit.BookId); Assert.AreEqual(model.AuthorId, bookToEdit.AuthorId); Assert.AreEqual(model.Genre, bookToEdit.Genre); Assert.AreEqual(model.Title, bookToEdit.Title); Assert.IsTrue(selectedItem.Selected); Assert.IsNull(result.ViewBag.Message); Mock.Assert(repository); }
public void FindByGenreReturnsAllInGenre() { //Arrange var repository = Mock.Create <IRepository>(); Mock.Arrange(() => repository.GetBooksByGenre(BookHelper.ArtOfUnitTesting(1).Genre)).Returns(new List <Book>() { BookHelper.ArtOfUnitTesting(1), BookHelper.CleanCode(2) }).MustBeCalled(); //Act var controller = new HomeController(repository); ViewResult result = controller.FindByGenre("Programming"); var model = result.Model as IEnumerable <Book>; //Assert Assert.AreEqual(2, model.Count()); Assert.AreEqual(AuthorHelper.RoyOsherove().FullName, model.ToList()[0].Author.FullName); Assert.AreEqual(AuthorHelper.RobertMartin().FullName, model.ToList()[1].Author.FullName); Assert.AreEqual(BookHelper.ArtOfUnitTesting().Title, model.ToList()[0].Title); Assert.AreEqual(BookHelper.CleanCode().Title, model.ToList()[1].Title); Mock.Assert(repository); }