private void pickupRequest() { // TODO: request pickup should be allowed only when there is a network connection final String pickedUpBy = mLoginStateManager.getLoggedInUser().getUserId(); // If no logged in user - ask him to log in and rerun this method in case he does if (TextUtils.isEmpty(pickedUpBy)) { askUserToLogIn(); return; } PickUpRequestUserActionEntity pickUpRequestUserAction = mUserActionEntityFactory.newPickUpRequest(mRequestId, pickedUpBy); mUserActionsManager.addUserActionAndNotify( pickUpRequestUserAction, new UserActionsManager.UserActionsManagerListener() { @Override public void onUserActionAdded(UserActionEntity userAction) { refreshRequest(); // Request pickup is time critical action - need to be uploaded to the server ASAP mRequestsManager.syncRequestsFromServer(); } }); }
@Test(expected = IllegalArgumentException.class) public void applyUserActionToRequest_pickUpRequestUserActionOnPickedUpRequest_exceptionThrown() { // Arrange String userId = "testUserId"; RequestEntity requestEntity = RequestEntityProvider.getPickedUpRequestEntity(); UserActionEntity pickupUserAction = mUserActionEntityFactory.newPickUpRequest(requestEntity.getId(), userId); // Act SUT.applyUserActionToRequest(pickupUserAction, requestEntity); // Assert }
@Test public void applyUserActionToRequest_pickUpRequestUserActionOnNewRequest_requestAffected() { // Arrange String userId = "testUserId"; RequestEntity originalRequestEntity = RequestEntityProvider.getNewRequestEntity(); UserActionEntity pickupUserAction = mUserActionEntityFactory.newPickUpRequest(originalRequestEntity.getId(), userId); // Act RequestEntity resultRequestEntity = SUT.applyUserActionToRequest(pickupUserAction, originalRequestEntity); // Assert assertThat(resultRequestEntity.getPickedUpBy(), is(userId)); assertThat(resultRequestEntity.getPickedUpAt(), is(DEFAULT_TIMESTAMP)); }
initiallyPickedUpRequest.getId(), TEST_USER_ID, "closed_comment", Arrays.asList("one", "two")); PickUpRequestUserActionEntity pickUpNew = mUserActionEntityFactory.newPickUpRequest(initiallyNewRequest.getId(), TEST_USER_ID); VoteForRequestUserActionEntity voteForClosed = mUserActionEntityFactory.newVoteUpForRequestClosed(initiallyClosedRequest.getId());