private static CreatePharmaceuticalPrescription CommandWithMedicationCount(int medicationCount)
        {
            var command = new CreatePharmaceuticalPrescription();

            for (var i = 0; i < medicationCount; i++)
            {
                command.Medications.Add(new PrescribedMedicationDescriptor());
            }
            return(command);
        }
        public void Validate_WhenMedicationsEmpty_ReturnsExpectedFailure(CreatePharmaceuticalPrescription command)
        {
            // Arrange
            var validator = CreateValidator();
            // Act
            var results = validator.Validate(command);

            // Assert
            results.Errors.Should().ContainSingle(f => f.ErrorCode == "MedicationsEmpty" && f.Severity == Severity.Error);
        }
        public void Validate_WhenLanguageCodeInvalid_ReturnsExpectedFailure(string languageCode)
        {
            // Arrange
            var validator = CreateValidator();
            var command   = new CreatePharmaceuticalPrescription {
                LanguageCode = languageCode
            };
            // Act
            var results = validator.Validate(command);

            // Assert
            results.Errors.Should().Contain(f => f.ErrorCode == "LanguageCodeInvalid" && f.Severity == Severity.Error);
        }
        public void Validate_WhenPrescriptionIdentifierValid_ReturnsNoSpecificFailure(int prescriptionIdentifier)
        {
            // Arrange
            var validator = CreateValidator();
            var command   = new CreatePharmaceuticalPrescription {
                PrescriptionIdentifier = prescriptionIdentifier
            };
            // Act
            var results = validator.Validate(command);

            // Assert
            results.Errors.Should().NotContain(f => f.ErrorCode == "PrescriptionIdentifierInvalid");
        }
        public void Validate_WhenPrescriptionIdentifierInvalid_ReturnsExpectedFailure(int prescriptionIdentifier)
        {
            // Arrange
            var validator = CreateValidator();
            var command   = new CreatePharmaceuticalPrescription {
                PrescriptionIdentifier = prescriptionIdentifier
            };
            // Act
            var results = validator.Validate(command);

            // Assert
            results.Errors.Should().ContainSingle(f => f.ErrorCode == "PrescriptionIdentifierInvalid" && f.Severity == Severity.Error);
        }
        public void Validate_WhenPrescriberLicenseNumberNotEmpty_ReturnsNoSpecificFailure(string prescriberLicenseNumber)
        {
            // Arrange
            var validator = CreateValidator();
            var command   = new CreatePharmaceuticalPrescription {
                PrescriberLicenseNumber = prescriberLicenseNumber
            };
            // Act
            var results = validator.Validate(command);

            // Assert
            results.Errors.Should().NotContain(f => f.ErrorCode == "PrescriberLicenseNumberEmpty");
        }
        public void Validate_WhenPrescriberLastNameEmpty_ReturnsExpectedFailure(string prescriberLastName)
        {
            // Arrange
            var validator = CreateValidator();
            var command   = new CreatePharmaceuticalPrescription {
                PrescriberLastName = prescriberLastName
            };
            // Act
            var results = validator.Validate(command);

            // Assert
            results.Errors.Should().ContainSingle(f => f.ErrorCode == "PrescriberLastNameEmpty" && f.Severity == Severity.Error);
        }
        public void Validate_WhenPatientSocialSecurityNumberValid_ReturnsNoSpecificFailure(string patientSocialSecurityNumber)
        {
            // Arrange
            var validator = CreateValidator();
            var command   = new CreatePharmaceuticalPrescription {
                PatientSocialSecurityNumber = patientSocialSecurityNumber
            };
            // Act
            var results = validator.Validate(command);

            // Assert
            results.Errors.Should().NotContain(f => f.ErrorCode == "PatientSocialSecurityNumberInvalid");
        }
        public void Validate_WhenPatientLastNameNotEmpty_ReturnsNoSpecificFailure(string patientLastName)
        {
            // Arrange
            var validator = CreateValidator();
            var command   = new CreatePharmaceuticalPrescription {
                PatientLastName = patientLastName
            };
            // Act
            var results = validator.Validate(command);

            // Assert
            results.Errors.Should().NotContain(f => f.ErrorCode == "PatientLastNameEmpty");
        }
        public void Validate_WhenLanguageCodeNotEmpty_ReturnsNoSpecificFailure()
        {
            // Arrange
            var validator = CreateValidator();
            var command   = new CreatePharmaceuticalPrescription {
                LanguageCode = "BE"
            };
            // Act
            var results = validator.Validate(command);

            // Assert
            results.Errors.Should().NotContain(f => f.ErrorCode == "LanguageCodeEmpty");
        }
        public void Validate_WhenFacilityLicenseNumberValid_ReturnsNoSpecificFailure(string facilityLicenseNumber)
        {
            // Arrange
            var validator = CreateValidator();
            var command   = new CreatePharmaceuticalPrescription {
                FacilityLicenseNumber = facilityLicenseNumber
            };
            // Act
            var results = validator.Validate(command);

            // Assert
            results.Errors.Should().NotContain(f => f.ErrorCode == "FacilityLicenseNumberInvalid");
        }