### Question:
CaseManagementContainmentControl implements WiresContainmentControl { @Override public void onMoveStart(double x, double y) { containmentControl.onMoveStart(x, y); if (!(getShape() instanceof CaseManagementShapeView)) { state.setGhost(Optional.empty()); state.setOriginalIndex(OptionalInt.empty()); state.setOriginalParent(Optional.empty()); return; } state.setOriginalParent(Optional.ofNullable(getParent())); state.setOriginalIndex(getShapeIndex()); state.setGhost(Optional.ofNullable(((CaseManagementShapeView) getShape()).getGhost())); final WiresLayerIndex index = containmentControl.getParentPickerControl().getIndex(); if (state.getGhost().isPresent()) { index.exclude(state.getGhost().get()); } if ((getParent() instanceof CaseManagementShapeView)) { ((CaseManagementShapeView) getParent()).logicallyReplace((CaseManagementShapeView) getShape(), state.getGhost().get()); } } CaseManagementContainmentControl(final WiresParentPickerControl parentPickerControl,
                                            final CaseManagementContainmentStateHolder state);   CaseManagementContainmentControl(final WiresContainmentControlImpl containmentControl,
                                     final CaseManagementContainmentStateHolder state); @Override WiresContainmentControl setEnabled(boolean enabled); @Override void onMoveStart(double x, double y); @Override boolean onMove(double dx,
                          double dy); @Override void onMoveComplete(); @Override boolean isAllow(); @Override boolean accept(); @Override Point2D getCandidateLocation(); @Override Point2D getAdjust(); @Override void execute(); @Override void clear(); @Override void reset(); @Override void destroy();  }### Answer:
@Test public void testOnMoveStart() { final double x = 15.5d; final double y = 21.63d; control.onMoveStart(x, y); verify(containmentControl, times(1)).onMoveStart(eq(x), eq(y)); verify(state, times(1)).setGhost(eq(Optional.of(ghost))); verify(state, times(1)).setOriginalIndex(eq(OptionalInt.of(0))); verify(state, times(1)).setOriginalParent(eq(Optional.of(parent))); verify(parent, times(1)).logicallyReplace(eq(shape), eq(ghost)); verify(index, never()).clear(); }