diff --git a/Docs/XXMessengerClient.md b/Docs/XXMessengerClient.md index fd9ac7eef329ea33485bea1b18029150665f021a..2dc192467d54a9bac7a862cf4a19ffbad9fb4f0d 100644 --- a/Docs/XXMessengerClient.md +++ b/Docs/XXMessengerClient.md @@ -8,7 +8,7 @@ Example: ```swift // setup environment: -var environment: Environment = .live() +var environment: MessengerEnvironment = .live() // change cMix NDF environment if needed: environment.ndfEnvironment = ... @@ -60,4 +60,4 @@ func start(messenger: Messenger) throws { } } } -``` +``` \ No newline at end of file diff --git a/Sources/XXMessengerClient/Functors/IsConnected.swift b/Sources/XXMessengerClient/Functors/IsConnected.swift deleted file mode 100644 index 923d29df78c1228724a67261fa82d85d36a68688..0000000000000000000000000000000000000000 --- a/Sources/XXMessengerClient/Functors/IsConnected.swift +++ /dev/null @@ -1,25 +0,0 @@ -import XXClient -import XCTestDynamicOverlay - -public struct IsConnected { - public var run: () -> Bool - - public func callAsFunction() -> Bool { - run() - } -} - -extension IsConnected { - public static func live(_ env: Environment) -> IsConnected { - IsConnected { - env.e2e() != nil - } - } -} - -extension IsConnected { - public static let unimplemented = IsConnected( - run: XCTUnimplemented() - ) -} - diff --git a/Sources/XXMessengerClient/Functors/IsCreated.swift b/Sources/XXMessengerClient/Functors/IsCreated.swift deleted file mode 100644 index c9f55cffa30a5160f1f01b4d6931a934aeabd741..0000000000000000000000000000000000000000 --- a/Sources/XXMessengerClient/Functors/IsCreated.swift +++ /dev/null @@ -1,24 +0,0 @@ -import XXClient -import XCTestDynamicOverlay - -public struct IsCreated { - public var run: () -> Bool - - public func callAsFunction() -> Bool { - run() - } -} - -extension IsCreated { - public static func live(_ env: Environment) -> IsCreated { - IsCreated { - env.directoryManager.isEmpty(env.storageDir) == false - } - } -} - -extension IsCreated { - public static let unimplemented = IsCreated( - run: XCTUnimplemented() - ) -} diff --git a/Sources/XXMessengerClient/Functors/IsLoaded.swift b/Sources/XXMessengerClient/Functors/IsLoaded.swift deleted file mode 100644 index e3365cc35b2dd7f07ec721da24c447cf2e5975a1..0000000000000000000000000000000000000000 --- a/Sources/XXMessengerClient/Functors/IsLoaded.swift +++ /dev/null @@ -1,24 +0,0 @@ -import XXClient -import XCTestDynamicOverlay - -public struct IsLoaded { - public var run: () -> Bool - - public func callAsFunction() -> Bool { - run() - } -} - -extension IsLoaded { - public static func live(_ env: Environment) -> IsLoaded { - IsLoaded { - env.cMix() != nil - } - } -} - -extension IsLoaded { - public static let unimplemented = IsLoaded( - run: XCTUnimplemented() - ) -} diff --git a/Sources/XXMessengerClient/Functors/IsLoggedIn.swift b/Sources/XXMessengerClient/Functors/IsLoggedIn.swift deleted file mode 100644 index bcf0dfdf3e5626e394f96808732ea4a82dfda6e9..0000000000000000000000000000000000000000 --- a/Sources/XXMessengerClient/Functors/IsLoggedIn.swift +++ /dev/null @@ -1,24 +0,0 @@ -import XXClient -import XCTestDynamicOverlay - -public struct IsLoggedIn { - public var run: () -> Bool - - public func callAsFunction() -> Bool { - run() - } -} - -extension IsLoggedIn { - public static func live(_ env: Environment) -> IsLoggedIn { - IsLoggedIn { - env.ud() != nil - } - } -} - -extension IsLoggedIn { - public static let unimplemented = IsLoggedIn( - run: XCTUnimplemented() - ) -} diff --git a/Sources/XXMessengerClient/Functors/Connect.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift similarity index 67% rename from Sources/XXMessengerClient/Functors/Connect.swift rename to Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift index 47d649fe9e5f877e6c2d0c8e259c2cf545bda6de..8cebb73a648773e63137a86a4481142fe2f5b173 100644 --- a/Sources/XXMessengerClient/Functors/Connect.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift @@ -1,7 +1,7 @@ import XXClient import XCTestDynamicOverlay -public struct Connect { +public struct MessengerConnect { public enum Error: Swift.Error, Equatable { case notLoaded } @@ -13,9 +13,9 @@ public struct Connect { } } -extension Connect { - public static func live(_ env: Environment) -> Connect { - Connect { +extension MessengerConnect { + public static func live(_ env: MessengerEnvironment) -> MessengerConnect { + MessengerConnect { guard let cMix = env.cMix() else { throw Error.notLoaded } @@ -28,8 +28,8 @@ extension Connect { } } -extension Connect { - public static let unimplemented = Connect( +extension MessengerConnect { + public static let unimplemented = MessengerConnect( run: XCTUnimplemented() ) } diff --git a/Sources/XXMessengerClient/Functors/Create.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerCreate.swift similarity index 61% rename from Sources/XXMessengerClient/Functors/Create.swift rename to Sources/XXMessengerClient/Messenger/Functors/MessengerCreate.swift index 275722c72371002d7c793dbb204edd394b20bca7..b36b55b447956d139f227887a154bec71d109312 100644 --- a/Sources/XXMessengerClient/Functors/Create.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerCreate.swift @@ -1,7 +1,7 @@ import XXClient import XCTestDynamicOverlay -public struct Create { +public struct MessengerCreate { public var run: () throws -> Void public func callAsFunction() throws { @@ -9,15 +9,15 @@ public struct Create { } } -extension Create { - public static func live(_ env: Environment) -> Create { - Create { +extension MessengerCreate { + public static func live(_ env: MessengerEnvironment) -> MessengerCreate { + MessengerCreate { let ndfData = try env.downloadNDF(env.ndfEnvironment) let password = env.generateSecret() try env.passwordStorage.save(password) let storageDir = env.storageDir - try env.directoryManager.remove(storageDir) - try env.directoryManager.create(storageDir) + try env.fileManager.removeDirectory(storageDir) + try env.fileManager.createDirectory(storageDir) try env.newCMix( ndfJSON: String(data: ndfData, encoding: .utf8)!, storageDir: storageDir, @@ -28,8 +28,8 @@ extension Create { } } -extension Create { - public static let unimplemented = Create( +extension MessengerCreate { + public static let unimplemented = MessengerCreate( run: XCTUnimplemented() ) } diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsConnected.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsConnected.swift new file mode 100644 index 0000000000000000000000000000000000000000..c30437faeb6b4cbc8b0a66df811bc55bd5618e28 --- /dev/null +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsConnected.swift @@ -0,0 +1,25 @@ +import XXClient +import XCTestDynamicOverlay + +public struct MessengerIsConnected { + public var run: () -> Bool + + public func callAsFunction() -> Bool { + run() + } +} + +extension MessengerIsConnected { + public static func live(_ env: MessengerEnvironment) -> MessengerIsConnected { + MessengerIsConnected { + env.e2e() != nil + } + } +} + +extension MessengerIsConnected { + public static let unimplemented = MessengerIsConnected( + run: XCTUnimplemented() + ) +} + diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift new file mode 100644 index 0000000000000000000000000000000000000000..c848518c2483e49acbdbfe3d6d0b9e0c7fc2ce32 --- /dev/null +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift @@ -0,0 +1,24 @@ +import XXClient +import XCTestDynamicOverlay + +public struct MessengerIsCreated { + public var run: () -> Bool + + public func callAsFunction() -> Bool { + run() + } +} + +extension MessengerIsCreated { + public static func live(_ env: MessengerEnvironment) -> MessengerIsCreated { + MessengerIsCreated { + env.fileManager.isDirectoryEmpty(env.storageDir) == false + } + } +} + +extension MessengerIsCreated { + public static let unimplemented = MessengerIsCreated( + run: XCTUnimplemented() + ) +} diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoaded.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoaded.swift new file mode 100644 index 0000000000000000000000000000000000000000..dc0b42165efe5b39071674a5019a7e11860d53f5 --- /dev/null +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoaded.swift @@ -0,0 +1,24 @@ +import XXClient +import XCTestDynamicOverlay + +public struct MessengerIsLoaded { + public var run: () -> Bool + + public func callAsFunction() -> Bool { + run() + } +} + +extension MessengerIsLoaded { + public static func live(_ env: MessengerEnvironment) -> MessengerIsLoaded { + MessengerIsLoaded { + env.cMix() != nil + } + } +} + +extension MessengerIsLoaded { + public static let unimplemented = MessengerIsLoaded( + run: XCTUnimplemented() + ) +} diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoggedIn.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoggedIn.swift new file mode 100644 index 0000000000000000000000000000000000000000..7c54c5785fc472c4815f3a91f626575881cf2dcd --- /dev/null +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoggedIn.swift @@ -0,0 +1,24 @@ +import XXClient +import XCTestDynamicOverlay + +public struct MessengerIsLoggedIn { + public var run: () -> Bool + + public func callAsFunction() -> Bool { + run() + } +} + +extension MessengerIsLoggedIn { + public static func live(_ env: MessengerEnvironment) -> MessengerIsLoggedIn { + MessengerIsLoggedIn { + env.ud() != nil + } + } +} + +extension MessengerIsLoggedIn { + public static let unimplemented = MessengerIsLoggedIn( + run: XCTUnimplemented() + ) +} diff --git a/Sources/XXMessengerClient/Functors/IsRegistered.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsRegistered.swift similarity index 59% rename from Sources/XXMessengerClient/Functors/IsRegistered.swift rename to Sources/XXMessengerClient/Messenger/Functors/MessengerIsRegistered.swift index 4ccc2ce7db4cf7386845235dc5ab7928f3d0857d..bf3cafa541fa67847f749325419c683e9edd34c6 100644 --- a/Sources/XXMessengerClient/Functors/IsRegistered.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsRegistered.swift @@ -1,7 +1,7 @@ import XXClient import XCTestDynamicOverlay -public struct IsRegistered { +public struct MessengerIsRegistered { public enum Error: Swift.Error, Equatable { case notConnected } @@ -13,9 +13,9 @@ public struct IsRegistered { } } -extension IsRegistered { - public static func live(_ env: Environment) -> IsRegistered { - IsRegistered { +extension MessengerIsRegistered { + public static func live(_ env: MessengerEnvironment) -> MessengerIsRegistered { + MessengerIsRegistered { guard let e2e = env.e2e() else { throw Error.notConnected } @@ -24,8 +24,8 @@ extension IsRegistered { } } -extension IsRegistered { - public static let unimplemented = IsRegistered( +extension MessengerIsRegistered { + public static let unimplemented = MessengerIsRegistered( run: XCTUnimplemented() ) } diff --git a/Sources/XXMessengerClient/Functors/Load.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerLoad.swift similarity index 61% rename from Sources/XXMessengerClient/Functors/Load.swift rename to Sources/XXMessengerClient/Messenger/Functors/MessengerLoad.swift index 03010a22603644d4e15c8b2f666d668f87ff0452..29f281688d0cb6e4611cbf50a5ee2f7844df07f1 100644 --- a/Sources/XXMessengerClient/Functors/Load.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerLoad.swift @@ -1,7 +1,7 @@ import XXClient import XCTestDynamicOverlay -public struct Load { +public struct MessengerLoad { public var run: () throws -> Void public func callAsFunction() throws { @@ -9,9 +9,9 @@ public struct Load { } } -extension Load { - public static func live(_ env: Environment) -> Load { - Load { +extension MessengerLoad { + public static func live(_ env: MessengerEnvironment) -> MessengerLoad { + MessengerLoad { env.cMix.set(try env.loadCMix( storageDir: env.storageDir, password: try env.passwordStorage.load(), @@ -21,8 +21,8 @@ extension Load { } } -extension Load { - public static let unimplemented = Load( +extension MessengerLoad { + public static let unimplemented = MessengerLoad( run: XCTUnimplemented() ) } diff --git a/Sources/XXMessengerClient/Functors/LogIn.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerLogIn.swift similarity index 79% rename from Sources/XXMessengerClient/Functors/LogIn.swift rename to Sources/XXMessengerClient/Messenger/Functors/MessengerLogIn.swift index db2c34f95dd97ecd696db4de017473d539e34007..d0f86d8bcfa8ea7f7c0251d573a5dc591b59ddc0 100644 --- a/Sources/XXMessengerClient/Functors/LogIn.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerLogIn.swift @@ -1,7 +1,7 @@ import XXClient import XCTestDynamicOverlay -public struct LogIn { +public struct MessengerLogIn { public enum Error: Swift.Error, Equatable { case notLoaded case notConnected @@ -14,9 +14,9 @@ public struct LogIn { } } -extension LogIn { - public static func live(_ env: Environment) -> LogIn { - LogIn { +extension MessengerLogIn { + public static func live(_ env: MessengerEnvironment) -> MessengerLogIn { + MessengerLogIn { guard let cMix = env.cMix() else { throw Error.notLoaded } @@ -40,8 +40,8 @@ extension LogIn { } } -extension LogIn { - public static let unimplemented = LogIn( +extension MessengerLogIn { + public static let unimplemented = MessengerLogIn( run: XCTUnimplemented() ) } diff --git a/Sources/XXMessengerClient/Functors/Register.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerRegister.swift similarity index 78% rename from Sources/XXMessengerClient/Functors/Register.swift rename to Sources/XXMessengerClient/Messenger/Functors/MessengerRegister.swift index 3608ea93829609d6ff1a4a301925de9100317811..6f4296318c4eccf771ccb505cb584db458b74f8b 100644 --- a/Sources/XXMessengerClient/Functors/Register.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerRegister.swift @@ -1,7 +1,7 @@ import XXClient import XCTestDynamicOverlay -public struct Register { +public struct MessengerRegister { public enum Error: Swift.Error, Equatable { case notLoaded case notConnected @@ -16,9 +16,9 @@ public struct Register { } } -extension Register { - public static func live(_ env: Environment) -> Register { - Register { username in +extension MessengerRegister { + public static func live(_ env: MessengerEnvironment) -> MessengerRegister { + MessengerRegister { username in guard let cMix = env.cMix() else { throw Error.notLoaded } @@ -42,8 +42,8 @@ extension Register { } } -extension Register { - public static let unimplemented = Register( +extension MessengerRegister { + public static let unimplemented = MessengerRegister( run: XCTUnimplemented() ) } diff --git a/Sources/XXMessengerClient/Functors/Start.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerStart.swift similarity index 68% rename from Sources/XXMessengerClient/Functors/Start.swift rename to Sources/XXMessengerClient/Messenger/Functors/MessengerStart.swift index 77e32812e6fdf4d162054b80e1b419be502a6306..cc3363ec543ee2c3ed6c2414ac79d1ceaa0ccc33 100644 --- a/Sources/XXMessengerClient/Functors/Start.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerStart.swift @@ -1,7 +1,7 @@ import XXClient import XCTestDynamicOverlay -public struct Start { +public struct MessengerStart { public enum Error: Swift.Error { case notLoaded } @@ -15,9 +15,9 @@ public struct Start { } } -extension Start { - public static func live(_ env: Environment) -> Start { - Start { timeoutMS in +extension MessengerStart { + public static func live(_ env: MessengerEnvironment) -> MessengerStart { + MessengerStart { timeoutMS in guard let cMix = env.cMix() else { throw Error.notLoaded } @@ -29,8 +29,8 @@ extension Start { } } -extension Start { - public static let unimplemented = Start( +extension MessengerStart { + public static let unimplemented = MessengerStart( run: XCTUnimplemented("\(Self.self)") ) } diff --git a/Sources/XXMessengerClient/Functors/WaitForNetwork.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNetwork.swift similarity index 62% rename from Sources/XXMessengerClient/Functors/WaitForNetwork.swift rename to Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNetwork.swift index 976e64233741c6aac98e0031cc47c7898a1eb572..8fe8cf3e4750f1d3bff8a7191574a143639466c7 100644 --- a/Sources/XXMessengerClient/Functors/WaitForNetwork.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNetwork.swift @@ -1,7 +1,7 @@ import XXClient import XCTestDynamicOverlay -public struct WaitForNetwork { +public struct MessengerWaitForNetwork { public enum Error: Swift.Error { case notLoaded case timeout @@ -16,9 +16,9 @@ public struct WaitForNetwork { } } -extension WaitForNetwork { - public static func live(_ env: Environment) -> WaitForNetwork { - WaitForNetwork { timeoutMS in +extension MessengerWaitForNetwork { + public static func live(_ env: MessengerEnvironment) -> MessengerWaitForNetwork { + MessengerWaitForNetwork { timeoutMS in guard let cMix = env.cMix() else { throw Error.notLoaded } @@ -29,8 +29,8 @@ extension WaitForNetwork { } } -extension WaitForNetwork { - public static let unimplemented = WaitForNetwork( +extension MessengerWaitForNetwork { + public static let unimplemented = MessengerWaitForNetwork( run: XCTUnimplemented("\(Self.self)") ) } diff --git a/Sources/XXMessengerClient/Functors/WaitForNodes.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift similarity index 75% rename from Sources/XXMessengerClient/Functors/WaitForNodes.swift rename to Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift index f08a29661db38acff406d8b3cba921deddfa9941..b87acc2f13caf51d2998d3a864a6484f897dc528 100644 --- a/Sources/XXMessengerClient/Functors/WaitForNodes.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift @@ -1,7 +1,7 @@ import XXClient import XCTestDynamicOverlay -public struct WaitForNodes { +public struct MessengerWaitForNodes { public typealias Progress = (NodeRegistrationReport) -> Void public enum Error: Swift.Error { @@ -21,9 +21,9 @@ public struct WaitForNodes { } } -extension WaitForNodes { - public static func live(_ env: Environment) -> WaitForNodes { - WaitForNodes { targetRatio, sleepMS, retries, onProgress in +extension MessengerWaitForNodes { + public static func live(_ env: MessengerEnvironment) -> MessengerWaitForNodes { + MessengerWaitForNodes { targetRatio, sleepMS, retries, onProgress in guard let cMix = env.cMix() else { throw Error.notLoaded } @@ -46,8 +46,8 @@ extension WaitForNodes { } } -extension WaitForNodes { - public static let unimplemented = WaitForNodes( +extension MessengerWaitForNodes { + public static let unimplemented = MessengerWaitForNodes( run: XCTUnimplemented("\(Self.self)") ) } diff --git a/Sources/XXMessengerClient/Messenger.swift b/Sources/XXMessengerClient/Messenger/Messenger.swift similarity index 65% rename from Sources/XXMessengerClient/Messenger.swift rename to Sources/XXMessengerClient/Messenger/Messenger.swift index b3ad9a58c9a1296b492333dfd78a7874b604af97..30d63efdfac2716a0d3efc7f0a614eafeaf2e852 100644 --- a/Sources/XXMessengerClient/Messenger.swift +++ b/Sources/XXMessengerClient/Messenger/Messenger.swift @@ -4,23 +4,23 @@ public struct Messenger { public var cMix: Stored<CMix?> public var e2e: Stored<E2E?> public var ud: Stored<UserDiscovery?> - public var isCreated: IsCreated - public var create: Create - public var isLoaded: IsLoaded - public var load: Load - public var start: Start - public var isConnected: IsConnected - public var connect: Connect - public var isRegistered: IsRegistered - public var register: Register - public var isLoggedIn: IsLoggedIn - public var logIn: LogIn - public var waitForNetwork: WaitForNetwork - public var waitForNodes: WaitForNodes + public var isCreated: MessengerIsCreated + public var create: MessengerCreate + public var isLoaded: MessengerIsLoaded + public var load: MessengerLoad + public var start: MessengerStart + public var isConnected: MessengerIsConnected + public var connect: MessengerConnect + public var isRegistered: MessengerIsRegistered + public var register: MessengerRegister + public var isLoggedIn: MessengerIsLoggedIn + public var logIn: MessengerLogIn + public var waitForNetwork: MessengerWaitForNetwork + public var waitForNodes: MessengerWaitForNodes } extension Messenger { - public static func live(_ env: Environment) -> Messenger { + public static func live(_ env: MessengerEnvironment) -> Messenger { Messenger( cMix: env.cMix, e2e: env.e2e, diff --git a/Sources/XXMessengerClient/Environment.swift b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift similarity index 83% rename from Sources/XXMessengerClient/Environment.swift rename to Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift index 58b18db91b05832f6855883083e091c339a36f9e..0918142a1f92dd6bbc5392bb562113464f349b20 100644 --- a/Sources/XXMessengerClient/Environment.swift +++ b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift @@ -2,11 +2,11 @@ import Foundation import XXClient import XCTestDynamicOverlay -public struct Environment { +public struct MessengerEnvironment { public var cMix: Stored<CMix?> - public var directoryManager: DirectoryManager public var downloadNDF: DownloadAndVerifySignedNdf public var e2e: Stored<E2E?> + public var fileManager: MessengerFileManager public var generateSecret: GenerateSecret public var getCMixParams: GetCMixParams public var getE2EParams: GetE2EParams @@ -25,19 +25,19 @@ public struct Environment { public var udContact: Data? } -extension Environment { +extension MessengerEnvironment { public static let defaultStorageDir = FileManager.default .urls(for: .applicationSupportDirectory, in: .userDomainMask) .first! .appendingPathComponent("xx.network.client") .path - public static func live() -> Environment { - Environment( + public static func live() -> MessengerEnvironment { + MessengerEnvironment( cMix: .inMemory(), - directoryManager: .live(), downloadNDF: .live, e2e: .inMemory(), + fileManager: .live(), generateSecret: .live, getCMixParams: .liveDefault, getE2EParams: .liveDefault, @@ -49,7 +49,7 @@ extension Environment { newOrLoadUd: .live, passwordStorage: .keychain, sleep: { Foundation.sleep(UInt32($0)) }, - storageDir: Environment.defaultStorageDir, + storageDir: MessengerEnvironment.defaultStorageDir, ud: .inMemory(), udAddress: nil, udCert: nil, @@ -58,12 +58,12 @@ extension Environment { } } -extension Environment { - public static let unimplemented = Environment( +extension MessengerEnvironment { + public static let unimplemented = MessengerEnvironment( cMix: .unimplemented(), - directoryManager: .unimplemented, downloadNDF: .unimplemented, e2e: .unimplemented(), + fileManager: .unimplemented, generateSecret: .unimplemented, getCMixParams: .unimplemented, getE2EParams: .unimplemented, diff --git a/Sources/XXMessengerClient/Utils/DirectoryManager.swift b/Sources/XXMessengerClient/Utils/DirectoryManager.swift deleted file mode 100644 index 16b9238effdeca0eabc1f235f852b42553f4c3e7..0000000000000000000000000000000000000000 --- a/Sources/XXMessengerClient/Utils/DirectoryManager.swift +++ /dev/null @@ -1,40 +0,0 @@ -import Foundation -import XCTestDynamicOverlay - -public struct DirectoryManager { - public var isEmpty: (String) -> Bool - public var remove: (String) throws -> Void - public var create: (String) throws -> Void -} - -extension DirectoryManager { - public static func live( - fileManager: FileManager = .default - ) -> DirectoryManager { - DirectoryManager( - isEmpty: { path in - let contents = try? fileManager.contentsOfDirectory(atPath: path) - return contents?.isEmpty ?? true - }, - remove: { path in - if fileManager.fileExists(atPath: path) { - try fileManager.removeItem(atPath: path) - } - }, - create: { path in - try fileManager.createDirectory( - atPath: path, - withIntermediateDirectories: true - ) - } - ) - } -} - -extension DirectoryManager { - public static let unimplemented = DirectoryManager( - isEmpty: XCTUnimplemented("\(Self.self).isDirectoryEmpty"), - remove: XCTUnimplemented("\(Self.self).removeDirectory"), - create: XCTUnimplemented("\(Self.self).createDirectory") - ) -} diff --git a/Sources/XXMessengerClient/Utils/MessengerFileManager.swift b/Sources/XXMessengerClient/Utils/MessengerFileManager.swift new file mode 100644 index 0000000000000000000000000000000000000000..4ff49c5fe155e612852860d1d7276124729017d3 --- /dev/null +++ b/Sources/XXMessengerClient/Utils/MessengerFileManager.swift @@ -0,0 +1,40 @@ +import Foundation +import XCTestDynamicOverlay + +public struct MessengerFileManager { + public var isDirectoryEmpty: (String) -> Bool + public var removeDirectory: (String) throws -> Void + public var createDirectory: (String) throws -> Void +} + +extension MessengerFileManager { + public static func live( + fileManager: FileManager = .default + ) -> MessengerFileManager { + MessengerFileManager( + isDirectoryEmpty: { path in + let contents = try? fileManager.contentsOfDirectory(atPath: path) + return contents?.isEmpty ?? true + }, + removeDirectory: { path in + if fileManager.fileExists(atPath: path) { + try fileManager.removeItem(atPath: path) + } + }, + createDirectory: { path in + try fileManager.createDirectory( + atPath: path, + withIntermediateDirectories: true + ) + } + ) + } +} + +extension MessengerFileManager { + public static let unimplemented = MessengerFileManager( + isDirectoryEmpty: XCTUnimplemented("\(Self.self).isDirectoryEmpty"), + removeDirectory: XCTUnimplemented("\(Self.self).removeDirectory"), + createDirectory: XCTUnimplemented("\(Self.self).createDirectory") + ) +} diff --git a/Tests/XXMessengerClientTests/Functors/IsConnectedTests.swift b/Tests/XXMessengerClientTests/Functors/IsConnectedTests.swift deleted file mode 100644 index 05972e05d07917c6e7fa8ba40c6b0416c5a002f8..0000000000000000000000000000000000000000 --- a/Tests/XXMessengerClientTests/Functors/IsConnectedTests.swift +++ /dev/null @@ -1,20 +0,0 @@ -import XCTest -@testable import XXMessengerClient - -final class IsConnectedTests: XCTestCase { - func testWithE2E() { - var env: Environment = .unimplemented - env.e2e.get = { .unimplemented } - let isConnected: IsConnected = .live(env) - - XCTAssertTrue(isConnected()) - } - - func testWithoutE2E() { - var env: Environment = .unimplemented - env.e2e.get = { nil } - let isConnected: IsConnected = .live(env) - - XCTAssertFalse(isConnected()) - } -} diff --git a/Tests/XXMessengerClientTests/Functors/IsLoadedTests.swift b/Tests/XXMessengerClientTests/Functors/IsLoadedTests.swift deleted file mode 100644 index 37adffbe44546cc4b2fbd5baa2560ae337a10ea2..0000000000000000000000000000000000000000 --- a/Tests/XXMessengerClientTests/Functors/IsLoadedTests.swift +++ /dev/null @@ -1,20 +0,0 @@ -import XCTest -@testable import XXMessengerClient - -final class IsLoadedTests: XCTestCase { - func testWithCMix() { - var env: Environment = .unimplemented - env.cMix.get = { .unimplemented } - let isLoaded: IsLoaded = .live(env) - - XCTAssertTrue(isLoaded()) - } - - func testWithoutCMix() { - var env: Environment = .unimplemented - env.cMix.get = { nil } - let isLoaded: IsLoaded = .live(env) - - XCTAssertFalse(isLoaded()) - } -} diff --git a/Tests/XXMessengerClientTests/Functors/IsLoggedInTests.swift b/Tests/XXMessengerClientTests/Functors/IsLoggedInTests.swift deleted file mode 100644 index 31f6032528ec592da23f65009dc581b2290cecde..0000000000000000000000000000000000000000 --- a/Tests/XXMessengerClientTests/Functors/IsLoggedInTests.swift +++ /dev/null @@ -1,20 +0,0 @@ -import XCTest -@testable import XXMessengerClient - -final class IsLoggedInTests: XCTestCase { - func testWithUD() { - var env: Environment = .unimplemented - env.ud.get = { .unimplemented } - let isLoggedIn: IsLoggedIn = .live(env) - - XCTAssertTrue(isLoggedIn()) - } - - func testWithoutUD() { - var env: Environment = .unimplemented - env.ud.get = { nil } - let isLoggedIn: IsLoggedIn = .live(env) - - XCTAssertFalse(isLoggedIn()) - } -} diff --git a/Tests/XXMessengerClientTests/Functors/ConnectTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift similarity index 83% rename from Tests/XXMessengerClientTests/Functors/ConnectTests.swift rename to Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift index caac4d6a53865934a814fd2e2c2fbd59d1e8b6a7..fb780353631b32f3f4bcf686bf60f3c3e38703c3 100644 --- a/Tests/XXMessengerClientTests/Functors/ConnectTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift @@ -3,7 +3,7 @@ import XXClient import XCTest @testable import XXMessengerClient -final class ConnectTests: XCTestCase { +final class MessengerConnectTests: XCTestCase { func testConnect() throws { struct DidLogIn: Equatable { var ephemeral: Bool @@ -20,7 +20,7 @@ final class ConnectTests: XCTestCase { let receptionId = ReceptionIdentity.stub let e2eParams = "e2e-params".data(using: .utf8)! - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.getId.run = { cMixId } @@ -39,7 +39,7 @@ final class ConnectTests: XCTestCase { )) return .unimplemented } - let connect: Connect = .live(env) + let connect: MessengerConnect = .live(env) try connect() @@ -56,14 +56,14 @@ final class ConnectTests: XCTestCase { } func testConnectWithoutCMix() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { nil } - let connect: Connect = .live(env) + let connect: MessengerConnect = .live(env) XCTAssertThrowsError(try connect()) { error in XCTAssertEqual( - error as? Connect.Error, - Connect.Error.notLoaded + error as? MessengerConnect.Error, + MessengerConnect.Error.notLoaded ) } } @@ -72,14 +72,14 @@ final class ConnectTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.getId.run = { 1234 } cMix.makeLegacyReceptionIdentity.run = { throw error } return cMix } - let connect: Connect = .live(env) + let connect: MessengerConnect = .live(env) XCTAssertThrowsError(try connect()) { err in XCTAssertEqual(err as? Error, error) @@ -90,7 +90,7 @@ final class ConnectTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.getId.run = { 1234 } @@ -99,7 +99,7 @@ final class ConnectTests: XCTestCase { } env.getE2EParams.run = { "e2e-params".data(using: .utf8)! } env.login.run = { _, _, _, _, _ in throw error } - let connect: Connect = .live(env) + let connect: MessengerConnect = .live(env) XCTAssertThrowsError(try connect()) { err in XCTAssertEqual(err as? Error, error) diff --git a/Tests/XXMessengerClientTests/Functors/CreateTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCreateTests.swift similarity index 80% rename from Tests/XXMessengerClientTests/Functors/CreateTests.swift rename to Tests/XXMessengerClientTests/Messenger/Functors/MessengerCreateTests.swift index 0ef9e0d7501ae8fb442d80ba36d0203e211a24ca..2180dda3db578b74a892b2166e66a9beb20357dd 100644 --- a/Tests/XXMessengerClientTests/Functors/CreateTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCreateTests.swift @@ -3,7 +3,7 @@ import XCTest import XXClient @testable import XXMessengerClient -final class CreateTests: XCTestCase { +final class MessengerCreateTests: XCTestCase { func testCreate() throws { struct DidNewCMix: Equatable { var ndfJSON: String @@ -23,7 +23,7 @@ final class CreateTests: XCTestCase { let password = "password".data(using: .utf8)! let storageDir = "storage-dir" - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.ndfEnvironment = .unimplemented env.downloadNDF.run = { ndfEnvironment in didDownloadNDF.append(ndfEnvironment) @@ -37,10 +37,10 @@ final class CreateTests: XCTestCase { didSavePassword.append(password) } env.storageDir = storageDir - env.directoryManager.remove = { path in + env.fileManager.removeDirectory = { path in didRemoveDirectory.append(path) } - env.directoryManager.create = { path in + env.fileManager.createDirectory = { path in didCreateDirectory.append(path) } env.newCMix.run = { ndfJSON, storageDir, password, registrationCode in @@ -51,7 +51,7 @@ final class CreateTests: XCTestCase { registrationCode: registrationCode )) } - let create: Create = .live(env) + let create: MessengerCreate = .live(env) try create() @@ -72,10 +72,10 @@ final class CreateTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.ndfEnvironment = .unimplemented env.downloadNDF.run = { _ in throw error } - let create: Create = .live(env) + let create: MessengerCreate = .live(env) XCTAssertThrowsError(try create()) { err in XCTAssertEqual(err as? Error, error) @@ -86,12 +86,12 @@ final class CreateTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.ndfEnvironment = .unimplemented env.downloadNDF.run = { _ in "ndf".data(using: .utf8)! } env.generateSecret.run = { _ in "password".data(using: .utf8)! } env.passwordStorage.save = { _ in throw error } - let create: Create = .live(env) + let create: MessengerCreate = .live(env) XCTAssertThrowsError(try create()) { err in XCTAssertEqual(err as? Error, error) @@ -102,14 +102,14 @@ final class CreateTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.ndfEnvironment = .unimplemented env.downloadNDF.run = { _ in "ndf".data(using: .utf8)! } env.generateSecret.run = { _ in "password".data(using: .utf8)! } env.passwordStorage.save = { _ in } env.storageDir = "storage-dir" - env.directoryManager.remove = { _ in throw error } - let create: Create = .live(env) + env.fileManager.removeDirectory = { _ in throw error } + let create: MessengerCreate = .live(env) XCTAssertThrowsError(try create()) { err in XCTAssertEqual(err as? Error, error) @@ -120,15 +120,15 @@ final class CreateTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.ndfEnvironment = .unimplemented env.downloadNDF.run = { _ in "ndf".data(using: .utf8)! } env.generateSecret.run = { _ in "password".data(using: .utf8)! } env.passwordStorage.save = { _ in } env.storageDir = "storage-dir" - env.directoryManager.remove = { _ in } - env.directoryManager.create = { _ in throw error } - let create: Create = .live(env) + env.fileManager.removeDirectory = { _ in } + env.fileManager.createDirectory = { _ in throw error } + let create: MessengerCreate = .live(env) XCTAssertThrowsError(try create()) { err in XCTAssertEqual(err as? Error, error) @@ -139,16 +139,16 @@ final class CreateTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.ndfEnvironment = .unimplemented env.downloadNDF.run = { _ in "ndf".data(using: .utf8)! } env.generateSecret.run = { _ in "password".data(using: .utf8)! } env.passwordStorage.save = { _ in } env.storageDir = "storage-dir" - env.directoryManager.remove = { _ in } - env.directoryManager.create = { _ in } + env.fileManager.removeDirectory = { _ in } + env.fileManager.createDirectory = { _ in } env.newCMix.run = { _, _, _, _ in throw error } - let create: Create = .live(env) + let create: MessengerCreate = .live(env) XCTAssertThrowsError(try create()) { err in XCTAssertEqual(err as? Error, error) diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsConnectedTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsConnectedTests.swift new file mode 100644 index 0000000000000000000000000000000000000000..c7c5de8bc78a79257ce08725a32524a5ce78da50 --- /dev/null +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsConnectedTests.swift @@ -0,0 +1,20 @@ +import XCTest +@testable import XXMessengerClient + +final class MessengerIsConnectedTests: XCTestCase { + func testWithE2E() { + var env: MessengerEnvironment = .unimplemented + env.e2e.get = { .unimplemented } + let isConnected: MessengerIsConnected = .live(env) + + XCTAssertTrue(isConnected()) + } + + func testWithoutE2E() { + var env: MessengerEnvironment = .unimplemented + env.e2e.get = { nil } + let isConnected: MessengerIsConnected = .live(env) + + XCTAssertFalse(isConnected()) + } +} diff --git a/Tests/XXMessengerClientTests/Functors/IsCreatedTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsCreatedTests.swift similarity index 65% rename from Tests/XXMessengerClientTests/Functors/IsCreatedTests.swift rename to Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsCreatedTests.swift index dbdd340702a968abed19b2207083cbc1f7cdbade..246be9d3be6c04c58748ce024149da79fa8b63f7 100644 --- a/Tests/XXMessengerClientTests/Functors/IsCreatedTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsCreatedTests.swift @@ -2,18 +2,18 @@ import CustomDump import XCTest @testable import XXMessengerClient -final class IsCreatedTests: XCTestCase { +final class MessengerIsCreatedTests: XCTestCase { func testStorageDirNotEmpty() { var didIsDirectoryEmpty: [String] = [] let storageDir = "storage-dir" - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.storageDir = storageDir - env.directoryManager.isEmpty = { path in + env.fileManager.isDirectoryEmpty = { path in didIsDirectoryEmpty.append(path) return false } - let isCreated: IsCreated = .live(env) + let isCreated: MessengerIsCreated = .live(env) XCTAssertTrue(isCreated()) XCTAssertNoDifference(didIsDirectoryEmpty, [storageDir]) @@ -23,13 +23,13 @@ final class IsCreatedTests: XCTestCase { var didIsDirectoryEmpty: [String] = [] let storageDir = "storage-dir" - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.storageDir = storageDir - env.directoryManager.isEmpty = { path in + env.fileManager.isDirectoryEmpty = { path in didIsDirectoryEmpty.append(path) return true } - let isCreated: IsCreated = .live(env) + let isCreated: MessengerIsCreated = .live(env) XCTAssertFalse(isCreated()) XCTAssertNoDifference(didIsDirectoryEmpty, [storageDir]) diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoadedTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoadedTests.swift new file mode 100644 index 0000000000000000000000000000000000000000..6f0591e264cbac1a12cf707b462b0be12d65aa74 --- /dev/null +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoadedTests.swift @@ -0,0 +1,20 @@ +import XCTest +@testable import XXMessengerClient + +final class MessengerIsLoadedTests: XCTestCase { + func testWithCMix() { + var env: MessengerEnvironment = .unimplemented + env.cMix.get = { .unimplemented } + let isLoaded: MessengerIsLoaded = .live(env) + + XCTAssertTrue(isLoaded()) + } + + func testWithoutCMix() { + var env: MessengerEnvironment = .unimplemented + env.cMix.get = { nil } + let isLoaded: MessengerIsLoaded = .live(env) + + XCTAssertFalse(isLoaded()) + } +} diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoggedInTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoggedInTests.swift new file mode 100644 index 0000000000000000000000000000000000000000..c6ea87e64f2c300f9ab7090b8b56fc7e730ee765 --- /dev/null +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoggedInTests.swift @@ -0,0 +1,20 @@ +import XCTest +@testable import XXMessengerClient + +final class MessengerIsLoggedInTests: XCTestCase { + func testWithUD() { + var env: MessengerEnvironment = .unimplemented + env.ud.get = { .unimplemented } + let isLoggedIn: MessengerIsLoggedIn = .live(env) + + XCTAssertTrue(isLoggedIn()) + } + + func testWithoutUD() { + var env: MessengerEnvironment = .unimplemented + env.ud.get = { nil } + let isLoggedIn: MessengerIsLoggedIn = .live(env) + + XCTAssertFalse(isLoggedIn()) + } +} diff --git a/Tests/XXMessengerClientTests/Functors/IsRegisteredTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsRegisteredTests.swift similarity index 67% rename from Tests/XXMessengerClientTests/Functors/IsRegisteredTests.swift rename to Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsRegisteredTests.swift index 1069fb5efbd806a14fbc2522dc4e33bb4838d627..b6dca3e9e4a09b5cc78b84b3d9a56ea12b032e3a 100644 --- a/Tests/XXMessengerClientTests/Functors/IsRegisteredTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsRegisteredTests.swift @@ -2,11 +2,11 @@ import XCTest import XXClient @testable import XXMessengerClient -final class IsRegisteredTests: XCTestCase { +final class MessengerIsRegisteredTests: XCTestCase { func testRegistered() throws { var didIsRegisteredWithUD: [Int] = [] - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.e2e.get = { var e2e: E2E = .unimplemented e2e.getId.run = { 1234 } @@ -16,34 +16,34 @@ final class IsRegisteredTests: XCTestCase { didIsRegisteredWithUD.append(e2eId) return true } - let isRegistered: IsRegistered = .live(env) + let isRegistered: MessengerIsRegistered = .live(env) XCTAssertTrue(try isRegistered()) XCTAssertEqual(didIsRegisteredWithUD, [1234]) } func testNotRegistered() throws { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.e2e.get = { var e2e: E2E = .unimplemented e2e.getId.run = { 1234 } return e2e } env.isRegisteredWithUD.run = { _ in false } - let isRegistered: IsRegistered = .live(env) + let isRegistered: MessengerIsRegistered = .live(env) XCTAssertFalse(try isRegistered()) } func testWithoutE2E() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.e2e.get = { nil } - let isRegistered: IsRegistered = .live(env) + let isRegistered: MessengerIsRegistered = .live(env) XCTAssertThrowsError(try isRegistered()) { err in XCTAssertEqual( - err as? IsRegistered.Error, - IsRegistered.Error.notConnected + err as? MessengerIsRegistered.Error, + MessengerIsRegistered.Error.notConnected ) } } @@ -52,14 +52,14 @@ final class IsRegisteredTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.e2e.get = { var e2e: E2E = .unimplemented e2e.getId.run = { 1234 } return e2e } env.isRegisteredWithUD.run = { _ in throw error } - let isRegistered: IsRegistered = .live(env) + let isRegistered: MessengerIsRegistered = .live(env) XCTAssertThrowsError(try isRegistered()) { err in XCTAssertEqual(err as? Error, error) diff --git a/Tests/XXMessengerClientTests/Functors/LoadTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLoadTests.swift similarity index 85% rename from Tests/XXMessengerClientTests/Functors/LoadTests.swift rename to Tests/XXMessengerClientTests/Messenger/Functors/MessengerLoadTests.swift index fc07659b62c205ce64932a26cc0eaae984be5929..5eb90e3ae5379959c4891a5c0b36032827b8eae7 100644 --- a/Tests/XXMessengerClientTests/Functors/LoadTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLoadTests.swift @@ -3,7 +3,7 @@ import XCTest import XXClient @testable import XXMessengerClient -final class LoadTests: XCTestCase { +final class MessengerLoadTests: XCTestCase { func testLoad() throws { struct DidLoadCMix: Equatable { var storageDir: String @@ -17,7 +17,7 @@ final class LoadTests: XCTestCase { let password = "password".data(using: .utf8)! let cMixParams = "cmix-params".data(using: .utf8)! - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.set = { didSetCMix.append($0) } env.storageDir = storageDir env.passwordStorage.load = { password } @@ -30,7 +30,7 @@ final class LoadTests: XCTestCase { )) return .unimplemented } - let load: Load = .live(env) + let load: MessengerLoad = .live(env) try load() @@ -45,10 +45,10 @@ final class LoadTests: XCTestCase { } func testMissingPassword() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.storageDir = "storage-dir" env.passwordStorage.load = { throw PasswordStorage.MissingPasswordError() } - let load: Load = .live(env) + let load: MessengerLoad = .live(env) XCTAssertThrowsError(try load()) { err in XCTAssertEqual( @@ -62,12 +62,12 @@ final class LoadTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.storageDir = "storage-dir" env.passwordStorage.load = { "password".data(using: .utf8)! } env.getCMixParams.run = { "cmix-params".data(using: .utf8)! } env.loadCMix.run = { _, _, _ in throw error } - let load: Load = .live(env) + let load: MessengerLoad = .live(env) XCTAssertThrowsError(try load()) { err in XCTAssertEqual(err as? Error, error) diff --git a/Tests/XXMessengerClientTests/Functors/LogInTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLogInTests.swift similarity index 85% rename from Tests/XXMessengerClientTests/Functors/LogInTests.swift rename to Tests/XXMessengerClientTests/Messenger/Functors/MessengerLogInTests.swift index cf8a37080dcf2ab88e7cfbf0a81af2611a0c9bc3..83dd2cd02fc79fcb5d460d244c025d05590a2233 100644 --- a/Tests/XXMessengerClientTests/Functors/LogInTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLogInTests.swift @@ -3,7 +3,7 @@ import XCTest import XXClient @testable import XXMessengerClient -final class LogInTests: XCTestCase { +final class MessengerLogInTests: XCTestCase { func testLogin() throws { var didNewOrLoadUDWithParams: [NewOrLoadUd.Params] = [] var didNewOrLoadUDWithFollower: [UdNetworkStatus] = [] @@ -15,7 +15,7 @@ final class LogInTests: XCTestCase { let udContactFromNDF = "ndf-ud-contact".data(using: .utf8)! let udAddressFromNDF = "ndf-ud-address" - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { networkFollowerStatus } @@ -38,7 +38,7 @@ final class LogInTests: XCTestCase { didNewOrLoadUDWithFollower.append(follower) return .unimplemented } - let logIn: LogIn = .live(env) + let logIn: MessengerLogIn = .live(env) try logIn() XCTAssertNoDifference(didNewOrLoadUDWithParams, [.init( @@ -66,7 +66,7 @@ final class LogInTests: XCTestCase { let altUdContact = "alt-ud-contact".data(using: .utf8)! let altUdAddress = "alt-ud-address" - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { .running } @@ -85,7 +85,7 @@ final class LogInTests: XCTestCase { didNewOrLoadUDWithParams.append(params) return .unimplemented } - let logIn: LogIn = .live(env) + let logIn: MessengerLogIn = .live(env) try logIn() XCTAssertNoDifference(didNewOrLoadUDWithParams, [.init( @@ -100,28 +100,28 @@ final class LogInTests: XCTestCase { } func testLoginWithoutCMix() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { nil } - let logIn: LogIn = .live(env) + let logIn: MessengerLogIn = .live(env) XCTAssertThrowsError(try logIn()) { error in XCTAssertEqual( - error as? LogIn.Error, - LogIn.Error.notLoaded + error as? MessengerLogIn.Error, + MessengerLogIn.Error.notLoaded ) } } func testLoginWithoutE2E() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { .unimplemented } env.e2e.get = { nil } - let logIn: LogIn = .live(env) + let logIn: MessengerLogIn = .live(env) XCTAssertThrowsError(try logIn()) { error in XCTAssertEqual( - error as? LogIn.Error, - LogIn.Error.notConnected + error as? MessengerLogIn.Error, + MessengerLogIn.Error.notConnected ) } } @@ -130,7 +130,7 @@ final class LogInTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { .running } @@ -145,7 +145,7 @@ final class LogInTests: XCTestCase { } env.udCert = nil env.udContact = nil - let logIn: LogIn = .live(env) + let logIn: MessengerLogIn = .live(env) XCTAssertThrowsError(try logIn()) { err in XCTAssertEqual(err as? Error, error) @@ -156,7 +156,7 @@ final class LogInTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { .running } @@ -171,7 +171,7 @@ final class LogInTests: XCTestCase { env.udContact = "ud-contact".data(using: .utf8)! env.udAddress = "ud-address" env.newOrLoadUd.run = { _, _ in throw error } - let logIn: LogIn = .live(env) + let logIn: MessengerLogIn = .live(env) XCTAssertThrowsError(try logIn()) { err in XCTAssertEqual(err as? Error, error) diff --git a/Tests/XXMessengerClientTests/Functors/RegisterTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerRegisterTests.swift similarity index 86% rename from Tests/XXMessengerClientTests/Functors/RegisterTests.swift rename to Tests/XXMessengerClientTests/Messenger/Functors/MessengerRegisterTests.swift index b43e967ad5c5d78dabb24d560d66c6097e6b5098..ef96b25197a388e7b258a341638e053cb63ff3ad 100644 --- a/Tests/XXMessengerClientTests/Functors/RegisterTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerRegisterTests.swift @@ -3,7 +3,7 @@ import XCTest import XXClient @testable import XXMessengerClient -final class RegisterTests: XCTestCase { +final class MessengerRegisterTests: XCTestCase { func testRegister() throws { var didNewOrLoadUDWithParams: [NewOrLoadUd.Params] = [] var didNewOrLoadUDWithFollower: [UdNetworkStatus] = [] @@ -17,7 +17,7 @@ final class RegisterTests: XCTestCase { let udAddressFromNDF = "ndf-ud-address" let username = "new-user-name" - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { networkFollowerStatus } @@ -43,7 +43,7 @@ final class RegisterTests: XCTestCase { didNewOrLoadUDWithFollower.append(follower) return .unimplemented } - let register: Register = .live(env) + let register: MessengerRegister = .live(env) try register(username: username) XCTAssertNoDifference(didNewOrLoadUDWithParams, [.init( @@ -73,7 +73,7 @@ final class RegisterTests: XCTestCase { let altUdAddress = "alt-ud-address" let username = "new-user-name" - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { .running } @@ -95,7 +95,7 @@ final class RegisterTests: XCTestCase { didNewOrLoadUDWithParams.append(params) return .unimplemented } - let register: Register = .live(env) + let register: MessengerRegister = .live(env) try register(username: username) XCTAssertNoDifference(didNewOrLoadUDWithParams, [.init( @@ -110,28 +110,28 @@ final class RegisterTests: XCTestCase { } func testRegisterWithoutCMix() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { nil } - let register: Register = .live(env) + let register: MessengerRegister = .live(env) XCTAssertThrowsError(try register(username: "new-user-name")) { error in XCTAssertEqual( - error as? Register.Error, - Register.Error.notLoaded + error as? MessengerRegister.Error, + MessengerRegister.Error.notLoaded ) } } func testRegisterWithoutE2E() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { .unimplemented } env.e2e.get = { nil } - let register: Register = .live(env) + let register: MessengerRegister = .live(env) XCTAssertThrowsError(try register(username: "new-user-name")) { error in XCTAssertEqual( - error as? Register.Error, - Register.Error.notConnected + error as? MessengerRegister.Error, + MessengerRegister.Error.notConnected ) } } @@ -140,7 +140,7 @@ final class RegisterTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { .running } @@ -158,7 +158,7 @@ final class RegisterTests: XCTestCase { } env.udCert = nil env.udContact = nil - let register: Register = .live(env) + let register: MessengerRegister = .live(env) XCTAssertThrowsError(try register(username: "new-user-name")) { err in XCTAssertEqual(err as? Error, error) @@ -169,7 +169,7 @@ final class RegisterTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { .running } @@ -187,7 +187,7 @@ final class RegisterTests: XCTestCase { env.udContact = "ud-contact".data(using: .utf8)! env.udAddress = "ud-address" env.newOrLoadUd.run = { _, _ in throw error } - let register: Register = .live(env) + let register: MessengerRegister = .live(env) XCTAssertThrowsError(try register(username: "new-user-name")) { err in XCTAssertEqual(err as? Error, error) diff --git a/Tests/XXMessengerClientTests/Functors/StartTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerStartTests.swift similarity index 71% rename from Tests/XXMessengerClientTests/Functors/StartTests.swift rename to Tests/XXMessengerClientTests/Messenger/Functors/MessengerStartTests.swift index f15d6f1d80fb7b20f27836e3ac8269af6433cdfe..7b3e33af570bd8a522d26091ef551be5fec7b674 100644 --- a/Tests/XXMessengerClientTests/Functors/StartTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerStartTests.swift @@ -3,11 +3,11 @@ import XCTest import XXClient @testable import XXMessengerClient -final class StartTests: XCTestCase { +final class MessengerStartTests: XCTestCase { func testStart() throws { var didStartNetworkFollower: [Int] = [] - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { .stopped } @@ -16,7 +16,7 @@ final class StartTests: XCTestCase { } return cMix } - let start: Start = .live(env) + let start: MessengerStart = .live(env) try start(timeoutMS: 123) @@ -24,26 +24,26 @@ final class StartTests: XCTestCase { } func testStartWhenNotLoaded() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { nil } - let start: Start = .live(env) + let start: MessengerStart = .live(env) XCTAssertThrowsError(try start()) { error in XCTAssertEqual( - error as? Start.Error, - Start.Error.notLoaded + error as? MessengerStart.Error, + MessengerStart.Error.notLoaded ) } } func testStartWhenRunning() throws { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { .running } return cMix } - let start: Start = .live(env) + let start: MessengerStart = .live(env) try start() } @@ -52,14 +52,14 @@ final class StartTests: XCTestCase { struct Error: Swift.Error, Equatable {} let error = Error() - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.networkFollowerStatus.run = { .stopped } cMix.startNetworkFollower.run = { _ in throw error } return cMix } - let start: Start = .live(env) + let start: MessengerStart = .live(env) XCTAssertThrowsError(try start()) { err in XCTAssertEqual(err as? Error, error) diff --git a/Tests/XXMessengerClientTests/Functors/WaitForNetworkTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNetworkTests.swift similarity index 60% rename from Tests/XXMessengerClientTests/Functors/WaitForNetworkTests.swift rename to Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNetworkTests.swift index f0d15ca784203bad54b0efdd109fee35622f0ccf..1dbae73528c82a00c4270bf99c759356c7488171 100644 --- a/Tests/XXMessengerClientTests/Functors/WaitForNetworkTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNetworkTests.swift @@ -3,11 +3,11 @@ import XCTest import XXClient @testable import XXMessengerClient -final class WaitForNetworkTests: XCTestCase { +final class MessengerWaitForNetworkTests: XCTestCase { func testWaitSuccess() throws { var didWaitForNetwork: [Int] = [] - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.waitForNetwork.run = { timeoutMS in @@ -16,7 +16,7 @@ final class WaitForNetworkTests: XCTestCase { } return cMix } - let waitForNetwork: WaitForNetwork = .live(env) + let waitForNetwork: MessengerWaitForNetwork = .live(env) try waitForNetwork(timeoutMS: 123) @@ -24,31 +24,31 @@ final class WaitForNetworkTests: XCTestCase { } func testWaitWhenNotLoaded() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { nil } - let waitForNetwork: WaitForNetwork = .live(env) + let waitForNetwork: MessengerWaitForNetwork = .live(env) XCTAssertThrowsError(try waitForNetwork()) { error in XCTAssertEqual( - error as? WaitForNetwork.Error, - WaitForNetwork.Error.notLoaded + error as? MessengerWaitForNetwork.Error, + MessengerWaitForNetwork.Error.notLoaded ) } } func testWaitTimeout() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.waitForNetwork.run = { _ in false } return cMix } - let waitForNetwork: WaitForNetwork = .live(env) + let waitForNetwork: MessengerWaitForNetwork = .live(env) XCTAssertThrowsError(try waitForNetwork()) { error in XCTAssertEqual( - error as? WaitForNetwork.Error, - WaitForNetwork.Error.timeout + error as? MessengerWaitForNetwork.Error, + MessengerWaitForNetwork.Error.timeout ) } } diff --git a/Tests/XXMessengerClientTests/Functors/WaitForNodesTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift similarity index 80% rename from Tests/XXMessengerClientTests/Functors/WaitForNodesTests.swift rename to Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift index e001d270aca4cadd3bdfc337b1bf21facbae6247..bc23afb53c604fd0b737bba5db544edfebdffe68 100644 --- a/Tests/XXMessengerClientTests/Functors/WaitForNodesTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift @@ -3,16 +3,16 @@ import XCTest import XXClient @testable import XXMessengerClient -final class WaitForNodesTests: XCTestCase { +final class MessengerWaitForNodesTests: XCTestCase { func testWaitWhenNotLoaded() { - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { nil } - let waitForNodes: WaitForNodes = .live(env) + let waitForNodes: MessengerWaitForNodes = .live(env) XCTAssertThrowsError(try waitForNodes()) { error in XCTAssertEqual( - error as? WaitForNodes.Error, - WaitForNodes.Error.notLoaded + error as? MessengerWaitForNodes.Error, + MessengerWaitForNodes.Error.notLoaded ) } } @@ -20,7 +20,7 @@ final class WaitForNodesTests: XCTestCase { func testWaitWhenHasTargetRatio() throws { var didProgress: [NodeRegistrationReport] = [] - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.getNodeRegistrationStatus.run = { @@ -28,7 +28,7 @@ final class WaitForNodesTests: XCTestCase { } return cMix } - let waitForNodes: WaitForNodes = .live(env) + let waitForNodes: MessengerWaitForNodes = .live(env) try waitForNodes( targetRatio: 0.7, @@ -52,14 +52,14 @@ final class WaitForNodesTests: XCTestCase { .init(registered: 8, total: 10), ] - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.getNodeRegistrationStatus.run = { reports.removeFirst() } return cMix } env.sleep = { didSleep.append($0) } - let waitForNodes: WaitForNodes = .live(env) + let waitForNodes: MessengerWaitForNodes = .live(env) try waitForNodes( targetRatio: 0.7, @@ -87,14 +87,14 @@ final class WaitForNodesTests: XCTestCase { .init(registered: 6, total: 10), ] - var env: Environment = .unimplemented + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented cMix.getNodeRegistrationStatus.run = { reports.removeFirst() } return cMix } env.sleep = { didSleep.append($0) } - let waitForNodes: WaitForNodes = .live(env) + let waitForNodes: MessengerWaitForNodes = .live(env) XCTAssertThrowsError(try waitForNodes( targetRatio: 0.7, @@ -103,8 +103,8 @@ final class WaitForNodesTests: XCTestCase { onProgress: { didProgress.append($0) } )) { error in XCTAssertEqual( - error as? WaitForNodes.Error, - WaitForNodes.Error.timeout + error as? MessengerWaitForNodes.Error, + MessengerWaitForNodes.Error.timeout ) } diff --git a/Tests/XXMessengerClientTests/Utils/StoredTests.swift b/Tests/XXMessengerClientTests/Messenger/Utils/StoredTests.swift similarity index 100% rename from Tests/XXMessengerClientTests/Utils/StoredTests.swift rename to Tests/XXMessengerClientTests/Messenger/Utils/StoredTests.swift