public async Task<IActionResult> Create(CreateJobCategoryViewModel model) { if (!ModelState.IsValid) { return View(model); } var jobCategory = new JobCategory {Name = model.Name}; _context.Add(jobCategory); await _context.SaveChangesAsync(); return RedirectToAction(nameof(Index)); }
public async Task <IActionResult> Create(CreateJobCategoryViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var result = await _jobCategoryService.Add(_mapper.Map <JobCategory>(model)); if (result) { return(RedirectToAction(nameof(Index))); } return(View("NotFound")); }
public async Task Create_Given_ServiceAddSuccess_Should_ReturnRedirectToActionResult() { // Arrange var vm = new CreateJobCategoryViewModel(); var serviceMock = new Mock <IJobCategoryService>(); serviceMock.Setup(x => x.Add(It.IsAny <JobCategory>())).ReturnsAsync(true); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = await controller.Create(vm); // Assert Assert.IsType <RedirectToActionResult>(result); }
public void Given_ModelWithNonCapitalizedName_Should_NotValidate() { // Arrange var model = new CreateJobCategoryViewModel { Name = "example" }; var context = new ValidationContext(model, null, null); var result = new List <ValidationResult>(); // Act var valid = Validator.TryValidateObject(model, context, result, true); // Assert Assert.False(valid); }
public void Given_ValidModel_Should_Validate() { // Arrange var model = new CreateJobCategoryViewModel { Name = "Example" }; var context = new ValidationContext(model, null, null); var result = new List <ValidationResult>(); // Act var valid = Validator.TryValidateObject(model, context, result, true); // Assert Assert.True(valid); }
public async Task Create_Given_ServiceAddFailure_Should_ReturnNotFoundView() { // Arrange var vm = new CreateJobCategoryViewModel(); var serviceMock = new Mock <IJobCategoryService>(); serviceMock.Setup(x => x.Add(It.IsAny <JobCategory>())).ReturnsAsync(false); var controller = new JobCategoryController(serviceMock.Object, _mapper); // Act var result = await controller.Create(vm); // Assert var viewResult = (ViewResult)result; Assert.Equal("NotFound", viewResult.ViewName); }
public void Given_ModelWithNonCapitalizedName_Should_ContainCorrectError() { // Arrange var model = new CreateJobCategoryViewModel { Name = "example" }; var context = new ValidationContext(model, null, null); var result = new List <ValidationResult>(); // Act Validator.TryValidateObject(model, context, result, true); // Assert var errorMessage = string.Format("{0} must start with capital letter.", nameof(model.Name)); Assert.Contains(result, x => x.ErrorMessage == errorMessage); }
public async Task Create_Given_ModelWithInvalidState_Should_ReturnSameModel() { // Arrange const string expectedName = "ExampleName"; var vm = new CreateJobCategoryViewModel { Name = expectedName }; var serviceMock = new Mock <IJobCategoryService>(); var controller = new JobCategoryController(serviceMock.Object, _mapper); controller.ModelState.AddModelError("Key", "Message"); // Act var result = await controller.Create(vm); // Assert var viewResult = (ViewResult)result; var model = (CreateJobCategoryViewModel)viewResult.Model; Assert.Equal(expectedName, model.Name); }