package org.springside.modules.utils.text;
import static org.assertj.core.api.Assertions.*;
import org.junit.Test;
public class CsvUtilTest {
@Test
public void toCsvString() {
assertThat(CsvUtil.toCsvString(1, 2)).isEqualTo("1,2");
assertThat(CsvUtil.toCsvString(1, 2, 3, 4)).isEqualTo("1,2,3,4");
// "2" still plain as 2
assertThat(CsvUtil.toCsvString(1, "2")).isEqualTo("1,2");
// "A BC" still plain as A BC
assertThat(CsvUtil.toCsvString(1, "A BC")).isEqualTo("1,A BC");
// "A,BC" has ',' as "A,BC"
assertThat(CsvUtil.toCsvString(1, "A,BC")).isEqualTo("1,\"A,BC\"");
// "A"BC" has '"' as "A""BC"
assertThat(CsvUtil.toCsvString(1, "A\"BC")).isEqualTo("1,\"A\"\"BC\"");
// "A,B"a"C" has 2 '""' as "A,""a""BC"
assertThat(CsvUtil.toCsvString(1, "A,\"a\"BC")).isEqualTo("1,\"A,\"\"a\"\"BC\"");
}
@Test
public void fromCsvString() {
assertThat(CsvUtil.fromCsvString("1,2")).hasSize(2).contains("1").contains("2");
assertThat(CsvUtil.fromCsvString("1,A BC")).hasSize(2).contains("1").contains("A BC");
assertThat(CsvUtil.fromCsvString("1,\"A,BC\"")).hasSize(2).contains("1").contains("A,BC");
assertThat(CsvUtil.fromCsvString("1,\"A,\"\"a\"\"BC\"")).hasSize(2).contains("1").contains("A,\"a\"BC");
// wrong format still work
assertThat(CsvUtil.fromCsvString("1,\"A,\"a\"\"BC\"")).hasSize(2).contains("1").contains("A,\"a\"BC");
assertThat(CsvUtil.fromCsvString("1,ABC\"")).hasSize(2).contains("1").contains("ABC\"");
}
}