### Question:
ForumStructureTreeModel extends ZkTreeModel<ForumStructureItem> { public ZkTreeNode<ForumStructureItem> removeBranch(@Nullable PoulpeBranch branch) { ForumStructureItem itemToRemove = new ForumStructureItem(branch); return removeItem(itemToRemove); } ForumStructureTreeModel(@Nonnull ZkTreeNode<ForumStructureItem> root); ForumStructureTreeModel putBranch(ForumStructureItem branchToPut, ForumStructureItem destinationSection); ForumStructureTreeModel moveBranchIfSectionChanged(PoulpeBranch branch); void addIfAbsent(PoulpeSection section); PoulpeSection getSelectedSection(); ZkTreeNode<ForumStructureItem> removeBranch(@Nullable PoulpeBranch branch); ZkTreeNode<ForumStructureItem> removeSection(@Nullable PoulpeSection section); List<PoulpeSection> getSections(); void onDropNode(TreeNode<ForumStructureItem> draggedNode,
                             TreeNode<ForumStructureItem> targetNode); boolean noEffectAfterDropNode(TreeNode<ForumStructureItem> draggedNode, 
            TreeNode<ForumStructureItem> targetNode); void expandTree(); void collapseTree();  }### Answer:
@Test public void removeBranch() throws Exception { PoulpeBranch branchToRemove = sut.getChild(1, 0).getData().getBranchItem(); assertSame(sut.removeBranch(branchToRemove).getData().getBranchItem(), branchToRemove); assertNull(sut.find(new ForumStructureItem(branchToRemove))); }