diff --git a/src/main/java/com/metaweb/gridworks/importers/ImporterUtilities.java b/src/main/java/com/metaweb/gridworks/importers/ImporterUtilities.java index 1c62e2913..931f684aa 100644 --- a/src/main/java/com/metaweb/gridworks/importers/ImporterUtilities.java +++ b/src/main/java/com/metaweb/gridworks/importers/ImporterUtilities.java @@ -15,9 +15,7 @@ public class ImporterUtilities { static public Serializable parseCellValue(String text) { if (text.length() > 0) { if (text.length() > 1 && text.startsWith("\"") && text.endsWith("\"")) { - return text.substring(1, text.length() - 1); // FIXME is this a good assumption? - // what about the following string: '"To be" is almost always followed by "or not to be"'. - // This would be emitted as: 'To be" is almost always followed by "or not to be' + return text.substring(1, text.length() - 1); } try { diff --git a/tests/java/src/com/metaweb/gridworks/tests/importers/TsvCsvImporterTests.java b/tests/java/src/com/metaweb/gridworks/tests/importers/TsvCsvImporterTests.java index 6c481cea5..7ad9b5221 100644 --- a/tests/java/src/com/metaweb/gridworks/tests/importers/TsvCsvImporterTests.java +++ b/tests/java/src/com/metaweb/gridworks/tests/importers/TsvCsvImporterTests.java @@ -32,16 +32,19 @@ public class TsvCsvImporterTests { //System Under Test TsvCsvImporter SUT = null; + RowParser parser = null; //mock dependencies Project project = null; Properties properties = null; + @BeforeMethod public void SetUp(){ SUT = new TsvCsvImporter(); project = new Project(); //FIXME - should we try and use mock(Project.class); - seems unnecessary complexity properties = mock(Properties.class); + parser = new CSVRowParser(); } @AfterMethod @@ -54,12 +57,9 @@ public class TsvCsvImporterTests { @Test public void readJustColumns(){ String input = "col1,col2,col3"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 0, 0, 1, false); SUT.read(parser, lnReader, project, ",", -1, 0, 0, 1, false, true); } catch (IOException e) { Assert.fail(); @@ -74,11 +74,8 @@ public class TsvCsvImporterTests { public void readSimpleData_CSV_1Header_1Row(){ String input = "col1,col2,col3\n" + "data1,data2,data3"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 0, 0, 1, false); SUT.read(parser, lnReader, project, ",", -1, 0, 0, 1, false, true); } catch (IOException e) { Assert.fail(); @@ -94,14 +91,12 @@ public class TsvCsvImporterTests { Assert.assertEquals(project.rows.get(0).cells.get(2).value, "data3"); } - // dfhuynh @Test public void readSimpleData_TSV_1Header_1Row(){ String input = "col1\tcol2\tcol3\n" + "data1\tdata2\tdata3"; LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 0, 0, 1, false); SUT.read(null, lnReader, project, "\t", -1, 0, 0, 1, false, true); } catch (IOException e) { Assert.fail(); @@ -120,11 +115,8 @@ public class TsvCsvImporterTests { @Test public void readSimpleData_0Header_1Row(){ String input = "data1,data2,data3"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 0, 0, 0, false); SUT.read(parser, lnReader, project, ",", -1, 0, 0, 0, false, true); } catch (IOException e) { Assert.fail(); @@ -143,11 +135,8 @@ public class TsvCsvImporterTests { @Test public void readDoesNotTrimLeadingTrailingWhitespaceWhenNotGuessingValue(){ String input = " data1, data2, data3"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 0, 0, 0, false); SUT.read(parser, lnReader, project, ",", -1, 0, 0, 0, false, true); } catch (IOException e) { Assert.fail(); @@ -163,11 +152,8 @@ public class TsvCsvImporterTests { @Test public void readTrimsLeadingTrailingWhitespace(){ String input = " data1, data2, data3"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 0, 0, 0, true); SUT.read(parser, lnReader, project, ",", -1, 0, 0, 0, true, true); } catch (IOException e) { Assert.fail(); @@ -183,11 +169,8 @@ public class TsvCsvImporterTests { @Test public void readCanAddNull(){ String input = " data1, , data3"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 0, 0, 0, true); SUT.read(parser, lnReader, project, ",", -1, 0, 0, 0, true, true); } catch (IOException e) { Assert.fail(); @@ -205,11 +188,8 @@ public class TsvCsvImporterTests { String input = "col1,col2,col3\n" + "sub1,sub2,sub3\n" + "data1,data2,data3"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 0, 0, 2, false); SUT.read(parser, lnReader, project, ",", -1, 0, 0, 2, false, true); } catch (IOException e) { Assert.fail(); @@ -229,11 +209,8 @@ public class TsvCsvImporterTests { public void readSimpleData_RowLongerThanHeader(){ String input = "col1,col2,col3\n" + "data1,data2,data3,data4,data5,data6"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 0, 0, 1, false); SUT.read(parser, lnReader, project, ",", -1, 0, 0, 1, false, true); } catch (IOException e) { Assert.fail(); @@ -259,7 +236,6 @@ public class TsvCsvImporterTests { public void readQuotedData(){ String input = "col1,col2,col3\n" + "\"\"\"To Be\"\" is often followed by \"\"or not To Be\"\"\",data2"; - LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { SUT.read(null, lnReader, project, ",", -1, 0, 0, 1, false, true); @@ -281,11 +257,8 @@ public class TsvCsvImporterTests { String input = "ignore1\n" + "col1,col2,col3\n" + "data1,data2,data3"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 0, 1, 1, false); SUT.read(parser, lnReader, project, ",", -1, 0, 1, 1, false, true); } catch (IOException e) { Assert.fail(); @@ -306,11 +279,8 @@ public class TsvCsvImporterTests { String input = "col1,col2,col3\n" + "skip1\n" + "data1,data2,data3"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 1, 0, 1, false); SUT.read(parser, lnReader, project, ",", -1, 1, 0, 1, false, true); } catch (IOException e) { Assert.fail(); @@ -335,11 +305,8 @@ public class TsvCsvImporterTests { "sub1,sub2,sub3\n" + "skip1\n" + "data1,data2,data3"; - //CSVReader reader = new CSVReader(new StringReader(input)); - RowParser parser = new CSVRowParser(); LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { - //SUT.read(reader, project, -1, 1, 3, 2, false); SUT.read(parser, lnReader, project, ",", -1, 1, 3, 2, false, true); } catch (IOException e) { Assert.fail(); @@ -367,7 +334,6 @@ public class TsvCsvImporterTests { "data-row1-cell1,data-row1-cell2,data-row1-cell3\n" + "data-row2-cell1,data-row2-cell2,\n" + //missing last data point of this row on purpose "data-row3-cell1,data-row3-cell2,data-row1-cell3"; - LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { SUT.read(null, lnReader, project, ",", 2, 2, 3, 2, false, true); @@ -392,7 +358,6 @@ public class TsvCsvImporterTests { public void readWithMultiLinedQuotedData(){ String input = "col1,col2,col3\n" + "\"\"\"To\n Be\"\" is often followed by \"\"or not To\n Be\"\"\",data2"; - LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); try { SUT.read(null, lnReader, project, ",", -1, 0, 0, 1, false, true);