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");
}
}
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);
}
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;
}
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;
}
});
}
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;
}
Aggregations