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