ZenSketch extends Rainbow implements FlowerSelectedListener { @Override public void onFlowerSelected(Flower flower) { BranchPerformer performer = Classes.from(branchPerformer); performer.onFlowerSelected(flower); } protected  ZenSketch(
            MusicPerformer musicPerformer,
            InkPerformer inkPerformer,
            BranchPerformer branchPerformer,
            ZenSketchView zenSketchView,
            RainbowDrawer rainbowDrawer,
            RainbowInputController rainbowInputController,
            SketchInteractionListener sketchInteractionListener,
            Listener sketchListener); static ZenSketch newInstance(ZenSketchView zenSketchView,
                                        Listener sketchListener); @Override void onSketchSetup(); @Override void onDrawingStart(); @Override void onDrawingResume(); @Override void onDrawingStep(); @Override void onDrawingPause(); @Override void onDrawingStop(); @Override void onSketchDestroy(); void clear(); void setOnPaintingListener(PaintListener paintListener); @Override void onFlowerSelected(Flower flower);  }
@Test public void testThatOnFlowerSelectedDelegatesToBranchDrawer() { zenSketch.onFlowerSelected(Flower.POPPY); verify(branchPerformer).onFlowerSelected(Flower.POPPY); }