### Question:
MultiGraph implements Graph { public Vertex getVertex(Object id) { Collection<Vertex> baseVertices = new LinkedList<Vertex>(); for (Graph g : bases) { Vertex v = g.getVertex(id); if (null != v) { baseVertices.add(v); } } if (baseVertices.size() > 0) { return new MultiVertex(this, id, baseVertices); } else { return null; } } MultiGraph(final Graph... bases); Vertex addVertex(Object id); Vertex getVertex(Object id); void removeVertex(Vertex vertex); Edge addEdge(Object id, Vertex outVertex, Vertex inVertex, String label); Edge getEdge(Object id); void removeEdge(Edge edge); Iterable<Vertex> getVertices(); Iterable<Edge> getEdges(); void clear(); void shutdown();  }### Answer:
@Test(expected = UnsupportedOperationException.class) public void testRemoveVertexPropertyUnsupported() throws Exception { Vertex v = graph.getVertex("Arthur"); v.removeProperty("comment"); }
@Test public void testVertexProperties() throws Exception { Vertex arthur = graph.getVertex("Arthur"); Vertex ford = graph.getVertex("Ford"); assertEquals("he's a jerk", arthur.getProperty("comment")); assertEquals("a little odd", ford.getProperty("comment")); }
@Test(expected = UnsupportedOperationException.class) public void testSetVertexPropertyUnsupported() throws Exception { Vertex v = graph.getVertex("Arthur"); v.setProperty("comment", "a complete kneebiter"); }