public async Task Should_Error_Update_Invalid_Data() { InternalPurchaseOrder model = await DataUtil.GetTestData("dev2"); var responseGetById = await this.Client.GetAsync($"{URI}/{model.Id}"); var json = responseGetById.Content.ReadAsStringAsync().Result; Dictionary <string, object> result = JsonConvert.DeserializeObject <Dictionary <string, object> >(json.ToString()); Assert.True(result.ContainsKey("apiVersion")); Assert.True(result.ContainsKey("message")); Assert.True(result.ContainsKey("data")); Assert.True(result["data"].GetType().Name.Equals("JObject")); InternalPurchaseOrderViewModel viewModel = JsonConvert.DeserializeObject <InternalPurchaseOrderViewModel>(result.GetValueOrDefault("data").ToString()); viewModel.prNo = null; viewModel.prDate = DateTimeOffset.MinValue; viewModel.budget = null; viewModel.unit = null; viewModel.category = null; viewModel.items = new List <InternalPurchaseOrderItemViewModel> { }; var response = await this.Client.PutAsync($"{URI}/{model.Id}", new StringContent(JsonConvert.SerializeObject(viewModel).ToString(), Encoding.UTF8, MediaType)); Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode); }
public async Task Should_Error_Update_Data_when_Quantity_is_bigger() { InternalPurchaseOrder model = await DataUtil.GetTestData("dev2"); var responseGetById = await this.Client.GetAsync($"{URI}/{model.Id}"); var json = responseGetById.Content.ReadAsStringAsync().Result; Dictionary <string, object> result = JsonConvert.DeserializeObject <Dictionary <string, object> >(json.ToString()); Assert.True(result.ContainsKey("apiVersion")); Assert.True(result.ContainsKey("message")); Assert.True(result.ContainsKey("data")); Assert.True(result["data"].GetType().Name.Equals("JObject")); InternalPurchaseOrderViewModel viewModel = JsonConvert.DeserializeObject <InternalPurchaseOrderViewModel>(result.GetValueOrDefault("data").ToString()); foreach (var items in viewModel.items) { items._id = 0; items.quantity = items.quantity + 1; } var response = await this.Client.PutAsync($"{URI}/{model.Id}", new StringContent(JsonConvert.SerializeObject(viewModel).ToString(), Encoding.UTF8, MediaType)); Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode); }
public async Task <IActionResult> Split([FromRoute] int id, [FromBody] InternalPurchaseOrderViewModel vm) { identityService.Username = User.Claims.Single(p => p.Type.Equals("username")).Value; InternalPurchaseOrder m = _mapper.Map <InternalPurchaseOrder>(vm); ValidateService validateService = (ValidateService)_facade.serviceProvider.GetService(typeof(ValidateService)); try { validateService.Validate(vm); int result = await _facade.Split(id, m, identityService.Username); return(NoContent()); } catch (ServiceValidationExeption e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE) .Fail(e); return(BadRequest(Result)); } catch (Exception) { return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE)); } }
public async Task Should_Error_Split_Data() { InternalPurchaseOrder model = await DataUtil.GetTestData("dev2"); InternalPurchaseOrderViewModel viewModel = await DataUtil.GetNewDataViewModel("dev2"); viewModel._id = model.Id; List <InternalPurchaseOrderViewModel> viewModelList = new List <InternalPurchaseOrderViewModel> { viewModel }; var response = await this.Client.PostAsync($"{URI}/spliting/{model.Id}", new StringContent(JsonConvert.SerializeObject(viewModelList).ToString(), Encoding.UTF8, MediaType)); Assert.Equal(HttpStatusCode.InternalServerError, response.StatusCode); }
public async Task Should_Error_Create_Invalid_Data() { InternalPurchaseOrderViewModel viewModel = await DataUtil.GetNewDataViewModel("dev2"); viewModel.prNo = null; viewModel.prDate = DateTimeOffset.MinValue; viewModel.budget = null; viewModel.unit = null; viewModel.category = null; viewModel.items = new List <InternalPurchaseOrderItemViewModel> { }; var response = await this.Client.PostAsync(URI, new StringContent(JsonConvert.SerializeObject(viewModel).ToString(), Encoding.UTF8, MediaType)); Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }
public async Task Should_Error_Split_Data_with_Validation() { InternalPurchaseOrder model = await DataUtil.GetTestData("dev2"); InternalPurchaseOrderViewModel viewModel = await DataUtil.GetNewDataViewModel("dev2"); viewModel.prNo = null; viewModel.prDate = DateTimeOffset.MinValue; viewModel.budget = null; viewModel.unit = null; viewModel.category = null; //List<InternalPurchaseOrderViewModel> viewModelList = new List<InternalPurchaseOrderViewModel> { viewModel }; var response = await this.Client.PostAsync($"{URI}/spliting/{viewModel._id}", new StringContent(JsonConvert.SerializeObject(viewModel).ToString(), Encoding.UTF8, MediaType)); Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }
public async Task Should_Error_Split_Data_When_Quantity_Splited_Bigger_than_Quantity_Before_Splited() { InternalPurchaseOrder model = await DataUtil.GetTestData("dev2"); InternalPurchaseOrderViewModel viewModel = await DataUtil.GetNewDataViewModel("dev2"); viewModel.prNo = null; viewModel.prDate = DateTimeOffset.MinValue; viewModel.budget = null; viewModel.unit = null; viewModel.category = null; foreach (var items in viewModel.items) { items._id = 0; items.quantity = items.quantity + items.quantity; } //List<InternalPurchaseOrderViewModel> viewModelList = new List<InternalPurchaseOrderViewModel> { viewModel }; var response = await this.Client.PostAsync($"{URI}/spliting/{viewModel._id}", new StringContent(JsonConvert.SerializeObject(viewModel).ToString(), Encoding.UTF8, MediaType)); Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); }
public IActionResult Get(int id) { try { InternalPurchaseOrder model = _facade.ReadById(id); InternalPurchaseOrderViewModel viewModel = _mapper.Map <InternalPurchaseOrderViewModel>(model); return(Ok(new { apiVersion = ApiVersion, statusCode = General.OK_STATUS_CODE, message = General.OK_MESSAGE, data = viewModel, })); } catch (Exception e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }
public async Task <IActionResult> Post([FromBody] InternalPurchaseOrderViewModel vm) { identityService.Token = Request.Headers["Authorization"].First().Replace("Bearer ", ""); identityService.Username = User.Claims.Single(p => p.Type.Equals("username")).Value; InternalPurchaseOrder m = _mapper.Map <InternalPurchaseOrder>(vm); ValidateService validateService = (ValidateService)_facade.serviceProvider.GetService(typeof(ValidateService)); try { validateService.Validate(vm); int result = await _facade.Create(m, identityService.Username); if (result.Equals(0)) { return(StatusCode(500)); } else { return(Created(Request.Path, result)); } } catch (ServiceValidationExeption e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.BAD_REQUEST_STATUS_CODE, General.BAD_REQUEST_MESSAGE) .Fail(e); return(BadRequest(Result)); } catch (Exception e) { Dictionary <string, object> Result = new ResultFormatter(ApiVersion, General.INTERNAL_ERROR_STATUS_CODE, e.Message) .Fail(); return(StatusCode(General.INTERNAL_ERROR_STATUS_CODE, Result)); } }