Пример #1
0
        public async Task ViolationsForMultipleFieldsAreReturnedCorrectly()
        {
            var user    = new UserAdminObject();
            var columns = await GetUserDictionary();

            await user.MapObjectColumnsAsync(columns);

            //Get the required Fields
            var requiredFields = (await user.GetColumnsAsync()).Where(x => x.Validations.Count(y => y.GetType() == typeof(ValidationNotNull)) > 0);

            //Blank out their Data property
            foreach (var field in requiredFields)
            {
                field.Data = String.Empty;
            }

            // Validate the user
            var validationResults = await user.ValidateAsync(new APIOptions(), MockRSAPIRepositoryGroup.Object, MockArtifactQueries.Object, MockDbContext.Object, MockSqlQueryHelper.Object);

            // Make sure each blanked out required column exists in the returned validation violations
            foreach (var field in requiredFields)
            {
                Assert.IsTrue(validationResults.FirstOrDefault(x => x.Contains(field.ColumnName)) != null);
            }
        }
        public async Task ViolationReportedWhenFileHasUnsupportedColumns()
        {
            // Arrange
            var unsupportedColumnName = "ExtraUnsupportedColumn";

            _importHelper = new ImportTestHelper(duringOffHours: true);
            _importHelper.Initialize();
            var user        = new UserAdminObject();
            var userColumns = (await user.GetColumnsAsync()).Select(x => x.ColumnName).ToList();

            userColumns.Add(unsupportedColumnName);
            var fileContents = String.Join(Constant.CommaSeparator, userColumns);

            var managerJob = GetManagerImportJob();

            await CreateFile(fileContents, managerJob.LocalTempFilePath);

            // Act
            await managerJob.ExecuteAsync();

            managerJob.Dispose();

            // Assert
            var expectedMsg = String.Format(Constant.ErrorMessages.ExtraColumnsError, _importHelper.ImportObjectType, unsupportedColumnName);

            Assert.IsTrue(_importHelper.RecordedImportJobErrors.Contains(expectedMsg));
        }
        //Generates a dictionary populated with the user object's columns as keys and the same values as dummy data
        private async Task <Dictionary <String, String> > GetDummyUserMetaData()
        {
            var user           = new UserAdminObject();
            var userColumns    = new Stack <String>((await user.GetColumnsAsync()).Select(x => x.ColumnName).ToList());
            var userDictionary = new Dictionary <String, String>();

            foreach (var column in userColumns)
            {
                userDictionary.Add(column, column);
            }
            return(userDictionary);
        }
Пример #4
0
        public async Task PasswordValidationAutomaticallyAddedAfterValidateAsyncCalled()
        {
            var user    = new UserAdminObject();
            var columns = await GetUserDictionary();

            await user.MapObjectColumnsAsync(columns);

            var passwordColumns = (await user.GetColumnsAsync()).Where(x => x.ObjectFieldType == Constant.Enums.ObjectFieldType.PasswordLoginMethod);

            Assert.IsFalse(await ValidationExistsInSelectedColumns(passwordColumns, typeof(ValidationPasswordLoginMethod)));
            await user.ValidateAsync(new APIOptions(), MockRSAPIRepositoryGroup.Object, MockArtifactQueries.Object, MockDbContext.Object, MockSqlQueryHelper.Object);

            Assert.IsTrue(await ValidationExistsInSelectedColumns(passwordColumns, typeof(ValidationPasswordLoginMethod)));
        }
        public async Task ViolationReportedWhenColumnMissing()
        {
            // Arrange
            _importHelper = new ImportTestHelper(duringOffHours: true);
            _importHelper.Initialize();
            var user          = new UserAdminObject();
            var userColumns   = new Stack <String>((await user.GetColumnsAsync()).Select(x => x.ColumnName).ToList());
            var missingColumn = userColumns.Pop();
            var fileContents  = String.Join(Constant.CommaSeparator, userColumns);

            var managerJob = GetManagerImportJob();

            await CreateFile(fileContents, managerJob.LocalTempFilePath);

            // Act
            await managerJob.ExecuteAsync();

            managerJob.Dispose();

            // Assert
            var expectedMsg = String.Format(Constant.ErrorMessages.MissingColumnsError, missingColumn);

            Assert.IsTrue(_importHelper.RecordedImportJobErrors.Contains(expectedMsg));
        }