Repository: incubator-geode Updated Branches: refs/heads/develop ec5578a22 -> 369d4320d
GEODE-1339: Added test to validate getAllIndexes and getIndex functions for Lucene. * Added test to validate that a list of the indexes is returned if they are present in the system * validated that an empty list is returned when there are no indexes in the system. * getIndex function call with index name and region name as parameter will return the index object * Null is returned when unmatched index names / region names are used or there are no indexes in the system. Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/369d4320 Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/369d4320 Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/369d4320 Branch: refs/heads/develop Commit: 369d4320d18b0c6afdb40a36970316e64e3d7e62 Parents: ec5578a Author: nabarun <n...@pivotal.io> Authored: Mon Jun 27 15:12:28 2016 -0700 Committer: nabarun <n...@pivotal.io> Committed: Thu Jun 30 15:54:45 2016 -0700 ---------------------------------------------------------------------- .../lucene/LuceneIndexCreationDUnitTest.java | 114 ++++++++++++++++++- ...nDUnitTest.verifyXMLEmptyIndexList.cache.xml | 33 ++++++ ...nitTest.verifyXMLMultipleIndexList.cache.xml | 39 +++++++ 3 files changed, 184 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/369d4320/geode-lucene/src/test/java/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-lucene/src/test/java/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.java b/geode-lucene/src/test/java/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.java index f51c848..cec8d0e 100644 --- a/geode-lucene/src/test/java/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.java +++ b/geode-lucene/src/test/java/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.java @@ -33,13 +33,13 @@ import org.junit.runner.RunWith; import java.io.FileInputStream; import java.io.FileNotFoundException; +import java.util.Collection; import java.util.HashMap; import java.util.Map; import static com.gemstone.gemfire.cache.lucene.test.LuceneTestUtilities.*; import static junitparams.JUnitParamsRunner.$; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.Assert.*; @Category(DistributedTest.class) @RunWith(JUnitParamsRunner.class) @@ -51,6 +51,65 @@ public class LuceneIndexCreationDUnitTest extends LuceneDUnitTest { getCache().createRegionFactory(RegionShortcut.PARTITION).create(REGION_NAME); } + + @Test + @Parameters({"1", "2" , "10"}) + public void verifyThatIndexObjectsAreListedWhenPresentInTheSystem(int numberOfIndexes){ + SerializableRunnableIF createIndex = getMultipleIndexes(numberOfIndexes); + dataStore1.invoke(() -> initDataStore(createIndex)); + dataStore1.invoke(() -> verifyIndexList(numberOfIndexes)); + + dataStore2.invoke(() -> initDataStore(createIndex)); + dataStore2.invoke(() -> verifyIndexList(numberOfIndexes)); + } + + @Test + @Parameters({"1", "2" , "10"}) + public void verifyThatIndexObjectIsRetrievedWhenPresentInTheSystem(int numberOfIndexes){ + SerializableRunnableIF createIndex = getMultipleIndexes(numberOfIndexes); + dataStore1.invoke(() -> initDataStore(createIndex)); + dataStore1.invoke(() -> verifyIndexes(numberOfIndexes)); + + dataStore2.invoke(() -> initDataStore(createIndex)); + dataStore2.invoke(() -> verifyIndexes(numberOfIndexes)); + } + + @Test + public void verifyThatEmptyListIsOutputWhenThereAreNoIndexesInTheSystem(){ + dataStore1.invoke(() -> verifyIndexList(0)); + dataStore2.invoke(() -> verifyIndexList(0)); + } + + @Test + public void verifyNullIsReturnedWhenGetIndexIsCalledAndNoIndexesArePresent(){ + dataStore1.invoke(() -> { + LuceneService luceneService = LuceneServiceProvider.get(getCache()); + assertNull(luceneService.getIndex(INDEX_NAME,REGION_NAME)); + }); + + dataStore2.invoke(() -> { + LuceneService luceneService = LuceneServiceProvider.get(getCache()); + assertNull(luceneService.getIndex(INDEX_NAME,REGION_NAME)); + }); + } + + @Test + public void verifyNullIsReturnedWhenGetIndexIsCalledWithNoMatchingIndex(){ + SerializableRunnableIF createIndex = get2FieldsIndexes(); + dataStore1.invoke(() -> createIndex); + dataStore2.invoke(() -> createIndex); + dataStore1.invoke(() -> { + LuceneService luceneService = LuceneServiceProvider.get(getCache()); + assertNull(luceneService.getIndex(INDEX_NAME+"_A",REGION_NAME)); + }); + + dataStore2.invoke(() -> { + LuceneService luceneService = LuceneServiceProvider.get(getCache()); + assertNull(luceneService.getIndex(INDEX_NAME+"_A",REGION_NAME)); + }); + } + + @Test public void verifyDifferentFieldsFails() { SerializableRunnableIF createIndex1 = getFieldsIndexWithOneField(); @@ -167,6 +226,35 @@ public class LuceneIndexCreationDUnitTest extends LuceneDUnitTest { dataStore2.invoke(() -> initCache(getXmlFileForTest(cacheXmlFileBaseName + ".2"), exceptionMessage)); } + @Test + public void verifyXMLMultipleIndexList() { + dataStore1.invoke(() -> initCache(getXmlFileForTest("verifyXMLMultipleIndexList"))); + dataStore2.invoke(() -> initCache(getXmlFileForTest("verifyXMLMultipleIndexList"))); + + dataStore1.invoke(() -> verifyIndexList(2)); + dataStore2.invoke(() -> verifyIndexList(2)); + } + + @Test + public void verifyXMLMultipleIndexes() { + dataStore1.invoke(() -> initCache(getXmlFileForTest("verifyXMLMultipleIndexList"))); + dataStore2.invoke(() -> initCache(getXmlFileForTest("verifyXMLMultipleIndexList"))); + + dataStore1.invoke(() -> verifyIndexes(2)); + dataStore2.invoke(() -> verifyIndexes(2)); + } + + @Test + public void verifyXMLEmptyIndexList() { + dataStore1.invoke(() -> initCache(getXmlFileForTest("verifyXMLEmptyIndexList"))); + dataStore2.invoke(() -> initCache(getXmlFileForTest("verifyXMLEmptyIndexList"))); + + dataStore1.invoke(() -> verifyIndexList(0)); + dataStore2.invoke(() -> verifyIndexList(0)); + } + + + private final Object[] getXmlAndExceptionMessages() { return $( new Object[] { "verifyDifferentFieldsFails", CANNOT_CREATE_LUCENE_INDEX_DIFFERENT_FIELDS }, @@ -231,6 +319,28 @@ public class LuceneIndexCreationDUnitTest extends LuceneDUnitTest { }; } + private SerializableRunnableIF getMultipleIndexes(final int numberOfIndexes) { + return () -> { + LuceneService luceneService = LuceneServiceProvider.get(getCache()); + for(int count = 1 ; count <= numberOfIndexes; count++){ + luceneService.createIndex(INDEX_NAME+"_"+count, REGION_NAME, "field"+count); + } + }; + } + + private void verifyIndexList(final int expectedSize) { + LuceneService luceneService = LuceneServiceProvider.get(getCache()); + Collection<LuceneIndex> indexList = luceneService.getAllIndexes(); + assertEquals(indexList.size() , expectedSize); + } + + private void verifyIndexes(final int numberOfIndexes) { + LuceneService luceneService = LuceneServiceProvider.get(getCache()); + for(int count = 1; count <= numberOfIndexes; count++){ + assertEquals(luceneService.getIndex(INDEX_NAME+"_"+count, REGION_NAME).getName(), INDEX_NAME+"_"+count); + } + } + private SerializableRunnableIF getAnalyzersIndexWithNullField1() { return () -> { LuceneService luceneService = LuceneServiceProvider.get(getCache()); http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/369d4320/geode-lucene/src/test/resources/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.verifyXMLEmptyIndexList.cache.xml ---------------------------------------------------------------------- diff --git a/geode-lucene/src/test/resources/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.verifyXMLEmptyIndexList.cache.xml b/geode-lucene/src/test/resources/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.verifyXMLEmptyIndexList.cache.xml new file mode 100755 index 0000000..925625e --- /dev/null +++ b/geode-lucene/src/test/resources/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.verifyXMLEmptyIndexList.cache.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<cache + xmlns="http://geode.apache.org/schema/cache" + xmlns:lucene="http://geode.apache.org/schema/lucene" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://geode.apache.org/schema/cache + http://geode.apache.org/schema/cache/cache-1.0.xsd + http://geode.apache.org/schema/lucene + http://geode.apache.org/schema/lucene/lucene-1.0.xsd" + version="1.0"> + + <region name="region" refid="PARTITION_REDUNDANT"> + </region> + +</cache> http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/369d4320/geode-lucene/src/test/resources/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.verifyXMLMultipleIndexList.cache.xml ---------------------------------------------------------------------- diff --git a/geode-lucene/src/test/resources/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.verifyXMLMultipleIndexList.cache.xml b/geode-lucene/src/test/resources/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.verifyXMLMultipleIndexList.cache.xml new file mode 100755 index 0000000..ab4c211 --- /dev/null +++ b/geode-lucene/src/test/resources/com/gemstone/gemfire/cache/lucene/LuceneIndexCreationDUnitTest.verifyXMLMultipleIndexList.cache.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<cache + xmlns="http://geode.apache.org/schema/cache" + xmlns:lucene="http://geode.apache.org/schema/lucene" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://geode.apache.org/schema/cache + http://geode.apache.org/schema/cache/cache-1.0.xsd + http://geode.apache.org/schema/lucene + http://geode.apache.org/schema/lucene/lucene-1.0.xsd" + version="1.0"> + + <region name="region" refid="PARTITION_REDUNDANT"> + <lucene:index name="index_1"> + <lucene:field name="field1" analyzer="org.apache.lucene.analysis.standard.StandardAnalyzer"/> + </lucene:index> + <lucene:index name="index_2"> + <lucene:field name="field2" analyzer="org.apache.lucene.analysis.standard.StandardAnalyzer"/> + </lucene:index> + </region> + +</cache>