Search in sources :

Example 1 with TestFailedException

use of org.pentaho.di.TestFailedException in project pentaho-kettle by pentaho.

the class TextFileOutputIT method testTextFileOutput1.

/**
 * Tests output rows
 */
@Test
public void testTextFileOutput1() throws Exception {
    KettleEnvironment.init();
    // Create a new transformation...
    // 
    TransMeta transMeta = new TransMeta();
    transMeta.setName("testTextFileOutput1");
    PluginRegistry registry = PluginRegistry.getInstance();
    // create an injector step
    String injectorStepName = "injector step";
    StepMeta injectorStep = TestUtilities.createInjectorStep(injectorStepName, registry);
    transMeta.addStep(injectorStep);
    // create a row generator step
    StepMeta rowGeneratorStep = createRowGeneratorStep("Create rows for testTextFileOutput1", registry);
    transMeta.addStep(rowGeneratorStep);
    // create a TransHopMeta for injector and add it to the transMeta
    TransHopMeta hop_injectory_rowGenerator = new TransHopMeta(injectorStep, rowGeneratorStep);
    transMeta.addTransHop(hop_injectory_rowGenerator);
    // create the text file output step
    // but first lets get a filename
    String textFileName = TestUtilities.createEmptyTempFile("testTextFileOutput1");
    StepMeta textFileOutputStep = createTextFileOutputStep("text file output step", textFileName, "None", registry);
    transMeta.addStep(textFileOutputStep);
    // create a TransHopMeta for textFileOutputStep and add it to the transMeta
    TransHopMeta hop_RowGenerator_outputTextFile = new TransHopMeta(rowGeneratorStep, textFileOutputStep);
    transMeta.addTransHop(hop_RowGenerator_outputTextFile);
    // Create a dummy step and add it to the tranMeta
    String dummyStepName = "dummy step";
    StepMeta dummyStep = createDummyStep(dummyStepName, registry);
    transMeta.addStep(dummyStep);
    // create a TransHopMeta for the
    TransHopMeta hop_outputTextFile_dummyStep = new TransHopMeta(textFileOutputStep, dummyStep);
    transMeta.addTransHop(hop_outputTextFile_dummyStep);
    // Now execute the transformation...
    Trans trans = new Trans(transMeta);
    trans.prepareExecution(null);
    // Create a row collector and add it to the dummy step interface
    StepInterface dummyStepInterface = trans.getStepInterface(dummyStepName, 0);
    RowStepCollector dummyRowCollector = new RowStepCollector();
    dummyStepInterface.addRowListener(dummyRowCollector);
    // RowProducer rowProducer = trans.addRowProducer(injectorStepName, 0);
    trans.startThreads();
    trans.waitUntilFinished();
    // Compare the results
    List<RowMetaAndData> resultRows = dummyRowCollector.getRowsWritten();
    List<RowMetaAndData> goldenImageRows = createResultData1();
    try {
        TestUtilities.checkRows(goldenImageRows, resultRows);
    } catch (TestFailedException tfe) {
        fail(tfe.getMessage());
    }
}
Also used : StepInterface(org.pentaho.di.trans.step.StepInterface) TestFailedException(org.pentaho.di.TestFailedException) RowMetaAndData(org.pentaho.di.core.RowMetaAndData) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) RowStepCollector(org.pentaho.di.trans.RowStepCollector) TransMeta(org.pentaho.di.trans.TransMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) TransHopMeta(org.pentaho.di.trans.TransHopMeta) StepMeta(org.pentaho.di.trans.step.StepMeta) Trans(org.pentaho.di.trans.Trans) Test(org.junit.Test)

Example 2 with TestFailedException

use of org.pentaho.di.TestFailedException in project pentaho-kettle by pentaho.

the class TextFileOutputIT method testTextFileOutput4.

/**
 * Tests the ZIP output capability of the TextFileOutput step
 *
 * @throws Exception
 */
@Test
public void testTextFileOutput4() throws Exception {
    KettleEnvironment.init();
    // Create a new transformation...
    // 
    TransMeta transMeta = new TransMeta();
    transMeta.setName("testTextFileOutput4");
    PluginRegistry registry = PluginRegistry.getInstance();
    // create an injector step
    String injectorStepName = "injector step";
    StepMeta injectorStep = TestUtilities.createInjectorStep(injectorStepName, registry);
    transMeta.addStep(injectorStep);
    // create a row generator step
    StepMeta rowGeneratorStep = createRowGeneratorStep("Create rows for testTextFileOutput4", registry);
    transMeta.addStep(rowGeneratorStep);
    // create a TransHopMeta for injector and add it to the transMeta
    TransHopMeta hop_injectory_rowGenerator = new TransHopMeta(injectorStep, rowGeneratorStep);
    transMeta.addTransHop(hop_injectory_rowGenerator);
    // create the text file output step with ZIP compression
    // but first lets get a filename
    String textFileName = "testTextFileOutput4";
    String textFileOutputStepName = "text file output step";
    StepMeta textFileOutputStep = createTextFileOutputStep(textFileOutputStepName, textFileName, "Zip", registry);
    transMeta.addStep(textFileOutputStep);
    // create a TransHopMeta for textFileOutputStep and add it to the transMeta
    TransHopMeta hop_RowGenerator_outputTextFile = new TransHopMeta(rowGeneratorStep, textFileOutputStep);
    transMeta.addTransHop(hop_RowGenerator_outputTextFile);
    // Now execute the transformation...
    Trans trans = new Trans(transMeta);
    trans.prepareExecution(null);
    // Create a row collector and add it to the dummy step interface
    StepInterface dummyStepInterface = trans.getStepInterface(textFileOutputStepName, 0);
    RowStepCollector dummyRowCollector = new RowStepCollector();
    dummyStepInterface.addRowListener(dummyRowCollector);
    trans.startThreads();
    trans.waitUntilFinished();
    // Compare the results
    List<RowMetaAndData> resultRows = dummyRowCollector.getRowsWritten();
    Object[][] rows = new Object[10][3];
    File f = new File(textFileName + ".zip");
    f.deleteOnExit();
    try {
        ZipFile zf = new ZipFile(f);
        int zipEntryCount = 0;
        Enumeration<? extends ZipEntry> entries = zf.entries();
        while (entries.hasMoreElements()) {
            ZipEntry ze = entries.nextElement();
            zipEntryCount++;
            BufferedReader input = new BufferedReader(new InputStreamReader(zf.getInputStream(ze)));
            readData1Rows(rows, input);
        }
        zf.close();
        assertEquals(zipEntryCount, 1);
    } catch (IOException e) {
        fail(e.getLocalizedMessage());
    }
    List<RowMetaAndData> outFileRows = createResultDataFromObjects(rows);
    try {
        TestUtilities.checkRows(resultRows, outFileRows);
    } catch (TestFailedException tfe) {
        fail(tfe.getMessage());
    }
}
Also used : TestFailedException(org.pentaho.di.TestFailedException) InputStreamReader(java.io.InputStreamReader) RowStepCollector(org.pentaho.di.trans.RowStepCollector) ZipEntry(java.util.zip.ZipEntry) TransMeta(org.pentaho.di.trans.TransMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) IOException(java.io.IOException) StepMeta(org.pentaho.di.trans.step.StepMeta) StepInterface(org.pentaho.di.trans.step.StepInterface) RowMetaAndData(org.pentaho.di.core.RowMetaAndData) ZipFile(java.util.zip.ZipFile) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) BufferedReader(java.io.BufferedReader) TransHopMeta(org.pentaho.di.trans.TransHopMeta) Trans(org.pentaho.di.trans.Trans) ZipFile(java.util.zip.ZipFile) File(java.io.File) Test(org.junit.Test)

Example 3 with TestFailedException

use of org.pentaho.di.TestFailedException in project pentaho-kettle by pentaho.

the class TextFileOutputIT method testTextFileOutput5.

/**
 * Tests the GZIP output capability of the TextFileOutput step
 *
 * @throws Exception
 */
@Test
public void testTextFileOutput5() throws Exception {
    KettleEnvironment.init();
    // Create a new transformation...
    // 
    TransMeta transMeta = new TransMeta();
    transMeta.setName("testTextFileOutput5");
    PluginRegistry registry = PluginRegistry.getInstance();
    // create an injector step
    String injectorStepName = "injector step";
    StepMeta injectorStep = TestUtilities.createInjectorStep(injectorStepName, registry);
    transMeta.addStep(injectorStep);
    // create a row generator step
    StepMeta rowGeneratorStep = createRowGeneratorStep("Create rows for testTextFileOutput5", registry);
    transMeta.addStep(rowGeneratorStep);
    // create a TransHopMeta for injector and add it to the transMeta
    TransHopMeta hop_injectory_rowGenerator = new TransHopMeta(injectorStep, rowGeneratorStep);
    transMeta.addTransHop(hop_injectory_rowGenerator);
    // create the text file output step with GZIP compression
    // but first lets get a filename
    String textFileName = "testTextFileOutput5";
    String textFileOutputStepName = "text file output step";
    StepMeta textFileOutputStep = createTextFileOutputStep(textFileOutputStepName, textFileName, "GZip", registry);
    transMeta.addStep(textFileOutputStep);
    // create a TransHopMeta for textFileOutputStep and add it to the transMeta
    TransHopMeta hop_RowGenerator_outputTextFile = new TransHopMeta(rowGeneratorStep, textFileOutputStep);
    transMeta.addTransHop(hop_RowGenerator_outputTextFile);
    // Now execute the transformation...
    Trans trans = new Trans(transMeta);
    trans.prepareExecution(null);
    // Create a row collector and add it to the dummy step interface
    StepInterface dummyStepInterface = trans.getStepInterface(textFileOutputStepName, 0);
    RowStepCollector dummyRowCollector = new RowStepCollector();
    dummyStepInterface.addRowListener(dummyRowCollector);
    trans.startThreads();
    trans.waitUntilFinished();
    // Compare the results
    List<RowMetaAndData> resultRows = dummyRowCollector.getRowsWritten();
    Object[][] rows = new Object[10][3];
    File f = new File(textFileName + "." + EXTENSION + ".gz");
    f.deleteOnExit();
    try {
        FileInputStream fin = new FileInputStream(f);
        GZIPInputStream gzis = new GZIPInputStream(fin);
        InputStreamReader xover = new InputStreamReader(gzis);
        BufferedReader input = new BufferedReader(xover);
        readData1Rows(rows, input);
        fin.close();
    } catch (IOException e) {
        fail(e.getLocalizedMessage());
    }
    List<RowMetaAndData> outFileRows = createResultDataFromObjects(rows);
    try {
        TestUtilities.checkRows(resultRows, outFileRows);
    } catch (TestFailedException tfe) {
        fail(tfe.getMessage());
    }
}
Also used : TestFailedException(org.pentaho.di.TestFailedException) InputStreamReader(java.io.InputStreamReader) RowStepCollector(org.pentaho.di.trans.RowStepCollector) TransMeta(org.pentaho.di.trans.TransMeta) DummyTransMeta(org.pentaho.di.trans.steps.dummytrans.DummyTransMeta) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) IOException(java.io.IOException) StepMeta(org.pentaho.di.trans.step.StepMeta) FileInputStream(java.io.FileInputStream) StepInterface(org.pentaho.di.trans.step.StepInterface) GZIPInputStream(java.util.zip.GZIPInputStream) RowMetaAndData(org.pentaho.di.core.RowMetaAndData) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) BufferedReader(java.io.BufferedReader) TransHopMeta(org.pentaho.di.trans.TransHopMeta) Trans(org.pentaho.di.trans.Trans) ZipFile(java.util.zip.ZipFile) File(java.io.File) Test(org.junit.Test)

Example 4 with TestFailedException

use of org.pentaho.di.TestFailedException in project pentaho-kettle by pentaho.

the class TextFileInputIT method testTextFileInput2.

public void testTextFileInput2() throws Exception {
    KettleEnvironment.init();
    // Create a new transformation...
    // 
    TransMeta transMeta = new TransMeta();
    transMeta.setName("testTextFileInput2");
    PluginRegistry registry = PluginRegistry.getInstance();
    // write the data that is to be read in
    // by the step we are testing
    String fileName = writeInputFile(2);
    // Create a Text File Input step
    String testFileInputName = "text file input step";
    StepMeta textFileInputStep = createTextFileInputStep2(testFileInputName, fileName, registry);
    transMeta.addStep(textFileInputStep);
    // Create a dummy step 1 and add it to the tranMeta
    String dummyStepName = "dummy step";
    StepMeta dummyStep = TestUtilities.createDummyStep(dummyStepName, registry);
    transMeta.addStep(dummyStep);
    // create transHopMeta for the hop from text file input to the dummy step
    TransHopMeta hop_textFileInputStep_dummyStep = new TransHopMeta(textFileInputStep, dummyStep);
    transMeta.addTransHop(hop_textFileInputStep_dummyStep);
    // Now execute the transformation...
    Trans trans = new Trans(transMeta);
    trans.prepareExecution(null);
    // create a row collector and add it to a row listener for the dummy step
    StepInterface si = trans.getStepInterface(dummyStepName, 0);
    RowStepCollector dummyRowCollector = new RowStepCollector();
    si.addRowListener(dummyRowCollector);
    trans.startThreads();
    trans.waitUntilFinished();
    // Compare the results
    List<RowMetaAndData> resultRows = dummyRowCollector.getRowsWritten();
    List<RowMetaAndData> goldenImageRows = createResultData2();
    try {
        TestUtilities.checkRows(goldenImageRows, resultRows, 0);
    } catch (TestFailedException tfe) {
        fail(tfe.getMessage());
    }
}
Also used : StepInterface(org.pentaho.di.trans.step.StepInterface) TestFailedException(org.pentaho.di.TestFailedException) RowMetaAndData(org.pentaho.di.core.RowMetaAndData) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) RowStepCollector(org.pentaho.di.trans.RowStepCollector) TransMeta(org.pentaho.di.trans.TransMeta) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) TransHopMeta(org.pentaho.di.trans.TransHopMeta) StepMeta(org.pentaho.di.trans.step.StepMeta) Trans(org.pentaho.di.trans.Trans)

Example 5 with TestFailedException

use of org.pentaho.di.TestFailedException in project pentaho-kettle by pentaho.

the class TextFileInputIT method testTextFileInput1.

public void testTextFileInput1() throws Exception {
    KettleEnvironment.init();
    // Create a new transformation...
    // 
    TransMeta transMeta = new TransMeta();
    transMeta.setName("testTextFileInput1");
    PluginRegistry registry = PluginRegistry.getInstance();
    // write the data that is to be read in
    // by the step we are testing
    String fileName = writeInputFile(1);
    // create an injector step and add it to the trans meta
    String injectorStepName = "injector step";
    StepMeta injectorStep = TestUtilities.createInjectorStep(injectorStepName, registry);
    transMeta.addStep(injectorStep);
    // Create a Text File Input step
    String testFileInputName = "text file input step";
    StepMeta textFileInputStep = createTextFileInputStep(testFileInputName, fileName, registry);
    transMeta.addStep(textFileInputStep);
    // create a TransHopMeta for textFileInputStep and add it to the transMeta
    TransHopMeta hopInputTextFile = new TransHopMeta(injectorStep, textFileInputStep);
    transMeta.addTransHop(hopInputTextFile);
    // Create a dummy step 1 and add it to the tranMeta
    String dummyStepName = "dummy step";
    StepMeta dummyStep = TestUtilities.createDummyStep(dummyStepName, registry);
    transMeta.addStep(dummyStep);
    // create transHopMeta for the hop from text file input to the dummy step
    TransHopMeta hop_textFileInputStep_dummyStep = new TransHopMeta(textFileInputStep, dummyStep);
    transMeta.addTransHop(hop_textFileInputStep_dummyStep);
    // Now execute the transformation...
    Trans trans = new Trans(transMeta);
    trans.prepareExecution(null);
    // create a row collector and add it to a row listener for the dummy step
    StepInterface si = trans.getStepInterface(dummyStepName, 0);
    RowStepCollector dummyRowCollector = new RowStepCollector();
    si.addRowListener(dummyRowCollector);
    // Create a row producer for trans
    RowProducer rowProducer = trans.addRowProducer(injectorStepName, 0);
    trans.startThreads();
    // create the filename rows
    List<RowMetaAndData> inputList = createData(fileName);
    Iterator<RowMetaAndData> it = inputList.iterator();
    while (it.hasNext()) {
        RowMetaAndData rowMetaAndData = it.next();
        rowProducer.putRow(rowMetaAndData.getRowMeta(), rowMetaAndData.getData());
    }
    rowProducer.finished();
    trans.waitUntilFinished();
    // Compare the results
    List<RowMetaAndData> resultRows = dummyRowCollector.getRowsWritten();
    List<RowMetaAndData> goldenImageRows = createResultData1();
    try {
        TestUtilities.checkRows(goldenImageRows, resultRows, 5);
    } catch (TestFailedException tfe) {
        fail(tfe.getMessage());
    }
}
Also used : TestFailedException(org.pentaho.di.TestFailedException) RowProducer(org.pentaho.di.trans.RowProducer) RowStepCollector(org.pentaho.di.trans.RowStepCollector) TransMeta(org.pentaho.di.trans.TransMeta) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) StepMeta(org.pentaho.di.trans.step.StepMeta) StepInterface(org.pentaho.di.trans.step.StepInterface) RowMetaAndData(org.pentaho.di.core.RowMetaAndData) PluginRegistry(org.pentaho.di.core.plugins.PluginRegistry) TransHopMeta(org.pentaho.di.trans.TransHopMeta) Trans(org.pentaho.di.trans.Trans)

Aggregations

TestFailedException (org.pentaho.di.TestFailedException)6 RowMetaAndData (org.pentaho.di.core.RowMetaAndData)6 PluginRegistry (org.pentaho.di.core.plugins.PluginRegistry)6 ValueMetaString (org.pentaho.di.core.row.value.ValueMetaString)6 RowStepCollector (org.pentaho.di.trans.RowStepCollector)6 Trans (org.pentaho.di.trans.Trans)6 TransHopMeta (org.pentaho.di.trans.TransHopMeta)6 TransMeta (org.pentaho.di.trans.TransMeta)6 StepInterface (org.pentaho.di.trans.step.StepInterface)6 StepMeta (org.pentaho.di.trans.step.StepMeta)6 Test (org.junit.Test)4 DummyTransMeta (org.pentaho.di.trans.steps.dummytrans.DummyTransMeta)4 BufferedReader (java.io.BufferedReader)3 File (java.io.File)3 IOException (java.io.IOException)3 InputStreamReader (java.io.InputStreamReader)3 ZipFile (java.util.zip.ZipFile)3 FileInputStream (java.io.FileInputStream)2 GZIPInputStream (java.util.zip.GZIPInputStream)1 ZipEntry (java.util.zip.ZipEntry)1