Exemple #1
0
        public void Set_ThrowsException_WhenContextAlreadySet()
        {
            // Arrange
            var expectedContext = new ExaminationValidationContext(null);
            var sut             = new ExaminationValidationContextProvider();

            sut.Set(expectedContext);

            // Act
            Action act = () => sut.Set(expectedContext);

            // Assert
            act.Should().Throw <InvalidOperationException>();
        }
Exemple #2
0
        public void Current_ReturnsContext_WhenNotNull()
        {
            // Arrange
            var expectedContext = new ExaminationValidationContext(null);
            var sut             = new ExaminationValidationContextProvider();

            sut.Set(expectedContext);

            // Act
            var result = sut.Current;

            // Assert
            result.Should().Be(expectedContext);
        }
        /// <summary>
        /// returns if the nhs number provided is valid.
        /// </summary>
        /// <param name="value"></param>
        /// <param name="examinationValidationContext"></param>
        /// <param name="validationContext"></param>
        /// <returns cref="ValidationResult"></returns>
        /// <exception cref="NullReferenceException"></exception>
        protected override ValidationResult IsValid(object value, ExaminationValidationContext examinationValidationContext, ValidationContext validationContext)
        {
            var thing     = examinationValidationContext.Examination;
            var nhsNumber = value as string;

            if (string.IsNullOrEmpty(nhsNumber))
            {
                return(ValidationResult.Success);
            }

            var examinationPersistence = (IAsyncQueryHandler <DuplicateExaminationByNhsNumberRetrievalQuery, Examination>)validationContext.GetService(typeof(IAsyncQueryHandler <DuplicateExaminationByNhsNumberRetrievalQuery, Examination>));

            if (examinationPersistence == null)
            {
                throw new NullReferenceException("examination persistence is null");
            }

            var possibleExamination = examinationPersistence.Handle(new DuplicateExaminationByNhsNumberRetrievalQuery(nhsNumber)).Result;

            return(possibleExamination != null && examinationValidationContext.Examination.ExaminationId != possibleExamination.ExaminationId
                ? new ValidationResult(SystemValidationErrors.Duplicate.ToString())
                : ValidationResult.Success);
        }