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.
This commit is contained in:
parent
b42401343d
commit
5c7d4e55a4
6 changed files with 93 additions and 24 deletions
42
passKitTests/Testbase/DictBasedKeychain.swift
Normal file
42
passKitTests/Testbase/DictBasedKeychain.swift
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
//
|
||||
// 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()
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue