public void ValidBookingPassesValidation()
        {
            // Arrange
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(ValidRequest(), _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeTrue();
            bookingValidation.ErrorMessage.Should().BeEmpty();
        }
        public void ShouldFailIfPropertyDoesNotExist()
        {
            // Arrange
            var bookingRequest = ValidateBooking();

            bookingRequest.PropertyId = 17;
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("Sorry - we couldn't find a matching property.");
        }
        public void ShouldFailIfEmailAddressIsMissing()
        {
            var bookingRequest = new BookingRequest
            {
                EmailAddress = ""
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("You must provide a valid email address");
        }
        public void ShouldFailIfPhoneNumberIsMissing()
        {
            var bookingRequest = new BookingRequest
            {
                PhoneNumber = ""
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("You must provide a phonenumber");
        }
        public void ShouldFailIfNameIsMissing()
        {
            // Arrange
            var bookingRequest = ValidRequest();

            bookingRequest.Name = null;
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("You must provide a name");
        }
예제 #6
0
        public void ShouldFailIfNameIsMissing()
        {
            // Arrange
            var bookingRequest = new BookingRequest
            {
                AgentId      = 1,
                PropertyId   = 3,
                Name         = "",
                EmailAddress = "*****@*****.**",
                StartsAt     = DateTime.Now.AddHours(2),
                EndsAt       = DateTime.Now.AddHours(3),
                PhoneNumber  = "0300 547 873"
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("You must provide a name");
        }
예제 #7
0
        public void ValidBookingPassesValidation()
        {
            // Arrange
            var bookingRequest = new BookingRequest
            {
                AgentId      = 1,
                PropertyId   = 3,
                Name         = "Rebecca",
                EmailAddress = "*****@*****.**",
                StartsAt     = DateTime.Now.AddHours(2),
                EndsAt       = DateTime.Now.AddHours(3),
                PhoneNumber  = "0300 547 873"
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeTrue();
            bookingValidation.ErrorMessage.Should().BeEmpty();
        }
예제 #8
0
        public void ShouldFailIfPropertyIdIsInvalid()
        {
            // Arrange
            var bookingRequest = new BookingRequest
            {
                AgentId      = 1,
                PropertyId   = 0,
                Name         = "Rebecca",
                EmailAddress = "*****@*****.**",
                StartsAt     = DateTime.Now.AddHours(2),
                EndsAt       = DateTime.Now.AddHours(3),
                PhoneNumber  = "0300 547 873"
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("This is not a valid Property Id");
        }
        public void ShouldFailIfPhoneNumberMissing()
        {
            // Arrange
            var bookingRequest = new BookingRequest
            {
                AgentId      = 1,
                PropertyId   = 3,
                Name         = "Jane Doe",
                EmailAddress = "*****@*****.**",
                StartsAt     = DateTime.Now.AddHours(2),
                EndsAt       = DateTime.Now.AddHours(3),
                PhoneNumber  = ""
            };
            var bookingValidator = new BookingValidator();

            // Act
            var bookingValidation = bookingValidator.ValidateBooking(bookingRequest, _agents, _properties);

            // Assert
            bookingValidation.IsValid.Should().BeFalse();
            bookingValidation.ErrorMessage.Should().Be("You must provide a phone number.");
        }