Example #1
0
        public void GivenAllFieldsAreCorrect_WhenAddBooking_ShouldSucceed()
        {
            // Arrange
            var LAddBookingCommand = new AddBookingCommand
            {
                GuestFullName    = StringProvider.GetRandomString(),
                GuestPhoneNumber = StringProvider.GetRandomString(9),
                BedroomsNumber   = 1,
                DateFrom         = FDateTimeService.Now.AddDays(10),
                DateTo           = FDateTimeService.Now.AddDays(20)
            };

            // Act
            var LValidator = new AddBookingCommandValidator(FDateTimeService);
            var LResult    = LValidator.Validate(LAddBookingCommand);

            // Assert
            LResult.Errors.Should().BeEmpty();
        }
Example #2
0
        public void GivenGuestPhoneNumberTooLong_WhenAddBooking_ShouldThrowError()
        {
            // Arrange
            var LAddBookingCommand = new AddBookingCommand
            {
                GuestFullName    = StringProvider.GetRandomString(),
                GuestPhoneNumber = StringProvider.GetRandomString(15),
                BedroomsNumber   = 1,
                DateFrom         = FDateTimeService.Now.AddDays(10),
                DateTo           = FDateTimeService.Now.AddDays(20)
            };

            // Act
            var LValidator = new AddBookingCommandValidator(FDateTimeService);
            var LResult    = LValidator.Validate(LAddBookingCommand);

            // Assert
            LResult.Errors.Count.Should().Be(1);
            LResult.Errors[0].ErrorCode.Should().Be(nameof(ValidationCodes.PHONE_NUMBER_TOO_LONG));
        }
Example #3
0
        public void GivenNoGuestFullNameAndPhoneNumberProvided_WhenAddBooking_ShouldThrowError()
        {
            // Arrange
            var LAddBookingCommand = new AddBookingCommand
            {
                GuestFullName    = null,
                GuestPhoneNumber = null,
                BedroomsNumber   = 1,
                DateFrom         = FDateTimeService.Now.AddDays(10),
                DateTo           = FDateTimeService.Now.AddDays(20)
            };

            // Act
            var LValidator = new AddBookingCommandValidator(FDateTimeService);
            var LResult    = LValidator.Validate(LAddBookingCommand);

            // Assert
            LResult.Errors.Count.Should().Be(2);
            LResult.Errors[0].ErrorCode.Should().Be(nameof(ValidationCodes.REQUIRED));
            LResult.Errors[1].ErrorCode.Should().Be(nameof(ValidationCodes.REQUIRED));
        }
Example #4
0
        public void GivenDateFromAndDateToAreSame_WhenAddBooking_ShouldThrowError(DateTime ADateFrom, DateTime ADateTo, TestCaseDays ACase)
        {
            // Arrange
            var LAddBookingCommand = new AddBookingCommand
            {
                GuestFullName    = StringProvider.GetRandomString(),
                GuestPhoneNumber = StringProvider.GetRandomString(9),
                BedroomsNumber   = 1,
                DateFrom         = ADateFrom,
                DateTo           = ADateTo
            };

            // Act
            var LValidator = new AddBookingCommandValidator(FDateTimeService);
            var LResult    = LValidator.Validate(LAddBookingCommand);

            // Assert
            if (ACase is TestCaseDays.Present or TestCaseDays.Future)
            {
                LResult.Errors.Count.Should().Be(1);
                LResult.Errors[0].ErrorCode.Should().Be(nameof(ValidationCodes.START_DATE_AND_END_DATE_CANNOT_BE_SAME));
            }