public async Task VerifyMessageReturnedWhenCodeDoesNotExist() { var codeTypeName = "UserType"; var codeName = "Internal"; kCura.Relativity.Client.DTOs.Choice resultingChoice = null; MockSqlQueryHelper .Setup(x => x.QueryChoiceArtifactId(It.IsAny <IDBContext>(), It.IsAny <String>(), It.IsAny <String>())) .Returns(Task.FromResult(new DataTable())); var codeNameValdation = new ValidationCodeName(MockSqlQueryHelper.Object, MockDbContext.Object, codeTypeName, x => resultingChoice = x); var expectedMessage = String.Format(Constant.Messages.Violations.ChoiceDoesNotExist, codeName, codeTypeName); var result = await codeNameValdation.ValidateAsync(codeName); Assert.AreEqual(expectedMessage, result); }
public async Task VerifyMessageNotReturnedWhenCodeExists() { var codeTypeName = "UserType"; var codeName = "Internal"; kCura.Relativity.Client.DTOs.Choice resultingChoice = null; var returnData = new DataTable(); returnData.Columns.Add("ArtifactID", typeof(Int32)); returnData.Rows.Add(1234); MockSqlQueryHelper .Setup(x => x.QueryChoiceArtifactId(It.IsAny <IDBContext>(), It.IsAny <String>(), It.IsAny <String>())) .Returns(Task.FromResult(returnData)); var codeNameValdation = new ValidationCodeName(MockSqlQueryHelper.Object, MockDbContext.Object, codeTypeName, x => resultingChoice = x); var result = await codeNameValdation.ValidateAsync(codeName); Assert.AreEqual(null, result); }
public async Task VerifyCallbackSetsValueOfChoice() { var codeTypeName = "UserType"; var codeName = "Internal"; kCura.Relativity.Client.DTOs.Choice resultingChoice = null; var choiceArtifactID = 1234; var returnData = new DataTable(); returnData.Columns.Add("ArtifactID", typeof(Int32)); returnData.Rows.Add(choiceArtifactID); MockSqlQueryHelper .Setup(x => x.QueryChoiceArtifactId(It.IsAny <IDBContext>(), It.IsAny <String>(), It.IsAny <String>())) .Returns(Task.FromResult(returnData)); var codeNameValdation = new ValidationCodeName(MockSqlQueryHelper.Object, MockDbContext.Object, codeTypeName, x => resultingChoice = x); await codeNameValdation.ValidateAsync(codeName); Assert.IsTrue(resultingChoice != null); Assert.IsTrue(resultingChoice.ArtifactID == choiceArtifactID); }
public override async Task <IEnumerable <String> > ValidateAsync(APIOptions apiOptions, IRsapiRepositoryGroup rsapiRepositoryGroup, IArtifactQueries artifactQueryHelper, IDBContext eddsDbContext, ISqlQueryHelper sqlQueryHelper) { var violations = new List <String>(); await AddPasswordValidationToPasswordFieldsAsync(); // Add Client Validator await AddValidationToColumnAsync(Client, new ValidationClient(apiOptions, rsapiRepositoryGroup.ClientRepository, x => _client = x)); // Add Validators for userType, documentSkip, defaultSelectedFileType, skipDefaultPreference & documentViewer await AddValidationToColumnAsync(Type, new ValidationCodeName(sqlQueryHelper, eddsDbContext, Constant.CodeTypeName.UserType, x => _userType = x)); await AddValidationToColumnAsync(DocumentSkip, new ValidationCodeName(sqlQueryHelper, eddsDbContext, Constant.CodeTypeName.DocumentSkip, x => _documentSkip = x)); await AddValidationToColumnAsync(DefaultSelectedFileType, new ValidationCodeName(sqlQueryHelper, eddsDbContext, Constant.CodeTypeName.DefaultSelectedFileType, x => _defaultSelectedFileType = x)); await AddValidationToColumnAsync(SkipDefaultPreference, new ValidationCodeName(sqlQueryHelper, eddsDbContext, Constant.CodeTypeName.SkipDefaultPreference, x => _skipDefaultPreference = x)); await AddValidationToColumnAsync(DocumentViewer, new ValidationCodeName(sqlQueryHelper, eddsDbContext, Constant.CodeTypeName.DocumentViewer, x => _documentViewer = x)); // Add Validator for Groups await AddValidationToColumnAsync(Groups, new ValidationGroup(apiOptions, rsapiRepositoryGroup.GroupRepository, x => _groupList = x)); // Call Validation on each ObjectColumn. Note performance does NOT increase by turning this into a parallel loop foreach (var column in (await GetColumnsAsync())) { var validationResults = await column.ValidateAsync(); if (validationResults != null && validationResults.Any()) { var columnViolations = String.Join(Constant.ViolationDelimiter, validationResults); var finalViolationMessage = String.Format(Constant.Messages.Violations.GeneralColumnViolation, column.ColumnName, columnViolations); violations.Add(finalViolationMessage); } } // Update this user's validation status Validated = !violations.Any(); return(violations); }