@Test public void getTagGroupHistoryDifferentNamedUser() { when(mockNamedUser.getId()).thenReturn("foo"); clock.currentTimeMillis = 100; TagGroupsMutation fooMutation = TagGroupsMutation.newAddTagsMutation("history-group", tagSet("another-tag")); namedUserTagListener.onTagGroupsMutationUploaded("foo", fooMutation); TagGroupsMutation barMutation = TagGroupsMutation.newAddTagsMutation("history-group", tagSet("another-tag")); namedUserTagListener.onTagGroupsMutationUploaded("bar", barMutation); assertEquals(Collections.singletonList(fooMutation), historian.getTagGroupHistory(0)); }
@NonNull public List<TagGroupsMutation> getTagGroupHistory(long sinceDate) { synchronized (tagRecords) { return filterHistory(tagRecords, sinceDate); } }
AudienceHistorian { @NonNull public List<TagGroupsMutation> getTagGroupHistory(long sinceDate) { synchronized (tagRecords) { return filterHistory(tagRecords, sinceDate); } } }
AudienceHistorian { @NonNull public List<TagGroupsMutation> getTagGroupHistory(long sinceDate) { synchronized (tagRecords) { return filterHistory(tagRecords, sinceDate); } } AudienceHistorian(@NonNull AirshipChannel channel, @NonNull NamedUser namedUser, @NonNull Clock clock); }
AudienceHistorian { @NonNull public List<TagGroupsMutation> getTagGroupHistory(long sinceDate) { synchronized (tagRecords) { return filterHistory(tagRecords, sinceDate); } } AudienceHistorian(@NonNull AirshipChannel channel, @NonNull NamedUser namedUser, @NonNull Clock clock); @NonNull List<TagGroupsMutation> getTagGroupHistory(long sinceDate); @NonNull List<AttributeMutation> getAttributeHistory(long sinceDate); }
AudienceHistorian { @NonNull public List<TagGroupsMutation> getTagGroupHistory(long sinceDate) { synchronized (tagRecords) { return filterHistory(tagRecords, sinceDate); } } AudienceHistorian(@NonNull AirshipChannel channel, @NonNull NamedUser namedUser, @NonNull Clock clock); @NonNull List<TagGroupsMutation> getTagGroupHistory(long sinceDate); @NonNull List<AttributeMutation> getAttributeHistory(long sinceDate);  }