@Test
    @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_ADD_VERTICES)
    @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_USER_SUPPLIED_IDS)
    @FeatureRequirement(featureClass = Graph.Features.VertexFeatures.class, feature = Graph.Features.VertexFeatures.FEATURE_UPSERT)
    public void shouldUpsertWhenAssigningSameIdOnVertex() {
        final Object o = graphProvider.convertId("1", Vertex.class);
        graph.addVertex(T.id, o, "name", "marko");
        tryCommit(graph, graph -> {
            final Vertex v = graph.vertices(o).next();
            assertEquals(o, v.id());
            assertEquals("marko", v.value("name"));
            assertVertexEdgeCounts(graph, 1, 0);
        });

        graph.addVertex(T.id, o, "name", "stephen");
        tryCommit(graph, graph -> {
            final Vertex v = graph.vertices(o).next();
            assertEquals(o, v.id());
            assertEquals("stephen", v.value("name"));
            assertVertexEdgeCounts(graph, 1, 0);
        });
    }
Ensure compliance with Features by checking that all Features are exposed by the implementation.
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/GraphTest.java