public List<RequestEntity> getAllRequests() { List<RequestEntity> rawRequests = mRawRequestsRetriever.getAllRequests(); List<RequestEntity> requests = applyUserActionsToRequests(rawRequests); return orderRequestsByLatestActivity(requests); }
@Override public void run() { final List<RequestEntity> requests = mRequestsRetriever.getAllRequests(); notifyListenersWithRequests(requests); } });
@Override public void run() { final List<RequestEntity> requests = mRequestsRetriever.getRequestsAssignedToUser(userId); notifyListenersWithRequests(requests); } });
userActions.add(closePickedUp); when(mRawRequestRetrieverMock.getRequestsAssignedToUser(TEST_USER_ID)).thenReturn(rawRequests); when(mUserActionsRetrieverMock.getAllUserActions()).thenReturn(userActions); List<RequestEntity> resultRequests = SUT.getRequestsAssignedToUser(TEST_USER_ID); assertThat(resultRequests.size(), is(3)); RequestEntity updatedInitiallyNewRequest = getRequestById(resultRequests, initiallyNewRequest.getId()); assertNotNull(updatedInitiallyNewRequest); assertRequestsEqual(updatedInitiallyNewRequest, RequestEntity.getBuilder(initiallyNewRequest) .setPickedUpBy(pickUpNew.getPickedUpByUserId()) .setPickedUpAt(pickUpNew.getPickedUpAt()) .build()); RequestEntity updatedInitiallyPickedUpRequest = getRequestById(resultRequests, initiallyPickedUpRequest.getId()); assertNotNull(updatedInitiallyPickedUpRequest); assertRequestsEqual(updatedInitiallyPickedUpRequest, RequestEntity.getBuilder(initiallyPickedUpRequest) .setClosedBy(closePickedUp.getClosedByUserId()) .setClosedAt(closePickedUp.getClosedAt()) RequestEntity updatedInitiallyClosedRequest = getRequestById(resultRequests, initiallyClosedRequest.getId()); assertNotNull(updatedInitiallyClosedRequest); assertRequestsEqual(updatedInitiallyClosedRequest, RequestEntity.getBuilder(initiallyClosedRequest) .setClosedVotes(initiallyClosedRequest.getClosedVotes() + 1) .build());
/** * Get information about requests assigned to the user. * @param userId ID of the user * @return a list of requests assigned to the user */ @WorkerThread public List<RequestEntity> getRequestsAssignedToUser(String userId) { List<RequestEntity> rawRequests = mRawRequestsRetriever.getRequestsAssignedToUser(userId); List<RequestEntity> requests = applyUserActionsToRequests(rawRequests); return orderRequestsByLatestActivity(requests); }
@Provides public RequestsRetriever requestsRetriever(RawRequestRetriever rawRequestRetriever, UserActionsRetriever userActionsRetriever, UserActionsToRequestsApplier userActionsToRequestsApplier) { return new RequestsRetriever(rawRequestRetriever, userActionsRetriever, userActionsToRequestsApplier); }
public @Nullable RequestEntity getRequestById(String requestId) { RequestEntity rawRequest = mRawRequestsRetriever.getRequestById(requestId); if (rawRequest == null) return null; List<RequestEntity> requests = new ArrayList<>(1); requests.add(rawRequest); return applyUserActionsToRequests(requests).get(0); }
public @Nullable RequestEntity getRequestById(String requestId) { String selection = Requests.COL_REQUEST_ID + " = ?"; String[] selectionArgs = new String[] {requestId}; List<RequestEntity> requests = getRequestsForSelection(selection, selectionArgs); if (requests.isEmpty()) { return null; } else { return requests.get(0); } }
private String getPermanentEntityId(String tempEntityId) { return mTempIdRetriever.getNewIdForTempId(tempEntityId); }
@Provides public RawRequestRetriever rawRequestRetriever(ContentResolver contentResolver) { return new RawRequestRetriever(contentResolver); }
@Provides TempIdRetriever tempIdRetriever(ContentResolver contentResolver) { return new TempIdRetriever(contentResolver); }
@Override public void run() { RequestEntity request = mRequestsRetriever.getRequestById(requestId); if (request == null) { notifyListenersWithRequests(new ArrayList<RequestEntity>(0)); } else { notifyListenersWithRequests(Collections.singletonList(request)); } } });
private List<RequestEntity> getRequestsForSelection(String selection, String[] selectionArgs) { String[] projection = Requests.PROJECTION_ALL; String sortOrder = Requests.COL_PICKED_UP_AT + " ASC"; Cursor cursor = null; try { cursor = mContentResolver.query( Requests.CONTENT_URI, projection, selection, selectionArgs, sortOrder); if (cursor != null && cursor.moveToFirst()) { List<RequestEntity> requests = new ArrayList<>(cursor.getCount()); do { RequestEntity request = createRequestFromCurrentCursorPosisition(cursor); requests.add(request); } while (cursor.moveToNext()); return requests; } else { return new ArrayList<>(0); } } finally { if (cursor != null) cursor.close(); } }
RequestEntity request = mRawRequestsRetriever.getRequestById(requestId);
@Test public void fetchAllRequests_listenersNotified() { // Arrange RequestEntity pickedUpRequest = RequestEntity.getBuilder(RequestEntityProvider.getPickedUpRequestEntity()) .setPickedUpBy(TEST_USER_ID) .build(); RequestEntity closedRequest = RequestEntity.getBuilder(RequestEntityProvider.getClosedRequestEntity()) .setPickedUpBy(TEST_USER_ID_2) .build(); List<RequestEntity> allRequests = Arrays.asList(pickedUpRequest, closedRequest); when(mRequestsRetrieverMock.getAllRequests()).thenReturn(allRequests); // Act SUT.registerListener(mRequestsManagerListenerMock1); SUT.registerListener(mRequestsManagerListenerMock2); SUT.fetchAllRequestsAndNotify(); // Assert mThreadPostersTestDouble.join(); verify(mRequestsManagerListenerMock1, times(1)).onRequestsFetched(mRequestsListCaptor.capture()); verify(mRequestsManagerListenerMock2, times(1)).onRequestsFetched(mRequestsListCaptor.capture()); assertEquals(allRequests, mRequestsListCaptor.getValue()); // param for listener1 assertEquals(allRequests, mRequestsListCaptor.getValue()); // param for listener2 }
@Test public void fetchRequestsAssignedToUser_listenersNotified() { // Arrange RequestEntity pickedUpRequest = RequestEntity.getBuilder(RequestEntityProvider.getPickedUpRequestEntity()) .setPickedUpBy(TEST_USER_ID) .build(); RequestEntity closedRequest = RequestEntity.getBuilder(RequestEntityProvider.getClosedRequestEntity()) .setPickedUpBy(TEST_USER_ID) .build(); List<RequestEntity> assignedToTestUserRequests = Arrays.asList(pickedUpRequest, closedRequest); when(mRequestsRetrieverMock.getRequestsAssignedToUser(TEST_USER_ID)) .thenReturn(assignedToTestUserRequests); // Act SUT.registerListener(mRequestsManagerListenerMock1); SUT.registerListener(mRequestsManagerListenerMock2); SUT.fetchRequestsAssignedToUserAndNotify(TEST_USER_ID); // Assert mThreadPostersTestDouble.join(); verify(mRequestsManagerListenerMock1, times(1)).onRequestsFetched(mRequestsListCaptor.capture()); verify(mRequestsManagerListenerMock2, times(1)).onRequestsFetched(mRequestsListCaptor.capture()); assertEquals(assignedToTestUserRequests, mRequestsListCaptor.getValue()); // param for listener1 assertEquals(assignedToTestUserRequests, mRequestsListCaptor.getValue()); // param for listener2 }
@Before public void setup() throws Exception { SUT = new RequestsRetriever(mRawRequestRetrieverMock, mUserActionsRetrieverMock, mUserActionsToRequestsApplier); }
@WorkerThread public List<RequestEntity> getRequestsAssignedToUser(String userId) { String selection = Requests.COL_PICKED_UP_BY + " = ?"; String[] selectionArgs = new String[] {userId}; return getRequestsForSelection(selection, selectionArgs); }
@WorkerThread public List<RequestEntity> getAllRequests() { String selection = null; String[] selectionArgs = null; return getRequestsForSelection(selection, selectionArgs); }