Author: bleny Date: 2014-05-23 16:54:53 +0200 (Fri, 23 May 2014) New Revision: 2616 Url: http://forge.nuiton.org/projects/nuiton-csv/repository/revisions/2616 Log: refs #3144 add test to prove issue Added: trunk/src/test/java/org/nuiton/csv/Utf8WithBomTest.java trunk/src/test/resources/csv-file-encoded-in-UTF-8-with-BOM.csv Added: trunk/src/test/java/org/nuiton/csv/Utf8WithBomTest.java =================================================================== --- trunk/src/test/java/org/nuiton/csv/Utf8WithBomTest.java (rev 0) +++ trunk/src/test/java/org/nuiton/csv/Utf8WithBomTest.java 2014-05-23 14:54:53 UTC (rev 2616) @@ -0,0 +1,63 @@ +package org.nuiton.csv; + +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Assert; +import org.junit.Test; + +import java.io.InputStream; +import java.util.List; + +public class Utf8WithBomTest { + + private static final Log log = LogFactory.getLog(Utf8WithBomTest.class); + + protected ImportModel<ObjectUtils.Null> importModel = new ImportModel<ObjectUtils.Null>() { + + @Override + public char getSeparator() { + return ';'; + } + + @Override + public void pushCsvHeaderNames(List<String> headerNames) { + // do nothing + } + + @Override + public ObjectUtils.Null newEmptyInstance() { + throw new UnsupportedOperationException(); + } + + @Override + public Iterable<ImportableColumn<ObjectUtils.Null, Object>> getColumnsForImport() { + ModelBuilder<ObjectUtils.Null> builder = new ModelBuilder<ObjectUtils.Null>(); + + builder.newMandatoryColumn("N° 1", "whatever"); + builder.newMandatoryColumn("N° 2", "whatever"); + builder.newMandatoryColumn("Nom", "whatever"); + + return (Iterable) builder.getColumnsForImport(); + } + + }; + + @Test + public void testImport() { + + InputStream csv = getClass().getResourceAsStream("/csv-file-encoded-in-UTF-8-with-BOM.csv"); + + Import<ObjectUtils.Null> csvImport = Import.newImport(importModel, csv); + + try { + csvImport.prepareAndValidate(); + } catch (ImportRuntimeException e) { + if (log.isDebugEnabled()) { + log.debug("exception caught", e); + } + Assert.fail("no exception should have been raised"); + } + + } +} Added: trunk/src/test/resources/csv-file-encoded-in-UTF-8-with-BOM.csv =================================================================== --- trunk/src/test/resources/csv-file-encoded-in-UTF-8-with-BOM.csv (rev 0) +++ trunk/src/test/resources/csv-file-encoded-in-UTF-8-with-BOM.csv 2014-05-23 14:54:53 UTC (rev 2616) @@ -0,0 +1,3 @@ +N° 1;N° 2;Nom +1;2;Taiste +