@Test
  public void addNode_node_seen() throws IllegalAccessException {
    ReflectionUtils.setValue(traverser, "visitedOrQueuedNodes", SetUtils.asSet(1));

    // expect no calls to enqueue
    traverser.addNode(1);
  }
  @Test
  public void addNode_nodes_unseen() throws IllegalAccessException {
    traverser.enqueueNodes(colEq(Arrays.asList(1)));
    expectLastCall();
    replay(traverser);

    traverser.addNode(1);

    verify(traverser);
  }
  @Test
  public void addNode_node_unseen() {
    traverser.enqueueNodes(colEq(Arrays.asList(1)));
    expectLastCall();
    replay(traverser);

    traverser.addNode(1);

    verify(traverser);
  }
  @Test
  public void addNode_nodes_seen() throws IllegalAccessException {
    ReflectionUtils.setValue(traverser, "visitedOrQueuedNodes", SetUtils.asSet(1));

    traverser.enqueueNodes(colEq(Arrays.asList(2)));
    expectLastCall();
    replay(traverser);

    traverser.addNode(Arrays.asList(1, 2));

    verify(traverser);
  }