TM-SGNL-iOS/SignalServiceKit/Mocks/Usernames/MockUsernameLookupManager.swift
TeleMessage developers dde0620daf initial commit
2025-05-03 12:28:28 -07:00

39 lines
1 KiB
Swift

//
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
public import LibSignalClient
#if TESTABLE_BUILD
public class MockUsernameLookupManager: UsernameLookupManager {
public typealias Username = String
private var mockUsernames: [Aci: Username] = [:]
func clearAllUsernames() {
mockUsernames.removeAll()
}
// MARK: UsernameLookupManager
public func fetchUsername(forAci aci: Aci, transaction: DBReadTransaction) -> Username? {
mockUsernames[aci]
}
public func fetchUsernames(forAddresses addresses: AnySequence<SignalServiceAddress>, transaction: DBReadTransaction) -> [Username?] {
addresses.map { address -> Username? in
guard let aci = address.serviceId as? Aci else { return nil }
return fetchUsername(forAci: aci, transaction: transaction)
}
}
public func saveUsername(_ username: Username?, forAci aci: Aci, transaction: DBWriteTransaction) {
mockUsernames[aci] = username
}
}
#endif