r1385 - in trunk: wikitty-api/src/test/java/org/nuiton/wikitty wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr
Author: echatellier Date: 2012-01-27 16:27:38 +0100 (Fri, 27 Jan 2012) New Revision: 1385 Url: http://nuiton.org/repositories/revision/wikitty/1385 Log: Remove SolrSearchTest (same test alreay done in wikitty client test) Removed: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.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-27 15:02:09 UTC (rev 1384) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/WikittyClientTest.java 2012-01-27 15:27:38 UTC (rev 1385) @@ -31,7 +31,6 @@ import java.text.ParseException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashSet; @@ -73,7 +72,6 @@ import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.PagedResult; import org.nuiton.wikitty.search.Search; -import org.nuiton.wikitty.search.TreeNodeResult; import org.nuiton.wikitty.services.WikittyEvent; import org.nuiton.wikitty.test.Category; import org.nuiton.wikitty.test.Product; @@ -1594,6 +1592,61 @@ } /** + * Test les recherches avec les accents et les charactères spéciaux. + */ + @Test + public void testSearchWithAccent() { + WikittyGroupImpl group = new WikittyGroupImpl(); + group.setName("coucou"); + WikittyGroupImpl groupAccent = new WikittyGroupImpl(); + groupAccent.setName("çéçà"); + + wikittyClient.store(group, groupAccent); + + { + // sans accent + WikittyQuery query = new WikittyQueryMaker().keyword("coucou").end(); + WikittyQueryResult<String> result = wikittyClient.findAllByQuery(query); + Assert.assertEquals(1, result.size()); + } + { + // avec accent + WikittyQuery query = new WikittyQueryMaker().keyword("çéçà").end(); + WikittyQueryResult<String> result = wikittyClient.findAllByQuery(query); + Assert.assertEquals(1, result.size()); + } + { + // avec accent specifiquement sur le champs name + WikittyQuery query = new WikittyQueryMaker().eq(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME, "çéçà").end(); + WikittyQueryResult<String> result = wikittyClient.findAllByQuery(query); + Assert.assertEquals(1, result.size()); + } + { + // avec accent specifiquement sur le champs name mais sans accent pour la recherche + // specifique à solr + WikittyQuery query = new WikittyQueryMaker().eq(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME + "_c_t", "ceca").end(); + WikittyQueryResult<String> result = wikittyClient.findAllByQuery(query); + Assert.assertEquals(1, result.size()); + } + { + // avec accent specifiquement sur le champs name + // mais sans accent pour la recherche + // et et majuscule + WikittyQuery query = new WikittyQueryMaker().eq(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME + "_c_t", "CECA").end(); + WikittyQueryResult<String> result = wikittyClient.findAllByQuery(query); + Assert.assertEquals(1, result.size()); + } + { + // avec accent specifiquement sur le champs name + // mais sans accent pour la recherche + // et et majuscule + WikittyQuery query = new WikittyQueryMaker().like(WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME, "ceca").end(); + WikittyQueryResult<String> result = wikittyClient.findAllByQuery(query); + Assert.assertEquals(1, result.size()); + } + } + + /** * Test de la selection et de la pagination. * @throws IOException */ @@ -1639,7 +1692,7 @@ WikittyExtension ext = new WikittyExtension("Test", "1.0", // version WikittyUtil.tagValuesToMap(" version=\"1.0\""), // tag/values - (List)null, + (List<String>)null, WikittyUtil.buildFieldMapExtension( // building field map "Numeric number", "String string", Deleted: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java =================================================================== --- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java 2012-01-27 15:02:09 UTC (rev 1384) +++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java 2012-01-27 15:27:38 UTC (rev 1385) @@ -1,631 +0,0 @@ -/* - * #%L - * Wikitty :: wikitty-solr-impl - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin - * %% - * 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.storage.solr; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collections; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; -import org.nuiton.wikitty.search.Criteria; -import org.nuiton.wikitty.search.FacetTopic; -import org.nuiton.wikitty.search.PagedResult; -import org.nuiton.wikitty.entities.Wikitty; -import org.nuiton.wikitty.entities.WikittyExtension; -import org.nuiton.wikitty.entities.WikittyImpl; -import org.nuiton.wikitty.WikittyUtil; -import org.nuiton.wikitty.conform.AbstractTestConformance; -import org.nuiton.wikitty.entities.WikittyGroup; -import org.nuiton.wikitty.entities.WikittyGroupImpl; -import org.nuiton.wikitty.search.operators.Element; -import org.nuiton.wikitty.search.RestrictionHelper; -import org.nuiton.wikitty.search.Search; -import org.nuiton.wikitty.search.operators.Like; -import org.nuiton.wikitty.services.WikittyServiceEnhanced; - -public class SolrSearchTest extends AbstractTestSolr { - - private static final Log log = LogFactory.getLog(SolrSearchTest.class); - - protected WikittyExtension extCategory; - protected WikittyExtension extProduct; - protected WikittyExtension extTest; - - @BeforeClass - public static void initTests() throws Exception { - - SolrTestHelper.initTests(instance); - - ws = new WikittyServiceEnhanced(new WikittyServiceSolr(instance)); - } - - @Before - public void createTestData() throws Exception { - extCategory = new WikittyExtension("Category", "1", - WikittyUtil.buildFieldMapExtension( - "String name") - ); - - Wikitty[] wikitties = createWikitties(extCategory, new String[] { - "name = Library", - "name = Stuff", - "name = Hardware", - "name = Staff", - "name = FooBar" - }); - - String hardwareCategoryId = wikitties[2].getId(); - String staffCategoryId = wikitties[3].getId(); - - extProduct = new WikittyExtension("Product", "1", - WikittyUtil.buildFieldMapExtension( - "String name", - "Numeric price", - "String value", - "String optional", - "Wikitty category") - ); - - createWikitties(extProduct, new String[] { - "name = Paint blue," + - "price = 20," + - "value = 1," + - "category = " + hardwareCategoryId, - - "name = Other Paint blue," + - "price = 20," + - "value = 1," + - "optional = test," + - "category = " + hardwareCategoryId, - - "name = Paint red," + - "price = 35," + - "value = 1," + - "optional = test," + - "category = " + hardwareCategoryId, - - "name = Paint Staff blue," + - "price = 20," + - "value = 2," + - "category = " + staffCategoryId, - - "name = Paint green," + - "price = 18," + - "value = 1," + - "category = " + hardwareCategoryId, - }); - - extTest = new WikittyExtension("Test", "1", - WikittyUtil.buildFieldMapExtension( - "String name", - "String description", - "Numeric amount", - "Date buildDate", - "Boolean enabled") - ); - - createWikitties(extTest, new String[] { - "name = table," + - "amount = 003300," + - "buildDate = " + AbstractTestConformance.format("23/01/1982") + "," + - "enabled = false", - - "name = chaise," + - "amount = 113311," + - "buildDate = " + AbstractTestConformance.format("26/09/2009") + "," + - "enabled = false", - - - "name = bureau," + - "description=One use for WordDelimiterFilter is to helped match words with different delimiters.," + - "amount = 223322," + - "buildDate = " + AbstractTestConformance.format("25/12/2029") + "," + - "enabled = true" - }); - } - - private Wikitty[] createWikitties(WikittyExtension lonelyExtension, String[] wValues) { - ArrayList<Wikitty> result = new ArrayList<Wikitty>(); - for ( String wValue : wValues ) { - Wikitty w = AbstractTestConformance.createWikitty( wValue, lonelyExtension.getName(), lonelyExtension ); - result.add( w ); - } - ws.store(null, result); - return result.toArray( new Wikitty[]{} ); - } - - @Test - public void testBasicSearch() throws Exception { - Criteria criteria = Search.query() - .eq("Test.name_s", "chaise") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals(1, list.size()); - - Wikitty w = ws.restore(null, list.get(0)); - assertEquals("chaise", w.getFieldAsString("Test", "name")); - assertEquals(113311, w.getFieldAsInt("Test", "amount")); - assertEquals(AbstractTestConformance.parse("26/09/2009"), - w.getFieldAsDate("Test", "buildDate")); - } - - @Test - public void testContainsSearch() throws Exception { - { - Criteria criteria = Search.query() - .contains("Product.price", "20") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals(3, list.size()); - } - { - Criteria criteria = Search.query() - .contains("Product.price", "20", "30", "35") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals(0, list.size()); - } - } - - @Test - public void testInSearch() throws Exception { - { - Criteria criteria = Search.query() - .in("Product.price", "20") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals(3, list.size()); - } - { - Criteria criteria = Search.query() - .in("Product.price", "20", "30", "35") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals(4, list.size()); - } - { - Criteria criteria = Search.query() - .in("Product.price", "25", "30", "40") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals(0, list.size()); - } - } - - @Test - public void testAdvancedSearch() throws Exception { - Criteria criteria = Search.query() - .eq("Product.value", "1") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals(4, list.size()); - - criteria = Search.query() - .eq("Product.value", "1") - .bw("Product.price", "15", "25") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - - result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - list = result.getAll(); - assertEquals(3, list.size()); - } - - @Test - public void testAssociativeSearch() throws Exception { - Search search = Search.query() - .bw("Product.price", "15", "25") - .sw("Product.name", "Paint"); - search.associated( "Product.category") - .eq("Category.name", "Hardware"); - Criteria criteria = search.criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals( 2, list.size() ); - } - - @Test - public void testKeywordSearch() throws Exception { - Criteria criteria = Search.query().keyword("bureau").criteria(); - PagedResult<String> pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> result = pagedResult.getAll(); - assertEquals(1, result.size()); - - criteria = Search.query().keyword("nothing").criteria(); - pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - result = pagedResult.getAll(); - assertEquals(0, result.size()); - - // il faut etre un peu restrictif sur la chaine recherchee - // sinon on peut trouve la chaine dans un id et donc fausser le test :( - // donc remplacement de la chaine *33* par *ai* - // *ai* matches 'paint' et 'chaise' - criteria = Search.query().keyword("*ai*").criteria(); - pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - result = pagedResult.getAll(); - assertEquals(6, result.size()); - - criteria = Search.query() - .keyword("*33*") - .eq("Test.name", "bureau") - .criteria(); - pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - result = pagedResult.getAll(); - assertEquals(1, result.size()); - } - - @Test - public void testFacetOnExtension() throws Exception { - Criteria criteria = Search.query().keyword("*").criteria(); - criteria.addFacetField(Element.ELT_EXTENSION); - - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - assertEquals(13, result.getAll().size()); - - List<FacetTopic> topics = result.getTopic(Element.ELT_EXTENSION); - for (FacetTopic topic : topics) { - String topicName = topic.getTopicName(); - int topicCount = topic.getCount(); - - if(topicName.equals("Category")) { - assertEquals(5, topicCount); - } else if(topicName.equals("Product")) { - assertEquals(5, topicCount); - } else if(topicName.equals("Test")) { - assertEquals(3, topicCount); - } - } - } - - @Test - public void testSearchOnBoolean() throws Exception { - Criteria criteria = Search.query() - .eq("Test.enabled", "true") - .criteria(); - - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - assertEquals(1, result.getNumFound()); - - criteria = Search.query() - .eq("Test.enabled", "false") - .criteria(); - - result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - assertEquals(2, result.getNumFound()); - } - - @Test - public void testSearchWithNot() throws Exception { - Search query = Search.query(); - query.not().eq("Test.name", "bureau"); - Criteria criteria = query.criteria(); - - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - assertEquals(12, result.getNumFound()); - - query = Search.query().eq("Test.amount", "003300"); - query.not().eq("Test.name", "bureau"); - criteria = query.criteria(); - - result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - assertEquals(1, result.getNumFound()); - } - - @Test - public void testFindAllByExample() throws Exception { - Wikitty example = new WikittyImpl(); - example.addExtension(extProduct); - example.setField("Product", "price", 20); - - Criteria criteria = Search.query(example).criteria(); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - - assertEquals(3, result.getNumFound()); - } - - @Test - public void testFacet() throws Exception { - Criteria criteria = Search.query().eq(Element.ELT_EXTENSION, "Product").criteria(); - criteria.addFacetField("Product.value"); - - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<FacetTopic> topics = result.getTopic("Product.value"); - for (FacetTopic topic : topics) { - String topicName = topic.getTopicName(); - int topicCount = topic.getCount(); - if("1".equals(topicName)) { - assertEquals(4, topicCount); - } else { - assertEquals(1, topicCount); - } - } - - criteria = Search.query().eq(Element.ELT_EXTENSION, "Product").criteria(); - Criteria facet1 = Search.query().eq("Product.value", "1").criteria("1"); - criteria.addFacetCriteria(facet1); - Criteria facet2 = Search.query().eq("Product.value", "2").criteria("2"); - criteria.addFacetCriteria(facet2); - - result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - - topics = result.getTopic("1"); - FacetTopic topic = topics.get(0); - String topicName = topic.getTopicName(); - int topicCount = topic.getCount(); - assertEquals("1", topicName); - assertEquals(4, topicCount); - - topics = result.getTopic("2"); - topic = topics.get(0); - topicName = topic.getTopicName(); - topicCount = topic.getCount(); - assertEquals("2", topicName); - assertEquals(1, topicCount); - } - - /** - * WARNING: as the only solr index is clear, all data in all test is reindexed. - */ - @Test - public void testSyncSearchEngine() { - Criteria criteria = new Criteria(); - criteria.setRestriction(RestrictionHelper.rTrue()); - criteria.setFirstIndex(0); - criteria.setEndIndex(0); - - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - assertEquals(13, result.getNumFound()); - - ws.syncSearchEngine(null); - - result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - assertTrue(13 <= result.getNumFound()); - } - - @Test - public void testNullSearch() { - Criteria criteria = Search.query().isNotNull("Product.optional").eq(Element.ELT_EXTENSION, "Product").criteria(); - PagedResult<String> pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> result = pagedResult.getAll(); - assertEquals(2, result.size()); - - criteria = Search.query().isNull("Product.optional").eq(Element.ELT_EXTENSION, "Product").criteria(); - pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - result = pagedResult.getAll(); - assertEquals(3, result.size()); - } - - // on ignore ce test car le like ne fonctionne plus de la même manière - // depuis qu'on a enlevé la lemmatisation - @Ignore - @Test - public void testLikeSearch() throws Exception { - Criteria criteria = Search.query().like("Category.name", "hArDwArE").criteria(); - PagedResult<String> pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> result = pagedResult.getAll(); - assertEquals(1, result.size()); - - criteria = Search.query().like("Category.name", "*wAr*").criteria(); - pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - result = pagedResult.getAll(); - assertEquals(1, result.size()); - - criteria = Search.query().like("Category.name", "Har*").criteria(); - pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - result = pagedResult.getAll(); - assertEquals(1, result.size()); - - criteria = Search.query().like("Test.description", "help").criteria(); - pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - assertEquals(1, pagedResult.getNumFound()); - - criteria = Search.query().like("Test.description", "helped").criteria(); - pagedResult = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - assertEquals(1, pagedResult.getNumFound()); - } - - // on ignore ce test car le like toLowercase devrait disparaitre et pour l'instant il ne marche pas :( -// @Ignore - @Test - public void testLikeStrict() throws Exception { - - Criteria criteria = Search.query() - .like("Product.name_s", "paint red") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals(1, list.size()); - - Wikitty w = ws.restore(null, list.get(0)); - assertEquals("Paint red", w.getFieldAsString("Product", "name")); - - criteria = Search.query() - .like("Product.name_s", "paint") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - - result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - list = result.getAll(); - assertEquals(5, list.size()); - } - - /** test that doing a search with a date criteria is possible */ - @Test - public void testSearchByDate() throws Exception { - Calendar cal = Calendar.getInstance(); - cal.set(Calendar.DAY_OF_MONTH, 20); - cal.set(Calendar.MONTH, 9); - cal.set(Calendar.YEAR, 2009); - - // this must return a date in a format understandable for solr - // pattern in WikittyUtil has to be compatible - String dateString = WikittyUtil.formatDate(cal.getTime()); - - Criteria criteria = Search.query() - .gt("Test.buildDate", dateString) - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - - // If an exception is thrown, check that the pattern in WikittyUtil - // is compatible with solr, in particular that the trailing Z - // is present and respect http://wiki.apache.org/solr/IndexingDates - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - - - List<String> list = result.getAll(); - assertEquals(1, list.size()); - } - - @Test - public void testDateSearch() throws Exception { - Criteria criteria = Search.query() - .bw("Test.buildDate_dt", AbstractTestConformance.format("26/09/2009"), Criteria.ALL_VALUES) - .criteria(); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals(2, list.size()); - - criteria = Search.query() - .ge("Test.buildDate_dt", AbstractTestConformance.format("26/09/2009")) - .criteria(); - result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - list = result.getAll(); - assertEquals(2, list.size()); - } - - @Test - public void testAccent() throws Exception { - WikittyGroupImpl group = new WikittyGroupImpl(); - group.setName("coucou"); - WikittyGroupImpl groupAccent = new WikittyGroupImpl(); - groupAccent.setName("çéçà"); - - ws.store(null, group.getWikitty()); - ws.store(null, groupAccent.getWikitty()); - - { - // sans accent - Criteria criteria = Search.query().keyword("coucou").criteria(); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - Assert.assertEquals(1, result.size()); - } - { - // avec accent - Criteria criteria = Search.query().keyword("çéçà").criteria(); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - Assert.assertEquals(1, result.size()); - } - { - // avec accent specifiquement sur le champs name - Criteria criteria = Search.query().eq( - WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME,"çéçà").criteria(); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - Assert.assertEquals(1, result.size()); - } - { - // avec accent specifiquement sur le champs name mais sans accent pour la recherche - Criteria criteria = Search.query().eq( - WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME - + WikittySolrConstant.SUFFIX_STRING - + WikittySolrConstant.SUFFIX_STRING_FULLTEXT, "ceca").criteria(); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - Assert.assertEquals(1, result.size()); - } - { - // avec accent specifiquement sur le champs name - // mais sans accent pour la recherche - // et et majuscule - Criteria criteria = Search.query().eq( - WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME - + WikittySolrConstant.SUFFIX_STRING - + WikittySolrConstant.SUFFIX_STRING_FULLTEXT, "CECA").criteria(); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - Assert.assertEquals(1, result.size()); - } - { - // avec accent specifiquement sur le champs name - // mais sans accent pour la recherche - // et et majuscule - Criteria criteria = Search.query().like( - WikittyGroup.FQ_FIELD_WIKITTYGROUP_NAME, "CECA").criteria(); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - Assert.assertEquals(1, result.size()); - } - } - - @Test - public void testSearchNonSensitive() throws Exception { - Criteria criteria = Search.query() - .like("Test.name_s", "cHaIsE", Like.SearchAs.ToLowerCase) - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals(1, list.size()); - - Wikitty w = ws.restore(null, list.get(0)); - assertEquals("chaise", w.getFieldAsString("Test", "name")); - assertEquals(113311, w.getFieldAsInt("Test", "amount")); - assertEquals(AbstractTestConformance.parse("26/09/2009"), w.getFieldAsDate("Test", "buildDate")); - - criteria = Search.query() - .unlike("Test.name_s", "cHaIsE", Like.SearchAs.ToLowerCase) - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - list = result.getAll(); - assertEquals(12, list.size()); - } -}
participants (1)
-
echatellier@users.nuiton.org