Search in sources :

Example 1 with Car

use of io.vertigo.dynamo.search_2_4.data.domain.Car 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<Car> dtListFull = doQuery(searchQuery, null).getDtList();
    final DtList<Car> dtList1 = doQuery(searchQuery, new DtListState(4, 0, null, null)).getDtList();
    final DtList<Car> dtList2 = doQuery(searchQuery, new DtListState(4, 4, null, null)).getDtList();
    final DtList<Car> 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(carDataBase.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());
}
Also used : SearchQuery(io.vertigo.dynamo.search.model.SearchQuery) Car(io.vertigo.dynamo.search_2_4.data.domain.Car) DtListState(io.vertigo.dynamo.domain.model.DtListState) Test(org.junit.Test)

Example 2 with Car

use of io.vertigo.dynamo.search_2_4.data.domain.Car in project vertigo by KleeGroup.

the class AbstractSearchManagerTest method testClusterByFacetRangeVerySmallMaxRows.

/**
 * Test le facettage par term d'une liste.
 */
@Test
public void testClusterByFacetRangeVerySmallMaxRows() {
    index(true);
    final SearchQuery searchQuery = SearchQuery.builder(ListFilter.of("*:*")).withFacetClustering(// "avant 2000", "2000-2005", "après 2005"
    yearFacetDefinition).build();
    final FacetedQueryResult<Car, SearchQuery> result = searchManager.loadList(carIndexDefinition, searchQuery, new DtListState(1, 0, null, null));
    // On vérifie qu'il existe une valeur pour chaque marques et que le nombre d'occurrences est correct
    final Map<String, List<Car>> databaseCluster = new HashMap<>();
    databaseCluster.put(YearCluster.before2000.getLabel(), new ArrayList<>());
    databaseCluster.put(YearCluster.between2000and2005.getLabel(), new ArrayList<>());
    databaseCluster.put(YearCluster.after2005.getLabel(), new ArrayList<>());
    for (final Car car : carDataBase.getAllCars()) {
        if (car.getYear() < 2000) {
            databaseCluster.get(YearCluster.before2000.getLabel()).add(car);
        } else if (car.getYear() < 2005) {
            databaseCluster.get(YearCluster.between2000and2005.getLabel()).add(car);
        } else {
            databaseCluster.get(YearCluster.after2005.getLabel()).add(car);
        }
    }
    Assert.assertEquals(databaseCluster.size(), result.getClusters().size());
    for (final Entry<FacetValue, DtList<Car>> entry : result.getClusters().entrySet()) {
        final String searchFacetLabel = entry.getKey().getLabel().getDisplay().toLowerCase(Locale.FRENCH);
        final int searchFacetCount = entry.getValue().size();
        // result == listState.top (=1)
        Assert.assertEquals(1, searchFacetCount);
        for (final Car car : entry.getValue()) {
            if (car.getYear() < 2000) {
                Assert.assertEquals(searchFacetLabel, YearCluster.before2000.getLabel());
            } else if (car.getYear() < 2005) {
                Assert.assertEquals(searchFacetLabel, YearCluster.between2000and2005.getLabel());
            } else {
                Assert.assertEquals(searchFacetLabel, YearCluster.after2005.getLabel());
            }
        }
    }
}
Also used : SearchQuery(io.vertigo.dynamo.search.model.SearchQuery) HashMap(java.util.HashMap) FacetValue(io.vertigo.dynamo.collections.model.FacetValue) Car(io.vertigo.dynamo.search_2_4.data.domain.Car) DtListState(io.vertigo.dynamo.domain.model.DtListState) ArrayList(java.util.ArrayList) DtList(io.vertigo.dynamo.domain.model.DtList) List(java.util.List) DtList(io.vertigo.dynamo.domain.model.DtList) Test(org.junit.Test)

Example 3 with Car

use of io.vertigo.dynamo.search_2_4.data.domain.Car in project vertigo by KleeGroup.

the class AbstractSearchManagerTest method testSortByOptionalFieldQuery.

/**
 * Test de requétage de l'index avec tri.
 * La création s'effectue dans une seule transaction.
 */
@Test
public void testSortByOptionalFieldQuery() {
    index(false);
    Car firstCar;
    firstCar = doQueryAndGetFirst("*:*", "OPTIONAL_NUMBER", false);
    Assert.assertEquals("Audi", firstCar.getMake());
    firstCar = doQueryAndGetFirst("*:*", "OPTIONAL_STRING", false);
    Assert.assertEquals("Peugeot", firstCar.getMake());
}
Also used : Car(io.vertigo.dynamo.search_2_4.data.domain.Car) Test(org.junit.Test)

Example 4 with Car

use of io.vertigo.dynamo.search_2_4.data.domain.Car in project vertigo by KleeGroup.

the class AbstractSearchManagerTest method testFacetListByRange.

/**
 * Test le facettage par range d'une liste.
 */
@Test
public void testFacetListByRange() {
    index(true);
    final SearchQuery searchQuery = SearchQuery.builder(ListFilter.of("*:*")).withFacetStrategy(carFacetQueryDefinition, EMPTY_SELECTED_FACET_VALUES).build();
    final FacetedQueryResult<Car, SearchQuery> result = searchManager.loadList(carIndexDefinition, searchQuery, null);
    testFacetResultByRange(result);
}
Also used : SearchQuery(io.vertigo.dynamo.search.model.SearchQuery) Car(io.vertigo.dynamo.search_2_4.data.domain.Car) Test(org.junit.Test)

Example 5 with Car

use of io.vertigo.dynamo.search_2_4.data.domain.Car in project vertigo by KleeGroup.

the class AbstractSearchManagerTest method testFacetListByTerm.

/**
 * Test le facettage par term d'une liste.
 */
@Test
public void testFacetListByTerm() {
    index(true);
    final SearchQuery searchQuery = SearchQuery.builder(ListFilter.of("*:*")).withFacetStrategy(carFacetQueryDefinition, EMPTY_SELECTED_FACET_VALUES).build();
    final FacetedQueryResult<Car, SearchQuery> result = searchManager.loadList(carIndexDefinition, searchQuery, null);
    testFacetResultByTerm(result);
}
Also used : SearchQuery(io.vertigo.dynamo.search.model.SearchQuery) Car(io.vertigo.dynamo.search_2_4.data.domain.Car) Test(org.junit.Test)

Aggregations

Car (io.vertigo.dynamo.search_2_4.data.domain.Car)23 Test (org.junit.Test)17 SearchQuery (io.vertigo.dynamo.search.model.SearchQuery)12 ArrayList (java.util.ArrayList)7 SearchIndexDefinition (io.vertigo.dynamo.search.metamodel.SearchIndexDefinition)6 VTransactionWritable (io.vertigo.commons.transaction.VTransactionWritable)5 DefinitionSpace (io.vertigo.core.definition.DefinitionSpace)5 DtList (io.vertigo.dynamo.domain.model.DtList)5 DtListState (io.vertigo.dynamo.domain.model.DtListState)5 SearchIndex (io.vertigo.dynamo.search.model.SearchIndex)5 List (java.util.List)5 FacetValue (io.vertigo.dynamo.collections.model.FacetValue)4 URI (io.vertigo.dynamo.domain.model.URI)4 HashMap (java.util.HashMap)4 DtObjectUtil (io.vertigo.dynamo.domain.util.DtObjectUtil)3 SearchManager (io.vertigo.dynamo.search.SearchManager)3 CarDataBase (io.vertigo.dynamo.search_2_4.data.domain.CarDataBase)3 AbstractTestCaseJU4 (io.vertigo.AbstractTestCaseJU4)2 ListFilter (io.vertigo.dynamo.collections.ListFilter)2 FacetDefinition (io.vertigo.dynamo.collections.metamodel.FacetDefinition)2