public void Should_FailValidtion_When_OpenTimeIsAfterCloseTime()
        {
            // Arrange
            var businessHourDtoValidator = new BusinessHourDtoValidator();
            var businessHourDto          = new BusinessHourDto()
            {
                Day       = "Monday",
                OpenTime  = "23:12",
                CloseTime = "23:00"
            };

            // Act
            var result = businessHourDtoValidator.CheckIfOpenTimeIsBeforeCloseTime(businessHourDto.OpenTime, businessHourDto.CloseTime);

            // Assert
            result.Data.Should().Be(false);
        }
        public void Should_PassValidation_When_AllRulesPass()
        {
            // Arrange
            var businessHourDtoValidator = new BusinessHourDtoValidator();
            var businessHourDto          = new BusinessHourDto()
            {
                Day       = "Monday",
                OpenTime  = "8:00",
                CloseTime = "23:00"
            };

            // Act
            var result  = businessHourDtoValidator.Validate(businessHourDto, ruleSet: "CreateUser");
            var isValid = result.IsValid;

            // Assert
            isValid.Should().Be(true);
        }
        public void Should_FailValidation_When_DayIsEmpty()
        {
            // Arrange
            var businessHourDtoValidator = new BusinessHourDtoValidator();
            var businessHourDto          = new BusinessHourDto()
            {
                Day       = "",
                OpenTime  = "8:00",
                CloseTime = "23:00"
            };

            // Act
            var result  = businessHourDtoValidator.Validate(businessHourDto, ruleSet: "CreateUser");
            var isValid = result.IsValid;
            var errors  = result.Errors;

            // Assert
            isValid.Should().Be(false);
            errors.Count.Should().Be(1);
            errors[0].ToString().Should().Be("Business day is required.");
        }
        public void Should_FailValidation_When_CloseTimeIsNotIn24HourFormat()
        {
            // Arrange
            var businessHourDtoValidator = new BusinessHourDtoValidator();
            var businessHourDto          = new BusinessHourDto()
            {
                Day       = "Monday",
                OpenTime  = "8:00",
                CloseTime = "23"
            };

            // Act
            var result  = businessHourDtoValidator.Validate(businessHourDto, ruleSet: "CreateUser");
            var isValid = result.IsValid;
            var errors  = result.Errors;

            // Assert
            isValid.Should().Be(false);
            errors.Count.Should().Be(1);
            errors[0].ToString().Should().Be("Time must be from 0:00 to 23:59.");
        }
        public void Should_FailValidation_When_CloseTimeIsNull()
        {
            // Arrange
            var businessHourDtoValidator = new BusinessHourDtoValidator();
            var businessHourDto          = new BusinessHourDto()
            {
                Day       = "Monday",
                OpenTime  = "8:00",
                CloseTime = null
            };

            // Act
            var result  = businessHourDtoValidator.Validate(businessHourDto, ruleSet: "CreateUser");
            var isValid = result.IsValid;
            var errors  = result.Errors;

            // Assert
            isValid.Should().Be(false);
            errors.Count.Should().Be(2);
            errors[0].ToString().Should().Be("Close time is required.");
            errors[1].ToString().Should().Be("Close time is required.");
        }