Search in sources :

Example 16 with Record

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

the class NsObjectInputTransducerIT method testIncludeAllFields.

@Test
public void testIncludeAllFields() throws Exception {
    NetSuiteClientService<?> connection = webServiceTestFixture.getClientService();
    connection.login();
    TypeDesc basicTypeDesc = connection.getBasicMetaData().getTypeInfo("Opportunity");
    Schema schema = getDynamicSchema();
    NsObjectInputTransducer transducer = new NsObjectInputTransducer(connection, schema, basicTypeDesc.getTypeName());
    SearchResultSet<Record> rs = connection.newSearch().target(basicTypeDesc.getTypeName()).search();
    TypeDesc typeDesc = connection.getMetaDataSource().getTypeInfo(basicTypeDesc.getTypeName());
    int count = 0;
    while (count++ < connection.getSearchPageSize() && rs.next()) {
        Record record = rs.get();
        IndexedRecord indexedRecord = transducer.read(record);
        logger.debug("Indexed record: {}", indexedRecord);
        Schema recordSchema = indexedRecord.getSchema();
        assertEquals(typeDesc.getFields().size(), recordSchema.getFields().size());
        for (FieldDesc fieldDesc : typeDesc.getFields()) {
            String fieldName = fieldDesc.getName();
            Schema.Field field = recordSchema.getField(fieldName);
            assertNotNull(field);
            Object value = indexedRecord.get(field.pos());
        }
    }
    if (count == 0) {
        throw new IllegalStateException("No records");
    }
}
Also used : IndexedRecord(org.apache.avro.generic.IndexedRecord) Schema(org.apache.avro.Schema) TypeDesc(org.talend.components.netsuite.client.model.TypeDesc) NsObjectInputTransducer(org.talend.components.netsuite.input.NsObjectInputTransducer) Record(com.netsuite.webservices.v2016_2.platform.core.Record) IndexedRecord(org.apache.avro.generic.IndexedRecord) FieldDesc(org.talend.components.netsuite.client.model.FieldDesc) Test(org.junit.Test)

Example 17 with Record

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

the class NsObjectInputTransducerIT method testBasic.

@Test
public void testBasic() throws Exception {
    NetSuiteClientService<?> connection = webServiceTestFixture.getClientService();
    connection.login();
    TypeDesc typeDesc = connection.getMetaDataSource().getTypeInfo("Opportunity");
    Schema schema = NetSuiteDatasetRuntimeImpl.inferSchemaForType(typeDesc.getTypeName(), typeDesc.getFields());
    NsObjectInputTransducer transducer = new NsObjectInputTransducer(connection, schema, typeDesc.getTypeName());
    SearchResultSet<Record> rs = connection.newSearch().target(typeDesc.getTypeName()).search();
    if (!rs.next()) {
        throw new IllegalStateException("No records");
    }
    Record record = rs.get();
    IndexedRecord indexedRecord = transducer.read(record);
    logger.debug("Indexed record: {}", indexedRecord);
}
Also used : IndexedRecord(org.apache.avro.generic.IndexedRecord) Schema(org.apache.avro.Schema) TypeDesc(org.talend.components.netsuite.client.model.TypeDesc) NsObjectInputTransducer(org.talend.components.netsuite.input.NsObjectInputTransducer) Record(com.netsuite.webservices.v2016_2.platform.core.Record) IndexedRecord(org.apache.avro.generic.IndexedRecord) Test(org.junit.Test)

Example 18 with Record

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

the class NetSuiteMockTestBase method makeRecordPages.

public static <T extends Record> List<SearchResult> makeRecordPages(List<T> recordList, int pageSize) throws Exception {
    int count = recordList.size();
    int totalPages = count / pageSize;
    if (count % pageSize != 0) {
        totalPages += 1;
    }
    String searchId = UUID.randomUUID().toString();
    List<SearchResult> pageResults = new ArrayList<>();
    SearchResult result = null;
    Iterator<T> recordIterator = recordList.iterator();
    while (recordIterator.hasNext() && count > 0) {
        T record = recordIterator.next();
        if (result == null) {
            result = new SearchResult();
            result.setSearchId(searchId);
            result.setTotalPages(totalPages);
            result.setTotalRecords(count);
            result.setPageIndex(pageResults.size() + 1);
            result.setPageSize(pageSize);
            result.setStatus(createSuccessStatus());
        }
        if (result.getRecordList() == null) {
            result.setRecordList(new RecordList());
        }
        result.getRecordList().getRecord().add(record);
        if (result.getRecordList().getRecord().size() == pageSize) {
            pageResults.add(result);
            result = null;
        }
        count--;
    }
    if (result != null) {
        pageResults.add(result);
    }
    return pageResults;
}
Also used : RecordList(com.netsuite.webservices.v2014_2.platform.core.RecordList) ArrayList(java.util.ArrayList) SearchResult(com.netsuite.webservices.v2014_2.platform.core.SearchResult)

Example 19 with Record

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

the class NetSuiteMockTestBase method mockGetListRequestResults.

protected <T extends Record> void mockGetListRequestResults(final List<T> records) throws Exception {
    final NetSuitePortType port = webServiceMockTestFixture.getPortMock();
    when(port.getList(any(GetListRequest.class))).then(new Answer<GetListResponse>() {

        @Override
        public GetListResponse answer(InvocationOnMock invocationOnMock) throws Throwable {
            GetListRequest request = (GetListRequest) invocationOnMock.getArguments()[0];
            GetListResponse response = new GetListResponse();
            ReadResponseList readResponseList = new ReadResponseList();
            int count = request.getBaseRef().size();
            for (int i = 0; i < count; i++) {
                ReadResponse readResponse = new ReadResponse();
                T record = records != null ? records.get(i) : null;
                if (record != null) {
                    readResponse.setStatus(createSuccessStatus());
                } else {
                    readResponse.setStatus(createNotFoundStatus());
                }
                readResponse.setRecord(record);
                readResponseList.getReadResponse().add(readResponse);
            }
            response.setReadResponseList(readResponseList);
            return response;
        }
    });
}
Also used : NetSuitePortType(com.netsuite.webservices.v2014_2.platform.NetSuitePortType) GetListResponse(com.netsuite.webservices.v2014_2.platform.messages.GetListResponse) ReadResponse(com.netsuite.webservices.v2014_2.platform.messages.ReadResponse) InvocationOnMock(org.mockito.invocation.InvocationOnMock) ReadResponseList(com.netsuite.webservices.v2014_2.platform.messages.ReadResponseList) GetListRequest(com.netsuite.webservices.v2014_2.platform.messages.GetListRequest)

Example 20 with Record

use of com.netsuite.webservices.v2014_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)

Aggregations

Test (org.junit.Test)11 ArrayList (java.util.ArrayList)10 Schema (org.apache.avro.Schema)9 IndexedRecord (org.apache.avro.generic.IndexedRecord)9 Record (com.netsuite.webservices.v2016_2.platform.core.Record)8 TypeDesc (org.talend.components.netsuite.client.model.TypeDesc)7 Record (com.netsuite.webservices.v2014_2.platform.core.Record)6 NsObjectInputTransducer (org.talend.components.netsuite.input.NsObjectInputTransducer)6 NetSuitePortType (com.netsuite.webservices.v2014_2.platform.NetSuitePortType)5 InvocationOnMock (org.mockito.invocation.InvocationOnMock)5 NetSuiteDatasetRuntime (org.talend.components.netsuite.NetSuiteDatasetRuntime)3 NetSuiteRuntime (org.talend.components.netsuite.NetSuiteRuntime)3 NetSuiteRuntimeImpl (org.talend.components.netsuite.v2014_2.NetSuiteRuntimeImpl)3 RecordRef (com.netsuite.webservices.v2014_2.platform.core.RecordRef)2 SearchRecord (com.netsuite.webservices.v2014_2.platform.core.SearchRecord)2 SearchResult (com.netsuite.webservices.v2014_2.platform.core.SearchResult)2 ReadResponse (com.netsuite.webservices.v2014_2.platform.messages.ReadResponse)2 WriteResponse (com.netsuite.webservices.v2014_2.platform.messages.WriteResponse)2 WriteResponseList (com.netsuite.webservices.v2014_2.platform.messages.WriteResponseList)2 SearchRecord (com.netsuite.webservices.v2016_2.platform.core.SearchRecord)2