### Question:
ContentsExporter implements IContentsExporter { @Override public DataDelta getChanged(UserDataRequest udr, ItemSyncState syncState, AnalysedSyncCollection syncCollection, SyncKey newSyncKey) throws DaoException, CollectionNotFoundException, UnexpectedObmSyncServerException, ProcessingEmailException, ConversionException, FilterTypeChangedException, HierarchyChangedException { PIMBackend backend = backends.getBackend(syncCollection.getDataType()); return backend.getChanged(udr, syncState, syncCollection, newSyncKey); } @Inject @VisibleForTesting  ContentsExporter(Backends backends); @Override DataDelta getChanged(UserDataRequest udr, ItemSyncState syncState, AnalysedSyncCollection syncCollection, SyncKey newSyncKey); @Override List<ItemChange> fetch(UserDataRequest udr, SyncCollectionResponse syncCollection, SyncCollectionOptions syncCollectionOptions); @Override List<ItemChange> fetch(UserDataRequest udr, ItemSyncState itemSyncState, AnalysedSyncCollection syncCollection, SyncKey newSyncKey); @Override Optional<ItemChange> fetch(UserDataRequest udr, ItemSyncState itemSyncState, PIMDataType dataType, CollectionId collectionId, 
			SyncCollectionOptions options, ServerId fetchId, SyncKey newSyncKey); @Override int getItemEstimateSize(UserDataRequest udr, PIMDataType pimDataType, AnalysedSyncCollection syncCollection, ItemSyncState itemSyncState); @Override void initialize(DeviceId deviceId, CollectionId collectionId, PIMDataType dataType, FilterType filterType, SyncKey newSyncKey);  }### Answer:
@Test public void testGetChangedOnBackend() throws Exception { CollectionId collectionId = CollectionId.of(15); AnalysedSyncCollection syncCollection = AnalysedSyncCollection.builder() .collectionId(collectionId) .dataType(PIMDataType.EMAIL) .syncKey(new SyncKey("123")) .build(); ItemSyncState syncState = ItemSyncState.builder() .syncDate(date("2012-05-04T11:22:53")) .syncKey(new SyncKey("123")) .id(5) .build(); PIMBackend emailBackend = mocks.createMock(PIMBackend.class); expect(backends.getBackend(PIMDataType.EMAIL)).andReturn(emailBackend); SyncKey allocatedSyncKey = new SyncKey("456"); DataDelta backendDataDelta = DataDelta.newEmptyDelta(date("2012-05-04T12:22:53"), allocatedSyncKey); expect(emailBackend.getChanged(udr, syncState, syncCollection, allocatedSyncKey)) .andReturn(backendDataDelta); mocks.replay(); DataDelta dataDelta = testee.getChanged(udr, syncState, syncCollection, allocatedSyncKey); mocks.verify(); assertThat(dataDelta.getSyncDate()).isEqualTo(date("2012-05-04T12:22:53")); assertThat(dataDelta.getSyncKey()).isEqualTo(allocatedSyncKey); assertThat(dataDelta.getChanges()).isEmpty(); assertThat(dataDelta.getDeletions()).isEmpty(); }