@@ -1428,7 +1428,36 @@ public void testSetCurrentUserStateWithoutAuthData() throws Exception {
14281428 // Make sure we keep the authData
14291429 assertEquals (1 , user .getAuthData ().size ());
14301430 assertEquals (authData , user .getAuthData ().get (authType ));
1431- // Make sure old state is deleted
1431+ // Make sure old state is replaced
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+ @ Test
1439+ public void testSetStateDoesNotAddNonExistentAuthData () throws Exception {
1440+ // Set user initial state
1441+ ParseUser .State userState = new ParseUser .State .Builder ()
1442+ .objectId ("test" )
1443+ .put ("oldKey" , "oldValue" )
1444+ .put ("key" , "value" )
1445+ .build ();
1446+ ParseUser user = ParseObject .from (userState );
1447+ user .setIsCurrentUser (true );
1448+ // Build new state
1449+ ParseUser .State newUserState = new ParseUser .State .Builder ()
1450+ .objectId ("testAgain" )
1451+ .put ("key" , "valueAgain" )
1452+ .build ();
1453+
1454+ user .setState (newUserState );
1455+
1456+ // Make sure we do not add authData when it did not exist before
1457+ assertFalse (user .keySet ().contains ("authData" ));
1458+ assertEquals (1 , user .keySet ().size ());
1459+ assertEquals (0 , user .getAuthData ().size ());
1460+ // Make sure old state is replaced
14321461 assertFalse (user .has ("oldKey" ));
14331462 // Make sure new state is set
14341463 assertEquals ("testAgain" , user .getObjectId ());
0 commit comments