Skip to content
Snippets Groups Projects
Commit 1aa17717 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Use Stored utility

parent 0b254c44
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!33XXMessengerClient
This commit is part of merge request !33. Comments created here will be created in the context of that merge request.
import XXClient
import XCTestDynamicOverlay
public struct MessengerCMix {
public var get: () -> CMix?
public var set: (CMix?) -> Void
public func callAsFunction() -> CMix? {
get()
}
}
extension MessengerCMix {
public static func live() -> MessengerCMix {
class Storage { var value: CMix? }
let storage = Storage()
return MessengerCMix(
get: { storage.value },
set: { storage.value = $0 }
)
}
}
extension MessengerCMix {
public static let unimplemented = MessengerCMix(
get: XCTUnimplemented("\(Self.self).get", placeholder: nil),
set: XCTUnimplemented("\(Self.self).set")
)
}
import XXClient
import XCTestDynamicOverlay
public struct MessengerE2E {
public var get: () -> E2E?
public var set: (E2E?) -> Void
public func callAsFunction() -> E2E? {
get()
}
}
extension MessengerE2E {
public static func live() -> MessengerE2E {
class Storage { var value: E2E? }
let storage = Storage()
return MessengerE2E(
get: { storage.value },
set: { storage.value = $0 }
)
}
}
extension MessengerE2E {
public static let unimplemented = MessengerE2E(
get: XCTUnimplemented("\(Self.self).get", placeholder: nil),
set: XCTUnimplemented("\(Self.self).set")
)
}
import XXClient
import XCTestDynamicOverlay
public struct MessengerUD {
public var get: () -> UserDiscovery?
public var set: (UserDiscovery?) -> Void
public func callAsFunction() -> UserDiscovery? {
get()
}
}
extension MessengerUD {
public static func live() -> MessengerUD {
class Storage { var value: UserDiscovery? }
let storage = Storage()
return MessengerUD(
get: { storage.value },
set: { storage.value = $0 }
)
}
}
extension MessengerUD {
public static let unimplemented = MessengerUD(
get: XCTUnimplemented("\(Self.self).get", placeholder: nil),
set: XCTUnimplemented("\(Self.self).set")
)
}
import XXClient import XXClient
public struct Messenger { public struct Messenger {
public var cMix: MessengerCMix public var cMix: Stored<CMix?>
public var e2e: MessengerE2E public var e2e: Stored<E2E?>
public var ud: MessengerUD public var ud: Stored<UserDiscovery?>
public var isCreated: MessengerIsCreated public var isCreated: MessengerIsCreated
public var create: MessengerCreate public var create: MessengerCreate
public var isLoaded: MessengerIsLoaded public var isLoaded: MessengerIsLoaded
...@@ -44,9 +44,9 @@ extension Messenger { ...@@ -44,9 +44,9 @@ extension Messenger {
extension Messenger { extension Messenger {
public static let unimplemented = Messenger( public static let unimplemented = Messenger(
cMix: .unimplemented, cMix: .unimplemented(),
e2e: .unimplemented, e2e: .unimplemented(),
ud: .unimplemented, ud: .unimplemented(),
isCreated: .unimplemented, isCreated: .unimplemented,
create: .unimplemented, create: .unimplemented,
isLoaded: .unimplemented, isLoaded: .unimplemented,
......
...@@ -3,9 +3,9 @@ import XXClient ...@@ -3,9 +3,9 @@ import XXClient
import XCTestDynamicOverlay import XCTestDynamicOverlay
public struct MessengerEnvironment { public struct MessengerEnvironment {
public var cMix: MessengerCMix public var cMix: Stored<CMix?>
public var downloadNDF: DownloadAndVerifySignedNdf public var downloadNDF: DownloadAndVerifySignedNdf
public var e2e: MessengerE2E public var e2e: Stored<E2E?>
public var fileManager: MessengerFileManager public var fileManager: MessengerFileManager
public var generateSecret: GenerateSecret public var generateSecret: GenerateSecret
public var getCMixParams: GetCMixParams public var getCMixParams: GetCMixParams
...@@ -19,7 +19,7 @@ public struct MessengerEnvironment { ...@@ -19,7 +19,7 @@ public struct MessengerEnvironment {
public var passwordStorage: PasswordStorage public var passwordStorage: PasswordStorage
public var sleep: (Int) -> Void public var sleep: (Int) -> Void
public var storageDir: String public var storageDir: String
public var ud: MessengerUD public var ud: Stored<UserDiscovery?>
public var udAddress: String? public var udAddress: String?
public var udCert: Data? public var udCert: Data?
public var udContact: Data? public var udContact: Data?
...@@ -34,9 +34,9 @@ extension MessengerEnvironment { ...@@ -34,9 +34,9 @@ extension MessengerEnvironment {
public static func live() -> MessengerEnvironment { public static func live() -> MessengerEnvironment {
MessengerEnvironment( MessengerEnvironment(
cMix: .live(), cMix: .inMemory(),
downloadNDF: .live, downloadNDF: .live,
e2e: .live(), e2e: .inMemory(),
fileManager: .live(), fileManager: .live(),
generateSecret: .live, generateSecret: .live,
getCMixParams: .liveDefault, getCMixParams: .liveDefault,
...@@ -50,7 +50,7 @@ extension MessengerEnvironment { ...@@ -50,7 +50,7 @@ extension MessengerEnvironment {
passwordStorage: .keychain, passwordStorage: .keychain,
sleep: { Foundation.sleep(UInt32($0)) }, sleep: { Foundation.sleep(UInt32($0)) },
storageDir: MessengerEnvironment.defaultStorageDir, storageDir: MessengerEnvironment.defaultStorageDir,
ud: .live(), ud: .inMemory(),
udAddress: nil, udAddress: nil,
udCert: nil, udCert: nil,
udContact: nil udContact: nil
...@@ -60,9 +60,9 @@ extension MessengerEnvironment { ...@@ -60,9 +60,9 @@ extension MessengerEnvironment {
extension MessengerEnvironment { extension MessengerEnvironment {
public static let unimplemented = MessengerEnvironment( public static let unimplemented = MessengerEnvironment(
cMix: .unimplemented, cMix: .unimplemented(),
downloadNDF: .unimplemented, downloadNDF: .unimplemented,
e2e: .unimplemented, e2e: .unimplemented(),
fileManager: .unimplemented, fileManager: .unimplemented,
generateSecret: .unimplemented, generateSecret: .unimplemented,
getCMixParams: .unimplemented, getCMixParams: .unimplemented,
...@@ -76,7 +76,7 @@ extension MessengerEnvironment { ...@@ -76,7 +76,7 @@ extension MessengerEnvironment {
passwordStorage: .unimplemented, passwordStorage: .unimplemented,
sleep: XCTUnimplemented("\(Self.self).sleep"), sleep: XCTUnimplemented("\(Self.self).sleep"),
storageDir: "unimplemented", storageDir: "unimplemented",
ud: .unimplemented, ud: .unimplemented(),
udAddress: nil, udAddress: nil,
udCert: nil, udCert: nil,
udContact: nil udContact: nil
......
import XCTest
import XXClient
@testable import XXMessengerClient
final class MessengerCMixTests: XCTestCase {
func testCMix() throws {
let cMix: MessengerCMix = .live()
XCTAssertNil(cMix())
cMix.set(.unimplemented)
XCTAssertNotNil(cMix())
cMix.set(nil)
XCTAssertNil(cMix())
}
}
import XCTest
import XXClient
@testable import XXMessengerClient
final class MessengerE2ETests: XCTestCase {
func testE2E() throws {
let e2e: MessengerE2E = .live()
XCTAssertNil(e2e())
e2e.set(.unimplemented)
XCTAssertNotNil(e2e())
e2e.set(nil)
XCTAssertNil(e2e())
}
}
import XCTest
import XXClient
@testable import XXMessengerClient
final class MessengerUDTests: XCTestCase {
func testUD() throws {
let ud: MessengerUD = .live()
XCTAssertNil(ud())
ud.set(.unimplemented)
XCTAssertNotNil(ud())
ud.set(nil)
XCTAssertNil(ud())
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment