This repository was archived by the owner on Sep 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathTrustStorageTests.swift
72 lines (66 loc) · 3.26 KB
/
TrustStorageTests.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
* Copyright (c) 2021 Ubique Innovation AG <https://www.ubique.ch>
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*
* SPDX-License-Identifier: MPL-2.0
*/
@testable import CovidCertificateSDK
import Foundation
import XCTest
final class TrustStorageTests: XCTestCase {
func testFiltering() {
let trustStorage = TrustStorage()
let certificates = TrustCertificates()
let json = """
[
{
"keyId": "keyid123",
"use": "t",
"alg": "RS256",
"subjectPublicKeyInfo": "\(randKey)"
}
]
"""
certificates.certs = try! JSONDecoder().decode([TrustCertificate].self, from: json.data(using: .utf8)!)
_ = trustStorage.updateCertificateList(certificates, since: "")
let emptyActiveCerts = trustStorage.activeCertificatePublicKeys().filter { $0.containsUse(trustListUseFilters: ["a"]) }
XCTAssert(emptyActiveCerts.isEmpty)
let activeCerts = trustStorage.activeCertificatePublicKeys().filter { $0.containsUse(trustListUseFilters: ["t"]) }
XCTAssert(!activeCerts.isEmpty)
XCTAssertEqual(activeCerts.first!.keyId, "keyid123")
}
func testFilteringMultiple() {
let trustStorage = TrustStorage()
let certificates = TrustCertificates()
let json = """
[
{
"keyId": "keyid123",
"use": "tvr",
"alg": "RS256",
"subjectPublicKeyInfo": "\(randKey)"
},
{
"keyId": "keyidLight",
"use": "l",
"alg": "RS256",
"subjectPublicKeyInfo": "\(randKey)"
}
]
"""
certificates.certs = try! JSONDecoder().decode([TrustCertificate].self, from: json.data(using: .utf8)!)
_ = trustStorage.updateCertificateList(certificates, since: "")
let activeCerts = trustStorage.activeCertificatePublicKeys().filter { $0.containsUse(trustListUseFilters: CertificateType.dccCert.trustListUseFilters) }
XCTAssert(!activeCerts.isEmpty)
XCTAssert(activeCerts.count == 1)
XCTAssertEqual(activeCerts.first!.keyId, "keyid123")
let activeLightCerts = trustStorage.activeCertificatePublicKeys().filter { $0.containsUse(trustListUseFilters: CertificateType.lightCert.trustListUseFilters) }
XCTAssert(!activeLightCerts.isEmpty)
XCTAssert(activeLightCerts.count == 1)
XCTAssertEqual(activeLightCerts.first!.keyId, "keyidLight")
}
private let randKey = "MIIBCgKCAQEA4uZO4/7tneZ3XD5OAiTyoANOohQZC+DzZ4YC0AoLnEO+Z3PcTialCuRKS1zHfujNPI0GGG09DRVVXdv+tcKNXFDt/nRU1zlWDGFf4/63l5RIjkWFD3JFKqR8IlcJjrYYxstuZs3May3SGQJ+kZaeH5GFZMRvE0waHqMxbfwakvjf8qyBXCrZ1WsK+XJf7iYbJS2dO1a5HnegxPuRA7Zz8ikO7QRzmSongqOlkejEaIkFjx7gLGTUsOrBPYa5sdZqinDwmnjtKi52HLWarMXs+t1MN4etIp7GE7/zarjBNxk1Efiiwl+RdcwJ2uVwfrgzxfv3/TekZF8IUykV2Geu3QIDAQAB"
}