### Question:
AbstractNodeToRelatedTreeConverter implements NodeToRelatedTreeConverter<E, N, T> { @Override public T treeFromRootNode(N node) { final TopDownTreeRootBuilder<E, N> topDownTreeRootBuilder = getBuilder(); final TopDownTreeRootBuilder.TopDownTreeBuilder<E, N> treeBuilder = topDownTreeRootBuilder.root(node.getElement()); copyChildren(treeBuilder, node); return treeBuilder.build(targetTreeClass); } @SuppressWarnings("unchecked")  AbstractNodeToRelatedTreeConverter(Class<?> targetNodeClass, Class<?> targetTreeClass); @Override T treeFromRootNode(N node); @Override Class<? extends N> forClass();  }### Answer:
@SuppressWarnings("unchecked") @Test public void treeFromRootNode() { final Converter converter = new Converter(rootBuilder); final Tree<String, Node<String>> newTree = converter.treeFromRootNode(root); verify(rootBuilder).root("root"); verify(builder).addChild("left"); verify(builder).addChild("right"); verify(builder).addChild("bottom"); verify(builder).build(Tree.class); assertSame(newTree, convertedTree); }