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