public async Task ShouldThrowValidatonExceptionOnRetrieveWhenContactIdIsInvalidAndLogItAsync() { // given Guid randomContactId = default; Guid randomTeacherId = Guid.NewGuid(); Guid inputContactId = randomContactId; Guid inputTeacherId = randomTeacherId; var invalidTeacherContactException = new InvalidTeacherContactException( parameterName: nameof(TeacherContact.ContactId), parameterValue: inputContactId); var expectedTeacherContactValidationException = new TeacherContactValidationException(invalidTeacherContactException); // when ValueTask <TeacherContact> retrieveTeacherContactTask = this.teacherContactService.RetrieveTeacherContactByIdAsync(inputTeacherId, inputContactId); // then await Assert.ThrowsAsync <TeacherContactValidationException>(() => retrieveTeacherContactTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs(expectedTeacherContactValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.SelectTeacherContactByIdAsync(It.IsAny <Guid>(), It.IsAny <Guid>()), Times.Never); this.storageBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); }
public async void ShouldThrowValidationExceptionOnAddWhenContactIdIsInvalidAndLogItAsync() { // given TeacherContact randomTeacherContact = CreateRandomTeacherContact(); TeacherContact inputTeacherContact = randomTeacherContact; inputTeacherContact.ContactId = default; var invalidTeacherContactException = new InvalidTeacherContactException( parameterName: nameof(TeacherContact.ContactId), parameterValue: inputTeacherContact.ContactId); var expectedTeacherContactValidationException = new TeacherContactValidationException(invalidTeacherContactException); // when ValueTask <TeacherContact> addTeacherContactTask = this.teacherContactService.AddTeacherContactAsync(inputTeacherContact); // then await Assert.ThrowsAsync <TeacherContactValidationException>(() => addTeacherContactTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs( expectedTeacherContactValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.InsertTeacherContactAsync(It.IsAny <TeacherContact>()), Times.Never); this.loggingBrokerMock.VerifyNoOtherCalls(); this.storageBrokerMock.VerifyNoOtherCalls(); }