@Override public void run() { // TODO: ensure atomicity of below actions using TransactionController mUserActionCacher.cacheUserAction(createRequestUserAction); mRequestsCacher.updateOrInsertAndNotify(newRequest); } });
@Provides UserActionCacher userActionCacher(ContentResolver contentResolver, Logger logger) { return new UserActionCacher(contentResolver, logger); }
mUserActionCacher.deleteUserAction(userAction);
@WorkerThread private void addNewUserActionSync(final UserActionEntity userAction, final UserActionsManagerListener listener) { mUserActionCacher.cacheUserAction(userAction); mUiThreadPoster.post(new Runnable() { @Override public void run() { listener.onUserActionAdded(userAction); } }); }
@Test public void addNewRequest_createRequestUserActionCached() { // Arrange RequestEntity newRequest = RequestEntityProvider.getNewRequestEntity(); // Act SUT.addNewRequest(newRequest); // Assert mThreadPostersTestDouble.join(); CreateRequestUserActionEntity expectedUserAction = new CreateRequestUserActionEntity(newRequest.getCreatedAt(), newRequest.getId(), newRequest.getCreatedBy()); verify(mUserActionCacherMock).cacheUserAction(mUserActionsCaptor.capture()); UserActionEntity cachedUserAction = mUserActionsCaptor.getValue(); assertUserActionsEqual(cachedUserAction, expectedUserAction); }