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 {
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)
......
......@@ -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.
Finish editing this message first!
Please register or to comment