### Question:
AbstractLifecycle implements Lifecycle { @Override public final void destroy() throws LifecycleException { try { this.lifecycleStateMachine.transition(DESTROYING); destroyInternal(); } catch (RuntimeException e) { throw new LifecycleException("Destruction Failed", e); } finally { this.lifecycleStateMachine.transition(DESTROYED); } } protected  AbstractLifecycle(); protected  AbstractLifecycle(LifecycleStateMachine lifecycleStateMachine, LifecycleSupport lifecycleSupport); @Override final void addLifecycleListener(LifecycleListener lifecycleListener); @Override final void destroy(); @Override final LifecycleListener[] findLifecycleListeners(); @Override final LifecycleState getState(); @Override final String getStateName(); @Override final void init(); @Override final void removeLifecycleListener(LifecycleListener lifecycleListener); @Override final void start(); @Override final void stop();  }### Answer:
@Test public void destroy() throws LifecycleException { this.lifecycle.destroy(); verify(this.lifecycleStateMachine).transition(DESTROYING); verify(this.lifecycleStateMachine).transition(DESTROYED); }