public async Task PostEditShouldReturnBadRequestWhenIdIsInvalid() { // Arrange var adService = this.AdServiceMockForEdit(); var controller = new AdsController(adService.Object); // Act var result = await controller.Edit(2, new EditAdViewModel()); // Assert result.Should().BeOfType <BadRequestResult>(); }
public async Task EditShouldReturnViewWithCorrectModelWithValidId() { // Arrange var adService = this.AdServiceMockForEdit(); var controller = new AdsController(adService.Object); // Act var result = await controller.Edit(1); // Assert result.Should().BeOfType <ViewResult>(); var adModel = result.As <ViewResult>().Model.As <EditAdViewModel>(); adModel.Should().Match(c => c.As <EditAdViewModel>().Name == "ad"); }
public async Task EditShouldReturnNotFoundWithInvalidId() { // Arrange var adService = this.AdServiceMockForEdit(); var controller = new AdsController(adService.Object); // Act var result = await controller.Edit(4); // Assert var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result); result .Should() .BeOfType <RedirectToActionResult>(); Assert.Equal("NotFoundPage", redirectToActionResult.ActionName); }
public async Task PostEditShouldReturnViewWithCorrectModelWhenModelStateIsInvalid() { // Arrange var adService = this.AdServiceMockForEdit(); var controller = new AdsController(adService.Object); controller.ModelState.AddModelError(string.Empty, "Error"); // Act var result = await controller.Edit(1, new EditAdViewModel()); // Assert result.Should().BeOfType <ViewResult>(); var model = result.As <ViewResult>().Model; model.Should().BeOfType <EditAdViewModel>(); }
public async Task PostEditShouldReturnRedirectWithValidModel() { // Arrange const string nameValue = "Name"; const string descriptionValue = "Description"; const string profilePicUrlValue = "ImageUrl"; const string websiteValue = "www.website.com"; const int idValue = 1; string modelName = null; string modelDescription = null; string modelProfilePicUrl = null; string modelWebsite = null; int modelId = 0; string successMessage = null; var adService = new Mock <IAdminAdService>(); adService .Setup(u => u.Edit( It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <int>())) .Callback((string name, string description, string adProfilePicUrl, string website, int id) => { modelName = name; modelDescription = description; modelProfilePicUrl = adProfilePicUrl; modelWebsite = website; modelId = id; }).Returns(Task.FromResult(true)); var tempData = new Mock <ITempDataDictionary>(); tempData .SetupSet(t => t[WebConstants.TempDataSuccessMessage] = It.IsAny <string>()) .Callback((string key, object message) => successMessage = message as string); var controller = new AdsController(adService.Object); controller.TempData = tempData.Object; // Act var result = await controller.Edit(idValue, new EditAdViewModel { Name = nameValue, Description = descriptionValue, AdProfilePicUrl = profilePicUrlValue, Website = websiteValue }); // Assert modelName.Should().Be(nameValue); modelDescription.Should().Be(descriptionValue); modelProfilePicUrl.Should().Be(profilePicUrlValue); modelWebsite.Should().Be(websiteValue); modelId.Should().Be(idValue); successMessage.Should().Be($"Ad {nameValue} details have been successfully changed."); result.Should().BeOfType <RedirectToActionResult>(); result.As <RedirectToActionResult>().ActionName.Should().Be("Ad"); result.As <RedirectToActionResult>().ControllerName.Should().Be("Users"); result.As <RedirectToActionResult>().RouteValues.Keys.Should().Contain("area"); result.As <RedirectToActionResult>().RouteValues.Values.Should().Contain(idValue); }