### Question:
ArcController extends AbstractPetriNetComponentController<Arc<S, T>> { public void toggleArcPointType(ArcPoint arcPoint) { arcPoint.setCurved(!arcPoint.isCurved()); registerUndoableEdit(new ArcPathPointType(arcPoint)); } ArcController(Arc<S, T> arc, PetriNetController petriNetController, UndoableEditListener listener); void setWeight(String token, String expr); void setWeights(Map<String, String> newWeights); String getWeightForToken(String token); Connectable getTarget(); void toggleArcPointType(ArcPoint arcPoint); void splitArcPoint(ArcPoint arcPoint); void addPoint(Point2D point); void deletePoint(ArcPoint point);  }### Answer:
@Test public void toggleCreatesHistoryItem() { ArcPoint point = new ArcPoint(new Point2D.Double(0, 0), false); controller.toggleArcPointType(point); ArcPathPointType arcPathPointType = new ArcPathPointType(point); verify(listener).undoableEditHappened(argThat(Contains.thisAction(arcPathPointType))); }