public void Update( int id, SpecificationUpdateRequest specification) { if (specification == null) { throw new ArgumentNullException(nameof(specification)); } var foundSpecification = _repository.GetById(id); if (foundSpecification == null) { throw new ArgumentNullException(nameof(foundSpecification)); } if (specification.IsCurrent == true) { var spec = _repository.GetCurrentByMarkId(foundSpecification.Mark.Id); spec.IsCurrent = false; _repository.Update(spec); foundSpecification.IsCurrent = true; } if (specification.Note != null) { foundSpecification.Note = specification.Note; } _repository.Update(foundSpecification); var foundMark = _markRepo.GetById(foundSpecification.Mark.Id); foundMark.EditedDate = DateTime.Now; _markRepo.Update(foundMark); }
public void Update(SpecificationUpdateRequest model, int id, int userId) { string procName = "[dbo].[Specification_Update]"; _data.ExecuteNonQuery(procName, inputParamMapper : delegate(SqlParameterCollection col) { col.AddWithValue("@Id", model.Id); col.AddWithValue("@ProductId", id); col.AddWithValue("@ModifiedBy", userId); AddCommonParams(model, col); }, returnParameters: null); }
public async Task Update_ShouldReturnNotFound_WhenWrongValues() { // Arrange var additionalWorkRequest = new SpecificationUpdateRequest { Note = "NewUpdate", }; string json = JsonSerializer.Serialize(additionalWorkRequest); var httpContent = new StringContent(json, Encoding.UTF8, "application/json"); var endpoint = $"/api/specifications/{999}"; // Act var response = await _httpClient.PatchAsync(endpoint, httpContent); // Assert Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }
public ActionResult Update( int id, [FromBody] SpecificationUpdateRequest specificationRequest) { if (!specificationRequest.Validate()) { return(BadRequest()); } try { _service.Update(id, specificationRequest); } catch (ArgumentNullException) { return(NotFound()); } return(NoContent()); }
public async Task Update_ShouldReturnUnauthorized_WhenNoAccessToken() { // Arrange int id = 1; var additionalWorkRequest = new SpecificationUpdateRequest { Note = "NewUpdate", }; string json = JsonSerializer.Serialize(additionalWorkRequest); var httpContent = new StringContent(json, Encoding.UTF8, "application/json"); var endpoint = $"/api/specifications/{id}"; // Act var response = await _authHttpClient.PatchAsync(endpoint, httpContent); // Assert Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode); }
public void Update_ShouldFailWithNull_WhenWrongValues() { // Arrange int id = _rnd.Next(1, _updateSpecifications.Count()); var newSpecificationRequest = new SpecificationUpdateRequest { Note = "NewUpdate", }; // Act & Assert Assert.Throws <ArgumentNullException>( () => _updateService.Update(id, null)); Assert.Throws <ArgumentNullException>( () => _updateService.Update(999, newSpecificationRequest)); _updateRepository.Verify( mock => mock.Update(It.IsAny <Specification>()), Times.Never); }
public void Update_ShouldUpdateSpecification() { // Arrange var id = 2; var spec = _updateSpecifications.SingleOrDefault(v => v.Id == id); var newNote = "NewUpdate"; var newSpecificationRequest = new SpecificationUpdateRequest { IsCurrent = true, Note = newNote, }; // Act _updateService.Update(id, newSpecificationRequest); // Assert _updateRepository.Verify( mock => mock.Update(It.IsAny <Specification>()), Times.Exactly(2)); Assert.Equal(newNote, _updateSpecifications.SingleOrDefault(v => v.Id == id).Note); Assert.Single(_updateSpecifications.Where( v => v.Mark.Id == spec.Mark.Id && v.IsCurrent)); }