### Question:
MutableTreeImpl extends AbstractSettableNode<E, MutableSettableNode<E>> implements MutableTree<E, MutableSettableNode<E>>, MutableSettableNode<E> { @Override public MutableTreeImpl<E> setRoot(E root) { elementReference.set(root); return this; } MutableTreeImpl(E element);   MutableTreeImpl(E element, SimpleCollection<MutableTreeImpl<E>> childList); @Override MutableTreeImpl<E> addChild(E e); @Override boolean removeChild(MutableSettableNode<E> child); @Override MutableTreeImpl<E> getRoot(); @Override boolean isEmpty(); @Override MutableTreeImpl<E> setRoot(E root); static TypeKey<MutableTreeImpl<E>> typeKey(); @Override int getNumberOfChildren(); @Override Iterator<MutableSettableNode<E>> childIterator();  }### Answer:
@Test public void setRoot() { final MutableTree<String, MutableSettableNode<String>> tree = new MutableTreeImpl<>(null); tree.setRoot("a"); assertFalse(tree.isEmpty()); }