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
Branches
Tags
2 merge requests!123Messenger receive file,!102Release 1.0.0
This commit is part of merge request !123. Comments created here will be created in the context of that merge request.
......@@ -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
}
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.")
guard let fileTransfer = env.fileTransfer() else {
throw Error.fileTransferNotStarted
}
)
func close(id: Data) {
do {
try fileTransfer.closeSend(transferId: id)
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment