@@ -572,4 +572,66 @@ class LCUserTestCase: BaseTestCase {
572572 }
573573 }
574574
575+ func testUpdateAuthData( ) {
576+ let user = LCUser ( )
577+ let accessTokenKey = " access_token "
578+ let platform1 = " platform1 " ;
579+ let openid1 = UUID ( ) . uuidString
580+ let authData1 : [ String : String ] = [
581+ accessTokenKey : UUID ( ) . uuidString,
582+ " openid " : openid1
583+ ]
584+ expecting { exp in
585+ user. login ( withAuthData: authData1, platformId: platform1, options: nil ) { succeeded, error in
586+ XCTAssertTrue ( Thread . isMainThread)
587+ XCTAssertTrue ( succeeded)
588+ XCTAssertNil ( error)
589+ exp. fulfill ( )
590+ }
591+ }
592+ let getUserAuthData = { ( platform: String , key: String ) -> Any ? in
593+ let authData = user [ " authData " ] as? [ String : Any ]
594+ let platformAuthData = authData ? [ platform] as? [ String : Any ]
595+ return platformAuthData ? [ key]
596+ }
597+ XCTAssertEqual ( getUserAuthData ( platform1, accessTokenKey) as? String , authData1 [ accessTokenKey] )
598+
599+ let authData1_1 : [ String : String ] = [
600+ accessTokenKey : UUID ( ) . uuidString,
601+ " openid " : openid1
602+ ]
603+ let platform2 = " platform2 " ;
604+ let openid2 = UUID ( ) . uuidString
605+ let authData2 : [ String : String ] = [
606+ accessTokenKey : UUID ( ) . uuidString,
607+ " openid " : openid2
608+ ]
609+ user [ " authData. \( platform1) " ] = authData1_1
610+ user [ " authData. \( platform2) " ] = authData2
611+ let saveOption = LCSaveOption ( )
612+ saveOption. fetchWhenSave = true
613+ try ! user. save ( with: saveOption)
614+ XCTAssertEqual ( getUserAuthData ( platform1, accessTokenKey) as? String , authData1_1 [ accessTokenKey] )
615+ XCTAssertEqual ( getUserAuthData ( platform2, accessTokenKey) as? String , authData2 [ accessTokenKey] )
616+ XCTAssertEqual ( ( user [ " authData " ] as? [ String : Any ] ) ? . count, 2 )
617+
618+ let openid1_1 = UUID ( ) . uuidString
619+ let authData1_2 : [ String : String ] = [
620+ accessTokenKey : UUID ( ) . uuidString,
621+ " openid " : openid1_1
622+ ]
623+ let openid2_1 = UUID ( ) . uuidString
624+ let authData2_1 : [ String : String ] = [
625+ accessTokenKey : UUID ( ) . uuidString,
626+ " openid " : openid2_1
627+ ]
628+ user [ " authData. \( platform1) " ] = authData1_2
629+ user [ " authData. \( platform2) " ] = authData2_1
630+ try ! user. save ( with: saveOption)
631+ XCTAssertEqual ( getUserAuthData ( platform1, accessTokenKey) as? String , authData1_2 [ accessTokenKey] )
632+ XCTAssertEqual ( getUserAuthData ( platform2, accessTokenKey) as? String , authData2_1 [ accessTokenKey] )
633+ XCTAssertEqual ( getUserAuthData ( platform1, " openid " ) as? String , authData1_2 [ " openid " ] )
634+ XCTAssertEqual ( getUserAuthData ( platform2, " openid " ) as? String , authData2_1 [ " openid " ] )
635+ XCTAssertEqual ( ( user [ " authData " ] as? [ String : Any ] ) ? . count, 2 )
636+ }
575637}
0 commit comments