@Test public void testToRest() throws Exception { ParseUser user = new ParseUser(); user.setUsername("userName"); user.setPassword("password"); JSONObject json = user.toRest(user.getState(), user.operationSetQueue, PointerEncoder.get()); // Make sure we delete password operations assertFalse(json.getJSONArray("__operations").getJSONObject(0).has("password")); // Make sure we have username operations assertEquals( "userName", json.getJSONArray("__operations").getJSONObject(0).getString("username")); }
user.setUsername("userName"); user.setPassword("password"); Map<String, String> anonymousAuthData = new HashMap<>(); verify(currentUser, times(1)).setUsername("userName"); verify(currentUser, times(1)).setPassword("password");
user.setUsername("userName"); user.setPassword("password"); Map<String, String> anonymousAuthData = new HashMap<>(); verify(partialMockCurrentUser, times(1)).setUsername("userName"); verify(partialMockCurrentUser, times(1)).setPassword("password"); .saveAsync(eq("oldSessionToken"), eq(false), Matchers.<Task<Void>>any()); verify(partialMockCurrentUser, times(1)).setUsername("oldUserName"); verify(partialMockCurrentUser, times(1)).setPassword("oldPassword");
@Test public void testSignUpAsyncWithObjectIdSetAndAuthDataSet() throws Exception { // Register a mock currentUserController to make getCurrentUser work ParseUser currentUser = mock(ParseUser.class); when(currentUser.getSessionToken()).thenReturn("sessionToken"); ParseCurrentUserController currentUserController = mock(ParseCurrentUserController.class); when(currentUserController.getAsync(anyBoolean())).thenReturn(Task.forResult(currentUser)); ParseCorePlugins.getInstance().registerCurrentUserController(currentUserController); ParseUser.State userState = new ParseUser.State.Builder() .objectId("test") .putAuthData(ParseAnonymousUtils.AUTH_TYPE, null) .build(); ParseUser user = ParseObject.from(userState); user.setUsername("userName"); user.setPassword("password"); //TODO (mengyan): Avoid using partial mock after we have ParseObjectInstanceController ParseUser partialMockUser = spy(user); doReturn(Task.<Void>forResult(null)) .when(partialMockUser) .saveAsync(anyString(), Matchers.<Task<Void>>any()); ParseTaskUtils.wait(partialMockUser.signUpAsync(Task.<Void>forResult(null))); // Verify user is saved verify(partialMockUser, times(1)).saveAsync(eq("sessionToken"), Matchers.<Task<Void>>any()); }
@Override public Task<Void> then(Task<Void> task) { if (task.isCancelled() || task.isFaulted()) { // Error synchronized (user.mutex) { if (oldUsername != null) { user.setUsername(oldUsername); } else { user.revert(KEY_USERNAME); } if (oldPassword != null) { user.setPassword(oldPassword); } else { user.revert(KEY_PASSWORD); } user.restoreAnonymity(anonymousData); } return task; } else { // Success user.revert(KEY_PASSWORD); revert(KEY_PASSWORD); } mergeFromObject(user); return saveCurrentUserAsync(ParseUser.this); } });
@Test public void testSignUpAsyncWithNoPassword() throws Exception { // Register a mock currentUserController to make getCurrentUser work ParseCurrentUserController currentUserController = mock(ParseCurrentUserController.class); when(currentUserController.getAsync(anyBoolean())).thenReturn(Task.<ParseUser>forResult(null)); ParseCorePlugins.getInstance().registerCurrentUserController(currentUserController); ParseUser user = new ParseUser(); user.setUsername("userName"); thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Password cannot be missing or blank"); ParseTaskUtils.wait(user.signUpAsync(Task.<Void>forResult(null))); }
@Test public void testSignUpAsyncWithNoCurrentUserAndSignUpFailure() { // Register a mock currentUserController to make getCurrentUser work ParseCurrentUserController currentUserController = mock(ParseCurrentUserController.class); when(currentUserController.getAsync(anyBoolean())) .thenReturn(Task.<ParseUser>forResult(null)); ParseCorePlugins.getInstance().registerCurrentUserController(currentUserController); // Register a mock userController to make logIn work ParseUserController userController = mock(ParseUserController.class); ParseException signUpException = new ParseException(ParseException.OTHER_CAUSE, "test"); when(userController.signUpAsync( any(ParseUser.State.class), any(ParseOperationSet.class), anyString())) .thenReturn(Task.<ParseUser.State>forError(signUpException)); ParseCorePlugins.getInstance().registerUserController(userController); ParseUser user = new ParseUser(); user.put("key", "value"); user.setUsername("userName"); user.setPassword("password"); Task<Void> signUpTask = user.signUpAsync(Task.<Void>forResult(null)); // Make sure we sign up the user verify(userController, times(1)).signUpAsync( any(ParseUser.State.class), any(ParseOperationSet.class), anyString()); // Make sure user's data is correct assertEquals("value", user.getString("key")); // Make sure we never set the current user verify(currentUserController, never()).setAsync(user); // Make sure task is failed assertTrue(signUpTask.isFaulted()); assertSame(signUpException, signUpTask.getError()); }
@Test public void testSignUpAsyncWithSignUpSameAnonymousUser() throws Exception { ParseUser user = new ParseUser(); user.setUsername("userName"); user.setPassword("password"); Map<String, String> anonymousAuthData = new HashMap<>(); anonymousAuthData.put("key", "token"); user.putAuthData(ParseAnonymousUtils.AUTH_TYPE, anonymousAuthData); // Register a mock currentUserController to make getCurrentUser work ParseCurrentUserController currentUserController = mock(ParseCurrentUserController.class); when(currentUserController.getAsync(anyBoolean())).thenReturn(Task.forResult(user)); ParseCorePlugins.getInstance().registerCurrentUserController(currentUserController); thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Attempt to merge currentUser with itself."); ParseTaskUtils.wait(user.signUpAsync(Task.<Void>forResult(null))); }
user.setUsername("userName"); user.setPassword("password");
user.setUsername(getUsername()); user.setPassword(getPassword()); revert();
@Test public void testSignUpAsyncWithAnotherSignUpAlreadyRunning() throws Exception { // Register a mock currentUserController to make getCurrentUser work ParseCurrentUserController currentUserController = mock(ParseCurrentUserController.class); when(currentUserController.getAsync(anyBoolean())).thenReturn(Task.<ParseUser>forResult(null)); ParseCorePlugins.getInstance().registerCurrentUserController(currentUserController); ParseUser user = new ParseUser(); user.setUsername("userName"); user.setPassword("password"); user.startSave(); thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Cannot sign up a user that is already signing up."); ParseTaskUtils.wait(user.signUpAsync(Task.<Void>forResult(null))); }
@Test public void testSignUpAsyncWithObjectIdSetAndAuthDataNotSet() throws Exception { // Register a mock currentUserController to make getCurrentUser work ParseCurrentUserController currentUserController = mock(ParseCurrentUserController.class); when(currentUserController.getAsync(anyBoolean())).thenReturn(Task.<ParseUser>forResult(null)); ParseCorePlugins.getInstance().registerCurrentUserController(currentUserController); ParseUser.State userState = new ParseUser.State.Builder() .objectId("test") .build(); ParseUser user = ParseObject.from(userState); user.setUsername("userName"); user.setPassword("password"); thrown.expect(IllegalArgumentException.class); thrown.expectMessage("Cannot sign up a user that has already signed up."); ParseTaskUtils.wait(user.signUpAsync(Task.<Void>forResult(null))); }
} else { ParseUser user = new ParseUser(); user.setUsername(tvName.getText().toString()); user.setPassword(tvPassword.getText().toString()); user.setEmail(tvEmail.getText().toString());
user.setUsername(username); user.setPassword(password); user.setEmail(email);