@Test
public void tupleArgsTestWithAParentWhichIsRootEvent() throws Exception {

    StreamlineEvent parentEvent = copyEventWithNewID();
    // use same component name for parent and ancestor for easy testing
    parentEvent = eventCorrelationInjector.injectCorrelationInformation(parentEvent, Collections.emptyList(), TEST_COMPONENT_NAME);
    int parentTaskId = 1;
    String parentComponentName = "1-parentComponent";
    new Expectations() {{
        mockedTopologyContext.getComponentId(parentTaskId);
        result = parentComponentName;
        mockedTopologyContext.getComponentOutputFields(parentComponentName, INPUT_STREAMLINE_EVENT.getSourceStream());
        result = new Fields(StreamlineEvent.STREAMLINE_EVENT);
    }};
    Tuple parentTuple = new TupleImpl(mockedTopologyContext, new Values(parentEvent), parentTaskId,
            INPUT_STREAMLINE_EVENT.getSourceStream());
    StreamlineEvent injectedEvent = sut.injectCorrelationInformation(
            new Values(INPUT_STREAMLINE_EVENT), Collections.singletonList(parentTuple), TEST_COMPONENT_NAME);
    StreamlineEventTestUtil.assertEventIsProperlyCopied(injectedEvent, INPUT_STREAMLINE_EVENT);
    // added headers
    assertEquals(Collections.singleton(parentEvent.getId()), EventCorrelationInjector.getRootIds(injectedEvent));
    assertEquals(Collections.singleton(parentEvent.getId()), EventCorrelationInjector.getParentIds(injectedEvent));
    assertEquals(StormTopologyUtil.extractStreamlineComponentName(TEST_COMPONENT_NAME), EventCorrelationInjector.getSourceComponentName(injectedEvent));
}