36 lines
1.1 KiB
Swift
36 lines
1.1 KiB
Swift
//
|
|
// Copyright 2023 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
import Foundation
|
|
@testable import SignalServiceKit
|
|
|
|
public class KBSAuthCredentialStorageMock: KBSAuthCredentialStorage {
|
|
|
|
public var currentUsername: String?
|
|
public var dict = [String: KBSAuthCredential]()
|
|
|
|
public init() {}
|
|
|
|
public func storeAuthCredentialForCurrentUsername(_ auth: KBSAuthCredential, _ transaction: DBWriteTransaction) {
|
|
dict[auth.username] = auth
|
|
currentUsername = auth.username
|
|
}
|
|
|
|
public func getAuthCredentials(_ transaction: DBReadTransaction) -> [KBSAuthCredential] {
|
|
return Array(dict.values)
|
|
}
|
|
|
|
public func getAuthCredentialForCurrentUser(_ transaction: DBReadTransaction) -> KBSAuthCredential? {
|
|
guard let currentUsername = currentUsername else {
|
|
return nil
|
|
}
|
|
return dict[currentUsername]
|
|
}
|
|
|
|
public func deleteInvalidCredentials(_ invalidCredentials: [KBSAuthCredential], _ transaction: DBWriteTransaction) {
|
|
invalidCredentials.lazy.map(\.username).forEach { dict[$0] = nil }
|
|
}
|
|
}
|