in FBSDKLoginKit/FBSDKLoginKitTests/LoginManagerTests.swift [1199:1281]
func validate(profile: Profile) throws {
XCTAssertNotNil(profile, "user profile should be updated")
XCTAssertEqual(
profile.name,
claims["name"] as? String,
"failed to parse user name"
)
XCTAssertEqual(
profile.firstName,
claims["given_name"] as? String,
"failed to parse user first name"
)
XCTAssertEqual(
profile.middleName,
claims["middle_name"] as? String,
"failed to parse user middle name"
)
XCTAssertEqual(
profile.lastName,
claims["family_name"] as? String,
"failed to parse user last name"
)
XCTAssertEqual(
profile.userID,
claims["sub"] as? String,
"failed to parse userID"
)
XCTAssertEqual(
profile.imageURL?.absoluteString,
claims["picture"] as? String,
"failed to parse user profile picture"
)
XCTAssertEqual(
profile.email,
claims["email"] as? String,
"failed to parse user email"
)
XCTAssertEqual(
profile.friendIDs,
claims["user_friends"] as? [String],
"failed to parse user friends"
)
// @lint-ignore FBOBJCDISCOURAGEDFUNCTION
let formatter = DateFormatter()
formatter.dateFormat = "MM/dd/yyyy"
let birthday = try XCTUnwrap(profile.birthday)
XCTAssertEqual(
formatter.string(from: birthday),
claims["user_birthday"] as? String,
"failed to parse user birthday"
)
let ageRange = try XCTUnwrap(claims["user_age_range"] as? [String: NSNumber])
XCTAssertEqual(
profile.ageRange,
UserAgeRange(from: ageRange),
"failed to parse user age range"
)
let hometown = try XCTUnwrap(claims["user_hometown"] as? [String: String])
XCTAssertEqual(
profile.hometown,
Location(from: hometown),
"failed to parse user hometown"
)
let location = try XCTUnwrap(claims["user_location"] as? [String: String])
XCTAssertEqual(
profile.location,
Location(from: location),
"failed to parse user location"
)
let gender = try XCTUnwrap(claims["user_gender"] as? String)
XCTAssertEqual(
profile.gender,
gender,
"failed to parse user gender"
)
let rawLink = try XCTUnwrap(claims["user_link"] as? String)
let link = try XCTUnwrap(URL(string: rawLink))
XCTAssertEqual(
profile.linkURL,
link,
"failed to parse user link"
)
}