### Question:
BallItem extends GameItem { @Override public void doDraw() { LOGGER.info("doDraw"); }  void setTwin(BallThread twin); @Override void doDraw(); void move(); @Override void click();  }### Answer:
@Test public void testDoDraw() { final var ballItem = new BallItem(); final var ballThread = mock(BallThread.class); ballItem.setTwin(ballThread); ballItem.draw(); assertTrue(appender.logContains("draw")); assertTrue(appender.logContains("doDraw")); verifyNoMoreInteractions(ballThread); assertEquals(2, appender.getLogSize()); }
@Test public void testDoDraw() { final BallItem ballItem = new BallItem(); final BallThread ballThread = mock(BallThread.class); ballItem.setTwin(ballThread); ballItem.draw(); assertTrue(appender.logContains("draw")); assertTrue(appender.logContains("doDraw")); verifyNoMoreInteractions(ballThread); assertEquals(2, appender.getLogSize()); }