Skip to content
Snippets Groups Projects
Commit cb3fbbb2 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Update MessengerSendFile function

Use stored FileTransfer manager
parent e378d3ad
No related branches found
No related tags found
2 merge requests!123Messenger receive file,!102Release 1.0.0
...@@ -37,7 +37,7 @@ public struct MessengerSendFile { ...@@ -37,7 +37,7 @@ public struct MessengerSendFile {
public typealias Callback = (CallbackInfo) -> Void public typealias Callback = (CallbackInfo) -> Void
public enum Error: Swift.Error, Equatable { public enum Error: Swift.Error, Equatable {
case notConnected case fileTransferNotStarted
} }
public var run: (Params, @escaping Callback) throws -> Data public var run: (Params, @escaping Callback) throws -> Data
...@@ -53,19 +53,9 @@ public struct MessengerSendFile { ...@@ -53,19 +53,9 @@ public struct MessengerSendFile {
extension MessengerSendFile { extension MessengerSendFile {
public static func live(_ env: MessengerEnvironment) -> MessengerSendFile { public static func live(_ env: MessengerEnvironment) -> MessengerSendFile {
MessengerSendFile { params, callback in MessengerSendFile { params, callback in
guard let e2e = env.e2e() else { guard let fileTransfer = env.fileTransfer() else {
throw Error.notConnected 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) { func close(id: Data) {
do { do {
try fileTransfer.closeSend(transferId: id) try fileTransfer.closeSend(transferId: id)
......
...@@ -5,28 +5,17 @@ import XXClient ...@@ -5,28 +5,17 @@ import XXClient
final class MessengerSendFileTests: XCTestCase { final class MessengerSendFileTests: XCTestCase {
func testSendFile() throws { func testSendFile() throws {
let e2eId = 123
let e2eFileTransferParams = "e2eFileTransferParams".data(using: .utf8)! let e2eFileTransferParams = "e2eFileTransferParams".data(using: .utf8)!
let fileTransferParams = "fileTransferParams".data(using: .utf8)! let fileTransferParams = "fileTransferParams".data(using: .utf8)!
let newTransferId = "transferId".data(using: .utf8)! let newTransferId = "transferId".data(using: .utf8)!
var didInitFileTransfer: [InitFileTransfer.Params] = []
var didSendFile: [FileTransferSend.Params] = [] var didSendFile: [FileTransferSend.Params] = []
var didCloseSend: [Data] = [] var didCloseSend: [Data] = []
var didReceiveCallback: [MessengerSendFile.CallbackInfo] = [] var didReceiveCallback: [MessengerSendFile.CallbackInfo] = []
var fileTransferProgressCallback: FileTransferProgressCallback! var fileTransferProgressCallback: FileTransferProgressCallback!
var env: MessengerEnvironment = .unimplemented var env: MessengerEnvironment = .unimplemented
env.e2e.get = { env.fileTransfer.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)
var fileTransfer: FileTransfer = .unimplemented var fileTransfer: FileTransfer = .unimplemented
fileTransfer.send.run = { params, callback in fileTransfer.send.run = { params, callback in
didSendFile.append(params) didSendFile.append(params)
...@@ -47,13 +36,6 @@ final class MessengerSendFileTests: XCTestCase { ...@@ -47,13 +36,6 @@ final class MessengerSendFileTests: XCTestCase {
} }
XCTAssertNoDifference(transferId, newTransferId) XCTAssertNoDifference(transferId, newTransferId)
XCTAssertNoDifference(didInitFileTransfer, [
.init(
e2eId: e2eId,
e2eFileTransferParamsJSON: e2eFileTransferParams,
fileTransferParamsJSON: fileTransferParams
)
])
XCTAssertNoDifference(didSendFile, [ XCTAssertNoDifference(didSendFile, [
.init( .init(
payload: params.file, payload: params.file,
...@@ -99,15 +81,15 @@ final class MessengerSendFileTests: XCTestCase { ...@@ -99,15 +81,15 @@ final class MessengerSendFileTests: XCTestCase {
XCTAssertNoDifference(didCloseSend, [transferId]) XCTAssertNoDifference(didCloseSend, [transferId])
} }
func testSendFileWhenNotConnected() { func testSendFileWhenNotStarted() {
var env: MessengerEnvironment = .unimplemented var env: MessengerEnvironment = .unimplemented
env.e2e.get = { nil } env.fileTransfer.get = { nil }
let sendFile: MessengerSendFile = .live(env) let sendFile: MessengerSendFile = .live(env)
XCTAssertThrowsError(try sendFile(.stub) { _ in }) { error in XCTAssertThrowsError(try sendFile(.stub) { _ in }) { error in
XCTAssertNoDifference( XCTAssertNoDifference(
error as? MessengerSendFile.Error, error as? MessengerSendFile.Error,
MessengerSendFile.Error.notConnected MessengerSendFile.Error.fileTransferNotStarted
) )
} }
} }
...@@ -118,14 +100,7 @@ final class MessengerSendFileTests: XCTestCase { ...@@ -118,14 +100,7 @@ final class MessengerSendFileTests: XCTestCase {
var fileTransferProgressCallback: FileTransferProgressCallback! var fileTransferProgressCallback: FileTransferProgressCallback!
var env: MessengerEnvironment = .unimplemented var env: MessengerEnvironment = .unimplemented
env.e2e.get = { env.fileTransfer.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
var fileTransfer: FileTransfer = .unimplemented var fileTransfer: FileTransfer = .unimplemented
fileTransfer.send.run = { _, callback in fileTransfer.send.run = { _, callback in
fileTransferProgressCallback = callback fileTransferProgressCallback = callback
...@@ -157,14 +132,7 @@ final class MessengerSendFileTests: XCTestCase { ...@@ -157,14 +132,7 @@ final class MessengerSendFileTests: XCTestCase {
var fileTransferProgressCallback: FileTransferProgressCallback! var fileTransferProgressCallback: FileTransferProgressCallback!
var env: MessengerEnvironment = .unimplemented var env: MessengerEnvironment = .unimplemented
env.e2e.get = { env.fileTransfer.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
var fileTransfer: FileTransfer = .unimplemented var fileTransfer: FileTransfer = .unimplemented
fileTransfer.send.run = { _, callback in fileTransfer.send.run = { _, callback in
fileTransferProgressCallback = callback fileTransferProgressCallback = callback
...@@ -205,14 +173,7 @@ final class MessengerSendFileTests: XCTestCase { ...@@ -205,14 +173,7 @@ final class MessengerSendFileTests: XCTestCase {
var fileTransferProgressCallback: FileTransferProgressCallback! var fileTransferProgressCallback: FileTransferProgressCallback!
var env: MessengerEnvironment = .unimplemented var env: MessengerEnvironment = .unimplemented
env.e2e.get = { env.fileTransfer.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
var fileTransfer: FileTransfer = .unimplemented var fileTransfer: FileTransfer = .unimplemented
fileTransfer.send.run = { _, callback in fileTransfer.send.run = { _, callback in
fileTransferProgressCallback = callback fileTransferProgressCallback = callback
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment