From cb3fbbb2211ff21e887c7062d464c2b7c6ff65c1 Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Sun, 16 Oct 2022 23:15:27 +0200
Subject: [PATCH] Update MessengerSendFile function

Use stored FileTransfer manager
---
 .../Functions/MessengerSendFile.swift         | 16 ++----
 .../Functions/MessengerSendFileTests.swift    | 53 +++----------------
 2 files changed, 10 insertions(+), 59 deletions(-)

diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerSendFile.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerSendFile.swift
index 8aca65c4..fde8607c 100644
--- a/Sources/XXMessengerClient/Messenger/Functions/MessengerSendFile.swift
+++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerSendFile.swift
@@ -37,7 +37,7 @@ public struct MessengerSendFile {
   public typealias Callback = (CallbackInfo) -> Void
 
   public enum Error: Swift.Error, Equatable {
-    case notConnected
+    case fileTransferNotStarted
   }
 
   public var run: (Params, @escaping Callback) throws -> Data
@@ -53,19 +53,9 @@ public struct MessengerSendFile {
 extension MessengerSendFile {
   public static func live(_ env: MessengerEnvironment) -> MessengerSendFile {
     MessengerSendFile { params, callback in
-      guard let e2e = env.e2e() else {
-        throw Error.notConnected
+      guard let fileTransfer = env.fileTransfer() else {
+        throw Error.fileTransferNotStarted
       }
-      let fileTransfer = try env.initFileTransfer(
-        params: InitFileTransfer.Params(
-          e2eId: e2e.getId(),
-          e2eFileTransferParamsJSON: env.getE2EFileTransferParams(),
-          fileTransferParamsJSON: env.getFileTransferParams()
-        ),
-        callback: ReceiveFileCallback { _ in
-          fatalError("Bindings issue: ReceiveFileCallback called when sending file.")
-        }
-      )
       func close(id: Data) {
         do {
           try fileTransfer.closeSend(transferId: id)
diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerSendFileTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerSendFileTests.swift
index 9adc15b1..5ea8410d 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerSendFileTests.swift
+++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerSendFileTests.swift
@@ -5,28 +5,17 @@ import XXClient
 
 final class MessengerSendFileTests: XCTestCase {
   func testSendFile() throws {
-    let e2eId = 123
     let e2eFileTransferParams = "e2eFileTransferParams".data(using: .utf8)!
     let fileTransferParams = "fileTransferParams".data(using: .utf8)!
     let newTransferId = "transferId".data(using: .utf8)!
 
-    var didInitFileTransfer: [InitFileTransfer.Params] = []
     var didSendFile: [FileTransferSend.Params] = []
     var didCloseSend: [Data] = []
     var didReceiveCallback: [MessengerSendFile.CallbackInfo] = []
-
     var fileTransferProgressCallback: FileTransferProgressCallback!
 
     var env: MessengerEnvironment = .unimplemented
-    env.e2e.get = {
-      var e2e: E2E = .unimplemented
-      e2e.getId.run = { e2eId }
-      return e2e
-    }
-    env.getE2EFileTransferParams.run = { e2eFileTransferParams }
-    env.getFileTransferParams.run = { fileTransferParams }
-    env.initFileTransfer.run = { params, callback in
-      didInitFileTransfer.append(params)
+    env.fileTransfer.get = {
       var fileTransfer: FileTransfer = .unimplemented
       fileTransfer.send.run = { params, callback in
         didSendFile.append(params)
@@ -47,13 +36,6 @@ final class MessengerSendFileTests: XCTestCase {
     }
 
     XCTAssertNoDifference(transferId, newTransferId)
-    XCTAssertNoDifference(didInitFileTransfer, [
-      .init(
-        e2eId: e2eId,
-        e2eFileTransferParamsJSON: e2eFileTransferParams,
-        fileTransferParamsJSON: fileTransferParams
-      )
-    ])
     XCTAssertNoDifference(didSendFile, [
       .init(
         payload: params.file,
@@ -99,15 +81,15 @@ final class MessengerSendFileTests: XCTestCase {
     XCTAssertNoDifference(didCloseSend, [transferId])
   }
 
-  func testSendFileWhenNotConnected() {
+  func testSendFileWhenNotStarted() {
     var env: MessengerEnvironment = .unimplemented
-    env.e2e.get = { nil }
+    env.fileTransfer.get = { nil }
     let sendFile: MessengerSendFile = .live(env)
 
     XCTAssertThrowsError(try sendFile(.stub) { _ in }) { error in
       XCTAssertNoDifference(
         error as? MessengerSendFile.Error,
-        MessengerSendFile.Error.notConnected
+        MessengerSendFile.Error.fileTransferNotStarted
       )
     }
   }
@@ -118,14 +100,7 @@ final class MessengerSendFileTests: XCTestCase {
     var fileTransferProgressCallback: FileTransferProgressCallback!
 
     var env: MessengerEnvironment = .unimplemented
-    env.e2e.get = {
-      var e2e: E2E = .unimplemented
-      e2e.getId.run = { 123 }
-      return e2e
-    }
-    env.getE2EFileTransferParams.run = { Data() }
-    env.getFileTransferParams.run = { Data() }
-    env.initFileTransfer.run = { params, callback in
+    env.fileTransfer.get = {
       var fileTransfer: FileTransfer = .unimplemented
       fileTransfer.send.run = { _, callback in
         fileTransferProgressCallback = callback
@@ -157,14 +132,7 @@ final class MessengerSendFileTests: XCTestCase {
     var fileTransferProgressCallback: FileTransferProgressCallback!
 
     var env: MessengerEnvironment = .unimplemented
-    env.e2e.get = {
-      var e2e: E2E = .unimplemented
-      e2e.getId.run = { 123 }
-      return e2e
-    }
-    env.getE2EFileTransferParams.run = { Data() }
-    env.getFileTransferParams.run = { Data() }
-    env.initFileTransfer.run = { params, callback in
+    env.fileTransfer.get = {
       var fileTransfer: FileTransfer = .unimplemented
       fileTransfer.send.run = { _, callback in
         fileTransferProgressCallback = callback
@@ -205,14 +173,7 @@ final class MessengerSendFileTests: XCTestCase {
     var fileTransferProgressCallback: FileTransferProgressCallback!
 
     var env: MessengerEnvironment = .unimplemented
-    env.e2e.get = {
-      var e2e: E2E = .unimplemented
-      e2e.getId.run = { 123 }
-      return e2e
-    }
-    env.getE2EFileTransferParams.run = { Data() }
-    env.getFileTransferParams.run = { Data() }
-    env.initFileTransfer.run = { params, callback in
+    env.fileTransfer.get = {
       var fileTransfer: FileTransfer = .unimplemented
       fileTransfer.send.run = { _, callback in
         fileTransferProgressCallback = callback
-- 
GitLab