public async Task TestGetEditIdValid() { // Arrange var inputModel = new ListingInputModel { Id = 666, Description = "test" }; var mockService = new Mock <IListingService>(); mockService .Setup(x => x.GetListingInputModelByIdAsync(It.IsAny <int>())) .ReturnsAsync(inputModel) .Verifiable(); var controller = new ListingController(mockService.Object); // Act var result = await controller.Edit(1); // Assert var viewResult = Assert.IsAssignableFrom <ViewResult>(result); var modelResult = Assert.IsAssignableFrom <ListingInputModel>(viewResult.Model); Assert.Equal("test", modelResult.Description); mockService.Verify(x => x.GetListingInputModelByIdAsync(It.IsAny <int>()), Times.Once); }
public async Task TestPostEditEditSuccessTrue() { // Arrange var mockService = new Mock <IListingService>(); mockService .Setup(x => x.UpdateListingAsync(It.IsAny <ListingInputModel>())) .ReturnsAsync(true) .Verifiable(); var controller = new ListingController(mockService.Object); controller.TempData = new TempDataDictionary( new DefaultHttpContext(), Mock.Of <ITempDataProvider>()); // Act var result = await controller.Edit( 1, new ListingInputModel { Id = 1, Description = "test" }); // Assert var redirectResult = Assert.IsAssignableFrom <RedirectToActionResult>(result); Assert.Equal("Home", redirectResult.ControllerName); Assert.Equal("Index", redirectResult.ActionName); mockService.Verify(x => x.UpdateListingAsync(It.IsAny <ListingInputModel>()), Times.Once); }
public async Task TestPostEditEditSuccessFalse() { // Arrange var mockService = new Mock <IListingService>(); mockService .Setup(x => x.UpdateListingAsync(It.IsAny <ListingInputModel>())) .ReturnsAsync(false) .Verifiable(); var controller = new ListingController(mockService.Object); controller.TempData = new TempDataDictionary(new DefaultHttpContext(), Mock.Of <ITempDataProvider>()); // Act var result = await controller.Edit(1, new ListingInputModel { Id = 1, Description = "test" }); // Assert var viewResult = Assert.IsAssignableFrom <ViewResult>(result); var modelResult = Assert.IsAssignableFrom <ListingInputModel>(viewResult.Model); Assert.Equal("test", modelResult.Description); Assert.NotNull(controller.TempData["EditError"]); Assert.Equal("There was a problem updating the information. Please ensure the data entered is valid, and try again.", controller.TempData["EditError"]); mockService.Verify(x => x.UpdateListingAsync(It.IsAny <ListingInputModel>()), Times.Once); }
public async Task TestGetEditIdNull() { // Arrange var controller = new ListingController(null); // Act var result = await controller.Edit(null); // Assert Assert.IsAssignableFrom <NotFoundResult>(result); }
public async Task TestPostEditIdUnequalToInputModelId() { // Arrange var controller = new ListingController(null); // Act var result = await controller.Edit(1, new ListingInputModel { Id = 2 }); // Assert Assert.IsAssignableFrom <NotFoundResult>(result); }
public async Task TestPostEditInputModelNull() { // Arrange var controller = new ListingController(null); // Act var result = await controller.Edit(1, null); // Assert Assert.IsAssignableFrom <BadRequestResult>(result); }
public async void ReturnValidModelForCorrectId(int?id) { var result = await sut.Edit(id); var vr = Assert.IsType <ViewResult>(result); fixture.repositoryWrapper.Verify(y => y.Listing.GetListingByIdAsync(It.IsAny <int>()), Times.Once); Assert.Equal("Edit", vr.ViewName); Assert.IsAssignableFrom <ListingManagementDTO>(vr.Model); }
public async Task TestPostEditModelStateInvalid() { // Arrange var controller = new ListingController(null); controller.ModelState.AddModelError("test", "test"); // Act var result = await controller.Edit(1, new ListingInputModel { Id = 1, Description = "test" }); // Assert var viewResult = Assert.IsAssignableFrom <ViewResult>(result); var modelResult = Assert.IsAssignableFrom <ListingInputModel>(viewResult.Model); Assert.Equal("test", modelResult.Description); }
public async Task TestGetEditInputModelNull() { // Arrange ListingInputModel inputModel = null; var mockService = new Mock <IListingService>(); mockService .Setup(x => x.GetListingInputModelByIdAsync(It.IsAny <int>())) .ReturnsAsync(inputModel) .Verifiable(); var controller = new ListingController(mockService.Object); // Act var result = await controller.Edit(1); // Assert Assert.IsAssignableFrom <NotFoundResult>(result); mockService.Verify(x => x.GetListingInputModelByIdAsync(It.IsAny <int>()), Times.Once); }