public async Task GivenCommand_WhenIngredientDoesNotExist_ReturnFailure() { var result = await _systemUnderTests.Handle(_command); using (new AssertionScope()) { result.IsFailure.Should().BeTrue(); result.Message.Should().Be(FailMessages.DoesNotExist(nameof(Ingredient), nameof(UpdateIngredientCommand.Id), _command.Id.ToString())); } }
public async Task <Result> Handle(UpdateIngredientCommand command) { foreach (var validator in _validators) { var validationResult = validator.Validate(command); if (validationResult.IsFailure) { return(validationResult); } } var ingredient = _ingredientRepository.GetById(command.Id); if (ingredient == null) { return(Result.Fail(ResultCode.NotFound, FailMessages.DoesNotExist(nameof(Ingredient), nameof(UpdateIngredientCommand.Id), command.Id.ToString()))); } ingredient.Update(command.Name, command.Allergens, command.Requirements, command.Shares); _eventPublisher.Rise(); return(Result.Ok()); }