/**
* Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.strata.collect.io;
import static org.testng.Assert.assertEquals;
import java.util.Arrays;
import java.util.List;
import org.testng.annotations.Test;
/**
* Test {@link CsvOutput}.
*/
@Test
public class CsvOutputTest {
private static final String LINE_SEP = System.lineSeparator();
//-------------------------------------------------------------------------
public void test_writeLines_alwaysQuote() {
List<List<String>> rows = Arrays.asList(Arrays.asList("a", "x"), Arrays.asList("b", "y"));
StringBuilder buf = new StringBuilder();
new CsvOutput(buf, "\n").writeLines(rows, true);
assertEquals(buf.toString(), "\"a\",\"x\"\n\"b\",\"y\"\n");
}
public void test_writeLines_selectiveQuote_commaAndQuote() {
List<List<String>> rows = Arrays.asList(Arrays.asList("a", "1,000"), Arrays.asList("b\"c", "y"));
StringBuilder buf = new StringBuilder();
new CsvOutput(buf, "\n").writeLines(rows, false);
assertEquals(buf.toString(), "a,\"1,000\"\n\"b\"\"c\",y\n");
}
public void test_writeLines_selectiveQuote_trimmable() {
List<List<String>> rows = Arrays.asList(Arrays.asList("a", " x"), Arrays.asList("b ", "y"));
StringBuilder buf = new StringBuilder();
new CsvOutput(buf, "\n").writeLines(rows, false);
assertEquals(buf.toString(), "a,\" x\"\n\"b \",y\n");
}
public void test_writeLines_systemNewLine() {
List<List<String>> rows = Arrays.asList(Arrays.asList("a", "x"), Arrays.asList("b", "y"));
StringBuilder buf = new StringBuilder();
new CsvOutput(buf).writeLines(rows, false);
assertEquals(buf.toString(), "a,x" + LINE_SEP + "b,y" + LINE_SEP);
}
public void test_writeLine_selectiveQuote() {
StringBuilder buf = new StringBuilder();
new CsvOutput(buf, "\n").writeLine(Arrays.asList("a", "1,000"));
assertEquals(buf.toString(), "a,\"1,000\"\n");
}
}