### Question:
MutableChildIterator implements Iterator<N> { @Override public N next() { final N next = iterator.next(); currentChild = next; return next; } MutableChildIterator(N node, Iterator<? extends N> iterator); @Override boolean hasNext(); @Override N next(); @Override void remove();  }### Answer:
@Test(expected = NoSuchElementException.class) public void next() { final MutableChildIterator<String, MutableNode<String>> mutableIterator = new MutableChildIterator<>(parent, iterator); final MutableNode<String> node = mutableIterator.next(); assertSame(child, node); mutableIterator.next(); }