Signal-iOS/SignalServiceKit/tests/KeyBackupService/KBSAuthCredentialStorageMock.swift
2023-02-02 10:17:52 -08:00

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 }
}
}