EventStorage { public FluentIterable<? extends Event> getAllChildren(Event event, final EventType type) { return getAllChildren(event).filter(byType(type)); }  static EventStorage storage(); static EventStorage newInstance(); void store(final Event event); boolean has(Event event); void clean(); FluentIterable<? extends Event> getChildren(Event event, final EventType type); Event getParent(Event event); Event getParent(Event event, EventType type); FluentIterable<? extends Event> getAllChildren(Event event, final EventType type); FluentIterable<? extends Event> getTree(Event event); Event getRootParent(Event event); void remove(Event event); void clearTree(Event event); FluentIterable<? extends Event> getChildren(final Event event); FluentIterable<? extends Event> getAllChildren(Event event); FluentIterable<? extends Event> getAll(); boolean storeIf(Event event, boolean expression); boolean storeIfParentStored(Event event); boolean hasEvents(final EventType type); boolean hasParent(Event event);  }
@Test public void should_provideTestStepFinishFromAllChildren() { assertThat(st.getAllChildren(es2, EventType.TEST_STEP_FINISH), contains((Object) tstf2)); }