DailyView/Carthage/Checkouts/facebook-ios-sdk/FBSDKGamingServicesKit/FBSDKGamingServicesKitTests/CreateContextDialogFactoryTests.swift
2025-12-30 16:40:31 +08:00

81 lines
2.2 KiB
Swift

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
* All rights reserved.
*
* This source code is licensed under the license found in the
* LICENSE file in the root directory of this source tree.
*/
@testable import FBSDKGamingServicesKit
import TestTools
import XCTest
final class CreateContextDialogFactoryTests: XCTestCase {
let content = CreateContextContent(playerID: "123")
let windowFinder = TestWindowFinder()
let delegate = TestContextDialogDelegate()
let tokenProvider = TestAccessTokenProvider()
override func setUp() {
super.setUp()
TestAccessTokenProvider.reset()
}
override func tearDown() {
TestAccessTokenProvider.reset()
super.tearDown()
}
func testCreatingDialogWithAccessToken() throws {
TestAccessTokenProvider.stubbedAccessToken = SampleAccessTokens.validToken
let factory = CreateContextDialogFactory(tokenProvider: TestAccessTokenProvider.self)
let dialog = try XCTUnwrap(
factory.makeCreateContextDialog(
content: content,
windowFinder: windowFinder,
delegate: delegate
) as? CreateContextDialog,
"Should create a context dialog of the expected concrete type"
)
XCTAssertEqual(
dialog.dialogContent as? CreateContextContent,
content,
"Should create the dialog with the expected content"
)
XCTAssertTrue(
dialog.delegate === delegate,
"Should create the dialog with the expected delegate"
)
}
func testCreatingDialogWithMissingAccessToken() throws {
let factory = CreateContextDialogFactory(tokenProvider: TestAccessTokenProvider.self)
var capturedError: ContextDialogPresenterError?
var createDialog: CreateContextDialog?
do {
createDialog = try factory.makeCreateContextDialog(
content: content,
windowFinder: windowFinder,
delegate: delegate
) as? CreateContextDialog
} catch {
capturedError = error as? ContextDialogPresenterError
}
XCTAssertEqual(
capturedError,
ContextDialogPresenterError.invalidAccessToken,
"Should throw ContextDialogPresenterError.invalidAccessToken error"
)
XCTAssertNil(
createDialog,
"Should not create a context dialog with a missing access token"
)
}
}