passforios/passKitTests/Testbase/DictBasedKeychain.swift
Danny Moesch 5c7d4e55a4 Introduce KeyStore protocol in order to provide specialized key store implementations for tests
With the DictBasedKeychain the main AppKeychain is not influenced by tests. The previous implementation led to an empty Keychain requiring a new setup of the simulator.
2019-07-20 23:42:32 +02:00

42 lines
876 B
Swift

//
// DictBasedKeychain.swift
// passKitTests
//
// Created by Danny Moesch on 20.07.19.
// Copyright © 2019 Bob Sun. All rights reserved.
//
import Foundation
import passKit
class DictBasedKeychain: KeyStore {
private var store: [String: Any] = [:]
public func add(data: Data?, for key: String) {
store[key] = data
}
public func add(string: String?, for key: String) {
store[key] = string
}
public func contains(key: String) -> Bool {
return store[key] != nil
}
public func get(for key: String) -> Data? {
return store[key] as? Data
}
public func get(for key: String) -> String? {
return store[key] as? String
}
public func removeContent(for key: String) {
store.removeValue(forKey: key)
}
public func removeAllContent() {
store.removeAll()
}
}