### Question:
DualListVm { @Init public void initVm(@BindingParam("fullList") List<Group> fullList, @BindingParam("rightList") List<Group> rightList) { this.fullList = fullList; this.right.clear(); this.right.addAll(rightList); this.left.clear(); this.left.addAll(ListUtils.subtract(fullList, rightList)); this.stateAfterEdit.clear(); this.stateAfterEdit.addAll(rightList); } DualListVm(); @Init void initVm(@BindingParam("fullList") List<Group> fullList,
                       @BindingParam("rightList") List<Group> rightList); String getAvailFilterTxt(); void setAvailFilterTxt(@Nonnull String leftFilterTxt); String getExistFilterTxt(); void setExistFilterTxt(@Nonnull String rightFilterTxt); ListModelList<Group> getLeft(); ListModelList<Group> getRight(); Set<Group> getLeftSelected(); Set<Group> getRightSelected(); @Command @NotifyChange({LEFT_PROPERTY, RIGHT_PROPERTY, LEFT_SELECTED_PROPERTY, RIGHT_SELECTED_PROPERTY}) void add(); @Command @NotifyChange({LEFT_PROPERTY, RIGHT_PROPERTY, LEFT_SELECTED_PROPERTY, RIGHT_SELECTED_PROPERTY}) void addAll(); @Command @NotifyChange({LEFT_PROPERTY, RIGHT_PROPERTY, LEFT_SELECTED_PROPERTY, RIGHT_SELECTED_PROPERTY}) void remove(); @Command @NotifyChange({LEFT_PROPERTY, RIGHT_PROPERTY, LEFT_SELECTED_PROPERTY, RIGHT_SELECTED_PROPERTY}) void removeAll(); @Command @NotifyChange({"leftSelected", "rightSelected"}) void listSelected(); void setStateAfterEdit(List<Group> stateAfterEdit); void setAvail(ListModelList<Group> left); void setExist(ListModelList<Group> right); List<Group> getStateAfterEdit(); static final String LEFT_PROPERTY; static final String LEFT_SELECTED_PROPERTY; }### Answer:
@Test public void testInitVm() { list.initVm(fullList, rightGroups); assertEquals(list.getLeft(), leftGroups); assertEquals(list.getRight(), rightGroups); assertEquals(list.getStateAfterEdit(), rightGroups); }