use of com.netsuite.webservices.test.lists.accounting.AccountSearch in project components by Talend.
the class SearchQueryTest method testBasics.
@Test
public void testBasics() throws Exception {
SearchQuery s1 = clientService.newSearch();
s1.target("Account");
s1.condition(new SearchCondition("Type", "List.anyOf", Arrays.asList("bank")));
s1.condition(new SearchCondition("Balance", "Double.greaterThanOrEqualTo", Arrays.asList("10000.0", "")));
s1.condition(new SearchCondition("LegalName", "String.contains", Arrays.asList("Acme")));
s1.condition(new SearchCondition("IsInactive", "Boolean", Arrays.asList("true")));
s1.condition(new SearchCondition("CustomBooleanField1", "Boolean", Arrays.asList("true")));
s1.condition(new SearchCondition("CustomStringField1", "String.doesNotContain", Arrays.asList("Foo")));
s1.condition(new SearchCondition("CustomLongField1", "Long.lessThan", Arrays.asList("100", "")));
SearchRecord sr1 = (SearchRecord) s1.toNativeQuery();
assertNotNull(sr1);
Assert.assertEquals(AccountSearch.class, sr1.getClass());
AccountSearch search = (AccountSearch) sr1;
assertNotNull(search.getBasic());
AccountSearchBasic searchBasic = search.getBasic();
assertNotNull(searchBasic.getBalance());
SearchEnumMultiSelectField typeField = searchBasic.getType();
Assert.assertEquals(SearchEnumMultiSelectFieldOperator.ANY_OF, typeField.getOperator());
Assert.assertEquals(Arrays.asList("bank"), typeField.getSearchValue());
SearchDoubleField balanceField = searchBasic.getBalance();
Assert.assertEquals(SearchDoubleFieldOperator.GREATER_THAN_OR_EQUAL_TO, balanceField.getOperator());
Assert.assertEquals(Double.valueOf(10000.0), balanceField.getSearchValue());
SearchBooleanField isInactiveField = searchBasic.getIsInactive();
Assert.assertEquals(Boolean.TRUE, isInactiveField.getSearchValue());
SearchStringField legalNameField = searchBasic.getLegalName();
Assert.assertEquals(SearchStringFieldOperator.CONTAINS, legalNameField.getOperator());
Assert.assertEquals("Acme", legalNameField.getSearchValue());
SearchCustomFieldList customFieldList = searchBasic.getCustomFieldList();
assertNotNull(customFieldList);
assertNotNull(customFieldList.getCustomField());
Assert.assertEquals(3, customFieldList.getCustomField().size());
SearchBooleanCustomField customBooleanField1 = (SearchBooleanCustomField) customFieldList.getCustomField().get(0);
Assert.assertEquals(Boolean.TRUE, customBooleanField1.getSearchValue());
SearchStringCustomField customStringField1 = (SearchStringCustomField) customFieldList.getCustomField().get(1);
Assert.assertEquals(SearchStringFieldOperator.DOES_NOT_CONTAIN, customStringField1.getOperator());
Assert.assertEquals("Foo", customStringField1.getSearchValue());
SearchLongCustomField customLongField1 = (SearchLongCustomField) customFieldList.getCustomField().get(2);
Assert.assertEquals(SearchLongFieldOperator.LESS_THAN, customLongField1.getOperator());
Assert.assertEquals(Long.valueOf(100), customLongField1.getSearchValue());
}
use of com.netsuite.webservices.test.lists.accounting.AccountSearch in project components by Talend.
the class SearchResultSetTest method testEmptyResult.
@Test
public void testEmptyResult() throws Exception {
NetSuiteClientService<?> conn = mock(NetSuiteClientService.class);
SearchResult result1 = new SearchResult();
Status status = new Status();
status.setIsSuccess(true);
result1.setStatus(status);
result1.setSearchId("abc123");
result1.setPageIndex(1);
result1.setTotalRecords(0);
result1.setTotalPages(0);
SearchResponse response1 = new SearchResponse();
response1.setSearchResult(result1);
AccountSearch nsSearchRecord1 = new AccountSearch();
NsSearchResult nsSearchResult1 = TestNetSuiteClientService.toNsSearchResult(result1);
when(conn.search(eq(nsSearchRecord1))).thenReturn(nsSearchResult1);
NetSuiteClientService<?> clientService = new TestNetSuiteClientService();
RecordTypeInfo recordTypeInfo = clientService.getMetaDataSource().getRecordType("Account");
SearchRecordTypeDesc searchRecordTypeDesc = clientService.getMetaDataSource().getSearchRecordType(recordTypeInfo.getRecordType().getSearchRecordType());
SearchResultSet<Record> resultSet = new SearchResultSet<>(conn, recordTypeInfo.getRecordType(), searchRecordTypeDesc, nsSearchResult1);
assertFalse(resultSet.next());
}
use of com.netsuite.webservices.test.lists.accounting.AccountSearch in project components by Talend.
the class SearchResultSetTest method testPagination.
@Test
public void testPagination() throws Exception {
NetSuiteClientService<?> conn = mock(NetSuiteClientService.class);
List<Record> page1 = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
page1.add(new Account());
}
List<Record> page2 = new ArrayList<>();
for (int i = 0; i < 750; i++) {
page2.add(new Account());
}
SearchResult result1 = new SearchResult();
Status status = new Status();
status.setIsSuccess(true);
result1.setStatus(status);
result1.setSearchId("abc123");
result1.setPageIndex(1);
result1.setTotalRecords(page1.size() + page2.size());
result1.setTotalPages(2);
result1.setRecordList(new RecordList());
result1.getRecordList().getRecord().addAll(page1);
SearchResult result2 = new SearchResult();
result2.setStatus(status);
result2.setSearchId(result1.getSearchId());
result2.setPageIndex(2);
result2.setTotalRecords(result1.getTotalRecords());
result2.setTotalPages(result1.getTotalPages());
result2.setRecordList(new RecordList());
result2.getRecordList().getRecord().addAll(page2);
SearchResponse response1 = new SearchResponse();
response1.setSearchResult(result1);
SearchMoreWithIdResponse response2 = new SearchMoreWithIdResponse();
response2.setSearchResult(result2);
AccountSearch nsSearchRecord1 = new AccountSearch();
NsSearchResult nsSearchResult1 = TestNetSuiteClientService.toNsSearchResult(result1);
NsSearchResult nsSearchResult2 = TestNetSuiteClientService.toNsSearchResult(result2);
when(conn.search(eq(nsSearchRecord1))).thenReturn(nsSearchResult1);
when(conn.searchMoreWithId(eq("abc123"), eq(2))).thenReturn(nsSearchResult2);
NetSuiteClientService<?> clientService = new TestNetSuiteClientService();
RecordTypeInfo recordTypeInfo = clientService.getMetaDataSource().getRecordType("Account");
SearchRecordTypeDesc searchRecordTypeDesc = clientService.getMetaDataSource().getSearchRecordType(recordTypeInfo.getRecordType().getSearchRecordType());
SearchResultSet<Record> resultSet = new SearchResultSet<>(conn, recordTypeInfo.getRecordType(), searchRecordTypeDesc, nsSearchResult1);
List<Object> recordList = new ArrayList<>();
while (resultSet.next()) {
Object record = resultSet.get();
assertNotNull(record);
recordList.add(record);
}
assertEquals(page1.size() + page2.size(), recordList.size());
}
use of com.netsuite.webservices.test.lists.accounting.AccountSearch in project components by Talend.
the class SearchQueryTest method testSearchOperatorWithoutValues.
@Test
public void testSearchOperatorWithoutValues() throws Exception {
SearchQuery s1 = clientService.newSearch();
s1.target("Account");
s1.condition(new SearchCondition("LegalName", "String.notEmpty", null));
SearchRecord sr1 = (SearchRecord) s1.toNativeQuery();
AccountSearch search = (AccountSearch) sr1;
AccountSearchBasic searchBasic = search.getBasic();
SearchStringField legalNameField = searchBasic.getLegalName();
Assert.assertEquals(SearchStringFieldOperator.NOT_EMPTY, legalNameField.getOperator());
assertNull(legalNameField.getSearchValue());
}
Aggregations