use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.
the class AbstractSearchManagerTest method testPaginatedQuery.
/**
* Test de requétage de l'index avec tri.
* La création s'effectue dans une seule transaction.
*/
@Test
public void testPaginatedQuery() {
index(false);
final SearchQuery searchQuery = SearchQuery.builder(ListFilter.of("*:*")).build();
final DtList<Item> dtListFull = doQuery(searchQuery, null).getDtList();
final DtList<Item> dtList1 = doQuery(searchQuery, new DtListState(4, 0, null, null)).getDtList();
final DtList<Item> dtList2 = doQuery(searchQuery, new DtListState(4, 4, null, null)).getDtList();
final DtList<Item> dtList3 = doQuery(searchQuery, new DtListState(4, 2 * 4, null, null)).getDtList();
Assert.assertEquals(4, dtList1.size());
Assert.assertEquals(4, dtList2.size());
// 9 elements
Assert.assertEquals(itemDataBase.size() - 2 * 4, dtList3.size());
Assert.assertEquals(dtListFull.get(0).getId(), dtList1.get(0).getId());
Assert.assertEquals(dtListFull.get(3).getId(), dtList1.get(dtList1.size() - 1).getId());
Assert.assertEquals(dtListFull.get(4).getId(), dtList2.get(0).getId());
Assert.assertEquals(dtListFull.get(7).getId(), dtList2.get(dtList2.size() - 1).getId());
Assert.assertEquals(dtListFull.get(8).getId(), dtList3.get(0).getId());
Assert.assertEquals(dtListFull.get(dtListFull.size() - 1).getId(), dtList3.get(dtList3.size() - 1).getId());
}
use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.
the class SearchManagerMultiIndexTest method testIndex.
/**
* Test de création de n enregistrements dans l'index.
* La création s'effectue dans une seule transaction mais sur deux indexes.
* Vérifie la capacité du système à gérer plusieurs indexes.
*/
@Test
public void testIndex() {
final DefinitionSpace definitionSpace = getApp().getDefinitionSpace();
final SearchIndexDefinition itemIndexDefinition = definitionSpace.resolve(IDX_ITEM, SearchIndexDefinition.class);
final SearchIndexDefinition itemDynIndexDefinition = definitionSpace.resolve(IDX_DYNA_ITEM, SearchIndexDefinition.class);
for (final Item item : itemDataBase.getAllItems()) {
final SearchIndex<Item, Item> index = SearchIndex.createIndex(itemIndexDefinition, item.getURI(), item);
searchManager.put(itemIndexDefinition, index);
final SearchIndex<Item, Item> index2 = SearchIndex.createIndex(itemDynIndexDefinition, item.getURI(), item);
searchManager.put(itemDynIndexDefinition, index2);
}
waitIndexation();
final long size = query("*:*", itemIndexDefinition);
Assert.assertEquals(itemDataBase.size(), size);
final long sizeDyn = query("*:*", itemDynIndexDefinition);
Assert.assertEquals(itemDataBase.size(), sizeDyn);
}
use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.
the class SearchManagerStoreTest method testIndexNewData.
/**
* Test de mise à jour de l'index après une creation.
* La création s'effectue dans une seule transaction.
*/
@Test
public void testIndexNewData() {
testIndexAllQuery();
try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
final Item item = createNewItem();
storeManager.getDataStore().create(item);
transaction.commit();
}
waitIndexation();
Assert.assertEquals(initialDbItemSize + 1, query("*:*"));
Assert.assertEquals(1, query("DESCRIPTION:légende"));
}
use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.
the class SearchManagerStoreTest method createNewItem.
private static Item createNewItem() {
final Item item = new Item();
item.setId(null);
item.setPrice(12000);
item.setManufacturer("Acme");
item.setModel("Martin");
item.setYear(1978);
item.setKilo(1500);
final BigDecimal conso = new BigDecimal(7.6);
conso.setScale(2, RoundingMode.HALF_UP);
item.setConsommation(conso);
item.setMotorType("essence");
item.setDescription("Voiture de légende assurant une reindexation dès son insertion");
return item;
}
use of io.vertigo.dynamo.search.data.domain.Item in project vertigo by KleeGroup.
the class AbstractSearchManagerTest method testFilterFacetListByTerm.
/**
* Test le facettage par term d'une liste.
* Et le filtrage par une facette.
*/
@Test
public void testFilterFacetListByTerm() {
index(true);
final SearchQuery searchQuery = SearchQuery.builder(ListFilter.of("*:*")).withFacetStrategy(itemFacetQueryDefinition, EMPTY_SELECTED_FACET_VALUES).build();
final FacetedQueryResult<Item, SearchQuery> result = searchManager.loadList(itemIndexDefinition, searchQuery, null);
Assert.assertEquals(itemDataBase.getItemsByManufacturer("peugeot").size(), getFacetValueCount("FCT_MANUFACTURER_ITEM", "peugeot", result));
// on applique une facette
final SearchQuery searchQuery2 = SearchQuery.builder(ListFilter.of("*:*")).withFacetStrategy(createFacetQuery("FCT_MANUFACTURER_ITEM", "peugeot", result)).build();
final FacetedQueryResult<Item, SearchQuery> resultFiltered = searchManager.loadList(itemIndexDefinition, searchQuery2, null);
Assert.assertEquals(itemDataBase.getItemsByManufacturer("peugeot").size(), (int) resultFiltered.getCount());
}
Aggregations