public async void ShouldThrowValidationExceptionOnModifyWhenUpdatedByIsInvalidAndLogItAsync() { // given DateTimeOffset dateTime = GetRandomDateTime(); Calendar randomCalendar = CreateRandomCalendar(dateTime); Calendar inputCalendar = randomCalendar; inputCalendar.UpdatedBy = default; var invalidCalendarException = new InvalidCalendarException( parameterName: nameof(Calendar.UpdatedBy), parameterValue: inputCalendar.UpdatedBy); var expectedCalendarValidationException = new CalendarValidationException(invalidCalendarException); // when ValueTask <Calendar> modifyCalendarTask = this.calendarService.ModifyCalendarAsync(inputCalendar); // then await Assert.ThrowsAsync <CalendarValidationException>(() => modifyCalendarTask.AsTask()); this.loggingBrokerMock.Verify(broker => broker.LogError(It.Is(SameExceptionAs( expectedCalendarValidationException))), Times.Once); this.storageBrokerMock.Verify(broker => broker.SelectCalendarByIdAsync(It.IsAny <Guid>()), Times.Never); this.dateTimeBrokerMock.VerifyNoOtherCalls(); this.loggingBrokerMock.VerifyNoOtherCalls(); this.storageBrokerMock.VerifyNoOtherCalls(); }