Skip to content
This repository was archived by the owner on Jan 22, 2019. It is now read-only.

Commit 2a2074e

Browse files
committed
Merge branch '2.5'
2 parents 90fdd4c + 5ee19da commit 2a2074e

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package com.fasterxml.jackson.dataformat.csv.ser;
2+
3+
import java.io.*;
4+
import java.util.*;
5+
6+
import com.fasterxml.jackson.core.JsonGenerator;
7+
import com.fasterxml.jackson.databind.*;
8+
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
9+
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
10+
import com.fasterxml.jackson.dataformat.csv.ModuleTestBase;
11+
12+
public class MultipleWritesTest extends ModuleTestBase
13+
{
14+
private final CsvMapper MAPPER = mapperForCsv();
15+
16+
/**
17+
* To reproduce [dataformat-csv#71]: Although ideally one uses
18+
* `ObjectWriter.writeValues()` for sequences, we should not
19+
* write headers more than once regardless, as long as target
20+
* is CsvGenerator which tracks state.
21+
*/
22+
public void testMultipleListWrites() throws Exception
23+
{
24+
StringWriter sw = new StringWriter();
25+
26+
CsvSchema.Builder builder = CsvSchema.builder();
27+
builder.addColumn("col1");
28+
builder.addColumn("col2");
29+
30+
CsvSchema csvSchema = builder.build().withHeader();
31+
32+
JsonGenerator gen = MAPPER.getFactory().createGenerator(sw);
33+
34+
ObjectWriter csvWriter = MAPPER.writer(csvSchema);
35+
36+
List<String> line1 = new ArrayList<String>();
37+
line1.add("line1-val1");
38+
line1.add("line1-val2");
39+
40+
csvWriter.writeValue(gen, line1);
41+
42+
List<String> line2 = new ArrayList<String>();
43+
line2.add("line2-val1");
44+
line2.add("line2-val2");
45+
46+
csvWriter.writeValue(gen, line2);
47+
48+
String csv = sw.toString().trim();
49+
// may get different linefeed on different OSes?
50+
csv = csv.replaceAll("[\\r\\n]", "/");
51+
52+
assertEquals("col1,col2/line1-val1,line1-val2/line2-val1,line2-val2", csv);
53+
}
54+
}

0 commit comments

Comments
 (0)