Author: echatellier Date: 2012-01-25 14:01:55 +0100 (Wed, 25 Jan 2012) New Revision: 1362 Url: http://nuiton.org/repositories/revision/wikitty/1362 Log: Move test to wikitty client test Removed: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-25 10:21:09 UTC (rev 1361) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-25 13:01:55 UTC (rev 1362) @@ -26,7 +26,10 @@ package org.nuiton.wikitty; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; +import java.util.List; import org.junit.Assert; import org.junit.Test; @@ -49,6 +52,10 @@ import org.nuiton.wikitty.query.WikittyQueryMaker; import org.nuiton.wikitty.query.WikittyQueryParser; import org.nuiton.wikitty.query.WikittyQueryResult; +import org.nuiton.wikitty.search.Criteria; +import org.nuiton.wikitty.search.PagedResult; +import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.search.operators.Like; import org.nuiton.wikitty.test.Category; import org.nuiton.wikitty.test.Product; @@ -830,4 +837,154 @@ WikittyQueryResult<Product> results4 = wikittyClient.findAllByQuery(Product.class, query4); Assert.assertEquals(1, results4.getTotalResult()); } + + @Test + public void testQueryMakerLowerCaseSearch() { + assumeTrueSearchEngineCanRunTest(); // lower case + + WikittyQuery query1 = new WikittyQueryMaker().eq(Product.FQ_FIELD_PRODUCT_NAME, "Lanfeust").end(); + WikittyQueryResult<Product> results1 = wikittyClient.findAllByQuery(Product.class, query1); + Assert.assertEquals(1, results1.getTotalResult()); + + WikittyQuery query2 = new WikittyQueryMaker().eq(Product.FQ_FIELD_PRODUCT_NAME, "lanfeust").end(); + WikittyQueryResult<Product> results2 = wikittyClient.findAllByQuery(Product.class, query2); + Assert.assertEquals(0, results2.getTotalResult()); + + WikittyQuery query3 = new WikittyQueryMaker().like(Product.FQ_FIELD_PRODUCT_NAME, "Lanfeust").end(); + WikittyQueryResult<Product> results3 = wikittyClient.findAllByQuery(Product.class, query3); + Assert.assertEquals(1, results3.getTotalResult()); + + WikittyQuery query4 = new WikittyQueryMaker().like(Product.FQ_FIELD_PRODUCT_NAME, "lanfeust").end(); + WikittyQueryResult<Product> results4 = wikittyClient.findAllByQuery(Product.class, query4); + Assert.assertEquals(1, results4.getTotalResult()); + } + + @Test + public void testQueryParserLowerCaseSearch() { + assumeTrueSearchEngineCanRunTest(); // lower case + + WikittyQuery query1 = WikittyQueryParser.parse("Product.name=Lanfeust"); + WikittyQueryResult<Product> results1 = wikittyClient.findAllByQuery(Product.class, query1); + Assert.assertEquals(1, results1.getTotalResult()); + + WikittyQuery query2 = WikittyQueryParser.parse("Product.name=lanfeust"); + WikittyQueryResult<Product> results2 = wikittyClient.findAllByQuery(Product.class, query2); + Assert.assertEquals(0, results2.getTotalResult()); + + WikittyQuery query3 = WikittyQueryParser.parse("Product.name LIKE Lanfeust"); + WikittyQueryResult<Product> results3 = wikittyClient.findAllByQuery(Product.class, query3); + Assert.assertEquals(1, results3.getTotalResult()); + + WikittyQuery query4 = WikittyQueryParser.parse("Product.name LIKE lanfeust"); + WikittyQueryResult<Product> results4 = wikittyClient.findAllByQuery(Product.class, query4); + Assert.assertEquals(1, results4.getTotalResult()); + } + + /** + * Test sort on wildcard fields. + */ + @Test + public void testSearchWithSort1() { + assumeTrueSearchEngineCanRunTest(); // sorting + + WikittyQuery query1 = WikittyQueryParser.parse("*.name=*"); + // FIXME uncomment query1.setSortAscending("*.name"); + WikittyQueryResult<Product> results1 = wikittyClient.findAllByQuery(Product.class, query1); + Assert.assertEquals(18, results1.getTotalResult()); + } + + /** + * Creer une nouvelle extension avec des données non ordonnées et fait + * une recherche triée dessus. + */ + @Test + public void testSearchWithSort2() { + assumeTrueSearchEngineCanRunTest(); // sorting + + //Create ext sortable + String sortableExtName = "sortable"; + String numFieldName = "num"; + WikittyExtension sortable = ExtensionFactory.create(sortableExtName, "1.0") + .addField(numFieldName, WikittyTypes.NUMERIC) + .extension(); + wikittyClient.storeExtension(sortable); + + List<Integer> expected = new ArrayList<Integer>(); + expected.add(10); + expected.add(1); + expected.add(7); + + //Create wikitty sortable + for (Integer i : expected) { + Wikitty w = new WikittyImpl(); + w.addExtension(sortable); + w.setField(sortableExtName, numFieldName, i); + wikittyClient.store(w); + + } + Collections.sort(expected); + WikittyQuery query2 = new WikittyQueryMaker().exteq(sortableExtName).end(); + // FIXME uncomment query2.setSortAscending(WikittyUtil.getFQFieldName(sortableExtName, numFieldName)); + WikittyQueryResult<Wikitty> results2 = wikittyClient.findAllByQuery(Wikitty.class, query2); + + List<Integer> resulted = new ArrayList<Integer>(); + for (Wikitty w : results2.getAll()) { + resulted.add(w.getFieldAsInt(sortableExtName, numFieldName)); + } + Assert.assertEquals(expected, resulted); + } + + /** + * Test sort on test data. + */ + @Test + public void testSearchWithSortTestData() { + assumeTrueSearchEngineCanRunTest(); // sorting + + WikittyQuery query1 = WikittyQueryParser.parse("Product.price <= 100"); + query1.setSortDescending(Product.ELEMENT_FIELD_PRODUCT_PRICE); + WikittyQueryResult<Product> results1 = wikittyClient.findAllByQuery(Product.class, query1); + Assert.assertEquals(100, results1.get(0).getPriceFromProduct()); + Assert.assertEquals(42, results1.get(1).getPriceFromProduct()); + Assert.assertEquals(15, results1.get(2).getPriceFromProduct()); + Assert.assertEquals(13, results1.get(3).getPriceFromProduct()); + } + + /** + * Test de la selection et de la pagination. + * @throws IOException + */ + @Test + public void testPaginedSearchSelect() throws IOException { + assumeTrueSearchEngineCanRunTest(); // pagination + importBooks(); + + // first + WikittyQuery query1 = new WikittyQueryMaker() + .select(Product.ELEMENT_FIELD_PRODUCT_PRICE) + .exteq(Product.EXT_PRODUCT).end(); + query1.setSortAscending(Product.ELEMENT_FIELD_PRODUCT_PRICE); + query1.setFirst(0); + query1.setLimit(2); + WikittyQueryResult<String> results1 = wikittyClient.findAllByQuery(query1); + // 17 books, but only 11 differents prices ? + Assert.assertEquals(11, results1.getTotalResult()); + Assert.assertEquals(2, results1.getAll().size()); + // FIXME echatellier 20120125 fails because of "13" != "13.0" (integer in test) + Assert.assertEquals(13, results1.get(0)); + + // second + query1.setFirst(0); + query1.setLimit(-1); + results1 = wikittyClient.findAllByQuery(query1); + Assert.assertEquals(17, results1.getTotalResult()); + Assert.assertEquals(17, results1.getAll().size()); + + // third + query1.setFirst(0); + query1.setLimit(0); + results1 = wikittyClient.findAllByQuery(query1); + Assert.assertEquals(17, results1.getTotalResult()); + Assert.assertEquals(0, results1.getAll().size()); + } } Deleted: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java 2012-01-25 10:21:09 UTC (rev 1361) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/AbstractSearchTest.java 2012-01-25 13:01:55 UTC (rev 1362) @@ -1,492 +0,0 @@ -/* - * #%L - * Wikitty :: api - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2012 CodeLutin, Chatellier Eric - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Lesser Public License for more details. - * - * You should have received a copy of the GNU General Lesser Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/lgpl-3.0.html>. - * #L% - */ -package org.nuiton.wikitty.api; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.Assert; -import org.junit.Assume; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.nuiton.wikitty.WikittyProxy; -import org.nuiton.wikitty.WikittyService; -import org.nuiton.wikitty.WikittyUtil; -import org.nuiton.wikitty.test.Category; -import org.nuiton.wikitty.test.CategoryImpl; -import org.nuiton.wikitty.entities.ExtensionFactory; -import org.nuiton.wikitty.entities.FieldType; -import org.nuiton.wikitty.test.Product; -import org.nuiton.wikitty.test.ProductImpl; -import org.nuiton.wikitty.entities.Wikitty; -import org.nuiton.wikitty.entities.WikittyExtension; -import org.nuiton.wikitty.entities.WikittyImpl; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.PagedResult; -import org.nuiton.wikitty.search.Search; -import org.nuiton.wikitty.search.operators.Element; -import org.nuiton.wikitty.search.operators.Like; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.nuiton.wikitty.entities.WikittyTypes; - -/** - * User: couteau - * Date: 05/04/11 - */ -public abstract class AbstractSearchTest { - - protected final static Log log = LogFactory.getLog(AbstractSearchTest.class); - - public static final String EXT_PRODUCT = "Product"; - public static final String EXT_CATEGORY = "Category"; - public static final String PRODUCT_PRICE = "price"; - public static final String PRODUCT_NAME = "name"; - public static final String PRODUCT_CATEGORY = "category"; - public static final String PRODUCT_COLOR = "colors"; - public static final String CATEGORY_NAME = "name"; - public static final String VERSION = "3.0"; - public static String W_ID =""; - public static String W_ENTITY_ID =""; - - protected WikittyProxy proxy = new WikittyProxy(getWikittyService()); - - @Before - public void initData(){ - - /////////////////////////////////////////////////////////////////////// - // CREATE EXTENSIONS NEEDED FOR TESTS // - /////////////////////////////////////////////////////////////////////// - - /*//Create product extension - WikittyExtension product = ExtensionFactory.create(EXT_PRODUCT, VERSION) - .addField(PRODUCT_PRICE, WikittyTypes.NUMERIC) - .addField(PRODUCT_NAME, WikittyTypes.STRING) - .addField(PRODUCT_CATEGORY, WikittyTypes.WIKITTY) - .addField(PRODUCT_COLOR, WikittyTypes.STRING).maxOccur(Integer.MAX_VALUE) - .extension(); - proxy.storeExtension(product); - - //Create category extension - WikittyExtension category = ExtensionFactory.create(EXT_CATEGORY, VERSION) - .addField(CATEGORY_NAME, WikittyTypes.STRING) - .extension(); - proxy.storeExtension(category);*/ - - /////////////////////////////////////////////////////////////////////// - // CREATE CATEGORIES // - /////////////////////////////////////////////////////////////////////// - - //Create wikitty category named "Hardware" - /*Wikitty category1 = new WikittyImpl(); - category1.addExtension(category); - category1.setField(EXT_CATEGORY, CATEGORY_NAME, "HardWare"); - proxy.store(category1); - - //Create wikitty category named "Wrong category" - Wikitty category2 = new WikittyImpl(); - category2.addExtension(category); - category2.setField(EXT_CATEGORY, CATEGORY_NAME, "Wrong category"); - proxy.store(category2); - - /////////////////////////////////////////////////////////////////////// - // CREATE PRODUCTS // - /////////////////////////////////////////////////////////////////////// - - //Create product named Paint, price is 20 category is category1 - Wikitty product1 = new WikittyImpl(); - product1.addExtension(product); - product1.setField(EXT_PRODUCT, PRODUCT_NAME, "Paint"); - product1.setField(EXT_PRODUCT, PRODUCT_PRICE, 20); - product1.setField(EXT_PRODUCT, PRODUCT_CATEGORY, category1.getId());*/ - Set<String> colors1 = new HashSet<String>(); - colors1.add("Blue"); - colors1.add("Black"); - /*product1.setField(EXT_PRODUCT, PRODUCT_COLOR, colors1); - proxy.store(product1);*/ - - //Create product named Screwdriver, price is 3, category is category2 - /*Wikitty product2 = new WikittyImpl(); - product2.addExtension(product); - product2.setField(EXT_PRODUCT, PRODUCT_NAME, "Screwdriver"); - product2.setField(EXT_PRODUCT, PRODUCT_PRICE, 3); - product2.setField(EXT_PRODUCT, PRODUCT_CATEGORY, category2.getId());*/ - Set<String> colors2 = new HashSet<String>(); - colors2.add("Red"); - colors2.add("Black"); - /*product2.setField(EXT_PRODUCT, PRODUCT_COLOR, colors2); - proxy.store(product2);*/ - - //Create product named Paint Blue, price is 22, category is category2 - /*Wikitty product3 = new WikittyImpl(); - product3.addExtension(product); - product3.setField(EXT_PRODUCT, PRODUCT_NAME, "Paint Blue"); - product3.setField(EXT_PRODUCT, PRODUCT_PRICE, 22); - product3.setField(EXT_PRODUCT, PRODUCT_CATEGORY, category2.getId());*/ - Set<String> colors3 = new HashSet<String>(); - colors3.add("Blue"); - /*product3.setField(EXT_PRODUCT, PRODUCT_COLOR, colors3); - proxy.store(product3);*/ - - /*W_ID = product3.getId();*/ - - /////////////////////////////////////////////////////////////////////// - // CREATE CATEGORIES ENTITIES // - /////////////////////////////////////////////////////////////////////// - - //Create wikitty category named "Hardware" - Category Category1 = new CategoryImpl(); - Category1.setName("HardWare"); - proxy.store(Category1); - - //Create wikitty category named "Wrong category" - Category Category2 = new CategoryImpl(); - Category2.setName("Wrong category"); - proxy.store(Category2); - - /////////////////////////////////////////////////////////////////////// - // CREATE PRODUCTS ENTITIES // - /////////////////////////////////////////////////////////////////////// - - //Create product named Paint, price is 20 category is category1 - Product Product1 = new ProductImpl(); - Product1.setName("Paint"); - Product1.setPriceFromProduct(20); - Product1.setCategory(Category1.getWikittyId()); - Product1.setColors(colors1); - proxy.store(Product1); - - //Create product named Screwdriver, price is 3, category is category2 - Product Product2 = new ProductImpl(); - Product2.setName("Screwdriver"); - Product2.setPriceFromProduct(3); - Product2.setCategory(Category2.getWikittyId()); - Product2.setColors(colors2); - proxy.store(Product2); - - //Create product named Paint Blue, price is 22, category is category2 - Product Product3 = new ProductImpl(); - Product3.setName("Paint Blue"); - Product3.setPriceFromProduct(22); - Product3.setCategory(Category2.getWikittyId()); - Product3.setColors(colors3); - proxy.store(Product3); - - W_ENTITY_ID = Product3.getWikittyId(); - - } - - protected void assumeNotYetImplementedInMemory() { - boolean isInMomory = true; - if (isInMomory) { - log.warn("Not yet implemented in memory, skipping"); - } - Assume.assumeTrue(!isInMomory); - } - - @Test - public void testSearchAllLowerCase() { - // FIXME implement it in memory - assumeNotYetImplementedInMemory(); - { - Criteria criteria = Search.query().eq("Category.name", "HardWare").criteria(); - PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); - assertPagedResultSizeEquals(1, pagedResult); - } - { - Criteria criteria = Search.query().eq("Category.name", "hardware").criteria(); - PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); - assertPagedResultSizeEquals(0, pagedResult); - } - { - Criteria criteria = Search.query().like("Category.name", "HardWare", Like.SearchAs.ToLowerCase).criteria(); - PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); - assertPagedResultSizeEquals(1, pagedResult); - } - { - Criteria criteria = Search.query().like("Category.name", "hardware", Like.SearchAs.ToLowerCase).criteria(); - PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); - assertPagedResultSizeEquals(1, pagedResult); - } - { - Criteria criteria = Search.query().like("Category.name", "HardWare", Like.SearchAs.AsText).criteria(); - PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); - assertPagedResultSizeEquals(1, pagedResult); - } - { - Criteria criteria = Search.query().like("Category.name", "hardware", Like.SearchAs.AsText).criteria(); - PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria); - assertPagedResultSizeEquals(1, pagedResult); - } - } - - @Test - public void testEntitiesSearchAllLowerCase() { - // FIXME implement it in memory - assumeNotYetImplementedInMemory(); - { - Criteria criteria = Search.query().eq(Category.FQ_FIELD_CATEGORY_NAME, "HardWare").criteria(); - PagedResult<Category> pagedResult = proxy.findAllByCriteria(Category.class, criteria); - assertPagedResultSizeEquals(1, pagedResult); - } - { - Criteria criteria = Search.query().eq(Category.FQ_FIELD_CATEGORY_NAME, "hardware").criteria(); - PagedResult<Category> pagedResult = proxy.findAllByCriteria(Category.class, criteria); - assertPagedResultSizeEquals(0, pagedResult); - } - { - Criteria criteria = Search.query().like(Category.FQ_FIELD_CATEGORY_NAME, "HardWare", Like.SearchAs.ToLowerCase).criteria(); - PagedResult<Category> pagedResult = proxy.findAllByCriteria(Category.class, criteria); - assertPagedResultSizeEquals(1, pagedResult); - } - { - Criteria criteria = Search.query().like(Category.FQ_FIELD_CATEGORY_NAME, "hardware", Like.SearchAs.ToLowerCase).criteria(); - PagedResult<Category> pagedResult = proxy.findAllByCriteria(Category.class, criteria); - assertPagedResultSizeEquals(1, pagedResult); - } - { - Criteria criteria = Search.query().like(Category.FQ_FIELD_CATEGORY_NAME, "HardWare", Like.SearchAs.AsText).criteria(); - PagedResult<Category> pagedResult = proxy.findAllByCriteria(Category.class, criteria); - assertPagedResultSizeEquals(1, pagedResult); - } - { - Criteria criteria = Search.query().like(Category.FQ_FIELD_CATEGORY_NAME, "hardware", Like.SearchAs.AsText).criteria(); - PagedResult<Category> pagedResult = proxy.findAllByCriteria(Category.class, criteria); - assertPagedResultSizeEquals(1, pagedResult); - } - } - - @Test - public void testSearchWithSort() { - // FIXME implement it in memory - assumeNotYetImplementedInMemory(); - { - Criteria criteria = Search.query().like("*.name", "*").criteria(); - criteria.setSortAscending("*.name"); - try { - proxy.findAllByCriteria(criteria); - } catch (Exception eee) { - eee.printStackTrace(); - Assert.fail(); - } - } - //Create ext sortable - String sortableExtName = "sortable"; - String numFieldName = "num"; - WikittyExtension sortable = ExtensionFactory.create(sortableExtName, "1.0") - .addField(numFieldName, WikittyTypes.NUMERIC) - .extension(); - proxy.storeExtension(sortable); - - List<Integer> expected = new ArrayList<Integer>(); - expected.add(10); - expected.add(1); - expected.add(7); - - //Create wikitty sortable - for (Integer i : expected) { - Wikitty w = new WikittyImpl(); - w.addExtension(sortable); - w.setField(sortableExtName, numFieldName, i); - proxy.store(w); - - } - Collections.sort(expected); - { - Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, sortableExtName).criteria(); - criteria.setSortAscending(WikittyUtil.getFQFieldName(sortableExtName, numFieldName)); - PagedResult<Wikitty> result = proxy.findAllByCriteria(criteria); - - List<Integer> resulted = new ArrayList<Integer>(); - for (Wikitty w : result) { - resulted.add(w.getFieldAsInt(sortableExtName, numFieldName)); - } - Assert.assertEquals(expected, resulted); - } - } - - @Test - public void testSelect() throws Exception { - - // FIXME sletellier 20110504 : Not yet implemented inMemorySearchTest, assuming - assumeNotYetImplementedInMemory(); - - Search query = Search.query().bw("Product.price", "15", "25") - .sw("Product.name", "Paint"); - Criteria selectCriteria = query.criteria(); - selectCriteria.setSelect("Product.category"); - - PagedResult<Wikitty> results = proxy.findAllByCriteria(selectCriteria); - assertPagedResultSizeEquals(2, results); - - //Test with an associated search that returns nothing - query = Search.query().bw("Product.price", "15", "25") - .sw("Product.name", "Paint"); - selectCriteria = query.criteria(); - selectCriteria.setSelect("Product.name"); - - results = proxy.findAllByCriteria(selectCriteria); - assertPagedResultSizeEquals(0, results); - } - - @Test - public void testEntitiesSelect() throws Exception { - - // FIXME sletellier 20110504 : Not yet implemented inMemorySearchTest, assuming - assumeNotYetImplementedInMemory(); - - Search query = Search.query().bw(Product.FQ_FIELD_PRODUCT_PRICE, "15", "25") - .sw(Product.FQ_FIELD_PRODUCT_NAME, "Paint"); - Criteria selectCriteria = query.criteria(); - selectCriteria.setSelect(Product.FQ_FIELD_PRODUCT_CATEGORY); - - PagedResult<Category> results = proxy.findAllByCriteria(Category.class, selectCriteria); - assertPagedResultSizeEquals(2, results); - - //Test with an associated search that returns nothing - query = Search.query().bw(Product.FQ_FIELD_PRODUCT_PRICE, "15", "25") - .sw(Product.FQ_FIELD_PRODUCT_NAME, "Paint"); - selectCriteria = query.criteria(); - selectCriteria.setSelect(Product.FQ_FIELD_PRODUCT_NAME); - - results = proxy.findAllByCriteria(Category.class, selectCriteria); - assertPagedResultSizeEquals(0, results); - } - -// TODO sletellier 20111027 : try with more datas - @Test - public void testPaginedSelect() throws Exception { - - // FIXME sletellier 20110504 : Not yet implemented inMemorySearchTest, assuming - assumeNotYetImplementedInMemory(); - - Search query = Search.query().exteq(EXT_PRODUCT); - Criteria selectCriteria = query.criteria(); - selectCriteria.setSelect("Product.category"); - selectCriteria.setFirstIndex(1); - selectCriteria.setEndIndex(1); - - PagedResult<Wikitty> results = proxy.findAllByCriteria(selectCriteria); - assertPaginedPagedResultSizeEquals(1, 2, results); - - query = Search.query().exteq(EXT_PRODUCT); - selectCriteria = query.criteria(); - selectCriteria.setSelect("Product.category"); - selectCriteria.setFirstIndex(0); - // No limit - selectCriteria.setEndIndex(-1); - - results = proxy.findAllByCriteria(selectCriteria); - assertPaginedPagedResultSizeEquals(2, 2, results); - - query = Search.query().exteq(EXT_PRODUCT); - selectCriteria = query.criteria(); - selectCriteria.setSelect("Product.category"); - selectCriteria.setFirstIndex(0); - selectCriteria.setEndIndex(0); - - results = proxy.findAllByCriteria(selectCriteria); - assertPaginedPagedResultSizeEquals(1, 2, results); - - query = Search.query().exteq(EXT_PRODUCT); - selectCriteria = query.criteria(); - selectCriteria.setSelect("Product.category"); - selectCriteria.setFirstIndex(0); - selectCriteria.setEndIndex(1); - - results = proxy.findAllByCriteria(selectCriteria); - assertPaginedPagedResultSizeEquals(2, 2, results); - } - -// TODO sletellier 20111027 : try with more datas - @Test - public void testPaginedEntitiesSelect() throws Exception { - - // FIXME sletellier 20110504 : Not yet implemented inMemorySearchTest, assuming - assumeNotYetImplementedInMemory(); - - Search query = Search.query().exteq(Product.EXT_PRODUCT); - Criteria selectCriteria = query.criteria(); - selectCriteria.setSelect(Product.FQ_FIELD_PRODUCT_CATEGORY); - selectCriteria.setFirstIndex(1); - selectCriteria.setEndIndex(1); - - PagedResult<Category> results = proxy.findAllByCriteria(Category.class, selectCriteria); - assertPaginedPagedResultSizeEquals(1, 2, results); - - query = Search.query().exteq(Product.EXT_PRODUCT); - selectCriteria = query.criteria(); - selectCriteria.setSelect(Product.FQ_FIELD_PRODUCT_CATEGORY); - selectCriteria.setFirstIndex(0); - // No limit - selectCriteria.setEndIndex(-1); - - results = proxy.findAllByCriteria(Category.class, selectCriteria); - assertPaginedPagedResultSizeEquals(2, 2, results); - - query = Search.query().exteq(Product.EXT_PRODUCT); - selectCriteria = query.criteria(); - selectCriteria.setSelect(Product.FQ_FIELD_PRODUCT_CATEGORY); - selectCriteria.setFirstIndex(0); - selectCriteria.setEndIndex(0); - - results = proxy.findAllByCriteria(Category.class, selectCriteria); - assertPaginedPagedResultSizeEquals(1, 2, results); - - query = Search.query().exteq(Product.EXT_PRODUCT); - selectCriteria = query.criteria(); - selectCriteria.setSelect(Product.FQ_FIELD_PRODUCT_CATEGORY); - selectCriteria.setFirstIndex(0); - selectCriteria.setEndIndex(1); - - results = proxy.findAllByCriteria(Category.class, selectCriteria); - assertPaginedPagedResultSizeEquals(2, 2, results); - } - - @Test - public void testComplexQueries() throws Exception { - //TODO JC-07-04-2011 Write test - } - - // Dont use this method if criteria use pagination - protected void assertPagedResultSizeEquals(int expected, PagedResult result) { - Assert.assertEquals(expected, result.size()); - Assert.assertEquals(expected, result.getNumFound()); - } - - // Use this method if criteria use pagination - protected void assertPaginedPagedResultSizeEquals(int expected, int expectedNumFound, PagedResult result) { - Assert.assertEquals(expected, result.size()); - Assert.assertEquals(expectedNumFound, result.getNumFound()); - } - - //TODO JC-07-04-2011 Write test on sortBy, facets, and with other types (date,...) - - public abstract WikittyService getWikittyService(); -}