### Question:
MergingGraphProvider implements GraphProvider, VertexListener, EdgeListener, ProviderListener { @Override public Vertex getVertex(String namespace, String id) { return vProvider(namespace).getVertex(namespace, id); } MergingGraphProvider(GraphProvider baseGraphProvider, ProviderManager providerManager); Criteria getCriteria(String namespace); void setCriteria(Criteria criteria); @Override String getVertexNamespace(); @Override String getEdgeNamespace(); @Override boolean contributesTo(String namespace); GraphProvider getBaseGraphProvider(); void setBaseGraphProvider(GraphProvider baseGraphProvider); void addVertexProvider(VertexProvider vertexProvider); void removeVertexProvider(VertexProvider vertexProvider); void addEdgeProvider(EdgeProvider edgeProvider); void removeEdgeProvider(EdgeProvider edgeProvider); @Override Vertex getVertex(String namespace, String id); @Override Vertex getVertex(VertexRef reference); @Override int getSemanticZoomLevel(VertexRef vertex); @Override boolean matches(EdgeRef edgeRef, Criteria criteria); @Override List<Vertex> getVertices(Criteria criteria); @Override List<Vertex> getVertices(); List<? extends Vertex> baseVertices(); List<? extends Vertex> filteredVertices(VertexProvider vertexProvider); @Override List<Vertex> getVertices(Collection<? extends VertexRef> references); @Override List<Vertex> getRootGroup(); @Override boolean hasChildren(VertexRef group); @Override Vertex getParent(VertexRef vertex); @Override List<Vertex> getChildren(VertexRef group); @Override Edge getEdge(String namespace, String id); @Override Edge getEdge(EdgeRef reference); @Override List<Edge> getEdges(Criteria criteria); @Override List<Edge> getEdges(); List<? extends Edge> baseEdges(); List<? extends Edge> filteredEdges(EdgeProvider edgeProvider); @Override List<Edge> getEdges(Collection<? extends EdgeRef> references); @Override void clearEdges(); @Override void addEdges(Edge... edges); @Override Vertex addGroup(String label, String iconKey); @Override Vertex addVertex(int x, int y); @Override void addVertices(Vertex... vertices); @Override Edge connectVertices(VertexRef sourceVertextId, VertexRef targetVertextId); @Override EdgeRef[] getEdgeIdsForVertex(VertexRef vertex); @Override void load(String filename); @Override void refresh(); @Override void removeEdges(EdgeRef... edges); @Override void removeVertex(VertexRef... vertexId); @Override void resetContainer(); @Override void save(); @Override boolean setParent(VertexRef vertexId, VertexRef parentId); @Override void clearVertices(); @Override boolean containsVertexId(String id); @Override boolean containsVertexId(VertexRef id); @Override void vertexSetChanged(VertexProvider provider); @Override void vertexSetChanged(VertexProvider provider, Collection<? extends Vertex> added, Collection<? extends Vertex> update,
			Collection<String> removedVertexIds); @Override void addVertexListener(VertexListener vertexListener); @Override void removeVertexListener(VertexListener vertexListener); @Override void edgeSetChanged(EdgeProvider provider); @Override void edgeSetChanged(EdgeProvider provider,
			Collection<? extends Edge> added, Collection<? extends Edge> updated,
			Collection<String> removedEdgeIds); @Override void addEdgeListener(EdgeListener edgeListener); @Override void removeEdgeListener(EdgeListener edgeListener); @Override void edgeProviderAdded(EdgeProvider oldProvider,	EdgeProvider newProvider); @Override void edgeProviderRemoved(EdgeProvider removedProvider); @Override void vertexProviderAdded(VertexProvider oldProvider,	VertexProvider newProvider); @Override void vertexProviderRemoved(VertexProvider removedProvider);  }### Answer:
@Test public void testGetVertex() { assertEquals("vertex1", m_mergedProvider.getVertex("nodes", "v1").getLabel()); assertEquals("vertex2", m_mergedProvider.getVertex(new AbstractVertexRef("nodes", "v2")).getLabel()); }