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>(); }
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); }