### Question:
FlexibleArrow implements GraphicsElement, ExtensibleArrow { @Override public void paint(Canvas canvas) { canvas.setStrokeWidth(new Width(6)); canvas.setColor(RGBColor.Black); canvas.drawPolyline(coordinates); AgnosticShape bottom = createCircleAtBottom(); canvas.fill(new TransformedShape(bottom)); new ArrowHead(coordinates.getPenultimatePoint(), coordinates.getUltimatePoint()).paint(canvas); }  @Override void addPoint(int x, int y); @Override void paint(Canvas canvas); void moveBy(int x, int y);  }### Answer:
@Test public void connectsDots() throws Exception { arrow.paint(graphics); verifyPolylineWith(new Coordinate(17, 6)); }
@SuppressWarnings("unchecked") @Test public void drawsWide() throws Exception { arrow.paint(graphics); InOrder inOrder = inOrder(graphics); inOrder.verify(graphics).setStrokeWidth(new Width(6)); inOrder.verify(graphics).drawPolyline(any(List.class)); }
@SuppressWarnings("unchecked") @Test public void drawsBlack() throws Exception { arrow.paint(graphics); InOrder inOrder = inOrder(graphics); inOrder.verify(graphics).setColor(RGBColor.Black); inOrder.verify(graphics).drawPolyline(any(List.class)); }
@Test public void hasDotAtBottom() throws Exception { arrow.paint(graphics); verify(graphics).fill(new TransformedShape(new Circle(17, 6, 12))); }