public async void ShouldThrowValidationExceptionOnAddWhenAttachmentIdIsInvalidAndLogItAsync() { // given AssignmentAttachment randomAssignmentAttachment = CreateRandomAssignmentAttachment(); AssignmentAttachment inputAssignmentAttachment = randomAssignmentAttachment; inputAssignmentAttachment.AttachmentId = default; var invalidAssignmentAttachmentInputException = new InvalidAssignmentAttachmentException( parameterName: nameof(AssignmentAttachment.AttachmentId), parameterValue: inputAssignmentAttachment.AttachmentId); var expectedAssignmentAttachmentValidationException = new AssignmentAttachmentValidationException(invalidAssignmentAttachmentInputException); // when ValueTask <AssignmentAttachment> addAssignmentAttachmentTask = this.assignmentAttachmentService.AddAssignmentAttachmentAsync(inputAssignmentAttachment); // then await Assert.ThrowsAsync <AssignmentAttachmentValidationException>(() => addAssignmentAttachmentTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs( expectedAssignmentAttachmentValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.InsertAssignmentAttachmentAsync(It.IsAny <AssignmentAttachment>()), Times.Never); this.storageBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); }
public async Task ShouldThrowValidatonExceptionOnRemoveWhenAttachmentIdIsInvalidAndLogItAsync() { // given Guid randomAttachmentId = default; Guid randomAssignmentId = Guid.NewGuid(); Guid inputAttachmentId = randomAttachmentId; Guid inputAssignmentId = randomAssignmentId; var invalidAssignmentAttachmentInputException = new InvalidAssignmentAttachmentException( parameterName: nameof(AssignmentAttachment.AttachmentId), parameterValue: inputAttachmentId); var expectedAssignmentAttachmentValidationException = new AssignmentAttachmentValidationException(invalidAssignmentAttachmentInputException); // when ValueTask <AssignmentAttachment> removeAssignmentAttachmentTask = this.assignmentAttachmentService.RemoveAssignmentAttachmentByIdAsync( inputAssignmentId, inputAttachmentId); // then await Assert.ThrowsAsync <AssignmentAttachmentValidationException>(() => removeAssignmentAttachmentTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs( expectedAssignmentAttachmentValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.SelectAssignmentAttachmentByIdAsync( It.IsAny <Guid>(), It.IsAny <Guid>()), Times.Never); this.storageBrokerMock.Verify(broker => broker.DeleteAssignmentAttachmentAsync( It.IsAny <AssignmentAttachment>()), Times.Never); this.storageBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); }