All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.tinkerpop.gremlin.structure.StructureStandardSuite Maven / Gradle / Ivy

There is a newer version: 3.7.3
Show newest version
/*
 * 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.tinkerpop.gremlin.structure;

import org.apache.tinkerpop.gremlin.AbstractGremlinSuite;
import org.apache.tinkerpop.gremlin.GraphProvider;
import org.apache.tinkerpop.gremlin.algorithm.generator.CommunityGeneratorTest;
import org.apache.tinkerpop.gremlin.algorithm.generator.DistributionGeneratorTest;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
import org.apache.tinkerpop.gremlin.structure.io.IoCustomTest;
import org.apache.tinkerpop.gremlin.structure.io.IoEdgeTest;
import org.apache.tinkerpop.gremlin.structure.io.IoGraphTest;
import org.apache.tinkerpop.gremlin.structure.io.IoTest;
import org.apache.tinkerpop.gremlin.structure.io.IoPropertyTest;
import org.apache.tinkerpop.gremlin.structure.io.IoVertexTest;
import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedEdgeTest;
import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedGraphTest;
import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedPropertyTest;
import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertexPropertyTest;
import org.apache.tinkerpop.gremlin.structure.util.detached.DetachedVertexTest;
import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceEdgeTest;
import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceGraphTest;
import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertexPropertyTest;
import org.apache.tinkerpop.gremlin.structure.util.reference.ReferenceVertexTest;
import org.apache.tinkerpop.gremlin.structure.util.star.StarGraphTest;
import org.junit.runners.model.InitializationError;
import org.junit.runners.model.RunnerBuilder;

/**
 * The {@code StructureStandardSuite} is a JUnit test runner that executes the Gremlin Test Suite over a
 * {@link Graph} implementation.  This specialized test suite and runner is for use by
 * vendors to test their {@link Graph} implementations.  The {@code StructureStandardSuite} ensures consistency and
 * validity of the implementations that they test.  Successful execution of this test suite is critical to proper
 * operations of a vendor implementation.
 * 

* To use the {@code StructureStandardSuite} define a class in a test module. Simple naming would expect the name of * the implementation followed by "StructureStandardSuite". This class should be annotated as follows (note that the * "Suite" implements {@link GraphProvider} as a convenience only. It could be implemented in a * separate class file): * * @RunWith(StructureStandardSuite.class) * @StructureStandardSuite.GraphProviderClass(TinkerGraphStructureStandardTest.class) * public class TinkerGraphStructureStandardTest implements GraphProvider { * } * * Implementing {@link GraphProvider} provides a way for the {@code StructureStandardSuite} to instantiate * {@link Graph} instances from the implementation being tested to inject into tests in the suite. The * {@code StructureStandardSuite} will utilized Features defined in the suite to determine which tests will be * executed. Note that while the above example demonstrates configuration of this suite, this approach generally * applies to all other test suites. *

* Set the {@code GREMLIN_TESTS} environment variable to a comma separated list of test classes to execute. * This setting can be helpful to restrict execution of tests to specific ones being focused on during development. * @author Stephen Mallette (http://stephen.genoprime.com) */ public class StructureStandardSuite extends AbstractGremlinSuite { /** * This list of tests in the suite that will be executed. Gremlin developers should add to this list * as needed to enforce tests upon implementations. */ private static final Class[] allTests = new Class[]{ CommunityGeneratorTest.class, DetachedGraphTest.class, DetachedEdgeTest.class, DetachedVertexPropertyTest.class, DetachedPropertyTest.class, DetachedVertexTest.class, DistributionGeneratorTest.class, EdgeTest.class, FeatureSupportTest.class, IoCustomTest.class, IoEdgeTest.class, IoGraphTest.class, IoVertexTest.class, IoPropertyTest.class, GraphTest.class, GraphConstructionTest.class, IoTest.class, VertexPropertyTest.class, VariablesTest.class, PropertyTest.class, ReferenceGraphTest.class, ReferenceEdgeTest.class, ReferenceVertexPropertyTest.class, ReferenceVertexTest.class, SerializationTest.class, StarGraphTest.class, TransactionTest.class, VertexTest.class }; public StructureStandardSuite(final Class klass, final RunnerBuilder builder) throws InitializationError { super(klass, builder, allTests, null, false, TraversalEngine.Type.STANDARD); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy