@Test
    public void shouldNotHaveSameClassForNull() {
        final BulkSet<Object> bulkSet = new BulkSet<>();
        bulkSet.add(null, 5);
        assertNull(bulkSet.getAllContainedElementsClass());
        assertFalse(bulkSet.allContainedElementsSameClass());
        assertFalse(bulkSet.isEmpty());
        bulkSet.add(new Long(2), 5);
        assertNull(bulkSet.getAllContainedElementsClass());
        assertFalse(bulkSet.allContainedElementsSameClass());
        bulkSet.add(null, 3);
        assertNull(bulkSet.getAllContainedElementsClass());
        assertFalse(bulkSet.allContainedElementsSameClass());

        // adding null in the middle
        final BulkSet<Object> bulkSet2 = new BulkSet<>();
        bulkSet2.add(new ReferenceVertex("4"), 5);
        assertEquals(bulkSet2.getAllContainedElementsClass(), ReferenceVertex.class);
        assertTrue(bulkSet2.allContainedElementsSameClass());
        assertFalse(bulkSet2.isEmpty());
        bulkSet2.add(null, 5);
        assertNull(bulkSet2.getAllContainedElementsClass());
        assertFalse(bulkSet2.allContainedElementsSameClass());
        bulkSet2.add(new ReferenceVertex("3"), 5);
        assertNull(bulkSet2.getAllContainedElementsClass());
        assertFalse(bulkSet2.allContainedElementsSameClass());
    }
@author Marko A. Rodriguez (http://markorodriguez.com)
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/BulkSetTest.java