Newer
Older
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
73
import Foundation
import XXClient
import XCTestDynamicOverlay
public struct MessengerEnvironment {
public var ctx: MessengerContext
public var downloadNDF: DownloadAndVerifySignedNdf
public var fileManager: MessengerFileManager
public var generateSecret: GenerateSecret
public var getCMixParams: GetCMixParams
public var getE2EParams: GetE2EParams
public var isRegisteredWithUD: IsRegisteredWithUD
public var loadCMix: LoadCMix
public var login: Login
public var ndfEnvironment: NDFEnvironment
public var newCMix: NewCMix
public var newOrLoadUd: NewOrLoadUd
public var passwordStorage: PasswordStorage
public var storageDir: () -> String
public var udAddress: () -> String?
public var udCert: () -> Data?
public var udContact: () -> Data?
}
extension MessengerEnvironment {
public static let defaultStorageDir = FileManager.default
.urls(for: .applicationSupportDirectory, in: .userDomainMask)
.first!
.appendingPathComponent("xx.network.client")
.path
public static let live = MessengerEnvironment(
ctx: .init(),
downloadNDF: .live,
fileManager: .live(),
generateSecret: .live,
getCMixParams: .liveDefault,
getE2EParams: .liveDefault,
isRegisteredWithUD: .live,
loadCMix: .live,
login: .live,
ndfEnvironment: .mainnet,
newCMix: .live,
newOrLoadUd: .live,
passwordStorage: .keychain,
storageDir: { MessengerEnvironment.defaultStorageDir },
udAddress: { nil },
udCert: { nil },
udContact: { nil }
)
}
extension MessengerEnvironment {
public static let unimplemented = MessengerEnvironment(
ctx: .init(),
downloadNDF: .unimplemented,
fileManager: .unimplemented,
generateSecret: .unimplemented,
getCMixParams: .unimplemented,
getE2EParams: .unimplemented,
isRegisteredWithUD: .unimplemented,
loadCMix: .unimplemented,
login: .unimplemented,
ndfEnvironment: .unimplemented,
newCMix: .unimplemented,
newOrLoadUd: .unimplemented,
passwordStorage: .unimplemented,
storageDir: XCTUnimplemented("\(Self.self).storageDir", placeholder: ""),
udAddress: XCTUnimplemented("\(Self.self).udAddress", placeholder: nil),
udCert: XCTUnimplemented("\(Self.self).udCert", placeholder: nil),
udContact: XCTUnimplemented("\(Self.self).udContact", placeholder: nil)
)
}