public void Delete_GET_passes_correct_book_and_searchSortPageParams_to_view() { // Arrange string searchString = "H3J"; string sortCol = "name"; string nextOrder = SearchSortPageViewModel.SORT_ORDER_ASC; string currentOrder = SearchSortPageViewModel.SORT_ORDER_ASC; int page = 1; int pageSize = 5; int id = 1; SearchSortPageViewModel sspVM = new SearchSortPageViewModel(searchString, sortCol, currentOrder, nextOrder, page, pageSize); RecordViewModel rVM = new RecordViewModel(sspVM, id); // Act ViewResult result = controller.Delete(rVM) as ViewResult; DeleteViewModel deleteVM = (DeleteViewModel)result.ViewData.Model; // Assert Assert.IsNotNull(result); Assert.AreEqual(id, deleteVM.Book.ID); Assert.AreEqual("BBB", deleteVM.Book.Name); Assert.IsNotNull(deleteVM.SearchSortPageParams); Assert.AreEqual(searchString, deleteVM.SearchSortPageParams.SearchString); Assert.AreEqual(sortCol, deleteVM.SearchSortPageParams.SortCol); Assert.AreEqual(nextOrder, deleteVM.SearchSortPageParams.NextOrder); Assert.AreEqual(page, deleteVM.SearchSortPageParams.Page); Assert.AreEqual(pageSize, deleteVM.SearchSortPageParams.PageSize); }
public void DeleteConfirm_calls_EF_to_delete_record_with_correct_id() { // Arrange string searchString = "H3J"; string sortCol = "name"; string nextOrder = SearchSortPageViewModel.SORT_ORDER_ASC; string currentOrder = SearchSortPageViewModel.SORT_ORDER_ASC; int page = 1; int pageSize = 5; int id = 1; // a record id which exists SearchSortPageViewModel sspVM = new SearchSortPageViewModel(searchString, sortCol, currentOrder, nextOrder, page, pageSize); RecordViewModel rVM = new RecordViewModel(sspVM, id); // Act RedirectToRouteResult result = controller.DeleteConfirmed(rVM) as RedirectToRouteResult; // Assert mockSetBooks.Verify(m => m.Remove(It.IsAny <Book>()), Times.Once()); mockContext.Verify(m => m.SaveChanges(), Times.Once()); Assert.IsInstanceOf <RedirectToRouteResult>(result); Assert.AreEqual(result.RouteValues["Controller"], "Books"); Assert.AreEqual(result.RouteValues["Action"], "Index"); Assert.AreEqual(result.RouteValues["searchString"], searchString); Assert.AreEqual(result.RouteValues["sortCol"], sortCol); Assert.AreEqual(result.RouteValues["nextOrder"], nextOrder); Assert.AreEqual(result.RouteValues["page"], page); Assert.AreEqual(result.RouteValues["pageSize"], pageSize); // How can we test the parameters that it passes to the redirect to check for proper SearchSortPage values? }
public void Create_with_no_args_returns_selectlist_of_books() { // Arrange string searchString = "H3J"; string sortCol = "name"; string nextOrder = SearchSortPageViewModel.SORT_ORDER_ASC; string currentOrder = SearchSortPageViewModel.SORT_ORDER_ASC; int page = 1; int pageSize = 5; SearchSortPageViewModel sspVM = new SearchSortPageViewModel(searchString, sortCol, currentOrder, nextOrder, page, pageSize); // Act //var result = controller.Create(); ViewResult result = controller.Create(sspVM) as ViewResult; // Assert Assert.IsNotNull(result); Assert.IsInstanceOf <SelectList>(result.ViewBag.PublisherID); //Assert.AreEqual(result.ViewBag.PublisherID.Count(), 4); //Assert.AreEqual(result.ViewBag.PublisherID.Items.Count(), 4); //Assert.IsInstanceOf<Publisher>(result.ViewBag.PublisherID.Items); // How can I tell if the items in the selectList are publishers? foreach (var item in result.ViewBag.PublisherID.Items) { Console.WriteLine(item); } //Console.WriteLine(typeof(result.ViewBag.PublisherID.Items)); }
// GET: Books/Books/Create public ActionResult Create(SearchSortPageViewModel searchSortPageParams) { IEnumerable <SelectListItem> publishers; CreateViewModel cvm; publishers = new SelectList(db.Publishers.OrderBy(s => s.Name), "ID", "Name"); cvm = new CreateViewModel(searchSortPageParams, null, publishers); return(View(cvm)); }
public IndexViewModel() { SearchSortPageParams = new SearchSortPageViewModel(); Books = null; PublisherRouteParams = null; NameRouteParams = null; CreatedDateRouteParams = null; ModifiedDateRouteParams = null; CreateLinkRouteParams = null; }
public IndexViewModel( SearchSortPageViewModel searchSortPageParams, PagedList.IPagedList <Book> books, SearchSortPageViewModel publisherRouteParams, SearchSortPageViewModel nameRouteParams, SearchSortPageViewModel createdDateRouteParams, SearchSortPageViewModel modifiedDateRouteParams, SearchSortPageViewModel createLinkRouteParams ) { SearchSortPageParams = searchSortPageParams; Books = books; PublisherRouteParams = publisherRouteParams; NameRouteParams = nameRouteParams; CreatedDateRouteParams = createdDateRouteParams; ModifiedDateRouteParams = modifiedDateRouteParams; CreateLinkRouteParams = createLinkRouteParams; }
public void DeleteConfirmed_returns_HttpNotFoundResult_on_record_which_doesnt_exist() { // Arrange string searchString = "H3J"; string sortCol = "name"; string nextOrder = SearchSortPageViewModel.SORT_ORDER_ASC; string currentOrder = SearchSortPageViewModel.SORT_ORDER_ASC; int page = 1; int pageSize = 5; int id = -1; // a record id which doesn't exist SearchSortPageViewModel sspVM = new SearchSortPageViewModel(searchString, sortCol, currentOrder, nextOrder, page, pageSize); RecordViewModel rVM = new RecordViewModel(sspVM, id); // Act var result = controller.DeleteConfirmed(rVM); // Assert Assert.IsInstanceOf <HttpNotFoundResult>(result); }
public void Delete_returns_DeleteInputModel_on_record_which_exists() { // Arrange string searchString = "H3J"; string sortCol = "name"; string nextOrder = SearchSortPageViewModel.SORT_ORDER_ASC; string currentOrder = SearchSortPageViewModel.SORT_ORDER_ASC; int page = 1; int pageSize = 5; int id = 1; // a record id which exists SearchSortPageViewModel sspVM = new SearchSortPageViewModel(searchString, sortCol, currentOrder, nextOrder, page, pageSize); RecordViewModel rVM = new RecordViewModel(sspVM, id); // Act ViewResult result = controller.Delete(rVM) as ViewResult; DeleteViewModel deleteVM = (DeleteViewModel)result.ViewData.Model; // Assert Assert.IsInstanceOf <DeleteViewModel>(deleteVM); }
public void List_with_search_params_for_string_which_does_not_exist() { // Arrange string searchString = "H3J"; string sortCol = "name"; string nextOrder = SearchSortPageViewModel.SORT_ORDER_ASC; string currentOrder = SearchSortPageViewModel.SORT_ORDER_ASC; int page = 1; int pageSize = 5; SearchSortPageViewModel sspVM = new SearchSortPageViewModel(searchString, sortCol, currentOrder, nextOrder, page, pageSize); // Act ViewResult result = controller.Index(sspVM) as ViewResult; IndexViewModel indexVM = (IndexViewModel)result.ViewData.Model; // Assert Assert.IsNotNull(result); Assert.AreEqual(0, indexVM.Books.Count); }
public void List_with_no_params_display_first_page_sorted_by_name_desc() { // Arrange string searchString = ""; string sortCol = "name"; string nextOrder = SearchSortPageViewModel.SORT_ORDER_DESC; string currentOrder = SearchSortPageViewModel.SORT_ORDER_ASC; int page = 1; int pageSize = 5; SearchSortPageViewModel sspVM = new SearchSortPageViewModel(searchString, sortCol, currentOrder, nextOrder, page, pageSize); // Act ViewResult result = controller.Index(sspVM) as ViewResult; IndexViewModel indexVM = (IndexViewModel)result.ViewData.Model; // Assert Assert.IsNotNull(result); Assert.AreEqual(5, indexVM.Books.Count); Assert.AreEqual("ZZZ", indexVM.Books[0].Name); }
public void List_with_no_params_display_first_page_where_hacker_sets_too_large_page_params() { // Arrange string searchString = ""; string sortCol = "name"; string nextOrder = SearchSortPageViewModel.SORT_ORDER_ASC; string currentOrder = SearchSortPageViewModel.SORT_ORDER_ASC; int page = 999999999; int pageSize = 999999999; SearchSortPageViewModel sspVM = new SearchSortPageViewModel(searchString, sortCol, currentOrder, nextOrder, page, pageSize); // Act ViewResult result = controller.Index(sspVM) as ViewResult; IndexViewModel indexVM = (IndexViewModel)result.ViewData.Model; // Assert Assert.IsNotNull(result); Assert.AreEqual(3, indexVM.Books.Count); Assert.AreEqual("AAA", indexVM.Books[0].Name); Assert.AreEqual("CCC", indexVM.Books[3 - 1].Name); }
public CreateInputModel(SearchSortPageViewModel searchSortPageParams, Book book) { SearchSortPageParams = searchSortPageParams; Book = book; }
public CreateInputModel() { SearchSortPageParams = new SearchSortPageViewModel(); Book = null; }
public CreateViewModel(SearchSortPageViewModel searchSortPageParams, Book book, IEnumerable <SelectListItem> publishers) { SearchSortPageParams = searchSortPageParams; Book = book; Publishers = publishers; }
public CreateViewModel() { SearchSortPageParams = new SearchSortPageViewModel(); Book = null; Publishers = null; }
public DeleteViewModel(SearchSortPageViewModel searchSortPageParams, Book book) { SearchSortPageParams = searchSortPageParams; Book = book; }
public DeleteViewModel() { SearchSortPageParams = new SearchSortPageViewModel(); Book = null; }
// GET: Books/Books public ActionResult Index(SearchSortPageViewModel vm) { if (vm.ToggleOrder) { vm.CurrentOrder = vm.NextOrder; vm.NextOrder = (vm.NextOrder == SearchSortPageViewModel.SORT_ORDER_ASC) ? SearchSortPageViewModel.SORT_ORDER_DESC : SearchSortPageViewModel.SORT_ORDER_ASC; } SearchSortPageViewModel publisherRouteParams, nameRouteParams, createdDateRouteParams, modifiedDateRouteParams; SearchSortPageViewModel createLinkRouteParams; publisherRouteParams = new SearchSortPageViewModel(); publisherRouteParams.SearchString = vm.SearchString; publisherRouteParams.SortCol = "publisher"; nameRouteParams = new SearchSortPageViewModel(); nameRouteParams.SearchString = vm.SearchString; nameRouteParams.SortCol = "name"; createdDateRouteParams = new SearchSortPageViewModel(); createdDateRouteParams.SearchString = vm.SearchString; createdDateRouteParams.SortCol = "createdDate"; modifiedDateRouteParams = new SearchSortPageViewModel(); modifiedDateRouteParams.SearchString = vm.SearchString; modifiedDateRouteParams.SortCol = "modifiedDate"; IQueryable <Book> books = from b in db.Books select b; //db.Books.Include(b => b.Publisher); // the "Include" messes up mocking DbSet with mock. if (!String.IsNullOrEmpty(vm.SearchString)) { books = books.Where(s => s.Name.ToUpper().Contains(vm.SearchString.ToUpper())); } switch (vm.SortCol) { case "name": if (vm.CurrentOrder == SearchSortPageViewModel.SORT_ORDER_DESC) { books = books.OrderByDescending(b => b.Name); } else { books = books.OrderBy(b => b.Name); } nameRouteParams = (SearchSortPageViewModel)vm.ShallowCopy(); nameRouteParams.ToggleOrder = true; break; case "createdDate": if (vm.CurrentOrder == SearchSortPageViewModel.SORT_ORDER_DESC) { books = books.OrderByDescending(b => b.CreatedDate); } else { books = books.OrderBy(b => b.CreatedDate); } createdDateRouteParams = (SearchSortPageViewModel)vm.ShallowCopy(); createdDateRouteParams.ToggleOrder = true; break; case "modifiedDate": if (vm.CurrentOrder == SearchSortPageViewModel.SORT_ORDER_DESC) { books = books.OrderByDescending(b => b.ModifiedDate); } else { books = books.OrderBy(b => b.ModifiedDate); } modifiedDateRouteParams = (SearchSortPageViewModel)vm.ShallowCopy(); modifiedDateRouteParams.ToggleOrder = true; break; case "publisher": if (vm.CurrentOrder == SearchSortPageViewModel.SORT_ORDER_DESC) { books = books.OrderByDescending(b => b.Publisher.Name); } else { books = books.OrderBy(b => b.Publisher.Name); } publisherRouteParams = (SearchSortPageViewModel)vm.ShallowCopy(); publisherRouteParams.ToggleOrder = true; break; default: books = books.OrderBy(b => b.Name); break; } createLinkRouteParams = (SearchSortPageViewModel)vm.ShallowCopy(); createLinkRouteParams.ToggleOrder = false; IndexViewModel Ivm = new IndexViewModel( vm, books.ToPagedList(vm.Page, vm.PageSize), publisherRouteParams, nameRouteParams, createdDateRouteParams, modifiedDateRouteParams, createLinkRouteParams ); return(View(Ivm)); }