示例#1
0
        public void WhenTryingToCallOffReservationAfterBlockDate_ThenSendsCallOffDeniedEvent()
        {
            // Given
            Mock <IEventDispatcher>                eventDispatcherMock         = new Mock <IEventDispatcher>();
            Mock <ITableAvailabilityService>       tableAvailabilityService    = new Mock <ITableAvailabilityService>();
            Mock <IRestaurantConfigurationService> restaurantConfigurationMock = new Mock <IRestaurantConfigurationService>();

            var reservationRequest = new ReservationRequest(eventDispatcherMock.Object, tableAvailabilityService.Object, restaurantConfigurationMock.Object);

            reservationRequest.StartDate = DateTime.UtcNow;

            var callOffReservationRequest = new CallOffReservationRequest
            {
                RequestDate = DateTime.UtcNow
            };

            restaurantConfigurationMock.Setup(x => x.CallOffPossibleInDays()).Returns(1);
            // When
            reservationRequest.ReservationCalledOffHandler(callOffReservationRequest);

            // Then
            eventDispatcherMock.Verify(x => x.DispatchCallOffDeniedEvent(It.IsAny <CallOffDeniedEvent>()), Times.Once);
        }