ATLAS-361 Add validation when index backends are switched in ATLAS configuration - Fixed UT (sumasai)
Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/adb6c76d Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/adb6c76d Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/adb6c76d Branch: refs/heads/branch-0.6-incubating Commit: adb6c76db6c262fd538cb81be2e0538ab24ae4ce Parents: b82ff04 Author: Suma Shivaprasad <[email protected]> Authored: Tue Dec 8 14:51:34 2015 +0530 Committer: Suma Shivaprasad <[email protected]> Committed: Tue Dec 8 14:51:34 2015 +0530 ---------------------------------------------------------------------- .../graph/TitanGraphProviderTest.java | 78 ++++++++++++++++++++ 1 file changed, 78 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/adb6c76d/repository/src/test/java/org/apache/atlas/repository/graph/TitanGraphProviderTest.java ---------------------------------------------------------------------- diff --git a/repository/src/test/java/org/apache/atlas/repository/graph/TitanGraphProviderTest.java b/repository/src/test/java/org/apache/atlas/repository/graph/TitanGraphProviderTest.java new file mode 100644 index 0000000..6fc7008 --- /dev/null +++ b/repository/src/test/java/org/apache/atlas/repository/graph/TitanGraphProviderTest.java @@ -0,0 +1,78 @@ +/** + * 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. + */ +package org.apache.atlas.repository.graph; + +import com.thinkaurelius.titan.core.TitanGraph; +import com.thinkaurelius.titan.core.util.TitanCleanup; +import com.thinkaurelius.titan.diskstorage.Backend; +import com.thinkaurelius.titan.graphdb.database.StandardTitanGraph; +import org.apache.atlas.ApplicationProperties; +import org.apache.atlas.AtlasException; +import org.apache.commons.configuration.Configuration; +import org.mockito.Mockito; +import org.testng.Assert; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +@Test +public class TitanGraphProviderTest { + + private Configuration configuration; + private TitanGraph graph; + + @BeforeTest + public void setUp() throws AtlasException { + //First get Instance + graph = TitanGraphProvider.getGraphInstance(); + configuration = ApplicationProperties.getSubsetConfiguration(ApplicationProperties.get(), TitanGraphProvider.GRAPH_PREFIX); + } + + @AfterClass + public void tearDown() throws Exception { + try { + graph.shutdown(); + } catch (Exception e) { + e.printStackTrace(); + } + + try { + TitanCleanup.clear(graph); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Test + public void testValidate() throws AtlasException { + try { + TitanGraphProvider.validateIndexBackend(configuration); + } catch(Exception e){ + Assert.fail("Unexpected exception ", e); + } + + //Change backend + configuration.setProperty(TitanGraphProvider.INDEX_BACKEND_CONF, TitanGraphProvider.INDEX_BACKEND_LUCENE); + try { + TitanGraphProvider.validateIndexBackend(configuration); + Assert.fail("Expected exception"); + } catch(Exception e){ + Assert.assertEquals(e.getMessage(), "Configured Index Backend lucene differs from earlier configured Index Backend elasticsearch. Aborting!"); + } + } +}
