public void testThreadedServiceStartStopIdempotenceDoubleWait() throws Throwable { ThreadedService service = new ThreadedService(); service.start().get(); service.start().get(); assertEquals(State.RUNNING, service.state()); service.awaitRunChecks(); service.stop().get(); service.stop().get(); assertEquals(State.TERMINATED, service.state()); throwIfSet(thrownByExecutionThread); }
public void testThreadedServiceStartAndWaitStopAndWait() throws Throwable { ThreadedService service = new ThreadedService(); RecordingListener listener = RecordingListener.record(service); service.start().get(); assertEquals(State.RUNNING, service.state()); service.awaitRunChecks(); service.stopAndWait(); assertEquals(State.TERMINATED, service.state()); throwIfSet(thrownByExecutionThread); assertEquals( ImmutableList.of(State.STARTING, State.RUNNING, State.STOPPING, State.TERMINATED), listener.getStateHistory()); }