From 1deb820e10135ccce571f8f83ede5011dc50c298 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Wed, 10 Aug 2022 19:38:29 +0100
Subject: [PATCH] Wrap DummyTraffic object and functors

---
 .../DummyTraffic/DummyTraffic.swift           | 22 +++++++++++++++++++
 .../Functors/DummyTrafficGetStatus.swift      | 22 +++++++++++++++++++
 .../Functors/DummyTrafficSetStatus.swift      | 22 +++++++++++++++++++
 3 files changed, 66 insertions(+)
 create mode 100644 Sources/ElixxirDAppsSDK/DummyTraffic/DummyTraffic.swift
 create mode 100644 Sources/ElixxirDAppsSDK/DummyTraffic/Functors/DummyTrafficGetStatus.swift
 create mode 100644 Sources/ElixxirDAppsSDK/DummyTraffic/Functors/DummyTrafficSetStatus.swift

diff --git a/Sources/ElixxirDAppsSDK/DummyTraffic/DummyTraffic.swift b/Sources/ElixxirDAppsSDK/DummyTraffic/DummyTraffic.swift
new file mode 100644
index 00000000..4c35ed48
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/DummyTraffic/DummyTraffic.swift
@@ -0,0 +1,22 @@
+import Bindings
+
+public struct DummyTraffic {
+  public var getStatus: DummyTrafficGetStatus
+  public var setStatus: DummyTrafficSetStatus
+}
+
+extension DummyTraffic {
+  public static func live(_ bindingsDummyTraffic: BindingsDummyTraffic) -> DummyTraffic {
+    DummyTraffic(
+      getStatus: .live(bindingsDummyTraffic),
+      setStatus: .live(bindingsDummyTraffic)
+    )
+  }
+}
+
+extension DummyTraffic {
+  public static let unimplemented = DummyTraffic(
+    getStatus: .unimplemented,
+    setStatus: .unimplemented
+  )
+}
diff --git a/Sources/ElixxirDAppsSDK/DummyTraffic/Functors/DummyTrafficGetStatus.swift b/Sources/ElixxirDAppsSDK/DummyTraffic/Functors/DummyTrafficGetStatus.swift
new file mode 100644
index 00000000..6d93a7bd
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/DummyTraffic/Functors/DummyTrafficGetStatus.swift
@@ -0,0 +1,22 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct DummyTrafficGetStatus {
+  public var run: () -> Bool
+
+  public func callAsFunction() -> Bool {
+    run()
+  }
+}
+
+extension DummyTrafficGetStatus {
+  public static func live(_ bindingsDummyTraffic: BindingsDummyTraffic) -> DummyTrafficGetStatus {
+    DummyTrafficGetStatus(run: bindingsDummyTraffic.getStatus)
+  }
+}
+
+extension DummyTrafficGetStatus {
+  public static let unimplemented = DummyTrafficGetStatus(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
diff --git a/Sources/ElixxirDAppsSDK/DummyTraffic/Functors/DummyTrafficSetStatus.swift b/Sources/ElixxirDAppsSDK/DummyTraffic/Functors/DummyTrafficSetStatus.swift
new file mode 100644
index 00000000..c3c99801
--- /dev/null
+++ b/Sources/ElixxirDAppsSDK/DummyTraffic/Functors/DummyTrafficSetStatus.swift
@@ -0,0 +1,22 @@
+import Bindings
+import XCTestDynamicOverlay
+
+public struct DummyTrafficSetStatus {
+  public var run: (Bool) throws -> Void
+
+  public func callAsFunction(_ status: Bool) throws {
+    try run(status)
+  }
+}
+
+extension DummyTrafficSetStatus {
+  public static func live(_ bindingsDummyTraffic: BindingsDummyTraffic) -> DummyTrafficSetStatus {
+    DummyTrafficSetStatus(run: bindingsDummyTraffic.setStatus)
+  }
+}
+
+extension DummyTrafficSetStatus {
+  public static let unimplemented = DummyTrafficSetStatus(
+    run: XCTUnimplemented("\(Self.self)")
+  )
+}
-- 
GitLab