### Question:
TileCollidableModel extends FeatureModel implements TileCollidable, Recyclable { @Override public void removeListener(TileCollidableListener listener) { listenable.removeListener(listener); } TileCollidableModel(Services services, Setup setup); @Override void prepare(FeatureProvider provider); @Override void checkListener(Object listener); @Override void addListener(TileCollidableListener listener); @Override void removeListener(TileCollidableListener listener); @Override void update(double extrp); @Override void apply(CollisionResult result); @Override void setEnabled(boolean enabled); @Override void setEnabled(Axis axis, boolean enabled); @Override Collection<CollisionCategory> getCategories(); @Override void recycle();  }### Answer:
@Test void testRemoveListener() { final Transformable transformable = createObject(new FeaturableModel(services, setup)); final AtomicReference<Tile> collided = new AtomicReference<>(); final TileCollidableListener listener = createListener(collided); collidable.checkListener(transformable); collidable.checkListener(listener); transformable.teleport(0.0, 2.0); transformable.moveLocation(1.0, 0.0, -1.0); collidable.update(1.0); assertNotNull(collided.get()); collided.set(null); collidable.removeListener(listener); collidable.update(1.0); assertNull(collided.get()); }