From c571cb082fe0b86cef3db9e1f8e730a136cb788b Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Wed, 19 Oct 2022 11:15:26 +0200 Subject: [PATCH] Add MessengerIsFileTransferRunning function --- .../MessengerIsFileTransferRunning.swift | 21 +++++++++++++++++++ .../Messenger/Messenger.swift | 3 +++ .../MessengerIsFileTransferRunningTests.swift | 20 ++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 Sources/XXMessengerClient/Messenger/Functions/MessengerIsFileTransferRunning.swift create mode 100644 Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsFileTransferRunningTests.swift diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerIsFileTransferRunning.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerIsFileTransferRunning.swift new file mode 100644 index 00000000..f1d71190 --- /dev/null +++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerIsFileTransferRunning.swift @@ -0,0 +1,21 @@ +import XCTestDynamicOverlay + +public struct MessengerIsFileTransferRunning { + public var run: () -> Bool + + public func callAsFunction() -> Bool { + run() + } +} + +extension MessengerIsFileTransferRunning { + public static func live(_ env: MessengerEnvironment) -> MessengerIsFileTransferRunning { + MessengerIsFileTransferRunning { env.fileTransfer.get() != nil } + } +} + +extension MessengerIsFileTransferRunning { + public static let unimplemented = MessengerIsFileTransferRunning( + run: XCTUnimplemented("\(Self.self)") + ) +} diff --git a/Sources/XXMessengerClient/Messenger/Messenger.swift b/Sources/XXMessengerClient/Messenger/Messenger.swift index d565ebb2..f8d982e4 100644 --- a/Sources/XXMessengerClient/Messenger/Messenger.swift +++ b/Sources/XXMessengerClient/Messenger/Messenger.swift @@ -41,6 +41,7 @@ public struct Messenger { public var setLogLevel: MessengerSetLogLevel public var startLogging: MessengerStartLogging public var registerReceiveFileCallback: MessengerRegisterReceiveFileCallback + public var isFileTransferRunning: MessengerIsFileTransferRunning public var startFileTransfer: MessengerStartFileTransfer public var sendFile: MessengerSendFile public var receiveFile: MessengerReceiveFile @@ -89,6 +90,7 @@ extension Messenger { setLogLevel: .live(env), startLogging: .live(env), registerReceiveFileCallback: .live(env), + isFileTransferRunning: .live(env), startFileTransfer: .live(env), sendFile: .live(env), receiveFile: .live(env) @@ -138,6 +140,7 @@ extension Messenger { setLogLevel: .unimplemented, startLogging: .unimplemented, registerReceiveFileCallback: .unimplemented, + isFileTransferRunning: .unimplemented, startFileTransfer: .unimplemented, sendFile: .unimplemented, receiveFile: .unimplemented diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsFileTransferRunningTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsFileTransferRunningTests.swift new file mode 100644 index 00000000..3ac1fd30 --- /dev/null +++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsFileTransferRunningTests.swift @@ -0,0 +1,20 @@ +import XCTest +@testable import XXMessengerClient + +final class MessengerIsFileTransferRunningTests: XCTestCase { + func testIsRunning() { + var env: MessengerEnvironment = .unimplemented + env.fileTransfer.get = { .unimplemented } + let isRunning: MessengerIsFileTransferRunning = .live(env) + + XCTAssertTrue(isRunning()) + } + + func testIsNotRunning() { + var env: MessengerEnvironment = .unimplemented + env.fileTransfer.get = { nil } + let isRunning: MessengerIsFileTransferRunning = .live(env) + + XCTAssertFalse(isRunning()) + } +} -- GitLab