### Question:
AbstractLifecycle implements Lifecycle<T> { @Override public final void start(final T context) { if (!tryChangeState(State.STOPPED, State.STARTING)) { return; } try { doStart(context); } catch (final Throwable t) { changeState(State.STARTING, State.STOPPED); LOGGER.warn("Failed to start '{}'", this, t); throw new LifecycleException("Failed to start lifecycle", t); } changeState(State.STARTING, State.STARTED); } protected  AbstractLifecycle(); @Override final boolean isRunning(); @Override final void start(final T context); @Override final void stop(final T context);  }### Answer:
@Test public void startTest() throws Exception { @SuppressWarnings("unchecked") final AbstractLifecycle<Integer> lifecycle = createMockBuilder(AbstractLifecycle.class).withConstructor().createStrictMock(); lifecycle.doStart(1); replay(lifecycle); lifecycle.start(1); verify(lifecycle); assertTrue(lifecycle.isRunning()); }