@@ -1401,6 +1401,42 @@ public void testRemoveWithUserName() throws Exception {
14011401
14021402 //endregion
14031403
1404+ //region testSetState
1405+
1406+ @ Test
1407+ public void testSetCurrentUserStateWithoutAuthData () throws Exception {
1408+ // Set user initial state
1409+ String authType = "facebook" ;
1410+ Map <String , String > authData = new HashMap <>();
1411+ authData .put ("facebookToken" , "facebookTest" );
1412+ ParseUser .State userState = new ParseUser .State .Builder ()
1413+ .objectId ("test" )
1414+ .put ("oldKey" , "oldValue" )
1415+ .put ("key" , "value" )
1416+ .putAuthData (authType , authData )
1417+ .build ();
1418+ ParseUser user = ParseObject .from (userState );
1419+ user .setIsCurrentUser (true );
1420+ // Build new state
1421+ ParseUser .State newUserState = new ParseUser .State .Builder ()
1422+ .objectId ("testAgain" )
1423+ .put ("key" , "valueAgain" )
1424+ .build ();
1425+
1426+ user .setState (newUserState );
1427+
1428+ // Make sure we keep the authData
1429+ assertEquals (1 , user .getAuthData ().size ());
1430+ assertEquals (authData , user .getAuthData ().get (authType ));
1431+ // Make sure old state is deleted
1432+ assertFalse (user .has ("oldKey" ));
1433+ // Make sure new state is set
1434+ assertEquals ("testAgain" , user .getObjectId ());
1435+ assertEquals ("valueAgain" , user .get ("key" ));
1436+ }
1437+
1438+ //endregion
1439+
14041440 private static void setLazy (ParseUser user ) {
14051441 Map <String , String > anonymousAuthData = new HashMap <>();
14061442 anonymousAuthData .put ("anonymousToken" , "anonymousTest" );
0 commit comments