in FBSDKLoginKit/FBSDKLoginKitTests/LoginCompletionTests.swift [843:962]
func verifyParameters(
actual: LoginCompletionParameters,
expected: [String: Any],
_ file: StaticString = #file,
_ line: UInt = #line
) {
XCTAssertEqual(
actual.accessTokenString,
expected[Keys.accessToken] as? String,
file: file,
line: line
)
XCTAssertEqual(
actual.authenticationTokenString,
expected[Keys.idToken] as? String,
file: file,
line: line
)
XCTAssertEqual(
actual.appID,
Values.appID,
file: file,
line: line
)
XCTAssertEqual(
actual.challenge,
SampleRawLoginCompletionParameters.fakeChallenge,
file: file,
line: line
)
if let rawGrantedPermissions = expected[Keys.grantedScopes] as? String {
let grantedPermissions = Set(
rawGrantedPermissions
.split(separator: ",")
.compactMap { FBPermission(string: String($0)) }
)
XCTAssertEqual(
actual.permissions,
grantedPermissions,
file: file,
line: line
)
}
if let rawDeclinedPermissions = expected[Keys.deniedScopes] as? String {
let declinedPermissions = Set(
rawDeclinedPermissions
.split(separator: ",")
.compactMap { FBPermission(string: String($0)) }
)
XCTAssertEqual(
actual.declinedPermissions,
declinedPermissions,
file: file,
line: line
)
}
XCTAssertEqual(
actual.userID,
expected[Keys.userID] as? String,
file: file,
line: line
)
XCTAssertEqual(
actual.graphDomain,
expected[Keys.graphDomain] as? String,
file: file,
line: line
)
if let expectedExpires = expected[Keys.expires] as? Double,
let expires = actual.expirationDate?.timeIntervalSince1970 {
XCTAssertEqual(
expires,
expectedExpires,
accuracy: 100,
file: file,
line: line
)
}
if let expectedExpiresAt = expected[Keys.expiresAt] as? Double,
let expiresAt = actual.expirationDate?.timeIntervalSince1970 {
XCTAssertEqual(
expiresAt,
expectedExpiresAt,
accuracy: 100,
file: file,
line: line
)
}
if let expectedExpiresIn = expected[Keys.expiresIn] as? Double,
let expiresIn = actual.expirationDate?.timeIntervalSinceNow {
XCTAssertEqual(
expiresIn,
expectedExpiresIn,
accuracy: 100,
file: file,
line: line
)
}
if let expectedDataAccessExpiration = expected[Keys.dataAccessExpiration] as? TimeInterval,
let dataExpiration = actual.dataAccessExpirationDate?.timeIntervalSince1970 {
XCTAssertEqual(
dataExpiration,
expectedDataAccessExpiration,
accuracy: 100,
file: file,
line: line
)
}
XCTAssertEqual(
actual.nonceString,
expected[Keys.nonce] as? String,
file: file,
line: line
)
XCTAssertNil(actual.error, file: file, line: line)
}