TableImpl implements Table { @Override public int countColumns() { return store.size(); } TableImpl(Class<T> elementType, boolean indexed);  TableImpl(GraphStore graphStore, Class<T> elementType, boolean indexed); @Override Column addColumn(String id, Class type); @Override Column addColumn(String id, Class type, Origin origin); @Override Column addColumn(String id, String title, Class type, Object defaultValue); @Override Column addColumn(String id, String title, Class type, Origin origin, Object defaultValue, boolean indexed); @Override int countColumns(); @Override Iterator<Column> iterator(); @Override void doBreak(); @Override Column[] toArray(); @Override List<Column> toList(); @Override Column getColumn(int index); @Override Column getColumn(String id); @Override boolean hasColumn(String id); @Override void removeColumn(Column column); @Override void removeColumn(String id); @Override TableObserver createTableObserver(boolean withDiff); @Override Class getElementClass(); @Override Graph getGraph(); void destroyTableObserver(TableObserver observer); boolean deepEquals(TableImpl<T> obj); int deepHashCode();  }
@Test public void testTable() { TableImpl<Node> table = new TableImpl<Node>(Node.class, false); Assert.assertEquals(table.countColumns(), 0); }
@Test public void testCountColumns() { TableImpl<Node> table = new TableImpl<Node>(Node.class, false); table.addColumn("Id", Integer.class); table.removeColumn("Id"); table.addColumn("Id", Integer.class); Assert.assertEquals(table.countColumns(), 1); }