Search in sources :

Example 6 with Writer

use of org.talend.components.api.component.runtime.Writer in project components by Talend.

the class MarketoInputWriterTestIT method testGetMultipleLeadsLeadKeyWithEmailSOAPTDI39008.

@Test
public void testGetMultipleLeadsLeadKeyWithEmailSOAPTDI39008() throws Exception {
    sink.initialize(null, propsSOAP);
    Writer tmpWriter = sink.createWriteOperation().createWriter(null);
    assertTrue(tmpWriter instanceof MarketoInputWriter);
    MarketoInputWriter writer = (MarketoInputWriter) tmpWriter;
    // create an input IndexedRecord
    Schema s = SchemaBuilder.builder().record("input").fields().name("email").type().stringType().noDefault().endRecord();
    IndexedRecord input = new GenericData.Record(s);
    writer.open("SOAPTests");
    input.put(0, "compdev@bj_talend.com");
    writer.write(input);
    input.put(0, "compqa@bj_talend.com");
    writer.write(input);
    writer.close();
    assertEquals(2, writer.result.successCount);
}
Also used : IndexedRecord(org.apache.avro.generic.IndexedRecord) Schema(org.apache.avro.Schema) IndexedRecord(org.apache.avro.generic.IndexedRecord) Writer(org.talend.components.api.component.runtime.Writer) Test(org.junit.Test)

Example 7 with Writer

use of org.talend.components.api.component.runtime.Writer in project components by Talend.

the class MarketoInputWriterTestIT method testGetMultipleLeadsLeadKeyWithEmailSOAP.

@Test
public void testGetMultipleLeadsLeadKeyWithEmailSOAP() throws Exception {
    sink.initialize(null, propsSOAP);
    Writer tmpWriter = sink.createWriteOperation().createWriter(null);
    assertTrue(tmpWriter instanceof MarketoInputWriter);
    MarketoInputWriter writer = (MarketoInputWriter) tmpWriter;
    // create an input IndexedRecord
    Schema s = SchemaBuilder.builder().record("input").fields().name("email").type().stringType().noDefault().name("dummy").type().stringType().noDefault().endRecord();
    IndexedRecord input = new GenericData.Record(s);
    input.put(0, "undx@undx.net");
    input.put(1, "dummy value");
    // 
    writer.open("SOAPTests");
    writer.write(input);
    List<IndexedRecord> successes = writer.getSuccessfulWrites();
    assertNotNull(successes);
    IndexedRecord record = successes.get(0);
    assertNotNull(record);
    LOG.debug("record = {}.", record);
    Schema sout = record.getSchema();
    assertEquals("Id", sout.getFields().get(0).name());
    assertNotNull(record.get(0));
    assertEquals("Email", sout.getFields().get(1).name());
    assertNotNull(record.get(1));
    assertEquals("ForeignSysPersonId", sout.getFields().get(2).name());
    assertEquals("ForeignSysType", sout.getFields().get(3).name());
}
Also used : IndexedRecord(org.apache.avro.generic.IndexedRecord) Schema(org.apache.avro.Schema) IndexedRecord(org.apache.avro.generic.IndexedRecord) Writer(org.talend.components.api.component.runtime.Writer) Test(org.junit.Test)

Example 8 with Writer

use of org.talend.components.api.component.runtime.Writer in project components by Talend.

the class SalesforceWriterTestIT method cleanupAllRecords.

@AfterClass
public static void cleanupAllRecords() throws NoSuchElementException, IOException {
    List<IndexedRecord> recordsToClean = new ArrayList<>();
    String prefixToDelete = UNIQUE_NAME + "_" + UNIQUE_ID;
    // Get the list of records that match the prefix to delete.
    {
        TSalesforceInputProperties sfProps = getSalesforceInputProperties();
        SalesforceTestBase.setupProps(sfProps.connection, false);
        sfProps.module.setValue("moduleName", "Account");
        sfProps.module.main.schema.setValue(SCHEMA_UPDATE_ACCOUNT);
        DefaultComponentRuntimeContainerImpl container = new DefaultComponentRuntimeContainerImpl();
        // Initialize the Source and Reader
        SalesforceSource sfSource = new SalesforceSource();
        sfSource.initialize(container, sfProps);
        sfSource.validate(container);
        int nameIndex = -1;
        @SuppressWarnings("unchecked") Reader<IndexedRecord> sfReader = sfSource.createReader(container);
        if (sfReader.start()) {
            do {
                IndexedRecord r = sfReader.getCurrent();
                if (nameIndex == -1) {
                    nameIndex = r.getSchema().getField("Name").pos();
                }
                if (String.valueOf(r.get(nameIndex)).startsWith(prefixToDelete)) {
                    recordsToClean.add(r);
                }
            } while (sfReader.advance());
        }
    }
    // Delete those records.
    {
        ComponentDefinition sfDef = new TSalesforceOutputDefinition();
        TSalesforceOutputProperties sfProps = (TSalesforceOutputProperties) sfDef.createRuntimeProperties();
        SalesforceTestBase.setupProps(sfProps.connection, false);
        sfProps.outputAction.setValue(OutputAction.DELETE);
        sfProps.module.setValue("moduleName", "Account");
        sfProps.module.main.schema.setValue(SCHEMA_UPDATE_ACCOUNT);
        DefaultComponentRuntimeContainerImpl container = new DefaultComponentRuntimeContainerImpl();
        // Initialize the Sink, WriteOperation and Writer
        SalesforceSink sfSink = new SalesforceSink();
        sfSink.initialize(container, sfProps);
        sfSink.validate(container);
        SalesforceWriteOperation sfWriteOp = sfSink.createWriteOperation();
        sfWriteOp.initialize(container);
        Writer<Result> sfWriter = sfSink.createWriteOperation().createWriter(container);
        sfWriter.open("uid1");
        // Write one record.
        for (IndexedRecord r : recordsToClean) {
            sfWriter.write(r);
        }
        // Finish the Writer, WriteOperation and Sink.
        Result wr1 = sfWriter.close();
        sfWriteOp.finalize(Arrays.asList(wr1), container);
    }
}
Also used : IndexedRecord(org.apache.avro.generic.IndexedRecord) TSalesforceOutputProperties(org.talend.components.salesforce.tsalesforceoutput.TSalesforceOutputProperties) DefaultComponentRuntimeContainerImpl(org.talend.components.api.container.DefaultComponentRuntimeContainerImpl) ArrayList(java.util.ArrayList) Reader(org.talend.components.api.component.runtime.Reader) TSalesforceInputProperties(org.talend.components.salesforce.tsalesforceinput.TSalesforceInputProperties) Result(org.talend.components.api.component.runtime.Result) TSalesforceOutputDefinition(org.talend.components.salesforce.tsalesforceoutput.TSalesforceOutputDefinition) Writer(org.talend.components.api.component.runtime.Writer) ComponentDefinition(org.talend.components.api.component.ComponentDefinition) AfterClass(org.junit.AfterClass)

Aggregations

Writer (org.talend.components.api.component.runtime.Writer)8 IndexedRecord (org.apache.avro.generic.IndexedRecord)6 Schema (org.apache.avro.Schema)5 Test (org.junit.Test)5 ArrayList (java.util.ArrayList)2 SObject (com.sforce.soap.partner.sobject.SObject)1 HashMap (java.util.HashMap)1 List (java.util.List)1 Map (java.util.Map)1 GenericRecord (org.apache.avro.generic.GenericRecord)1 AfterClass (org.junit.AfterClass)1 ComponentDefinition (org.talend.components.api.component.ComponentDefinition)1 Reader (org.talend.components.api.component.runtime.Reader)1 Result (org.talend.components.api.component.runtime.Result)1 Sink (org.talend.components.api.component.runtime.Sink)1 SourceOrSink (org.talend.components.api.component.runtime.SourceOrSink)1 WriteOperation (org.talend.components.api.component.runtime.WriteOperation)1 DefaultComponentRuntimeContainerImpl (org.talend.components.api.container.DefaultComponentRuntimeContainerImpl)1 SalesforceBulkFileSink (org.talend.components.salesforce.runtime.SalesforceBulkFileSink)1 TSalesforceInputProperties (org.talend.components.salesforce.tsalesforceinput.TSalesforceInputProperties)1