Search in sources :

Example 26 with Record

use of com.netsuite.webservices.v2016_2.platform.core.Record in project components by Talend.

the class NetSuiteOutputWriterTest method testDelete.

@Test
public void testDelete() throws Exception {
    final NetSuitePortType port = webServiceMockTestFixture.getPortMock();
    final TypeDesc typeDesc = webServiceMockTestFixture.getClientService().getMetaDataSource().getTypeInfo(RecordTypeEnum.OPPORTUNITY.getTypeName());
    final TypeDesc refTypeDesc = webServiceMockTestFixture.getClientService().getMetaDataSource().getTypeInfo(RefType.RECORD_REF.getTypeName());
    properties.module.moduleName.setValue(typeDesc.getTypeName());
    properties.module.action.setValue(OutputAction.DELETE);
    final List<RecordRef> deletedRecordRefList = new ArrayList<>();
    when(port.deleteList(any(DeleteListRequest.class))).then(new Answer<DeleteListResponse>() {

        @Override
        public DeleteListResponse answer(InvocationOnMock invocationOnMock) throws Throwable {
            DeleteListRequest request = (DeleteListRequest) invocationOnMock.getArguments()[0];
            DeleteListResponse response = new DeleteListResponse();
            WriteResponseList writeResponseList = new WriteResponseList();
            for (int i = 0; i < request.getBaseRef().size(); i++) {
                RecordRef recordRef = (RecordRef) request.getBaseRef().get(i);
                assertNotNull(recordRef);
                assertNotNull(recordRef.getInternalId());
                assertNotNull(recordRef.getType());
                deletedRecordRefList.add(recordRef);
                WriteResponse writeResponse = new WriteResponse();
                writeResponse.setStatus(createSuccessStatus());
                writeResponse.setBaseRef(recordRef);
                writeResponseList.getWriteResponse().add(writeResponse);
            }
            response.setWriteResponseList(writeResponseList);
            return response;
        }
    });
    NetSuiteRuntime netSuiteRuntime = new NetSuiteRuntimeImpl();
    NetSuiteDatasetRuntime dataSetRuntime = netSuiteRuntime.getDatasetRuntime(properties.getConnectionProperties());
    Schema schema = dataSetRuntime.getSchema(RefType.RECORD_REF.getTypeName());
    properties.module.main.schema.setValue(schema);
    NetSuiteSink sink = new NetSuiteSinkImpl();
    sink.initialize(mockTestFixture.getRuntimeContainer(), properties);
    NetSuiteClientService<?> clientService = sink.getClientService();
    NetSuiteWriteOperation writeOperation = (NetSuiteWriteOperation) sink.createWriteOperation();
    NetSuiteOutputWriter writer = (NetSuiteOutputWriter) writeOperation.createWriter(mockTestFixture.getRuntimeContainer());
    writer.open(UUID.randomUUID().toString());
    List<IndexedRecord> indexedRecordList = makeIndexedRecords(clientService, schema, new RecordRefComposer<>(refTypeDesc.getTypeClass()), 150);
    for (IndexedRecord record : indexedRecordList) {
        writer.write(record);
    }
    Result writerResult = writer.close();
    assertNotNull(writerResult);
    assertEquals(indexedRecordList.size(), writerResult.totalCount);
    verify(port, times(2)).deleteList(any(DeleteListRequest.class));
    assertEquals(indexedRecordList.size(), deletedRecordRefList.size());
}
Also used : DeleteListRequest(com.netsuite.webservices.v2016_2.platform.messages.DeleteListRequest) NetSuiteSinkImpl(org.talend.components.netsuite.v2016_2.NetSuiteSinkImpl) IndexedRecord(org.apache.avro.generic.IndexedRecord) DeleteListResponse(com.netsuite.webservices.v2016_2.platform.messages.DeleteListResponse) Schema(org.apache.avro.Schema) TypeDesc(org.talend.components.netsuite.client.model.TypeDesc) RecordRef(com.netsuite.webservices.v2016_2.platform.core.RecordRef) ArrayList(java.util.ArrayList) NetSuiteDatasetRuntime(org.talend.components.netsuite.NetSuiteDatasetRuntime) NetSuiteWriteOperation(org.talend.components.netsuite.output.NetSuiteWriteOperation) NetSuiteRuntimeImpl(org.talend.components.netsuite.v2016_2.NetSuiteRuntimeImpl) Result(org.talend.components.api.component.runtime.Result) NetSuiteRuntime(org.talend.components.netsuite.NetSuiteRuntime) NetSuiteOutputWriter(org.talend.components.netsuite.output.NetSuiteOutputWriter) WriteResponse(com.netsuite.webservices.v2016_2.platform.messages.WriteResponse) NetSuitePortType(com.netsuite.webservices.v2016_2.platform.NetSuitePortType) WriteResponseList(com.netsuite.webservices.v2016_2.platform.messages.WriteResponseList) InvocationOnMock(org.mockito.invocation.InvocationOnMock) NetSuiteSink(org.talend.components.netsuite.NetSuiteSink) Test(org.junit.Test)

Example 27 with Record

use of com.netsuite.webservices.v2016_2.platform.core.Record in project components by Talend.

the class NetSuiteMockTestBase method makeIndexedRecords.

public static <T> List<IndexedRecord> makeIndexedRecords(NetSuiteClientService<?> clientService, Schema schema, ObjectComposer<T> objectComposer, int count) throws Exception {
    NsObjectInputTransducer transducer = new NsObjectInputTransducer(clientService, schema, schema.getName());
    List<IndexedRecord> recordList = new ArrayList<>();
    while (count > 0) {
        T nsRecord = objectComposer.composeObject();
        IndexedRecord convertedRecord = transducer.read(nsRecord);
        Schema recordSchema = convertedRecord.getSchema();
        GenericRecord record = new GenericData.Record(recordSchema);
        for (Schema.Field field : schema.getFields()) {
            Object value = convertedRecord.get(field.pos());
            record.put(field.pos(), value);
        }
        recordList.add(record);
        count--;
    }
    return recordList;
}
Also used : IndexedRecord(org.apache.avro.generic.IndexedRecord) Schema(org.apache.avro.Schema) ArrayList(java.util.ArrayList) NsObjectInputTransducer(org.talend.components.netsuite.input.NsObjectInputTransducer) Record(com.netsuite.webservices.v2014_2.platform.core.Record) IndexedRecord(org.apache.avro.generic.IndexedRecord) GenericRecord(org.apache.avro.generic.GenericRecord) GenericRecord(org.apache.avro.generic.GenericRecord)

Example 28 with Record

use of com.netsuite.webservices.v2016_2.platform.core.Record in project components by Talend.

the class NetSuiteClientServiceIT method testConnectAndLogin.

@Test
public void testConnectAndLogin() throws Exception {
    NetSuiteClientService<?> connection = webServiceTestFixture.getClientService();
    connection.login();
    SearchResultSet<Record> rs = connection.newSearch().target("Account").condition(new SearchCondition("Type", "List.anyOf", Arrays.asList("Bank"))).search();
    int count = 10;
    int retrievedCount = 0;
    while (rs.next() && count-- > 0) {
        Record record = rs.get();
        assertEquals(AccountType.BANK, getProperty(record, "acctType"));
        retrievedCount++;
    }
    assertTrue(retrievedCount > 1);
}
Also used : SearchCondition(org.talend.components.netsuite.client.search.SearchCondition) Record(com.netsuite.webservices.v2014_2.platform.core.Record) Test(org.junit.Test)

Example 29 with Record

use of com.netsuite.webservices.v2016_2.platform.core.Record in project components by Talend.

the class CustomMetaDataRetrieverImpl method retrieveCustomizations.

public List<?> retrieveCustomizations(final List<NsRef> nsCustomizationRefs) throws NetSuiteException {
    if (nsCustomizationRefs.isEmpty()) {
        return Collections.emptyList();
    }
    final List<CustomizationRef> customizationRefs = new ArrayList<>(nsCustomizationRefs.size());
    for (NsRef nsCustomizationRef : nsCustomizationRefs) {
        CustomizationRef customizationRef = new CustomizationRef();
        customizationRef.setType(RecordType.fromValue(nsCustomizationRef.getType()));
        customizationRef.setScriptId(nsCustomizationRef.getScriptId());
        customizationRef.setInternalId(nsCustomizationRef.getInternalId());
        customizationRefs.add(customizationRef);
    }
    List<NsReadResponse<Record>> result = clientService.execute(new NetSuiteClientService.PortOperation<List<NsReadResponse<Record>>, NetSuitePortType>() {

        @Override
        public List<NsReadResponse<Record>> execute(NetSuitePortType port) throws Exception {
            logger.debug("Retrieving customizations: {}", nsCustomizationRefs.size());
            StopWatch stopWatch = new StopWatch();
            try {
                stopWatch.start();
                final GetListRequest request = new GetListRequest();
                request.getBaseRef().addAll(customizationRefs);
                return toNsReadResponseList(port.getList(request).getReadResponseList());
            } finally {
                stopWatch.stop();
                logger.debug("Retrieved customizations: {}, {}", nsCustomizationRefs.size(), stopWatch);
            }
        }
    });
    if (!result.isEmpty()) {
        List<Record> customizations = new ArrayList<>(result.size());
        for (NsReadResponse<Record> response : result) {
            if (response.getStatus().isSuccess()) {
                customizations.add(response.getRecord());
            } else {
                throw new NetSuiteException("Retrieving of customization was not successful: " + response.getStatus());
            }
        }
        return customizations;
    } else {
        return Collections.emptyList();
    }
}
Also used : ArrayList(java.util.ArrayList) NetSuiteClientService(org.talend.components.netsuite.client.NetSuiteClientService) NetSuiteException(org.talend.components.netsuite.client.NetSuiteException) NsReadResponse(org.talend.components.netsuite.client.NsReadResponse) NsRef(org.talend.components.netsuite.client.NsRef) NetSuiteException(org.talend.components.netsuite.client.NetSuiteException) StopWatch(org.apache.commons.lang3.time.StopWatch) NetSuitePortType(com.netsuite.webservices.v2016_2.platform.NetSuitePortType) CustomizationRef(com.netsuite.webservices.v2016_2.platform.core.CustomizationRef) ArrayList(java.util.ArrayList) NetSuiteClientServiceImpl.toNsReadResponseList(org.talend.components.netsuite.v2016_2.client.NetSuiteClientServiceImpl.toNsReadResponseList) List(java.util.List) Record(com.netsuite.webservices.v2016_2.platform.core.Record) GetListRequest(com.netsuite.webservices.v2016_2.platform.messages.GetListRequest)

Aggregations

ArrayList (java.util.ArrayList)18 Test (org.junit.Test)15 Schema (org.apache.avro.Schema)13 IndexedRecord (org.apache.avro.generic.IndexedRecord)13 NetSuitePortType (com.netsuite.webservices.v2016_2.platform.NetSuitePortType)10 Record (com.netsuite.webservices.v2016_2.platform.core.Record)8 TypeDesc (org.talend.components.netsuite.client.model.TypeDesc)8 NetSuiteDatasetRuntime (org.talend.components.netsuite.NetSuiteDatasetRuntime)7 NetSuiteRuntimeImpl (org.talend.components.netsuite.v2016_2.NetSuiteRuntimeImpl)7 Record (com.netsuite.webservices.v2014_2.platform.core.Record)6 GetListRequest (com.netsuite.webservices.v2016_2.platform.messages.GetListRequest)6 Result (org.talend.components.api.component.runtime.Result)6 NetSuiteSink (org.talend.components.netsuite.NetSuiteSink)6 NsSearchResult (org.talend.components.netsuite.client.NsSearchResult)6 NsObjectInputTransducer (org.talend.components.netsuite.input.NsObjectInputTransducer)6 NetSuiteOutputWriter (org.talend.components.netsuite.output.NetSuiteOutputWriter)6 NetSuiteWriteOperation (org.talend.components.netsuite.output.NetSuiteWriteOperation)6 NetSuiteSinkImpl (org.talend.components.netsuite.v2016_2.NetSuiteSinkImpl)6 CustomFieldList (com.netsuite.webservices.v2016_2.platform.core.CustomFieldList)5 RecordRef (com.netsuite.webservices.v2016_2.platform.core.RecordRef)5