Signal-iOS/SignalServiceKit/tests/Account/PreKeys/PreKeyTaskTestMocks.swift
2026-04-13 12:03:26 -05:00

77 lines
2.4 KiB
Swift

//
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
import LibSignalClient
@testable import SignalServiceKit
//
//
// MARK: - Mocks
//
//
extension PreKeyTaskManager {
enum Mocks {
typealias APIClient = _PreKeyTaskManager_APIClientMock
typealias DateProvider = _PreKeyTaskManager_DateProviderMock
typealias IdentityKeyMismatchManager = _PreKeyTaskManager_IdentityKeyMismatchManagerMock
}
}
class _PreKeyTaskManager_IdentityKeyMismatchManagerMock: IdentityKeyMismatchManager {
func recordSuspectedIssueWithPniIdentityKey(tx: DBWriteTransaction) {
}
func validateLocalPniIdentityKeyIfNecessary() async throws {
}
var validateIdentityKeyMock: ((_ identity: OWSIdentity) async throws -> Void)!
func validateIdentityKey(for identity: OWSIdentity) async throws {
try await validateIdentityKeyMock!(identity)
}
}
class _PreKeyTaskManager_DateProviderMock {
var currentDate: Date = Date()
func targetDate() -> Date { return currentDate }
}
class _PreKeyTaskManager_APIClientMock: PreKeyTaskAPIClient {
var currentPreKeyCount: Int?
var currentPqPreKeyCount: Int?
var setPreKeysResult: ConsumableMockPromise<Void> = .unset
var identity: OWSIdentity?
var signedPreKeyRecord: LibSignalClient.SignedPreKeyRecord?
var preKeyRecords: [LibSignalClient.PreKeyRecord]?
var pqLastResortPreKeyRecord: LibSignalClient.KyberPreKeyRecord?
var pqPreKeyRecords: [LibSignalClient.KyberPreKeyRecord]?
var auth: ChatServiceAuth?
func getAvailablePreKeys(for identity: OWSIdentity) async throws -> (ecCount: Int, pqCount: Int) {
return (currentPreKeyCount!, currentPqPreKeyCount!)
}
func registerPreKeys(
for identity: OWSIdentity,
signedPreKeyRecord: LibSignalClient.SignedPreKeyRecord?,
preKeyRecords: [LibSignalClient.PreKeyRecord]?,
pqLastResortPreKeyRecord: LibSignalClient.KyberPreKeyRecord?,
pqPreKeyRecords: [LibSignalClient.KyberPreKeyRecord]?,
auth: ChatServiceAuth,
) async throws {
try await setPreKeysResult.consumeIntoPromise().awaitable()
self.identity = identity
self.signedPreKeyRecord = signedPreKeyRecord
self.preKeyRecords = preKeyRecords
self.pqLastResortPreKeyRecord = pqLastResortPreKeyRecord
self.pqPreKeyRecords = pqPreKeyRecords
self.auth = auth
}
}