@Test
public void testTagSeenEvents_ShouldAddLap() throws Exception {

    Snapshot snapshot = new Snapshot(Instant.EPOCH);
    AddTagEvent addTagEvent = new AddTagEvent(Instant.EPOCH.plus(1, ChronoUnit.SECONDS), new TagId("ABCD"), 0);
    snapshot = addTagEvent.doApply(snapshot);
    StartEvent startEvent = new StartEvent(Instant.EPOCH.plus(2, ChronoUnit.SECONDS));
    snapshot = startEvent.doApply(snapshot);
    TagSeenEvent tagSeenEvent =
            new TagSeenEvent(Instant.EPOCH.plus(3, ChronoUnit.SECONDS), new TagId("ABCD"), 0, 0L);
    snapshot = tagSeenEvent.doApply(snapshot);
    TagSeenEvent tagSeenEvent2 =
            new TagSeenEvent(Instant.EPOCH.plus(60, ChronoUnit.SECONDS), new TagId("ABCD"), 0, 1L);
    snapshot = tagSeenEvent2.doApply(snapshot);
    MatcherAssert.assertThat(snapshot.getTeamStates().getNbLapsForTeam(0), Matchers.equalTo(1));
}