@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 }
@Override public void run() { for (RequestsManagerListener listener : getListeners()) { listener.onRequestsFetched(requests); } } });