Example #1
0
        public async Task IfDateTooEarly_ValidateTestResultForEditDate_ReturnsEarliestDateErrorMessage(bool isEdit)
        {
            // Arrange
            const int notificationId      = Utilities.NOTIFICATION_WITH_MANUAL_TESTS;
            var       notificationSubPath = isEdit ? NotificationSubPaths.EditManualTestResult(10) : NotificationSubPaths.AddManualTestResult;
            var       url         = GetPathForId($"{notificationSubPath}", notificationId, null);
            var       initialPage = await Client.GetAsync(url);

            var initialDocument = await GetDocumentAsync(initialPage);

            var request = new DateValidationModel
            {
                Key   = "TestDate",
                Day   = "1",
                Month = "1",
                Year  = "1899"
            };
            const string handlerPath = "ValidateTestResultForEditDate";
            var          endpointUrl = $"{url}/{handlerPath}";

            // Act
            var response = await Client.SendVerificationPostAsync(
                initialPage,
                initialDocument,
                endpointUrl,
                request);

            // Assert
            var result = await response.Content.ReadAsStringAsync();

            Assert.Equal(ValidationMessages.DateValidityRangeStart("Test date", "01/01/2010"), result);
        }
Example #2
0
        public async Task AcceptTransferAlert_ReturnsPageWithModelErrors_IfDateInvalid()
        {
            // Arrange
            const int id              = Utilities.NOTIFICATION_WITH_TRANSFER_REQUEST_TO_ACCEPT;
            var       url             = GetCurrentPathForId(id);
            var       initialDocument = await GetDocumentForUrlAsync(url);

            var formData = new Dictionary <string, string>
            {
                ["TransferRequest.AcceptTransfer"]      = "true",
                ["FormattedTransferDate.Day"]           = "1",
                ["FormattedTransferDate.Month"]         = "11",
                ["FormattedTransferDate.Year"]          = "101",
                ["TransferRequest.TargetCaseManagerId"] = Utilities.CASEMANAGER_ABINGDON_ID.ToString(),
                ["TransferRequest.TargetHospitalId"]    = Utilities.HOSPITAL_ABINGDON_COMMUNITY_HOSPITAL_ID
            };

            // Act
            var result = await Client.SendPostFormWithData(initialDocument, formData, url);

            // Assert
            var resultDocument = await GetDocumentAsync(result);

            resultDocument.AssertErrorMessage("transfer-date", ValidationMessages.DateValidityRangeStart("Transfer date", ValidDates.EarliestAllowedDate));
        }
Example #3
0
        public async Task IfDateTooEarly_ValidateTestResultForEditDate_ReturnsEarliestDateErrorMessage(bool isEdit)
        {
            // Arrange
            var formData = new Dictionary <string, string>
            {
                ["key"]   = "TestDate",
                ["day"]   = "1",
                ["month"] = "1",
                ["year"]  = "1899"
            };
            const string handlerPath         = "ValidateTestResultForEditDate";
            var          notificationSubPath = isEdit ? NotificationSubPath : NotificationSubPaths.AddManualTestResult;
            var          endpointPath        = $"{notificationSubPath}/{handlerPath}";
            var          endpointUrl         = GetPathForId($"{endpointPath}", Utilities.NOTIFIED_ID, formData);

            // Act
            var response = await Client.GetAsync(endpointUrl);

            // Assert
            var result = await response.Content.ReadAsStringAsync();

            Assert.Equal(ValidationMessages.DateValidityRangeStart("Test date", "01/01/2010"), result);
        }
        public async Task ImportValidatorValidatesBaseModels()
        {
            // Arrange
            var notification = CreateBasicNotification();

            notification.MDRDetails = new MDRDetails
            {
                RelationshipToCase = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
            };
            notification.PatientDetails = new PatientDetails {
                FamilyName = "<>Davis<>"
            };
            notification.ClinicalDetails = new ClinicalDetails {
                DiagnosisDate = new DateTime(2000, 1, 1)
            };
            notification.TravelDetails = new TravelDetails {
                HasTravel = Status.Yes, TotalNumberOfCountries = 51
            };
            notification.ImmunosuppressionDetails = new ImmunosuppressionDetails
            {
                HasOther         = true,
                OtherDescription = "<>££<>"
            };
            notification.HospitalDetails = new HospitalDetails {
                Consultant = "<>£Fred£<>"
            };
            notification.VisitorDetails = new VisitorDetails {
                HasVisitor = Status.Yes, StayLengthInMonths1 = 3
            };
            notification.ContactTracing = new ContactTracing {
                AdultsIdentified = -1
            };
            notification.PreviousTbHistory = new PreviousTbHistory {
                PreviousTbDiagnosisYear = 1899
            };
            notification.MBovisDetails.MBovisExposureToKnownCases = new List <MBovisExposureToKnownCase>
            {
                new MBovisExposureToKnownCase()
            };
            notification.MBovisDetails.ExposureToKnownCasesStatus = Status.No;
            notification.DrugResistanceProfile = new DrugResistanceProfile {
                Species = "M. bovis"
            };

            // Act
            var validationResults = await _importValidator.CleanAndValidateNotification(null, RunId, notification);

            // Assert
            var errorMessages = validationResults.Select(r => r.ErrorMessage).ToList();

            Assert.Contains("MDR details: The field Relationship of the current case to the contact must be a string or array type with a maximum length of '90'.",
                            errorMessages);
            Assert.Contains("Personal details: " + String.Format(ValidationMessages.StandardStringFormat, "Family name"),
                            errorMessages);
            Assert.Contains("Clinical details: " + ValidationMessages.DateValidityRangeStart("Diagnosis date", "01/01/2010"),
                            errorMessages);
            Assert.Contains("Travel details: The field total number of countries must be between 1 and 50.",
                            errorMessages);
            Assert.Contains("Immunosuppression: " + String.Format(ValidationMessages.InvalidCharacter, "Immunosuppression type description"),
                            errorMessages);
            Assert.Contains("Hospital details: " + String.Format(ValidationMessages.InvalidCharacter, "Consultant"),
                            errorMessages);
            Assert.Contains("Visitor details: " + ValidationMessages.TravelOrVisitDurationHasCountry,
                            errorMessages);
            Assert.Contains("Previous history: " + ValidationMessages.ValidYear,
                            errorMessages);
            Assert.Contains("M. bovis - exposure to another case: " + String.Format(ValidationMessages.RequiredSelect, "Exposure setting"),
                            errorMessages);
        }