### Question:
GraphNode extends AbstractBaseGraphObject implements IMutableGraphNode { @Nonnull public EChange addRelation (@Nullable final IMutableGraphRelation aRelation) { if (aRelation == null) return EChange.UNCHANGED; if (!aRelation.isRelatedTo (this)) throw new IllegalArgumentException ("Relation is not suitable for this node!"); final String sRelationID = aRelation.getID (); if (m_aRelations == null) m_aRelations = new CommonsLinkedHashMap <> (); else if (m_aRelations.containsKey (sRelationID)) return EChange.UNCHANGED; m_aRelations.put (sRelationID, aRelation); return EChange.CHANGED; } GraphNode();  GraphNode(@Nullable final String sID); final boolean isDirected(); @Nonnull EChange addRelation(@Nullable final IMutableGraphRelation aRelation); @Nonnull EChange removeRelation(@Nullable final IMutableGraphRelation aRelation); @Nonnull EChange removeAllRelations(); boolean isConnectedWith(@Nullable final IMutableGraphNode aNode); @Nullable IMutableGraphRelation getRelation(@Nullable final IMutableGraphNode aNode); boolean hasRelations(); @Nonnegative int getRelationCount(); @Nonnull @ReturnsMutableCopy ICommonsOrderedSet <IMutableGraphRelation> getAllRelations(); @Nonnull @ReturnsMutableCopy ICommonsOrderedSet <String> getAllRelationIDs(); void forEachRelation(@Nonnull final Consumer <? super IMutableGraphRelation> aConsumer); @Nonnull @ReturnsMutableCopy ICommonsOrderedSet <IMutableGraphNode> getAllRelatedNodes(); @Nonnull @ReturnsMutableCopy ICommonsOrderedSet <String> getAllRelatedNodeIDs(); @Override boolean equals(final Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testSelfRelations () { final GraphNode nf = new GraphNode (); nf.addRelation (new GraphRelation (nf, nf)); }