@Test public void writeRow() throws IOException { StringWriter writer = new StringWriter(); RowInstructions instructions = new RowInstructionsImpl().setUseHeader(false); RowWriter rowWriter = new RowWriterImpl(writer, instructions); rowWriter.writeRow(new String[] {"alpha", "beta", "gamma"}); writer.close(); assertEquals("\"alpha\";\"beta\";\"gamma\"\r", writer.getBuffer().toString()); }
@Test public void writeRowWithEscapeCharacters() throws IOException { StringWriter writer = new StringWriter(); RowInstructions instructions = new RowInstructionsImpl().setUseHeader(false).setEscape('\\'); RowWriter rowWriter = new RowWriterImpl(writer, instructions); rowWriter.writeRow(new String[] {"\"tekst met \"quotes\"\""}); writer.close(); assertEquals("\"\\\"tekst met \\\"quotes\\\"\\\"\"\r", writer.getBuffer().toString()); }
@Test public void writeRowAndHeader() throws IOException { StringWriter writer = new StringWriter(); RowWriter rowWriter = new RowWriterImpl(writer); rowWriter.writeHeader(new String[] {"desc1", "desc2", "desc3"}); rowWriter.writeRow(new String[] {"alpha", "beta", "gamma"}); writer.close(); assertEquals( "\"desc1\";\"desc2\";\"desc3\"\r" + "\"alpha\";\"beta\";\"gamma\"\r", writer.getBuffer().toString()); }
@Test public void writeLine_singleLine() throws Exception { String aLine = "LSM7|9606" + NEW_LINE; final ColumnBasedDocumentDefinition documentDefinition = buildGeneListDefinition(); RowReader reader = new DefaultRowReader(documentDefinition); final List<Row> rows = reader.read(new ByteArrayInputStream(aLine.getBytes())); Assert.assertNotNull(rows); Assert.assertEquals(1, rows.size()); Row row = rows.get(0); RowWriter writer = new DefaultRowWriter(documentDefinition); final String outputLine = writer.writeLine(row); Assert.assertEquals(aLine, outputLine); }
@Test public void writeMultipleRows() throws IOException { StringWriter writer = new StringWriter(); RowWriter rowWriter = new RowWriterImpl(writer); rowWriter.writeHeader(new String[] {"desc1", "desc2", "desc3"}); rowWriter.writeRows( new String[][] { {"alpha", "beta", "gamma"}, {"delta", "epsilon", "phi"}, {"b1", "b2", "b3"} }); writer.close(); assertEquals( "\"desc1\";\"desc2\";\"desc3\"\r" + "\"alpha\";\"beta\";\"gamma\"\r" + "\"delta\";\"epsilon\";\"phi\"\r" + "\"b1\";\"b2\";\"b3\"\r", writer.getBuffer().toString()); }
@Test public void write_multipleLine() throws Exception { String aLine = "LSM7|9606" + NEW_LINE + "LSM2|9606" + NEW_LINE + "BRCA2|10032"; final ColumnBasedDocumentDefinition documentDefinition = buildGeneListDefinition(); RowReader reader = new DefaultRowReader(documentDefinition); final List<Row> rows = reader.read(new ByteArrayInputStream(aLine.getBytes())); Assert.assertNotNull(rows); Assert.assertEquals(3, rows.size()); RowWriter writer = new DefaultRowWriter(documentDefinition); final StringWriter sw = new StringWriter(); writer.write(sw, rows); final String[] lines = StringUtils.split(sw.getBuffer().toString(), NEW_LINE); Assert.assertNotNull(lines); Assert.assertEquals(3, lines.length); Assert.assertEquals("LSM7|9606", lines[0]); Assert.assertEquals("LSM2|9606", lines[1]); Assert.assertEquals("BRCA2|10032", lines[2]); }
@Test public void readAndWrite() throws IOException { // First read... Reader reader = new StringReader( "alpha;beta;gamma\n" + "\"row 1, cell 1\";\"row 1, cell 2\";\"row 1, cell 3\"\n" + "\"row 2, cell 1\";\"row 2, cell 2\";\"row 2, cell 3\"\n"); RowReader lineReader = new RowReaderImpl(reader); List<Row> rows = lineReader.readRows(); // ... then write StringWriter writer = new StringWriter(); RowWriter rowWriter = new RowWriterImpl(writer); rowWriter.writeHeader(rows.get(0).getHeader()); rowWriter.writeRows(rows); writer.close(); assertEquals( "\"alpha\";\"beta\";\"gamma\"\r" + "\"row 1, cell 1\";\"row 1, cell 2\";\"row 1, cell 3\"\r" + "\"row 2, cell 1\";\"row 2, cell 2\";\"row 2, cell 3\"\r", writer.getBuffer().toString()); }
@Test(expected = CsvException.class) public void noHeaderWritten() { RowWriter rowWriter = new RowWriterImpl(new StringWriter()); rowWriter.writeRow(new String[] {"alpha", "beta", "gamma"}); }