From 1aa177173cdcd65a6f47930d83c61ffb55990aff Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Tue, 23 Aug 2022 00:13:44 +0100
Subject: [PATCH] Use Stored utility

---
 .../Messenger/Functors/MessengerCMix.swift    | 29 -------------------
 .../Messenger/Functors/MessengerE2E.swift     | 29 -------------------
 .../Messenger/Functors/MessengerUD.swift      | 29 -------------------
 .../Messenger/Messenger.swift                 | 12 ++++----
 .../Messenger/MessengerEnvironment.swift      | 18 ++++++------
 .../Functors/MessengerCMixTests.swift         | 19 ------------
 .../Functors/MessengerE2ETests.swift          | 19 ------------
 .../Messenger/Functors/MessengerUDTests.swift | 19 ------------
 8 files changed, 15 insertions(+), 159 deletions(-)
 delete mode 100644 Sources/XXMessengerClient/Messenger/Functors/MessengerCMix.swift
 delete mode 100644 Sources/XXMessengerClient/Messenger/Functors/MessengerE2E.swift
 delete mode 100644 Sources/XXMessengerClient/Messenger/Functors/MessengerUD.swift
 delete mode 100644 Tests/XXMessengerClientTests/Messenger/Functors/MessengerCMixTests.swift
 delete mode 100644 Tests/XXMessengerClientTests/Messenger/Functors/MessengerE2ETests.swift
 delete mode 100644 Tests/XXMessengerClientTests/Messenger/Functors/MessengerUDTests.swift

diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerCMix.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerCMix.swift
deleted file mode 100644
index d3e062d2..00000000
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerCMix.swift
+++ /dev/null
@@ -1,29 +0,0 @@
-import XXClient
-import XCTestDynamicOverlay
-
-public struct MessengerCMix {
-  public var get: () -> CMix?
-  public var set: (CMix?) -> Void
-
-  public func callAsFunction() -> CMix? {
-    get()
-  }
-}
-
-extension MessengerCMix {
-  public static func live() -> MessengerCMix {
-    class Storage { var value: CMix? }
-    let storage = Storage()
-    return MessengerCMix(
-      get: { storage.value },
-      set: { storage.value = $0 }
-    )
-  }
-}
-
-extension MessengerCMix {
-  public static let unimplemented = MessengerCMix(
-    get: XCTUnimplemented("\(Self.self).get", placeholder: nil),
-    set: XCTUnimplemented("\(Self.self).set")
-  )
-}
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerE2E.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerE2E.swift
deleted file mode 100644
index 070a6b70..00000000
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerE2E.swift
+++ /dev/null
@@ -1,29 +0,0 @@
-import XXClient
-import XCTestDynamicOverlay
-
-public struct MessengerE2E {
-  public var get: () -> E2E?
-  public var set: (E2E?) -> Void
-
-  public func callAsFunction() -> E2E? {
-    get()
-  }
-}
-
-extension MessengerE2E {
-  public static func live() -> MessengerE2E {
-    class Storage { var value: E2E? }
-    let storage = Storage()
-    return MessengerE2E(
-      get: { storage.value },
-      set: { storage.value = $0 }
-    )
-  }
-}
-
-extension MessengerE2E {
-  public static let unimplemented = MessengerE2E(
-    get: XCTUnimplemented("\(Self.self).get", placeholder: nil),
-    set: XCTUnimplemented("\(Self.self).set")
-  )
-}
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerUD.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerUD.swift
deleted file mode 100644
index c871f6e0..00000000
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerUD.swift
+++ /dev/null
@@ -1,29 +0,0 @@
-import XXClient
-import XCTestDynamicOverlay
-
-public struct MessengerUD {
-  public var get: () -> UserDiscovery?
-  public var set: (UserDiscovery?) -> Void
-
-  public func callAsFunction() -> UserDiscovery? {
-    get()
-  }
-}
-
-extension MessengerUD {
-  public static func live() -> MessengerUD {
-    class Storage { var value: UserDiscovery? }
-    let storage = Storage()
-    return MessengerUD(
-      get: { storage.value },
-      set: { storage.value = $0 }
-    )
-  }
-}
-
-extension MessengerUD {
-  public static let unimplemented = MessengerUD(
-    get: XCTUnimplemented("\(Self.self).get", placeholder: nil),
-    set: XCTUnimplemented("\(Self.self).set")
-  )
-}
diff --git a/Sources/XXMessengerClient/Messenger/Messenger.swift b/Sources/XXMessengerClient/Messenger/Messenger.swift
index 397c8e84..30d63efd 100644
--- a/Sources/XXMessengerClient/Messenger/Messenger.swift
+++ b/Sources/XXMessengerClient/Messenger/Messenger.swift
@@ -1,9 +1,9 @@
 import XXClient
 
 public struct Messenger {
-  public var cMix: MessengerCMix
-  public var e2e: MessengerE2E
-  public var ud: MessengerUD
+  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
@@ -44,9 +44,9 @@ extension Messenger {
 
 extension Messenger {
   public static let unimplemented = Messenger(
-    cMix: .unimplemented,
-    e2e: .unimplemented,
-    ud: .unimplemented,
+    cMix: .unimplemented(),
+    e2e: .unimplemented(),
+    ud: .unimplemented(),
     isCreated: .unimplemented,
     create: .unimplemented,
     isLoaded: .unimplemented,
diff --git a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
index a84a1e87..0918142a 100644
--- a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
+++ b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
@@ -3,9 +3,9 @@ import XXClient
 import XCTestDynamicOverlay
 
 public struct MessengerEnvironment {
-  public var cMix: MessengerCMix
+  public var cMix: Stored<CMix?>
   public var downloadNDF: DownloadAndVerifySignedNdf
-  public var e2e: MessengerE2E
+  public var e2e: Stored<E2E?>
   public var fileManager: MessengerFileManager
   public var generateSecret: GenerateSecret
   public var getCMixParams: GetCMixParams
@@ -19,7 +19,7 @@ public struct MessengerEnvironment {
   public var passwordStorage: PasswordStorage
   public var sleep: (Int) -> Void
   public var storageDir: String
-  public var ud: MessengerUD
+  public var ud: Stored<UserDiscovery?>
   public var udAddress: String?
   public var udCert: Data?
   public var udContact: Data?
@@ -34,9 +34,9 @@ extension MessengerEnvironment {
 
   public static func live() -> MessengerEnvironment {
     MessengerEnvironment(
-      cMix: .live(),
+      cMix: .inMemory(),
       downloadNDF: .live,
-      e2e: .live(),
+      e2e: .inMemory(),
       fileManager: .live(),
       generateSecret: .live,
       getCMixParams: .liveDefault,
@@ -50,7 +50,7 @@ extension MessengerEnvironment {
       passwordStorage: .keychain,
       sleep: { Foundation.sleep(UInt32($0)) },
       storageDir: MessengerEnvironment.defaultStorageDir,
-      ud: .live(),
+      ud: .inMemory(),
       udAddress: nil,
       udCert: nil,
       udContact: nil
@@ -60,9 +60,9 @@ extension MessengerEnvironment {
 
 extension MessengerEnvironment {
   public static let unimplemented = MessengerEnvironment(
-    cMix: .unimplemented,
+    cMix: .unimplemented(),
     downloadNDF: .unimplemented,
-    e2e: .unimplemented,
+    e2e: .unimplemented(),
     fileManager: .unimplemented,
     generateSecret: .unimplemented,
     getCMixParams: .unimplemented,
@@ -76,7 +76,7 @@ extension MessengerEnvironment {
     passwordStorage: .unimplemented,
     sleep: XCTUnimplemented("\(Self.self).sleep"),
     storageDir: "unimplemented",
-    ud: .unimplemented,
+    ud: .unimplemented(),
     udAddress: nil,
     udCert: nil,
     udContact: nil
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCMixTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCMixTests.swift
deleted file mode 100644
index 668983f5..00000000
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerCMixTests.swift
+++ /dev/null
@@ -1,19 +0,0 @@
-import XCTest
-import XXClient
-@testable import XXMessengerClient
-
-final class MessengerCMixTests: XCTestCase {
-  func testCMix() throws {
-    let cMix: MessengerCMix = .live()
-
-    XCTAssertNil(cMix())
-
-    cMix.set(.unimplemented)
-
-    XCTAssertNotNil(cMix())
-
-    cMix.set(nil)
-
-    XCTAssertNil(cMix())
-  }
-}
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerE2ETests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerE2ETests.swift
deleted file mode 100644
index 63b9f585..00000000
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerE2ETests.swift
+++ /dev/null
@@ -1,19 +0,0 @@
-import XCTest
-import XXClient
-@testable import XXMessengerClient
-
-final class MessengerE2ETests: XCTestCase {
-  func testE2E() throws {
-    let e2e: MessengerE2E = .live()
-
-    XCTAssertNil(e2e())
-
-    e2e.set(.unimplemented)
-
-    XCTAssertNotNil(e2e())
-
-    e2e.set(nil)
-
-    XCTAssertNil(e2e())
-  }
-}
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerUDTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerUDTests.swift
deleted file mode 100644
index 73f2092c..00000000
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerUDTests.swift
+++ /dev/null
@@ -1,19 +0,0 @@
-import XCTest
-import XXClient
-@testable import XXMessengerClient
-
-final class MessengerUDTests: XCTestCase {
-  func testUD() throws {
-    let ud: MessengerUD = .live()
-
-    XCTAssertNil(ud())
-
-    ud.set(.unimplemented)
-
-    XCTAssertNotNil(ud())
-
-    ud.set(nil)
-
-    XCTAssertNil(ud())
-  }
-}
-- 
GitLab