public void CreateHeaderErrorSheet_WhenNotAlreadyExists_ShouldCreateWithExpectedFormatting() { using (ExcelPackage excelPackage = new ExcelPackage()) { // Arrange List <Tuple <string, Color> > expectedColors = new List <Tuple <string, Color> > { new Tuple <string, Color>("Data type mismatch", Color.FromArgb(255, 138, 80)), new Tuple <string, Color>("Max. or Min. value exceeded", Color.FromArgb(255, 217, 102)), new Tuple <string, Color>("Provider ID value missing", Color.FromArgb(255, 255, 114)), new Tuple <string, Color>("Duplicate entries in the provider ID column", Color.FromArgb(122, 124, 255)), new Tuple <string, Color>("Provider ID does not exist in the current funding stream provider", Color.FromArgb(255, 178, 255)) }; // Act SheetTemplate sheetTemplateCreated = ErrorSheetTemplateCreator.CreateHeaderErrorSheet(excelPackage); ExcelWorksheet templateWorkSheet = sheetTemplateCreated.ExcelWorksheet; DatasetUploadCellReference startingCellReference = sheetTemplateCreated.StartingCell; // Assert ExcelRange headerCell = templateWorkSheet.Cells[1, 1]; headerCell.Value.Should().Be("Cell level error key"); int firstColumn = 1; int errorColoringStartRow = 2; for (int row = errorColoringStartRow, index = 0; row < errorColoringStartRow + expectedColors.Count; row++, index++) { Tuple <string, Color> expectedColor = expectedColors[index]; ExcelRange cell = templateWorkSheet.Cells[row, firstColumn]; cell.Style.Fill.BackgroundColor.Rgb.Should().BeEquivalentTo(ToAsciRgbRepresentation(expectedColor.Item2)); } int fieldsMissingTextRow = expectedColors.Count + errorColoringStartRow + 2; ExcelRange fieldsMissingCell = templateWorkSheet.Cells[fieldsMissingTextRow, firstColumn]; fieldsMissingCell.Value.Should().Be( "Data schema fields missing from first sheet of Excel file to be uploaded"); startingCellReference.ColumnIndex.Should().Be(firstColumn); startingCellReference.RowIndex.Should().Be(fieldsMissingTextRow + 1); } }
public void CreateHeaderErrorSheet_WhenAlreadyExists_ShouldOverwriteSheet() { using (ExcelPackage excelPackage = new ExcelPackage()) { // Arrange string valueToCheckWhetherChanged = "ChangedValue"; SheetTemplate sheetTemplateCreated = ErrorSheetTemplateCreator.CreateHeaderErrorSheet(excelPackage); string worksheetName = sheetTemplateCreated.ExcelWorksheet.Name; ExcelWorksheet workSheetJustAdded = excelPackage.Workbook.Worksheets[worksheetName]; workSheetJustAdded.Cells[1, 1].Value = valueToCheckWhetherChanged; workSheetJustAdded.Cells[1, 1].Value.Should().Be(valueToCheckWhetherChanged); // Act ErrorSheetTemplateCreator.CreateHeaderErrorSheet(excelPackage); ExcelWorksheet sheetOverwritten = excelPackage.Workbook.Worksheets[worksheetName]; // Assert sheetOverwritten.Cells[1, 1].Value.Should().NotBe(valueToCheckWhetherChanged); } }