### Question:
BlueprintsGraphMetaverseReader implements IMetaverseReader { @Override public Graph getMetaverse() { Graph graph = getGraph(); graph = enhanceGraph( graph ); return graph; } BlueprintsGraphMetaverseReader( Graph graph ); @Override IMetaverseNode findNode( String id ); @Override List<IMetaverseNode> findNodes( String property, String value ); @Override IMetaverseLink findLink( String leftNodeID, String linkType, String rightNodeID, Direction direction ); @Override Graph getMetaverse(); @Override String exportToXml(); @Override String exportFormat( String format ); void exportToStream( String format, OutputStream out ); @Override Graph search( List<String> resultTypes, List<String> startNodeIDs, boolean shortestOnly ); @Override Graph getGraph( String id );  }### Answer:
@Test public void testGraphMetaverseReader() throws Exception { BlueprintsGraphMetaverseReader metaverseReader = new BlueprintsGraphMetaverseReader( graph ); Graph graph = metaverseReader.getMetaverse(); assertNotNull( "Graph is null", graph ); GraphMLWriter writerXml = new GraphMLWriter(); writerXml.outputGraph( graph, new FileOutputStream( OUTPUT_FOLDER + "testGraphMetaverseReader.graphml" ) ); GraphSONWriter writerJson = new GraphSONWriter(); writerJson.outputGraph( graph, new FileOutputStream( OUTPUT_FOLDER + "testGraphMetaverseReader.graphjson" ) ); assertEquals( "Vertex count is wrong", 30, countVertices( graph ) ); assertEquals( "Edge count is wrong", 35, countEdges( graph ) ); }