public void WhenModelIsValid_ThenNoExceptionIsThrown() { var model = WithUpdateModel(); var act = new AsyncTestDelegate(() => ShortLinkUpdateValidator.ValidateModelAsync(model)); Assert.DoesNotThrowAsync(act); }
public void WhenModelIsNotAnInstanceOfAnObject_ThenItThrowsArgumentNullException() { ShortLinkUpdateDto model = null; var act = new AsyncTestDelegate(() => ShortLinkUpdateValidator.ValidateModelAsync(model)); Assert.ThrowsAsync <ArgumentNullException>(act); }
public void WhenModelContainsAnInvalidEndpointUrl_ThenItThrowsModelValidationException() { var model = WithUpdateModel(); model.EndpointUrl = "go-bananas"; var act = new AsyncTestDelegate(() => ShortLinkUpdateValidator.ValidateModelAsync(model)); Assert.ThrowsAsync <ModelValidationException>(act, "Found a validation error"); }
public void WhenModelContainsAnInvalidShortCode_ThenItThrowsModelValidationException() { var model = WithUpdateModel(); model.ShortCode = "1234abcd"; var act = new AsyncTestDelegate(() => ShortLinkUpdateValidator.ValidateModelAsync(model)); Assert.ThrowsAsync <ModelValidationException>(act, "Found a validation error"); }
public async Task UpdateAsync(string ownerSubjectId, Guid id, ShortLinkUpdateDto dto) { if (!id.Equals(dto.Id)) { throw new InvalidUpdateRequestException($"Update request for ID '{id}' contains a model with ID '{dto.Id}'"); } await ShortLinkUpdateValidator.ValidateModelAsync(dto); if (await _repository.CheckIfShortCodeIsUniqueForShortLinkAsync(id, dto.ShortCode)) { await InvalidateCacheAsync(dto.ShortCode); await _repository.UpdateExistingShortLinkAsync(ownerSubjectId, dto); } }