Пример #1
0
        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);
        }
Пример #2
0
        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));
            }
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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));
            }
        }