FSTreeItem extends TreeItem<FSTreeItem> { public FSTreeItem addItem(final FSType type, final String value) { final FSTreeItem treeItem = new FSTreeItem(type, value); super.addItem(treeItem); return treeItem; } FSTreeItem(final FSType type,
               final String value,
               final Supplier<FlowPanel> contentProvider);  FSTreeItem(final FSType type,
                      final String value); FSTreeItem addItem(final FSType type,
                              final String value); FSType getFSType();  }
@Test public void testAddItem() { final FSTreeItem childTreeItem = mock(FSTreeItem.class); when(childTreeItem.getFSType()).thenReturn(FSType.ITEM); final FSTreeItem treeItem1 = testedRoot.addItem(childTreeItem); assertEquals(treeItem1, childTreeItem); verify(childTreeItem, times(1)).setTree(eq(tree)); verify(childTreeItem, times(1)).setParentItem(eq(testedRoot)); verify(content, times(1)).add(eq(childTreeItem)); }