public async Task <IActionResult> Post([FromBody] MaterialConstructionViewModel viewModel) { if (!ModelState.IsValid) { var excpetion = new { error = ResultFormatter.FormatErrorMessage(ModelState) }; return(new BadRequestObjectResult(excpetion)); } try { VerifyUser(); ValidateService.Validate(viewModel); var result = await _service.Create(viewModel); return(Created(HttpContext.Request.Path, result)); } catch (ServiceValidationException ex) { var Result = new { error = ResultFormatter.Fail(ex), apiVersion = "1.0.0", statusCode = HttpStatusCode.BadRequest, message = "Data does not pass validation" }; return(new BadRequestObjectResult(Result)); } catch (Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); } }
public async Task Post() { MaterialConstructionViewModel VM = GenerateTestModel(); var response = await this.Client.PostAsync(URI, new StringContent(JsonConvert.SerializeObject(VM).ToString(), Encoding.UTF8, "application/json")); Assert.Equal(HttpStatusCode.Created, response.StatusCode); }
public async Task Should_NotValid_Post() { var dataUtil = new MaterialConstructionViewModel(); //v var serviceMock = new Mock <IMaterialConstructionService>(); serviceMock.Setup(s => s.Create(It.IsAny <MaterialConstructionViewModel>())).ReturnsAsync(1); var service = serviceMock.Object; var identityProviderMock = new Mock <IIdentityProvider>(); var identityProvider = identityProviderMock.Object; var validateServiceMock = new Mock <IValidateService>(); validateServiceMock.Setup(s => s.Validate(It.IsAny <MaterialConstructionViewModel>())) .Verifiable(); var validateService = validateServiceMock.Object; var controller = GetController(service, identityProvider, validateService); controller.ModelState.AddModelError("test", "test"); //controller.ModelState.IsValid == false; var response = await controller.Post(dataUtil); Assert.Equal((int)HttpStatusCode.BadRequest, GetStatusCode(response)); }
public MaterialConstructionViewModel MapToViewModel(MaterialConstruction model) { MaterialConstructionViewModel viewModel = new MaterialConstructionViewModel(); PropertyCopier <MaterialConstruction, MaterialConstructionViewModel> .Copy(model, viewModel); return(viewModel); }
public MaterialConstruction MapToModel(MaterialConstructionViewModel viewModel) { MaterialConstruction model = new MaterialConstruction(); PropertyCopier <MaterialConstructionViewModel, MaterialConstruction> .Copy(viewModel, model); return(model); }
public async Task <IActionResult> Put([FromRoute] int id, [FromBody] MaterialConstructionViewModel viewModel) { VerifyUser(); if (!ModelState.IsValid) { var exception = new { error = ResultFormatter.FormatErrorMessage(ModelState) }; return(new BadRequestObjectResult(exception)); } try { VerifyUser(); ValidateService.Validate(viewModel); await _service.Update(id, viewModel); return(NoContent()); } catch (ServiceValidationException ex) { var Result = new { error = ResultFormatter.Fail(ex), apiVersion = "1.0.0", statusCode = HttpStatusCode.BadRequest, message = "Data does not pass validation" }; return(new BadRequestObjectResult(Result)); } catch (Exception ex) { var error = new { statusCode = HttpStatusCode.InternalServerError, error = ex.Message }; return(StatusCode((int)HttpStatusCode.InternalServerError, error)); } }
public void Should_Error_UploadValidate_EmptyData() { var repoMock = new Mock <IMaterialConstructionRepository>(); repoMock.Setup(s => s.ReadAll()) .Returns(new List <MaterialConstructionModel>().AsQueryable()); var service = GetService(GetServiceProvider(repoMock.Object).Object); var vm = new MaterialConstructionViewModel(); var result = service.UploadValidate(new List <MaterialConstructionViewModel>() { vm }); Assert.False(result.Item1); vm.Code = "test"; result = service.UploadValidate(new List <MaterialConstructionViewModel>() { vm }); Assert.False(result.Item1); vm.Code = "0"; result = service.UploadValidate(new List <MaterialConstructionViewModel>() { vm }); Assert.False(result.Item1); vm.Code = "1100"; result = service.UploadValidate(new List <MaterialConstructionViewModel>() { vm }); Assert.False(result.Item1); }
public void Should_Exception_ValidationVM() { var repoMock = new Mock <IMaterialConstructionRepository>(); var model = Model; model.Id = 1; repoMock.Setup(s => s.ReadAll()) .Returns(new List <MaterialConstructionModel>() { model }.AsQueryable()); var serviceProvider = GetServiceProvider(repoMock.Object).Object; var service = GetService(serviceProvider); var vm = new MaterialConstructionViewModel(); var validateService = new ValidateService(serviceProvider); Assert.ThrowsAny <ServiceValidationException>(() => validateService.Validate(vm)); vm.Code = "str"; validateService = new ValidateService(serviceProvider); Assert.ThrowsAny <ServiceValidationException>(() => validateService.Validate(vm)); vm.Code = "0"; validateService = new ValidateService(serviceProvider); Assert.ThrowsAny <ServiceValidationException>(() => validateService.Validate(vm)); vm.Code = "1202"; validateService = new ValidateService(serviceProvider); Assert.ThrowsAny <ServiceValidationException>(() => validateService.Validate(vm)); vm.Type = Model.Type; vm.Code = Model.Code; validateService = new ValidateService(serviceProvider); Assert.ThrowsAny <ServiceValidationException>(() => validateService.Validate(vm)); }