From 21ccd1f09ecefb3a67defe481bdeb942ab39e8ab Mon Sep 17 00:00:00 2001 From: mlm483 Date: Fri, 26 May 2023 16:53:20 -0400 Subject: [PATCH 1/3] [BI-1803] - added tests and test files --- .../parsers/TraitFileParserUnitTest.java | 29 ++++++++++++++++++ .../files/ontology/ontology_null_rows.csv | 8 +++++ .../files/ontology/ontology_null_rows.xls | Bin 0 -> 31744 bytes .../files/ontology/ontology_null_rows.xlsx | Bin 0 -> 14827 bytes 4 files changed, 37 insertions(+) create mode 100644 src/test/resources/files/ontology/ontology_null_rows.csv create mode 100644 src/test/resources/files/ontology/ontology_null_rows.xls create mode 100644 src/test/resources/files/ontology/ontology_null_rows.xlsx diff --git a/src/test/java/org/breedinginsight/services/parsers/TraitFileParserUnitTest.java b/src/test/java/org/breedinginsight/services/parsers/TraitFileParserUnitTest.java index 17bd289b9..af195b790 100644 --- a/src/test/java/org/breedinginsight/services/parsers/TraitFileParserUnitTest.java +++ b/src/test/java/org/breedinginsight/services/parsers/TraitFileParserUnitTest.java @@ -334,4 +334,33 @@ void parseXlsxMultipleRowsSuccess() { assertEquals(3, traits.size(), "number of traits different than expected"); } + @Test + @SneakyThrows + void parseCsvNullRowsSuccess() { + File file = new File("src/test/resources/files/ontology/ontology_null_rows.csv"); + InputStream inputStream = new FileInputStream(file); + List traits = parser.parseCsv(inputStream); + + assertEquals(3, traits.size(), "number of traits different than expected"); + } + + @Test + @SneakyThrows + void parseXlsNullRowsSuccess() { + File file = new File("src/test/resources/files/ontology/ontology_null_rows.xls"); + InputStream inputStream = new FileInputStream(file); + List traits = parser.parseExcel(inputStream); + + assertEquals(3, traits.size(), "number of traits different than expected"); + } + + @Test + @SneakyThrows + void parseXlsxNullRowsSuccess() { + File file = new File("src/test/resources/files/ontology/ontology_null_rows.xlsx"); + InputStream inputStream = new FileInputStream(file); + List traits = parser.parseExcel(inputStream); + + assertEquals(3, traits.size(), "number of traits different than expected"); + } } diff --git a/src/test/resources/files/ontology/ontology_null_rows.csv b/src/test/resources/files/ontology/ontology_null_rows.csv new file mode 100644 index 000000000..dc550ebbe --- /dev/null +++ b/src/test/resources/files/ontology/ontology_null_rows.csv @@ -0,0 +1,8 @@ +Name,Full Name,Term Type,Description,Synonyms,Status,Tags,Trait Entity,Trait Attribute,Method Description,Method Class,Method Formula,Scale Class,Units,Scale Decimal Places,Scale Lower Limit,Scale Upper Limit,Scale Categories +Pheno 1,,,Pheno 1,,,,Pheno,1,,Measurement,,Numerical,cm,,,, +Pheno 2,,,Pheno 2,,,,Pheno,2,,Measurement,,Numerical,ug/ml,,,, +Pheno 3,,,Pheno 3,,,,Pheno,3,,Observation,,Date,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,, \ No newline at end of file diff --git a/src/test/resources/files/ontology/ontology_null_rows.xls b/src/test/resources/files/ontology/ontology_null_rows.xls new file mode 100644 index 0000000000000000000000000000000000000000..5c5adf1f69f91a7538743f5292ea0943eede02dc GIT binary patch literal 31744 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 O{&>BSb%^7SPyY{F@q!Tm literal 0 HcmV?d00001 From 3b721f93833507a0aab3716aa1e92875d3076222 Mon Sep 17 00:00:00 2001 From: mlm483 Date: Tue, 30 May 2023 14:27:58 -0400 Subject: [PATCH 2/3] [BI-1803] - removed BOM (Byte Order Mark) from test file --- src/test/resources/files/ontology/ontology_null_rows.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/resources/files/ontology/ontology_null_rows.csv b/src/test/resources/files/ontology/ontology_null_rows.csv index dc550ebbe..975f648ae 100644 --- a/src/test/resources/files/ontology/ontology_null_rows.csv +++ b/src/test/resources/files/ontology/ontology_null_rows.csv @@ -1,4 +1,4 @@ -Name,Full Name,Term Type,Description,Synonyms,Status,Tags,Trait Entity,Trait Attribute,Method Description,Method Class,Method Formula,Scale Class,Units,Scale Decimal Places,Scale Lower Limit,Scale Upper Limit,Scale Categories +Name,Full Name,Term Type,Description,Synonyms,Status,Tags,Trait Entity,Trait Attribute,Method Description,Method Class,Method Formula,Scale Class,Units,Scale Decimal Places,Scale Lower Limit,Scale Upper Limit,Scale Categories Pheno 1,,,Pheno 1,,,,Pheno,1,,Measurement,,Numerical,cm,,,, Pheno 2,,,Pheno 2,,,,Pheno,2,,Measurement,,Numerical,ug/ml,,,, Pheno 3,,,Pheno 3,,,,Pheno,3,,Observation,,Date,,,,, From d521bd8bda7e66e30ac0174879852b1f456fa4fa Mon Sep 17 00:00:00 2001 From: mlm483 Date: Tue, 30 May 2023 17:18:53 -0400 Subject: [PATCH 3/3] [BI-1803] - fix for Excel and CSV files with empty or null rows --- .../services/parsers/excel/ExcelParser.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/org/breedinginsight/services/parsers/excel/ExcelParser.java b/src/main/java/org/breedinginsight/services/parsers/excel/ExcelParser.java index bee8dae82..4536d4aa6 100644 --- a/src/main/java/org/breedinginsight/services/parsers/excel/ExcelParser.java +++ b/src/main/java/org/breedinginsight/services/parsers/excel/ExcelParser.java @@ -87,11 +87,24 @@ public static List parse(Sheet sheet, Set columns) throws P throw new ParsingException(ParsingExceptionType.EMPTY_ROW); } + // Flag for empty rows; for CSV, empty cells are empty string ("") rather than null. + boolean emptyRow = true; for(int colIndex=0; colIndex 0) + { + // There is at least one value in this row, set emptyRow flag false. + emptyRow = false; + } data.put(indexColNameMap.get(colIndex), cell); } + // If the row has no cells with values, skip it. + if (data.isEmpty() || emptyRow) + { + continue; + } + records.add(new ExcelRecord(data)); }