@Override
    public void loadGraphData(final Graph graph, final LoadGraphWith loadGraphWith, final Class testClass, final String testName) {
        try {
            // loadGraphWith will be null if an annotation isn't assigned.  it simply means that the graph is
            // created in an ad-hoc manner for the tests - just don't try to read any data into it.
            if (loadGraphWith != null) readIntoGraph(graph, loadGraphWith.value().location());
        } catch (IOException ioe) {
            throw new RuntimeException("Graph could not be loaded with data for test: " + ioe.getMessage(), ioe);
        }
    }
Provides a basic configuration for a particular {@link Graph} instance and uses the {@code graphName} to ensure
that the instance is unique.  It is up to the Gremlin implementation to determine how best to use the
{@code graphName} to ensure uniqueness.  For example, Neo4j, might use the {@code graphName} might be used to
create a different sub-directory where the graph is stored.
<p/>
The @{code test} and @{code testMethodName} can be used to alter graph configurations for specific tests.
For example, a graph that has support for different transaction isolation levels might only support a feature
in a specific configuration.  Using these arguments, the implementation could detect when a test was being
fired that required the database to be configured in a specific isolation level and return a configuration
to support that.
<p/>
Ultimately, the returned {@code Map} should minimally contain a configuration that can be given to a
{@link GraphFactory} so that it can be instantiated.

@param graphName      a value that represents a unique configuration for a graph
@param test           the test class
@param testMethodName the name of the test method
@param loadGraphWith  the data set to load and will be null if no data is to be loaded
@return a configuration {@code Map} that should be unique per the {@code graphName}
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/AbstractGraphProvider.java