public void Update_ShouldUpdateStandardConstruction() { // Arrange var id = _rnd.Next(1, _updateStandardConstructions.Count()); var newStringValue = "NewUpdate"; var newIntValue = 99; var newFloatValue = 9.0f; var newStandardConstructionRequest = new StandardConstructionUpdateRequest { Name = newStringValue, Num = newIntValue, Sheet = newStringValue, Weight = newFloatValue, }; // Act _updateService.Update(id, newStandardConstructionRequest); // Assert _updateRepository.Verify(mock => mock.Update(It.IsAny <StandardConstruction>()), Times.Once); Assert.Equal( newStringValue, _updateStandardConstructions.SingleOrDefault(v => v.Id == id).Name); Assert.Equal( newIntValue, _updateStandardConstructions.SingleOrDefault(v => v.Id == id).Num); Assert.Equal( newStringValue, _updateStandardConstructions.SingleOrDefault(v => v.Id == id).Sheet); Assert.Equal( newFloatValue, _updateStandardConstructions.SingleOrDefault(v => v.Id == id).Weight); }
public void Update_ShouldFailWithConflict() { // Arrange var id = 4; var conflictName = _standardConstructions[0].Name; var newStandardConstructionRequest = new StandardConstructionUpdateRequest { Name = conflictName, }; // Act & Assert Assert.Throws <ConflictException>(() => _service.Update(id, newStandardConstructionRequest)); _repository.Verify(mock => mock.Update(It.IsAny <StandardConstruction>()), Times.Never); }
public void Update_ShouldFailWithNull_WhenWrongValues() { // Arrange int id = _rnd.Next(1, _updateStandardConstructions.Count()); var newStandardConstructionRequest = new StandardConstructionUpdateRequest { Sheet = "NewUpdate", }; // Act & Assert Assert.Throws <ArgumentNullException>(() => _updateService.Update(id, null)); Assert.Throws <ArgumentNullException>(() => _updateService.Update( 999, newStandardConstructionRequest)); _updateRepository.Verify(mock => mock.Update(It.IsAny <StandardConstruction>()), Times.Never); }
public void Update( int id, StandardConstructionUpdateRequest standardConstruction) { if (standardConstruction == null) { throw new ArgumentNullException(nameof(standardConstruction)); } var foundStandardConstruction = _repository.GetById(id); if (foundStandardConstruction == null) { throw new ArgumentNullException(nameof(foundStandardConstruction)); } if (standardConstruction.Name != null) { foundStandardConstruction.Name = standardConstruction.Name; var uniqueConstraintViolationCheck = _repository.GetByUniqueKey( foundStandardConstruction.Specification.Id, standardConstruction.Name); if (uniqueConstraintViolationCheck != null) { throw new ConflictException(nameof(uniqueConstraintViolationCheck)); } } if (standardConstruction.Num != null) { foundStandardConstruction.Num = standardConstruction.Num.GetValueOrDefault(); } if (standardConstruction.Sheet != null) { foundStandardConstruction.Sheet = standardConstruction.Sheet; } if (standardConstruction.Weight != null) { foundStandardConstruction.Weight = standardConstruction.Weight.GetValueOrDefault(); } _repository.Update(foundStandardConstruction); var foundMark = _markRepo.GetById(foundStandardConstruction.Specification.Mark.Id); foundMark.EditedDate = DateTime.Now; _markRepo.Update(foundMark); }
public ActionResult Update( int id, [FromBody] StandardConstructionUpdateRequest standardConstructionRequest) { if (!standardConstructionRequest.Validate()) { return(BadRequest()); } try { _service.Update(id, standardConstructionRequest); } catch (ArgumentNullException) { return(NotFound()); } catch (ConflictException) { return(Conflict()); } return(NoContent()); }