@@ -1401,6 +1401,42 @@ public void testRemoveWithUserName() throws Exception {
1401
1401
1402
1402
//endregion
1403
1403
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
+
1404
1440
private static void setLazy (ParseUser user ) {
1405
1441
Map <String , String > anonymousAuthData = new HashMap <>();
1406
1442
anonymousAuthData .put ("anonymousToken" , "anonymousTest" );
0 commit comments