public async void ShouldThrowValidationExceptionOnAddWhenContactIdIsInvalidAndLogItAsync() { // given GuardianContact randomGuardianContact = CreateRandomGuardianContact(); GuardianContact inputGuardianContact = randomGuardianContact; inputGuardianContact.ContactId = default; var invalidGuardianContactException = new InvalidGuardianContactException( parameterName: nameof(GuardianContact.ContactId), parameterValue: inputGuardianContact.ContactId); var expectedGuardianContactValidationException = new GuardianContactValidationException(invalidGuardianContactException); // when ValueTask <GuardianContact> addGuardianContactTask = this.guardianContactService.AddGuardianContactAsync(inputGuardianContact); // then await Assert.ThrowsAsync <GuardianContactValidationException>(() => addGuardianContactTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs(expectedGuardianContactValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.InsertGuardianContactAsync(It.IsAny <GuardianContact>()), Times.Never); this.loggingBrokerMock.VerifyNoOtherCalls(); this.storageBrokerMock.VerifyNoOtherCalls(); }
public async Task ShouldThrowValidatonExceptionOnRetrieveWhenContactIdIsInvalidAndLogItAsync() { // given Guid invalidContactId = Guid.Empty; Guid randomGuardianId = Guid.NewGuid(); Guid inputContactId = invalidContactId; Guid inputGuardianId = randomGuardianId; var invalidGuardianContactException = new InvalidGuardianContactException( parameterName: nameof(GuardianContact.ContactId), parameterValue: inputContactId); var expectedGuardianContactValidationException = new GuardianContactValidationException(invalidGuardianContactException); // when ValueTask <GuardianContact> retrieveGuardianContactTask = this.guardianContactService.RetrieveGuardianContactByIdAsync(inputGuardianId, inputContactId); // then await Assert.ThrowsAsync <GuardianContactValidationException>(() => retrieveGuardianContactTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs( expectedGuardianContactValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.SelectGuardianContactByIdAsync(It.IsAny <Guid>(), It.IsAny <Guid>()), Times.Never); this.storageBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); }
public async void ShouldThrowValidationExceptionOnAddWhenGuardianContactIsNullAndLogItAsync() { // given GuardianContact randomGuardianContact = default; GuardianContact nullGuardianContact = randomGuardianContact; var nullGuardianContactException = new NullGuardianContactException(); var expectedGuardianContactValidationException = new GuardianContactValidationException(nullGuardianContactException); // when ValueTask <GuardianContact> addGuardianContactTask = this.guardianContactService.AddGuardianContactAsync(nullGuardianContact); // then await Assert.ThrowsAsync <GuardianContactValidationException>(() => addGuardianContactTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs(expectedGuardianContactValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.InsertGuardianContactAsync(It.IsAny <GuardianContact>()), Times.Never); this.loggingBrokerMock.VerifyNoOtherCalls(); this.storageBrokerMock.VerifyNoOtherCalls(); }
private GuardianContactValidationException CreateAndLogValidationException(Exception exception) { var GuardianContactValidationException = new GuardianContactValidationException(exception); this.loggingBroker.LogError(GuardianContactValidationException); return(GuardianContactValidationException); }
public async Task ShouldThrowValidationExceptionOnRemoveWhenStorageGuardianContactIsInvalidAndLogItAsync() { // given DateTimeOffset randomDateTime = GetRandomDateTime(); GuardianContact randomGuardianContact = CreateRandomGuardianContact(randomDateTime); Guid inputContactId = randomGuardianContact.ContactId; Guid inputGuardianId = randomGuardianContact.GuardianId; GuardianContact nullStorageGuardianContact = null; var notFoundGuardianContactException = new NotFoundGuardianContactException(inputGuardianId, inputContactId); var expectedSemesterCourseValidationException = new GuardianContactValidationException(notFoundGuardianContactException); this.storageBrokerMock.Setup(broker => broker.SelectGuardianContactByIdAsync(inputGuardianId, inputContactId)) .ReturnsAsync(nullStorageGuardianContact); // when ValueTask <GuardianContact> removeGuardianContactTask = this.guardianContactService.RemoveGuardianContactByIdAsync(inputGuardianId, inputContactId); // then await Assert.ThrowsAsync <GuardianContactValidationException>(() => removeGuardianContactTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs( expectedSemesterCourseValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.SelectGuardianContactByIdAsync(It.IsAny <Guid>(), It.IsAny <Guid>()), Times.Once); this.storageBrokerMock.Verify(broker => broker.DeleteGuardianContactAsync(It.IsAny <GuardianContact>()), Times.Never); this.storageBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); }
public async void ShouldThrowValidationExceptionOnAddWhenReferneceExceptionAndLogItAsync() { // given GuardianContact randomGuardianContact = CreateRandomGuardianContact(); GuardianContact invalidGuardianContact = randomGuardianContact; string randomMessage = GetRandomMessage(); string exceptionMessage = randomMessage; var foreignKeyConstraintConflictException = new ForeignKeyConstraintConflictException(exceptionMessage); var invalidGuardianContactReferenceException = new InvalidGuardianContactReferenceException(foreignKeyConstraintConflictException); var expectedGuardianContactValidationException = new GuardianContactValidationException(invalidGuardianContactReferenceException); this.storageBrokerMock.Setup(broker => broker.InsertGuardianContactAsync(invalidGuardianContact)) .ThrowsAsync(foreignKeyConstraintConflictException); // when ValueTask <GuardianContact> addGuardianContactTask = this.guardianContactService.AddGuardianContactAsync(invalidGuardianContact); // then await Assert.ThrowsAsync <GuardianContactValidationException>(() => addGuardianContactTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs( expectedGuardianContactValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.InsertGuardianContactAsync(invalidGuardianContact), Times.Once); this.storageBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); }
public async void ShouldThrowValidationExceptionOnAddWhenGuardianContactAlreadyExistsAndLogItAsync() { // given GuardianContact randomGuardianContact = CreateRandomGuardianContact(); GuardianContact alreadyExistsGuardianContact = randomGuardianContact; string randomMessage = GetRandomMessage(); string exceptionMessage = randomMessage; var duplicateKeyException = new DuplicateKeyException(exceptionMessage); var alreadyExistsGuardianContactException = new AlreadyExistsGuardianContactException(duplicateKeyException); var expectedGuardianContactValidationException = new GuardianContactValidationException(alreadyExistsGuardianContactException); this.storageBrokerMock.Setup(broker => broker.InsertGuardianContactAsync(alreadyExistsGuardianContact)) .ThrowsAsync(duplicateKeyException); // when ValueTask <GuardianContact> addGuardianContactTask = this.guardianContactService.AddGuardianContactAsync(alreadyExistsGuardianContact); // then await Assert.ThrowsAsync <GuardianContactValidationException>(() => addGuardianContactTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs( expectedGuardianContactValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.InsertGuardianContactAsync(alreadyExistsGuardianContact), Times.Once); this.storageBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); }