0
votes

I have a java class that searches items, but in the method params this class receive a number of max items per query search (batchLines).

Class:

    @Override
public List<OrderEntryItemModel> findOrderEntriesByStore(final BaseStoreModel store, final Date modifiedTime,
                                                         final int batchLines, final int start) {
    final FlexibleSearchQuery query;
    if (modifiedTime != null) {
        query = new FlexibleSearchQuery(FIND_ORDER_ENTRY_ITEMS_BY_STORE_QUERY + MODIFIED_TIME_PARAM_QUERY);
        query.addQueryParameter("modifiedtime", modifiedTime);
    } else {
        query = new FlexibleSearchQuery(FIND_ORDER_ENTRY_ITEMS_BY_STORE_QUERY);
    }
    query.setCount(batchLines);
    query.setNeedTotal(true);
    query.addQueryParameter("store", store);
    query.setStart(start);
    return getFlexibleSearchService().<OrderEntryItemModel>search(query).getResult();
}

So I have to test this class works fine with using .setCount(). I tried to do the test but always give me 3 and it must give me 1.

Test class:

    @UnitTest
@RunWith(MockitoJUnitRunner.class)
public class DefaultLookerOrderEntryItemDaoTest {

    private DefaultLookerOrderEntryItemDao lookerOrderEntryItemDao;

    @Mock
    private FlexibleSearchService flexibleSearchService;

    @Mock
    private SearchResult<OrderEntryItemModel> searchResult;

    @Before
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        lookerOrderEntryItemDao = new DefaultLookerOrderEntryItemDao(flexibleSearchService);
        final OrderEntryItemModel oei1 = new OrderEntryItemModel();
        final OrderEntryItemModel oei2 = new OrderEntryItemModel();
        final OrderEntryItemModel oei3 = new OrderEntryItemModel();
        final List<OrderEntryItemModel> orderEntryItems = new ArrayList<>();
        orderEntryItems.add(oei1);
        orderEntryItems.add(oei2);
        orderEntryItems.add(oei3);

        given(flexibleSearchService.<OrderEntryItemModel>search(isA(FlexibleSearchQuery.class))).willReturn(searchResult);
        given(searchResult.getResult()).willReturn(orderEntryItems);
    }

    @Test
    public void findOrderEntries(){
        given(searchResult.getCount()).willReturn(1);
        final List<OrderEntryItemModel> orderEntries = lookerOrderEntryItemDao.findOrderEntriesByStore(new BaseStoreModel(), null, 1, 0);
        assertEquals(1, orderEntries.size());
    }
}