### Question:
AbstractCanvas implements Canvas<Shape>,
                   HasEventHandlers<AbstractCanvas<V>, Shape<?>>,
                   HasCanvasListeners<CanvasShapeListener> { @Override public Canvas addShape(final Shape shape) { shapes.computeIfAbsent(shape.getUUID(), (v) -> { addShapeIntoView(shape); fireCanvasShapeAdded(shape); canvasShapeAddedEvent.fire(new CanvasShapeAddedEvent(this, shape)); return shape; }); return this; } protected  AbstractCanvas(final Event<CanvasClearEvent> canvasClearEvent,
                             final Event<CanvasShapeAddedEvent> canvasShapeAddedEvent,
                             final Event<CanvasShapeRemovedEvent> canvasShapeRemovedEvent,
                             final Event<CanvasDrawnEvent> canvasDrawnEvent,
                             final Event<CanvasFocusedEvent> canvasFocusedEvent); abstract V getView(); AbstractCanvas<V> initialize(final CanvasPanel panel,
                                        final CanvasSettings settings); @Override Collection<Shape> getShapes(); Shape getShape(final String uuid); @SuppressWarnings("unchecked") Canvas addChild(final Shape parent,
                           final Shape child); @SuppressWarnings("unchecked") Canvas deleteChild(final Shape parent,
                              final Shape child); @SuppressWarnings("unchecked") Canvas dock(final Shape parent,
                       final Shape child); @SuppressWarnings("unchecked") Canvas undock(final Shape target,
                         final Shape child); @Override Canvas addShape(final Shape shape); @Override Canvas deleteShape(final Shape shape); @SuppressWarnings("unchecked") Canvas addShapeIntoView(final Shape shape); @SuppressWarnings("unchecked") Canvas deleteShapeFromView(final Shape shape); AbstractCanvas clear(); Canvas setGrid(final CanvasGrid grid); CanvasGrid getGrid(); Point2D getAbsoluteLocation(); @Override Transform getTransform(); @Override void destroy(); @Override HasCanvasListeners<CanvasShapeListener> addRegistrationListener(final CanvasShapeListener instance); @Override HasCanvasListeners<CanvasShapeListener> removeRegistrationListener(final CanvasShapeListener instance); @Override HasCanvasListeners<CanvasShapeListener> clearRegistrationListeners(); @Override int getWidthPx(); @Override int getHeightPx(); @Override boolean equals(final Object o); @Override int hashCode();  }### Answer:
@Test @SuppressWarnings("unchecked") public void testAddShape() { tested.addShape(parentShape); verify(canvasView, times(1)).add(eq(parentShapeView)); verify(parentShapeView, never()).setUUID(anyString()); assertEquals(1, tested.getShapes().size()); }