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); }