StateMachine { @Override public String toString() { return super.toString() + "[" + getState() + "]"; } StateMachine(final StateT initialState); ReadWriteLock getLock(); void addListener(final StateChangeListener<StateT> listener); void removeListener(final StateChangeListener<StateT> listener); @SuppressWarnings("unchecked") boolean isState(final StateT... states); @SuppressWarnings("unchecked") void waitState(final StateT... states); StateT getState(); Object[] getArguments(); void changeState(final StateT state, final Object... args); boolean changeState(final StateT state, final StateCondition<StateT> condition,
      final Object... args); void execute(final Callable<Void> process, final StateT success, final StateT fail); @Override String toString();  }
@Test public void testToString() { final String s1 = randomUUID().toString(); final StateMachine<String> stateMachine = new StateMachine<String>(s1); assertTrue(stateMachine.toString().contains(s1)); }