BackupItemsFetcher { public long getMostRecentTimestamp(DataType dataType) { return getMostRecentTimestampForQuery(queryBuilder.buildMostRecentQueryForDataType(dataType)); } BackupItemsFetcher(@NonNull ContentResolver resolver,
                       @NonNull BackupQueryBuilder queryBuilder); @NonNull Cursor getItemsForDataType(DataType dataType, ContactGroupIds group, int max); long getMostRecentTimestamp(DataType dataType);  }
@Test public void shouldReturnDefaultIfDataTypeCannotBeRead() throws Exception { for (DataType type : DataType.values()) { assertThat(fetcher.getMostRecentTimestamp(type)).isEqualTo(-1); } }
@Test public void shouldGetMostRecentTimestampForItemTypeSMS() throws Exception { mockMostRecentTimestampForType(SMS, 23L); assertThat(fetcher.getMostRecentTimestamp(SMS)).isEqualTo(23L); }
@Test public void shouldMostRecentTimestampForItemTypeMMS() throws Exception { mockMostRecentTimestampForType(MMS, 23L); assertThat(fetcher.getMostRecentTimestamp(MMS)).isEqualTo(23L); }
@Test public void shouldGetMostRecentTimestampForItemTypeCallLog() throws Exception { mockMostRecentTimestampForType(CALLLOG, 23L); assertThat(fetcher.getMostRecentTimestamp(CALLLOG)).isEqualTo(23L); }