From cdd28314f36d5c9119b43faaac4cd31ed98a7edb Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Tue, 23 Aug 2022 00:56:16 +0100 Subject: [PATCH] Revert "Refactor" This reverts commit b7c181295fe02c4f9de10b9f567a7c8735f2e05a. --- Docs/XXMessengerClient.md | 4 +- .../Functors/IsConnected.swift | 25 ------------ .../Functors/IsCreated.swift | 24 ----------- .../XXMessengerClient/Functors/IsLoaded.swift | 24 ----------- .../Functors/IsLoggedIn.swift | 24 ----------- .../Functors/MessengerConnect.swift} | 12 +++--- .../Functors/MessengerCreate.swift} | 16 ++++---- .../Functors/MessengerIsConnected.swift | 25 ++++++++++++ .../Functors/MessengerIsCreated.swift | 24 +++++++++++ .../Functors/MessengerIsLoaded.swift | 24 +++++++++++ .../Functors/MessengerIsLoggedIn.swift | 24 +++++++++++ .../Functors/MessengerIsRegistered.swift} | 12 +++--- .../Functors/MessengerLoad.swift} | 12 +++--- .../Functors/MessengerLogIn.swift} | 12 +++--- .../Functors/MessengerRegister.swift} | 12 +++--- .../Functors/MessengerStart.swift} | 12 +++--- .../Functors/MessengerWaitForNetwork.swift} | 12 +++--- .../Functors/MessengerWaitForNodes.swift} | 12 +++--- .../{ => Messenger}/Messenger.swift | 28 ++++++------- .../MessengerEnvironment.swift} | 20 +++++----- .../Utils/DirectoryManager.swift | 40 ------------------- .../Utils/MessengerFileManager.swift | 40 +++++++++++++++++++ .../Functors/IsConnectedTests.swift | 20 ---------- .../Functors/IsLoadedTests.swift | 20 ---------- .../Functors/IsLoggedInTests.swift | 20 ---------- .../Functors/MessengerConnectTests.swift} | 22 +++++----- .../Functors/MessengerCreateTests.swift} | 40 +++++++++---------- .../Functors/MessengerIsConnectedTests.swift | 20 ++++++++++ .../Functors/MessengerIsCreatedTests.swift} | 14 +++---- .../Functors/MessengerIsLoadedTests.swift | 20 ++++++++++ .../Functors/MessengerIsLoggedInTests.swift | 20 ++++++++++ .../MessengerIsRegisteredTests.swift} | 22 +++++----- .../Functors/MessengerLoadTests.swift} | 14 +++---- .../Functors/MessengerLogInTests.swift} | 34 ++++++++-------- .../Functors/MessengerRegisterTests.swift} | 34 ++++++++-------- .../Functors/MessengerStartTests.swift} | 22 +++++----- .../MessengerWaitForNetworkTests.swift} | 22 +++++----- .../MessengerWaitForNodesTests.swift} | 26 ++++++------ .../{ => Messenger}/Utils/StoredTests.swift | 0 39 files changed, 404 insertions(+), 404 deletions(-) delete mode 100644 Sources/XXMessengerClient/Functors/IsConnected.swift delete mode 100644 Sources/XXMessengerClient/Functors/IsCreated.swift delete mode 100644 Sources/XXMessengerClient/Functors/IsLoaded.swift delete mode 100644 Sources/XXMessengerClient/Functors/IsLoggedIn.swift rename Sources/XXMessengerClient/{Functors/Connect.swift => Messenger/Functors/MessengerConnect.swift} (67%) rename Sources/XXMessengerClient/{Functors/Create.swift => Messenger/Functors/MessengerCreate.swift} (61%) create mode 100644 Sources/XXMessengerClient/Messenger/Functors/MessengerIsConnected.swift create mode 100644 Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift create mode 100644 Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoaded.swift create mode 100644 Sources/XXMessengerClient/Messenger/Functors/MessengerIsLoggedIn.swift rename Sources/XXMessengerClient/{Functors/IsRegistered.swift => Messenger/Functors/MessengerIsRegistered.swift} (59%) rename Sources/XXMessengerClient/{Functors/Load.swift => Messenger/Functors/MessengerLoad.swift} (61%) rename Sources/XXMessengerClient/{Functors/LogIn.swift => Messenger/Functors/MessengerLogIn.swift} (79%) rename Sources/XXMessengerClient/{Functors/Register.swift => Messenger/Functors/MessengerRegister.swift} (78%) rename Sources/XXMessengerClient/{Functors/Start.swift => Messenger/Functors/MessengerStart.swift} (68%) rename Sources/XXMessengerClient/{Functors/WaitForNetwork.swift => Messenger/Functors/MessengerWaitForNetwork.swift} (62%) rename Sources/XXMessengerClient/{Functors/WaitForNodes.swift => Messenger/Functors/MessengerWaitForNodes.swift} (75%) rename Sources/XXMessengerClient/{ => Messenger}/Messenger.swift (65%) rename Sources/XXMessengerClient/{Environment.swift => Messenger/MessengerEnvironment.swift} (83%) delete mode 100644 Sources/XXMessengerClient/Utils/DirectoryManager.swift create mode 100644 Sources/XXMessengerClient/Utils/MessengerFileManager.swift delete mode 100644 Tests/XXMessengerClientTests/Functors/IsConnectedTests.swift delete mode 100644 Tests/XXMessengerClientTests/Functors/IsLoadedTests.swift delete mode 100644 Tests/XXMessengerClientTests/Functors/IsLoggedInTests.swift rename Tests/XXMessengerClientTests/{Functors/ConnectTests.swift => Messenger/Functors/MessengerConnectTests.swift} (83%) rename Tests/XXMessengerClientTests/{Functors/CreateTests.swift => Messenger/Functors/MessengerCreateTests.swift} (80%) create mode 100644 Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsConnectedTests.swift rename Tests/XXMessengerClientTests/{Functors/IsCreatedTests.swift => Messenger/Functors/MessengerIsCreatedTests.swift} (65%) create mode 100644 Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoadedTests.swift create mode 100644 Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsLoggedInTests.swift rename Tests/XXMessengerClientTests/{Functors/IsRegisteredTests.swift => Messenger/Functors/MessengerIsRegisteredTests.swift} (67%) rename Tests/XXMessengerClientTests/{Functors/LoadTests.swift => Messenger/Functors/MessengerLoadTests.swift} (85%) rename Tests/XXMessengerClientTests/{Functors/LogInTests.swift => Messenger/Functors/MessengerLogInTests.swift} (85%) rename Tests/XXMessengerClientTests/{Functors/RegisterTests.swift => Messenger/Functors/MessengerRegisterTests.swift} (86%) rename Tests/XXMessengerClientTests/{Functors/StartTests.swift => Messenger/Functors/MessengerStartTests.swift} (71%) rename Tests/XXMessengerClientTests/{Functors/WaitForNetworkTests.swift => Messenger/Functors/MessengerWaitForNetworkTests.swift} (60%) rename Tests/XXMessengerClientTests/{Functors/WaitForNodesTests.swift => Messenger/Functors/MessengerWaitForNodesTests.swift} (80%) rename Tests/XXMessengerClientTests/{ => Messenger}/Utils/StoredTests.swift (100%) diff --git a/Docs/XXMessengerClient.md b/Docs/XXMessengerClient.md index fd9ac7ee..2dc19246 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 923d29df..00000000 --- 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 c9f55cff..00000000 --- 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 e3365cc3..00000000 --- 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 bcf0dfdf..00000000 --- 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 47d649fe..8cebb73a 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 275722c7..b36b55b4 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 00000000..c30437fa --- /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 00000000..c848518c --- /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 00000000..dc0b4216 --- /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 00000000..7c54c578 --- /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 4ccc2ce7..bf3cafa5 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 03010a22..29f28168 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 db2c34f9..d0f86d8b 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 3608ea93..6f429631 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 77e32812..cc3363ec 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 976e6423..8fe8cf3e 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 f08a2966..b87acc2f 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 b3ad9a58..30d63efd 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 58b18db9..0918142a 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 16b9238e..00000000 --- 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 00000000..4ff49c5f --- /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 05972e05..00000000 --- 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 37adffbe..00000000 --- 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 31f60325..00000000 --- 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 caac4d6a..fb780353 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 0ef9e0d7..2180dda3 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 00000000..c7c5de8b --- /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 dbdd3407..246be9d3 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 00000000..6f0591e2 --- /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 00000000..c6ea87e6 --- /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 1069fb5e..b6dca3e9 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 fc07659b..5eb90e3a 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 cf8a3708..83dd2cd0 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 b43e967a..ef96b251 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 f15d6f1d..7b3e33af 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 f0d15ca7..1dbae735 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 e001d270..bc23afb5 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 -- GitLab