private TextFileInputField[] getInputFileFields() { return createInputFileFields( "Header1", "Header2" ); } }
@Test public void testUTF16BE_headerWithBOM() throws Exception { doTest( UTF16BE, UTF16BE, TEST_DATA_UTF16BE_BOM, ONE_CHAR_DELIM, true ); }
private void doTest( final String fileEncoding, final String stepEncoding, final String testData, final String delimiter, final boolean useHeader ) throws Exception { String testFilePath = createTestFile( fileEncoding, testData ).getAbsolutePath(); CsvInputMeta meta = createStepMeta( testFilePath, stepEncoding, delimiter, useHeader ); CsvInputData data = new CsvInputData(); CsvInput csvInput = new CsvInput( stepMockHelper.stepMeta, stepMockHelper.stepDataInterface, 0, stepMockHelper.transMeta, stepMockHelper.trans ); csvInput.init( meta, data ); csvInput.addRowListener( new RowAdapter() { @Override public void rowWrittenEvent( RowMetaInterface rowMeta, Object[] row ) throws KettleStepException { for ( int i = 0; i < rowMeta.size(); i++ ) { Assert.assertEquals( "Value", row[ i ] ); } } } ); boolean haveRowsToRead; do { haveRowsToRead = !csvInput.processRow( meta, data ); } while ( !haveRowsToRead ); csvInput.dispose( meta, data ); Assert.assertEquals( 2, csvInput.getLinesWritten() ); }
private CsvInputMeta createStepMeta( final String testFilePath, final String encoding, final String delimiter, final boolean useHeader ) { final CsvInputMeta meta = new CsvInputMeta(); meta.setFilename( testFilePath ); meta.setDelimiter( delimiter ); meta.setEncoding( encoding ); meta.setEnclosure( "\"" ); meta.setBufferSize( "50000" ); meta.setInputFields( getInputFileFields() ); meta.setHeaderPresent( useHeader ); return meta; }
@Test public void testUTF16BE() throws Exception { doTest( UTF16BE, UTF16BE, TEST_DATA, ONE_CHAR_DELIM, true ); }
@Test public void testUTF16BE_multiDelim() throws Exception { doTest( UTF16BE, UTF16BE, TEST_DATA1, MULTI_CHAR_DELIM, true ); }
@Test public void testUTF8_headerWithBOM() throws Exception { doTest( UTF8, UTF8, TEST_DATA_UTF8_BOM, ONE_CHAR_DELIM, true ); }
@Test public void testUTF8_withoutHeaderWithBOM() throws Exception { doTest( UTF8, UTF8, TEST_DATA_NOHEADER_UTF8_BOM, ONE_CHAR_DELIM, false ); }
@Test public void testUTF16BE_multiDelim_DataWithEnclosures() throws Exception { doTest( UTF16BE, UTF16BE, TEST_DATA3, MULTI_CHAR_DELIM, true ); }
@Test public void testUTF8() throws Exception { doTest( UTF8, UTF8, TEST_DATA, ONE_CHAR_DELIM, true ); }
@Test public void testUTF16LE_headerWithBOM() throws Exception { doTest( UTF16LE, UTF16LE, TEST_DATA_UTF16LE_BOM, ONE_CHAR_DELIM, true ); }
@Test public void testUTF16BEDataWithEnclosures() throws Exception { doTest( UTF16BE, UTF16BE, TEST_DATA2, ONE_CHAR_DELIM, true ); }
@Test public void testUTF8_multiDelim_DataWithEnclosures() throws Exception { doTest( UTF8, UTF8, TEST_DATA3, MULTI_CHAR_DELIM, true ); }
@Test public void testUTF16LE() throws Exception { doTest( UTF16LE, UTF16LE, TEST_DATA, ONE_CHAR_DELIM, true ); }
@Test public void testUTF16LEBOM() throws Exception { doTest( UTF16LEBOM, UTF16LE, TEST_DATA, ONE_CHAR_DELIM, true ); }
@Test public void testUTF8_multiDelim() throws Exception { doTest( UTF8, UTF8, TEST_DATA1, MULTI_CHAR_DELIM, true ); }
@Test public void testUTF16LEDataWithEnclosures() throws Exception { doTest( UTF16LE, UTF16LE, TEST_DATA2, ONE_CHAR_DELIM, true ); }
@Test public void testUTF16LEBOMDataWithEnclosures() throws Exception { doTest( UTF16LEBOM, UTF16LE, TEST_DATA2, ONE_CHAR_DELIM, true ); }
@Test public void testUTF16LE_multiDelim_DataWithEnclosures() throws Exception { doTest( UTF16LE, UTF16LE, TEST_DATA3, MULTI_CHAR_DELIM, true ); }