### Question:
LauncherModel extends FeatureModel implements Launcher, Recyclable { @Override public void checkListener(Object listener) { super.checkListener(listener); if (listener instanceof LauncherListener) { addListener((LauncherListener) listener); } if (listener instanceof LaunchableListener) { addListener((LaunchableListener) listener); } } LauncherModel(Services services, Setup setup); @Override void prepare(FeatureProvider provider); @Override void checkListener(Object listener); @Override void addListener(LauncherListener listener); @Override void removeListener(LauncherListener listener); @Override void addListener(LaunchableListener listener); @Override boolean fire(); @Override boolean fire(Direction initial); @Override boolean fire(Localizable target); @Override boolean fire(Direction initial, Localizable target); @Override void update(double extrp); @Override void setOffset(int x, int y); @Override void setLevel(int level); @Override void setRate(long rate); @Override int getOffsetX(); @Override int getOffsetY(); @Override int getLevel(); @Override long getRate(); @Override void recycle();  }### Answer:
@Test void testCheckListener() { final Media launchableMedia = UtilSetup.createMedia(LaunchableObjectException.class); final Media launcherMedia = UtilLaunchable.createLauncherMedia(launchableMedia); final Setup setup = new Setup(launcherMedia); services.add(new Factory(services)); services.add(new Handler(services)); final AtomicBoolean launchableListener = new AtomicBoolean(); final AtomicBoolean launcherListener = new AtomicBoolean(); final Launcher launcher = new LauncherModel(services, setup) { @Override public void addListener(LaunchableListener listener) { launchableListener.set(true); } @Override public void addListener(LauncherListener listener) { launcherListener.set(true); } }; assertFalse(launchableListener.get()); assertFalse(launcherListener.get()); launcher.checkListener(launcher); assertFalse(launchableListener.get()); assertFalse(launcherListener.get()); launcher.checkListener((LaunchableListener) l -> l.update(1.0)); assertTrue(launchableListener.get()); assertFalse(launcherListener.get()); launcher.checkListener((LauncherListener) () -> launcher.update(1.0)); launchableListener.set(false); assertFalse(launchableListener.get()); assertTrue(launcherListener.get()); assertTrue(launchableMedia.getFile().delete()); }