Esempio n. 1
0
        public async Task <IHttpActionResult> PutDiff(int diffId, string side, [FromBody] DiffPutModel model)
        {
            try
            {
                if (model?.Data == null || diffId <= 0)
                {
                    return(BadRequest());
                }

                // Instantiate object to create or update
                var diff = _modelFactory.CreateDiff(diffId, side, model);

                // Save object
                var saveResult = await _diffService.SaveDiff(diff);

                if (saveResult > 0)
                {
                    return(StatusCode(HttpStatusCode.Created));
                }
                else
                {
                    return(BadRequest("Could not save to the database."));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
        public void PutDiff_DataFieldsNotValid_StatusBadRequest()
        {
            // Arange
            var model = new DiffPutModel()
            {
                Data = null
            };

            // Act
            var resultLeft  = _ctrl.PutDiff(1, "left", model).Result.ExecuteAsync(CancellationToken.None);
            var resultRight = _ctrl.PutDiff(1, "right", model).Result.ExecuteAsync(CancellationToken.None);

            // Assert
            var statusCodeLeft  = resultLeft.Result.StatusCode;
            var statusCodeRight = resultRight.Result.StatusCode;

            Assert.IsTrue(statusCodeLeft == HttpStatusCode.BadRequest);
            Assert.IsTrue(statusCodeRight == HttpStatusCode.BadRequest);
        }
        public void PutDiff_DataFieldValid_StatusCreated()
        {
            // Arange
            var modelPutLeft = new DiffPutModel()
            {
                Data = "TGVwIHBvemRyYXYgaXogZGFsamF2IDIzNA=="
            };
            var modelPutRight = new DiffPutModel()
            {
                Data = "TGVwIHBvemRyYXYgMzU1"
            };
            var modelClean = new DiffPutModel()
            {
                Data = ""
            };

            // Act
            var cleanLeft  = _ctrl.PutDiff(999, "left", modelClean).Result.ExecuteAsync(CancellationToken.None);
            var cleanRight = _ctrl.PutDiff(999, "right", modelClean).Result.ExecuteAsync(CancellationToken.None);

            var resultLeft  = _ctrl.PutDiff(999, "left", modelPutLeft).Result.ExecuteAsync(CancellationToken.None);
            var resultRight = _ctrl.PutDiff(999, "right", modelPutRight).Result.ExecuteAsync(CancellationToken.None);

            var resultGet = _ctrl.GetDiff(999).ExecuteAsync(CancellationToken.None);

            cleanLeft  = _ctrl.PutDiff(999, "left", modelClean).Result.ExecuteAsync(CancellationToken.None);
            cleanRight = _ctrl.PutDiff(999, "right", modelClean).Result.ExecuteAsync(CancellationToken.None);

            // Assert
            var statusCodeGet = resultGet.Result.StatusCode;
            var json          = resultGet.Result.Content.ReadAsStringAsync().Result;
            var diffModel     = JsonConvert.DeserializeObject <DiffResultModel>(json);

            Assert.IsTrue(statusCodeGet == HttpStatusCode.OK);
            Assert.IsTrue(diffModel.DiffResultType == "SizeDoNotMatch");

            var statusCodeLeft  = resultLeft.Result.StatusCode;
            var statusCodeRight = resultRight.Result.StatusCode;

            Assert.IsTrue(statusCodeLeft == HttpStatusCode.Created);
            Assert.IsTrue(statusCodeRight == HttpStatusCode.Created);
        }