### Question:
APIApplication extends ConsoleAPI<ApplicationItem> implements APIHasAdd<ApplicationItem>, APIHasSearch<ApplicationItem>,
APIHasGet<ApplicationItem>, APIHasUpdate<ApplicationItem>, APIHasDelete { @Override public ItemSearchResult<ApplicationItem> search(final int page, final int resultsByPage, final String search, final String orders, final Map<String, String> filters) { return creator.create(getEngineSession()).search(page, resultsByPage, search, orders, filters); } APIApplication();  APIApplication(final ApplicationDataStoreCreator creator, final  APIApplicationDataStoreFactory applicationDataStoreFactory); @Override ApplicationItem add(final ApplicationItem item); @Override ApplicationItem update(final APIID id, final Map<String, String> attributes); @Override ApplicationItem get(final APIID id); @Override void delete(final List<APIID> ids); @Override ItemSearchResult<ApplicationItem> search(final int page, final int resultsByPage, final String search, final String orders,
            final Map<String, String> filters); @Override String defineDefaultSearchOrder();  }### Answer:
@Test public void search_should_return_the_result_of_dataStore_search() throws Exception { @SuppressWarnings("unchecked") final ItemSearchResult<ApplicationItem> result = mock(ItemSearchResult.class); given(dataStore.search(0, 10, "request", "default", Collections.singletonMap("name", "hr"))).willReturn(result); final ItemSearchResult<ApplicationItem> retrievedResult = apiApplication.search(0, 10, "request", "default", Collections.singletonMap("name", "hr")); assertThat(retrievedResult).isEqualTo(result); }