### Question:
Node implements Bounded, Comparable<Node> { @Override public String toString() { return new StringBuilder(getClass().getSimpleName()).append('[').append(getName()) .append(" -> ").append(getObjectId()).append(']').toString(); } private  Node(final String name, final ObjectId oid, final ObjectId metadataId); Optional<ObjectId> getMetadataId(); String getName(); ObjectId getObjectId(); abstract TYPE getType(); @Override int compareTo(Node o); @Override int hashCode(); @Override boolean equals(Object o); @Override String toString(); @Override boolean intersects(Envelope env); @Override void expand(Envelope env); static Node tree(final String name, final ObjectId oid, final ObjectId metadataId); static Node create(final String name, final ObjectId oid, final ObjectId metadataId,
            final TYPE type, @Nullable final Envelope bounds);  }### Answer:
@Test public void testToString() { Node node = Node.create("Points.1", ObjectId.forString("Points stuff"), ObjectId.NULL, TYPE.FEATURE, null); String readableNode = node.toString(); String expected = "FeatureNode[Points.1 -> " + node.getObjectId() + "]"; assertEquals(expected, readableNode.toString()); }