Author: echatellier Date: 2013-10-10 22:12:34 +0200 (Thu, 10 Oct 2013) New Revision: 2597 Url: http://nuiton.org/projects/nuiton-csv/repository/revisions/2597 Log: refs #2872: Add unit test Modified: trunk/src/test/java/org/nuiton/csv/ImportTest.java Modified: trunk/src/test/java/org/nuiton/csv/ImportTest.java =================================================================== --- trunk/src/test/java/org/nuiton/csv/ImportTest.java 2013-08-09 09:04:41 UTC (rev 2596) +++ trunk/src/test/java/org/nuiton/csv/ImportTest.java 2013-10-10 20:12:34 UTC (rev 2597) @@ -23,23 +23,28 @@ */ package org.nuiton.csv; -import org.apache.commons.lang3.time.DateUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.Assert; -import org.junit.Test; -import org.nuiton.util.DateUtil; -import org.nuiton.csv.Common.BeanProperty; - import java.io.IOException; import java.io.Reader; import java.io.StringReader; +import java.nio.charset.Charset; import java.text.ParseException; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; +import org.apache.commons.lang3.time.DateUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; +import org.nuiton.csv.Common.BeanProperty; +import org.nuiton.csv.ext.AbstractImportModel; +import org.nuiton.util.DateUtil; + +import com.google.common.collect.Lists; + /** * Created on 28/11/11 * @@ -49,7 +54,53 @@ */ public class ImportTest { + @Test + @Ignore + public void testSimpleExportReImportWithSpecialChars() throws Exception { + // create test data + List<RowBean> rows = Lists.newArrayList(); + rows.add(new RowBean(new Date(), "Un singe en été", 24, RowBeanEnum.TWO)); + rows.add(new RowBean(new Date(), "\"Amazing\" spiderman", 42, RowBeanEnum.ZERO)); + + // export as string + String csv = Export.exportToString(new ExportModel<RowBean>() { + @Override + public char getSeparator() { + return ';'; + } + @Override + public Iterable<ExportableColumn<RowBean, Object>> getColumnsForExport() { + ModelBuilder<RowBean> modelBuilder = new ModelBuilder<RowBean>(); + modelBuilder.newColumnForExport("DATE", "date", Common.DAY); + modelBuilder.newColumnForExport("TITLE", "title"); + modelBuilder.newColumnForExport("NUMBER", "number", Common.INTEGER); + modelBuilder.newColumnForExport("ROWBEANENUM", "rowBeanEnum", Common.newEnumByNameParserFormatter(RowBeanEnum.class)); + return (Iterable) modelBuilder.getColumnsForExport(); + } + }, rows, Charset.forName("UTF-8")); + System.out.println(csv); + + // import as string + rows = importContent(new AbstractImportModel<RowBean>(';') { + @Override + public void pushCsvHeaderNames(List<String> headerNames) { + super.pushCsvHeaderNames(headerNames); + newMandatoryColumn("DATE", "date", Common.DAY); + newMandatoryColumn("TITLE", "title"); + newMandatoryColumn("NUMBER", "number", Common.INTEGER); + newMandatoryColumn("ROWBEANENUM", "rowBeanEnum", Common.newEnumByNameParserFormatter(RowBeanEnum.class)); + } + @Override + public RowBean newEmptyInstance() { + return new RowBean(); + } + }, csv); + Assert.assertEquals(2, rows.size()); + Assert.assertEquals("Un singe en été", rows.get(0).getTitle()); + Assert.assertEquals("\"Amazing\" spiderman", rows.get(1).getTitle()); + } + @Test public void testSimpleImportWithNoData() throws Exception { String content = "DATE;NUMBER;TITLE;ROWBEANENUM";
participants (1)
-
echatellier@users.nuiton.org