InkPerformer implements StepPerformer, RainbowImage.LoadPictureListener { @Override public void init() { synchronized (this) { if (initialised) { throw new DeveloperError("You don't really want init this if it was already initialised"); } initialised = true; configureDrawer(); } } protected  InkPerformer(InkDrop inkDrop,
                           RainbowDrawer rainbowDrawer,
                           RainbowInputController rainbowInputController); static InkPerformer newInstance(InkDrop inkDrop,
                                           RainbowDrawer rainbowDrawer,
                                           RainbowInputController rainbowInputController); @Override void init(); @Override void onLoadSucceed(RainbowImage imageLoaded); @Override void onLoadFail(); @Override void doStep(); @Override void reset(); @Override void enable(); @Override void disable();  }
@Test public void testThatInitConfiguresRainbowDrawer() { inkPerformer.init(); verify(rainbowDrawer).noStroke(); verify(rainbowDrawer).smooth(); verify(rainbowDrawer).loadImage(R.drawable.brush_ink, Modes.LoadMode.LOAD_ORIGINAL_SIZE, inkPerformer); }