LineageInfo lineageInfo = getLineageInfo();
DatasetDescriptor source = new DatasetDescriptor(kafka, topic);
lineageInfo.setSource(source, state0);
verify(first(events.get("0")), topic, source, destination00);
verify(first(events.get("1")), topic, source, destination01);
Assert.assertEquals(getLineageEvent(eventsList, 0, hdfs), first(events.get("0")));
Assert.assertEquals(getLineageEvent(eventsList, 1, mysql), first(events.get("1")));
eventsList = LineageInfo.load(states);
Assert.assertTrue(eventsList.size() == 3);
Assert.assertEquals(getLineageEvent(eventsList, 0, hdfs), first(events.get("0")));
Assert.assertEquals(getLineageEvent(eventsList, 1, mysql), first(events.get("1")));
verify(getLineageEvent(eventsList, 2, mysql), topic, source, destination12);
eventsList = LineageInfo.load(states);
Assert.assertTrue(eventsList.size() == 4);
Assert.assertEquals(getLineageEvent(eventsList, 0, hdfs), first(events.get("0")));
Assert.assertEquals(getLineageEvent(eventsList, 1, mysql), first(events.get("1")));
LineageEventBuilder event12 = getLineageEvent(eventsList, 0, mysql);
if (event12 == null) {
event12 = getLineageEvent(eventsList, 2, mysql);
verify(event12, topic, source, destination12);
verify(getLineageEvent(eventsList, 1, "hive"), topic, source, destination11);