@Provides public RequestsRetriever requestsRetriever(RawRequestRetriever rawRequestRetriever, UserActionsRetriever userActionsRetriever, UserActionsToRequestsApplier userActionsToRequestsApplier) { return new RequestsRetriever(rawRequestRetriever, userActionsRetriever, userActionsToRequestsApplier); }
@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); } });
public List<RequestEntity> getAllRequests() { List<RequestEntity> rawRequests = mRawRequestsRetriever.getAllRequests(); List<RequestEntity> requests = applyUserActionsToRequests(rawRequests); return orderRequestsByLatestActivity(requests); }
@Override public void run() { RequestEntity request = mRequestsRetriever.getRequestById(requestId); if (request == null) { notifyListenersWithRequests(new ArrayList<RequestEntity>(0)); } else { notifyListenersWithRequests(Collections.singletonList(request)); } } });
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); }
/** * 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); }
@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 }
@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 }
@Before public void setup() throws Exception { SUT = new RequestsRetriever(mRawRequestRetrieverMock, mUserActionsRetrieverMock, mUserActionsToRequestsApplier); }
List<RequestEntity> resultRequests = SUT.getRequestsAssignedToUser(TEST_USER_ID);