public void FormatExcelSheetBasedOnErrors_GivenSomeMissingHeaders_ShouldFillInWorksheetWithTheErrors()
        {
            using (var excelPackage = new ExcelPackage())
            {
                // Arrange
                FieldDefinition fieldDefinitionParentRid = new FieldDefinition
                {
                    Description         = "The Rid of the parent provider (from The Store)",
                    Id                  = "1100002",
                    IdentifierFieldType = null,
                    MatchExpression     = null,
                    Maximum             = null,
                    Minimum             = null,
                    Name                = "Parent Rid",
                    Required            = false,
                    Type                = FieldType.String
                };

                FieldDefinition fieldDefinitionRid = new FieldDefinition
                {
                    Description         = "Rid is the unique reference from The Store",
                    Id                  = "1100001",
                    IdentifierFieldType = null,
                    MatchExpression     = null,
                    Maximum             = null,
                    Minimum             = null,
                    Name                = "Rid",
                    Required            = false,
                    Type                = FieldType.String
                };

                List <HeaderValidationResult> headerValidationResultsToReturn = new List <HeaderValidationResult>
                {
                    new HeaderValidationResult(fieldDefinitionParentRid),
                    new HeaderValidationResult(fieldDefinitionRid)
                };

                IDatasetUploadValidationResult mockUploadValidationResult = Substitute.For <IDatasetUploadValidationResult>();
                mockUploadValidationResult.HeaderValitionFailures.Returns(headerValidationResultsToReturn);
                mockUploadValidationResult.FieldValidationFailures.Returns(new List <FieldValidationResult>());

                // Act
                ExcelHeaderErrorFormatter formatterUnderTest = new ExcelHeaderErrorFormatter(excelPackage);
                formatterUnderTest.FormatExcelSheetBasedOnErrors(mockUploadValidationResult);

                // Assert
                ExcelWorksheet errorsWorkSheet = excelPackage.Workbook.Worksheets["Errors"];
                errorsWorkSheet.Should().NotBeNull();

                errorsWorkSheet.Cells[10, 1].Value.Should().BeEquivalentTo(fieldDefinitionParentRid.Name);
                errorsWorkSheet.Cells[11, 1].Value.Should().BeEquivalentTo(fieldDefinitionRid.Name);

                for (int rowIndex = 12; rowIndex < 22; rowIndex++)
                {
                    errorsWorkSheet.Cells[rowIndex, 1].Value.Should().BeNull();
                }
            }
        }
Example #2
0
        public void FormatExcelSheetBasedOnErrors(IDatasetUploadValidationResult validationResult)
        {
            ExcelWorksheet workbookWorksheet = _excelPackage.Workbook.Worksheets[1];

            foreach (FieldValidationResult fieldValidationResult in validationResult.FieldValidationFailures)
            {
                DatasetUploadCellReference cellReferenceOfValidatedField = fieldValidationResult.FieldValidated.CellReference;
                ExcelRange cell = workbookWorksheet.Cells[cellReferenceOfValidatedField.RowIndex, cellReferenceOfValidatedField.ColumnIndex];

                Color colorCodeForFailure = fieldValidationResult.ReasonOfFailure.GetColorCodeForFailure();
                cell.Style.Fill.PatternType = ExcelFillStyle.Solid;
                cell.Style.Fill.BackgroundColor.SetColor(colorCodeForFailure);
            }

            _excelPackage.Save();
        }
        public void FormatExcelSheetBasedOnErrors(IDatasetUploadValidationResult validationResult)
        {
            if (!validationResult.IsValid())
            {
                SheetTemplate templateReturned = ErrorSheetTemplateCreator.CreateHeaderErrorSheet(_excelPackage);
                List <HeaderValidationResult> headerValidationFailures    = validationResult.HeaderValitionFailures.ToList();
                DatasetUploadCellReference    errorInsertionsStartingCell = templateReturned.StartingCell;

                ExcelWorksheet headerErrorsWorksheet = _excelPackage.Workbook.Worksheets[templateReturned.ExcelWorksheet.Name];


                for (int index = 0, rowIndex = errorInsertionsStartingCell.RowIndex; index < headerValidationFailures.Count; rowIndex++, index++)
                {
                    ExcelRange cellToInsertErrorInto = headerErrorsWorksheet.Cells[rowIndex, 1];

                    cellToInsertErrorInto.Value = headerValidationFailures[index].FieldDefinitionValidated.Name;
                }
            }
        }
        public void FormatExcelSheetBasedOnErrors_GivenNoErrorInResult_ShouldNotCreateAdditionalWorksheet()
        {
            using (var excelPackage = new ExcelPackage())
            {
                // Arrange
                IDatasetUploadValidationResult mockUploadValidationResult = Substitute.For <IDatasetUploadValidationResult>();
                mockUploadValidationResult.HeaderValitionFailures.Returns(new List <HeaderValidationResult>());
                mockUploadValidationResult.FieldValidationFailures.Returns(new List <FieldValidationResult>());
                mockUploadValidationResult.IsValid().Returns(true);

                // Act
                ExcelHeaderErrorFormatter formatterUnderTest = new ExcelHeaderErrorFormatter(excelPackage);
                formatterUnderTest.FormatExcelSheetBasedOnErrors(mockUploadValidationResult);

                // Assert
                ExcelWorksheet errorsWorkSheet = excelPackage.Workbook.Worksheets["Errors"];
                errorsWorkSheet.Should().BeNull();
            }
        }