From 68af8800b5f2ee98c3a7647f39cacb830901bf43 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Mon, 22 Aug 2022 12:34:44 +0100 Subject: [PATCH] Refactor MessengerEnvironment --- .../Messenger/Functors/MessengerCreate.swift | 2 +- .../Functors/MessengerIsCreated.swift | 2 +- .../Messenger/Functors/MessengerLoad.swift | 2 +- .../Messenger/Functors/MessengerLogIn.swift | 6 ++--- .../Functors/MessengerRegister.swift | 6 ++--- .../Messenger/MessengerEnvironment.swift | 24 +++++++++---------- .../Functors/MessengerCreateTests.swift | 10 ++++---- .../Functors/MessengerIsCreatedTests.swift | 4 ++-- .../Functors/MessengerLoadTests.swift | 6 ++--- .../Functors/MessengerLogInTests.swift | 22 ++++++++--------- .../Functors/MessengerRegisterTests.swift | 22 ++++++++--------- 11 files changed, 52 insertions(+), 54 deletions(-) diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerCreate.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerCreate.swift index a3514141..b36b55b4 100644 --- a/Sources/XXMessengerClient/Messenger/Functors/MessengerCreate.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerCreate.swift @@ -15,7 +15,7 @@ extension MessengerCreate { let ndfData = try env.downloadNDF(env.ndfEnvironment) let password = env.generateSecret() try env.passwordStorage.save(password) - let storageDir = env.storageDir() + let storageDir = env.storageDir try env.fileManager.removeDirectory(storageDir) try env.fileManager.createDirectory(storageDir) try env.newCMix( diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift index cf7f5a4f..c848518c 100644 --- a/Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerIsCreated.swift @@ -12,7 +12,7 @@ public struct MessengerIsCreated { extension MessengerIsCreated { public static func live(_ env: MessengerEnvironment) -> MessengerIsCreated { MessengerIsCreated { - env.fileManager.isDirectoryEmpty(env.storageDir()) == false + env.fileManager.isDirectoryEmpty(env.storageDir) == false } } } diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerLoad.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerLoad.swift index 9b0454a4..a8a6be31 100644 --- a/Sources/XXMessengerClient/Messenger/Functors/MessengerLoad.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerLoad.swift @@ -13,7 +13,7 @@ extension MessengerLoad { public static func live(_ env: MessengerEnvironment) -> MessengerLoad { MessengerLoad { env.ctx.cMix = try env.loadCMix( - storageDir: env.storageDir(), + storageDir: env.storageDir, password: try env.passwordStorage.load(), cMixParamsJSON: env.getCMixParams() ) diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerLogIn.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerLogIn.swift index 4b43a56b..70df78ac 100644 --- a/Sources/XXMessengerClient/Messenger/Functors/MessengerLogIn.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerLogIn.swift @@ -31,9 +31,9 @@ extension MessengerLogIn { e2eId: e2e.getId(), username: nil, registrationValidationSignature: nil, - cert: env.udCert() ?? e2e.getUdCertFromNdf(), - contactFile: env.udContact() ?? (try e2e.getUdContactFromNdf()), - address: env.udAddress() ?? e2e.getUdAddressFromNdf() + cert: env.udCert ?? e2e.getUdCertFromNdf(), + contactFile: env.udContact ?? (try e2e.getUdContactFromNdf()), + address: env.udAddress ?? e2e.getUdAddressFromNdf() ), follower: .init { cMix.networkFollowerStatus().rawValue diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerRegister.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerRegister.swift index 1440dd43..75fce252 100644 --- a/Sources/XXMessengerClient/Messenger/Functors/MessengerRegister.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerRegister.swift @@ -33,9 +33,9 @@ extension MessengerRegister { e2eId: e2e.getId(), username: username, registrationValidationSignature: cMix.getReceptionRegistrationValidationSignature(), - cert: env.udCert() ?? e2e.getUdCertFromNdf(), - contactFile: env.udContact() ?? (try e2e.getUdContactFromNdf()), - address: env.udAddress() ?? e2e.getUdAddressFromNdf() + cert: env.udCert ?? e2e.getUdCertFromNdf(), + contactFile: env.udContact ?? (try e2e.getUdContactFromNdf()), + address: env.udAddress ?? e2e.getUdAddressFromNdf() ), follower: .init { cMix.networkFollowerStatus().rawValue diff --git a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift index dfa7dfcd..29391b20 100644 --- a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift +++ b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift @@ -16,10 +16,10 @@ public struct MessengerEnvironment { public var newCMix: NewCMix public var newOrLoadUd: NewOrLoadUd public var passwordStorage: PasswordStorage - public var storageDir: () -> String - public var udAddress: () -> String? - public var udCert: () -> Data? - public var udContact: () -> Data? + public var storageDir: String + public var udAddress: String? + public var udCert: Data? + public var udContact: Data? } extension MessengerEnvironment { @@ -43,10 +43,10 @@ extension MessengerEnvironment { newCMix: .live, newOrLoadUd: .live, passwordStorage: .keychain, - storageDir: { MessengerEnvironment.defaultStorageDir }, - udAddress: { nil }, - udCert: { nil }, - udContact: { nil } + storageDir: MessengerEnvironment.defaultStorageDir, + udAddress: nil, + udCert: nil, + udContact: nil ) } @@ -65,9 +65,9 @@ extension MessengerEnvironment { newCMix: .unimplemented, newOrLoadUd: .unimplemented, passwordStorage: .unimplemented, - storageDir: XCTUnimplemented("\(Self.self).storageDir", placeholder: ""), - udAddress: XCTUnimplemented("\(Self.self).udAddress", placeholder: nil), - udCert: XCTUnimplemented("\(Self.self).udCert", placeholder: nil), - udContact: XCTUnimplemented("\(Self.self).udContact", placeholder: nil) + storageDir: "unimplemented", + udAddress: nil, + udCert: nil, + udContact: nil ) } diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCreateTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCreateTests.swift index 5db87012..ee178d28 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCreateTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCreateTests.swift @@ -36,9 +36,7 @@ final class MessengerCreateTests: XCTestCase { env.passwordStorage.save = { password in didSavePassword.append(password) } - env.storageDir = { - storageDir - } + env.storageDir = storageDir env.fileManager.removeDirectory = { path in didRemoveDirectory.append(path) } @@ -109,7 +107,7 @@ final class MessengerCreateTests: XCTestCase { 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.storageDir = "storage-dir" env.fileManager.removeDirectory = { _ in throw error } let create: MessengerCreate = .live(env) @@ -127,7 +125,7 @@ final class MessengerCreateTests: XCTestCase { 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.storageDir = "storage-dir" env.fileManager.removeDirectory = { _ in } env.fileManager.createDirectory = { _ in throw error } let create: MessengerCreate = .live(env) @@ -146,7 +144,7 @@ final class MessengerCreateTests: XCTestCase { 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.storageDir = "storage-dir" env.fileManager.removeDirectory = { _ in } env.fileManager.createDirectory = { _ in } env.newCMix.run = { _, _, _, _ in throw error } diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsCreatedTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsCreatedTests.swift index a96c8a60..246be9d3 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsCreatedTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerIsCreatedTests.swift @@ -8,7 +8,7 @@ final class MessengerIsCreatedTests: XCTestCase { let storageDir = "storage-dir" var env: MessengerEnvironment = .unimplemented - env.storageDir = { storageDir } + env.storageDir = storageDir env.fileManager.isDirectoryEmpty = { path in didIsDirectoryEmpty.append(path) return false @@ -24,7 +24,7 @@ final class MessengerIsCreatedTests: XCTestCase { let storageDir = "storage-dir" var env: MessengerEnvironment = .unimplemented - env.storageDir = { storageDir } + env.storageDir = storageDir env.fileManager.isDirectoryEmpty = { path in didIsDirectoryEmpty.append(path) return true diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLoadTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLoadTests.swift index ef5694c2..1d8ae5f2 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLoadTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLoadTests.swift @@ -18,7 +18,7 @@ final class MessengerLoadTests: XCTestCase { var env: MessengerEnvironment = .unimplemented env.ctx.cMix = nil - env.storageDir = { storageDir } + env.storageDir = storageDir env.passwordStorage.load = { password } env.getCMixParams.run = { cMixParams } env.loadCMix.run = { storageDir, password, cMixParamsJSON in @@ -46,7 +46,7 @@ final class MessengerLoadTests: XCTestCase { func testMissingPassword() { var env: MessengerEnvironment = .unimplemented env.ctx.cMix = nil - env.storageDir = { "storage-dir" } + env.storageDir = "storage-dir" env.passwordStorage.load = { throw PasswordStorage.MissingPasswordError() } let load: MessengerLoad = .live(env) @@ -64,7 +64,7 @@ final class MessengerLoadTests: XCTestCase { var env: MessengerEnvironment = .unimplemented env.ctx.cMix = nil - env.storageDir = { "storage-dir" } + 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 } diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLogInTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLogInTests.swift index 92e511f2..b11f8c8f 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLogInTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerLogInTests.swift @@ -23,9 +23,9 @@ final class MessengerLogInTests: XCTestCase { } env.ctx.e2e = .unimplemented env.ctx.e2e!.getId.run = { e2eId } - env.udCert = { nil } - env.udContact = { nil } - env.udAddress = { nil } + env.udCert = nil + env.udContact = nil + env.udAddress = nil env.ctx.e2e!.getUdCertFromNdf.run = { udCertFromNDF } env.ctx.e2e!.getUdContactFromNdf.run = { udContactFromNDF } env.ctx.e2e!.getUdAddressFromNdf.run = { udAddressFromNDF } @@ -66,9 +66,9 @@ final class MessengerLogInTests: XCTestCase { env.ctx.cMix!.networkFollowerStatus.run = { .running } env.ctx.e2e = .unimplemented env.ctx.e2e!.getId.run = { e2eId } - env.udCert = { altUdCert } - env.udContact = { altUdContact } - env.udAddress = { altUdAddress } + env.udCert = altUdCert + env.udContact = altUdContact + env.udAddress = altUdAddress env.newOrLoadUd.run = { params, _ in didNewOrLoadUDWithParams.append(params) return .unimplemented @@ -138,8 +138,8 @@ final class MessengerLogInTests: XCTestCase { env.ctx.cMix!.networkFollowerStatus.run = { .running } env.ctx.e2e = .unimplemented env.ctx.e2e!.getId.run = { 1234 } - env.udCert = { nil } - env.udContact = { nil } + env.udCert = nil + env.udContact = nil env.ctx.e2e!.getUdCertFromNdf.run = { "ndf-ud-cert".data(using: .utf8)! } env.ctx.e2e!.getUdContactFromNdf.run = { throw error } let logIn: MessengerLogIn = .live(env) @@ -158,9 +158,9 @@ final class MessengerLogInTests: XCTestCase { env.ctx.cMix!.networkFollowerStatus.run = { .running } env.ctx.e2e = .unimplemented env.ctx.e2e!.getId.run = { 1234 } - env.udCert = { "ud-cert".data(using: .utf8)! } - env.udContact = { "ud-contact".data(using: .utf8)! } - env.udAddress = { "ud-address" } + env.udCert = "ud-cert".data(using: .utf8)! + env.udContact = "ud-contact".data(using: .utf8)! + env.udAddress = "ud-address" env.newOrLoadUd.run = { _, _ in throw error } let logIn: MessengerLogIn = .live(env) diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerRegisterTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerRegisterTests.swift index deb6a8dc..861df63e 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerRegisterTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerRegisterTests.swift @@ -28,9 +28,9 @@ final class MessengerRegisterTests: XCTestCase { } env.ctx.e2e = .unimplemented env.ctx.e2e!.getId.run = { e2eId } - env.udCert = { nil } - env.udContact = { nil } - env.udAddress = { nil } + env.udCert = nil + env.udContact = nil + env.udAddress = nil env.ctx.e2e!.getUdCertFromNdf.run = { udCertFromNDF } env.ctx.e2e!.getUdContactFromNdf.run = { udContactFromNDF } env.ctx.e2e!.getUdAddressFromNdf.run = { udAddressFromNDF } @@ -76,9 +76,9 @@ final class MessengerRegisterTests: XCTestCase { } env.ctx.e2e = .unimplemented env.ctx.e2e!.getId.run = { e2eId } - env.udCert = { altUdCert } - env.udContact = { altUdContact } - env.udAddress = { altUdAddress } + env.udCert = altUdCert + env.udContact = altUdContact + env.udAddress = altUdAddress env.newOrLoadUd.run = { params, _ in didNewOrLoadUDWithParams.append(params) return .unimplemented @@ -152,8 +152,8 @@ final class MessengerRegisterTests: XCTestCase { } env.ctx.e2e = .unimplemented env.ctx.e2e!.getId.run = { 1234 } - env.udCert = { nil } - env.udContact = { nil } + env.udCert = nil + env.udContact = nil env.ctx.e2e!.getUdCertFromNdf.run = { "ndf-ud-cert".data(using: .utf8)! } env.ctx.e2e!.getUdContactFromNdf.run = { throw error } let register: MessengerRegister = .live(env) @@ -175,9 +175,9 @@ final class MessengerRegisterTests: XCTestCase { } env.ctx.e2e = .unimplemented env.ctx.e2e!.getId.run = { 1234 } - env.udCert = { "ud-cert".data(using: .utf8)! } - env.udContact = { "ud-contact".data(using: .utf8)! } - env.udAddress = { "ud-address" } + env.udCert = "ud-cert".data(using: .utf8)! + env.udContact = "ud-contact".data(using: .utf8)! + env.udAddress = "ud-address" env.newOrLoadUd.run = { _, _ in throw error } let register: MessengerRegister = .live(env) -- GitLab