### Question:
SpriteBehaviorTemplate implements BehaviorTemplate<SpriteBehavior>, Sprite, Reflectable<SpriteClassInformation> { @Override public void delete() { owner.getGameScene().removeBehaviorFrom(owner, this); } SpriteBehaviorTemplate(GameEventManager aEventManager, GameObject aOwner); @Override BehaviorType getType(); @Override SpriteClassInformation getClassInformation(); @Override GameObject getOwner(); @Override SpriteBehavior create(GameObjectInstance aInstance, GameRuntime aGameRuntime); @Override Property<Animation> currentAnimationProperty(); @Override Property<Integer> speedProperty(); void addAnimation(Animation aAnimation); @Override Map<String, Object> serialize(); @Override void delete(); @Override GameScene getGameScene(); @Override Animation[] getAnimations(); void replaceAnimation(Animation aOldAnimation, Animation aNewAnimation); static SpriteBehaviorTemplate deserialize(GameEventManager aEventManager, GameObject aOwner, Map<String, Object> aSerializedData); static final BehaviorType TYPE; }### Answer:
@Test public void testDelete() throws Exception { GameEventManager theEventManager = mock(GameEventManager.class); GameObject theOwner = mock(GameObject.class); GameScene theScene = mock(GameScene.class); when(theOwner.getGameScene()).thenReturn(theScene); SpriteBehaviorTemplate theTemplate = new SpriteBehaviorTemplate(theEventManager, theOwner); theTemplate.delete(); verify(theScene).removeBehaviorFrom(eq(theOwner), eq(theTemplate)); }