public void return_a_boolean_if_postcode_is_valid(string postcode, bool expected)
        {
            var postcodeValidator = new PostcodeValidator();
            var result            = postcodeValidator.Validate(postcode);

            Assert.Equal(expected, result);
        }
示例#2
0
        public async Task PassesRegexButPostcodeIOThrowsError()
        {
            _regexPostcodeValidator.Setup(x => x.IsPostcodeValid(It.IsAny <string>())).Returns(true);
            _repository.Setup(x => x.IsPostcodeInDbAndActive(It.IsAny <string>())).Throws <Exception>();

            PostcodeValidator postcodeValidator = new PostcodeValidator(_regexPostcodeValidator.Object, _repository.Object, _iLogger.Object);

            bool result = await postcodeValidator.IsPostcodeValidAsync("NG15FS");

            Assert.IsTrue(result);
        }
示例#3
0
        public async Task IsPostcodeValid(bool passesRegexValidator, bool isInDbAndActive, bool expectedResult)
        {
            _regexPostcodeValidator.Setup(x => x.IsPostcodeValid(It.IsAny <string>())).Returns(passesRegexValidator);
            _repository.Setup(x => x.IsPostcodeInDbAndActive(It.IsAny <string>())).ReturnsAsync(isInDbAndActive);

            PostcodeValidator postcodeValidator = new PostcodeValidator(_regexPostcodeValidator.Object, _repository.Object, _iLogger.Object);

            bool result = await postcodeValidator.IsPostcodeValidAsync("NG15FS");

            Assert.AreEqual(expectedResult, result);
        }
        public async Task <IActionResult> OnPostAsync()
        {
            bool extraValid = true;

            if (ModelState.IsValid)
            {
                if (!PostcodeValidator.IsValid(CaseForm.Postcode, _config["googleApiKey"]))
                {
                    ModelState.AddModelError("CaseForm.Postcode", PostcodeValidator.FormatErrorMessage());
                    extraValid = false;
                }

                if (CaseForm.Email == null && CaseForm.Phone == null)
                {
                    ModelState.AddModelError("CaseForm.Email", "You must supply either an email address or primary phone number");
                    ModelState.AddModelError("CaseForm.Phone", "You must supply either an email address or primary phone number");
                    extraValid = false;
                }
                else if (CaseForm.Phone2 != null && CaseForm.Phone == null)
                {
                    ModelState.AddModelError("CaseForm.Phone", "You should supply a primary phone number before entering a secondary phone number");
                    extraValid = false;
                }

                if (CaseForm.TestDate > DateTime.Now.AddDays(1))
                {
                    ModelState.AddModelError("CaseForm.TestDate", "Test date is too far in the future");
                    extraValid = false;
                }

                if (CaseForm.SymptomDate > DateTime.Now.AddDays(1))
                {
                    ModelState.AddModelError("CaseForm.Phone", "Symptom date is too far in the future");
                    extraValid = false;
                }

                if (extraValid)
                {
                    var lastCase = _CaseService.AssignAndAdd(CaseForm.getCase());
                    return(RedirectToPage("Dashboard", new { lastCaseId = lastCase.CaseID }));
                }
            }
            return(Page());
        }
示例#5
0
 public PostcodeValidatorTests()
 {
     _validator = new PostcodeValidator();
 }