From 21c6725ccd2d9b1c061ad1dc562003c423b97ae5 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Tue, 29 Nov 2022 10:52:20 +0100 Subject: [PATCH] Add MessengerIsGroupChatRunning --- .../MessengerIsGroupChatRunning.swift | 21 +++++++++++++++++++ .../Messenger/Messenger.swift | 3 +++ .../MessengerIsGroupChatRunningTests.swift | 20 ++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 Sources/XXMessengerClient/Messenger/Functions/MessengerIsGroupChatRunning.swift create mode 100644 Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsGroupChatRunningTests.swift diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerIsGroupChatRunning.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerIsGroupChatRunning.swift new file mode 100644 index 00000000..ce177d5d --- /dev/null +++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerIsGroupChatRunning.swift @@ -0,0 +1,21 @@ +import XCTestDynamicOverlay + +public struct MessengerIsGroupChatRunning { + public var run: () -> Bool + + public func callAsFunction() -> Bool { + run() + } +} + +extension MessengerIsGroupChatRunning { + public static func live(_ env: MessengerEnvironment) -> MessengerIsGroupChatRunning { + MessengerIsGroupChatRunning { env.groupChat.get() != nil } + } +} + +extension MessengerIsGroupChatRunning { + public static let unimplemented = MessengerIsGroupChatRunning( + run: XCTestDynamicOverlay.unimplemented("\(Self.self)", placeholder: false) + ) +} diff --git a/Sources/XXMessengerClient/Messenger/Messenger.swift b/Sources/XXMessengerClient/Messenger/Messenger.swift index 44b213cb..aefef17d 100644 --- a/Sources/XXMessengerClient/Messenger/Messenger.swift +++ b/Sources/XXMessengerClient/Messenger/Messenger.swift @@ -51,6 +51,7 @@ public struct Messenger { public var getNotificationReports: MessengerGetNotificationReports public var registerGroupRequestHandler: MessengerRegisterGroupRequestHandler public var registerGroupChatProcessor: MessengerRegisterGroupChatProcessor + public var isGroupChatRunning: MessengerIsGroupChatRunning public var startGroupChat: MessengerStartGroupChat } @@ -107,6 +108,7 @@ extension Messenger { getNotificationReports: .live(env), registerGroupRequestHandler: .live(env), registerGroupChatProcessor: .live(env), + isGroupChatRunning: .live(env), startGroupChat: .live(env) ) } @@ -164,6 +166,7 @@ extension Messenger { getNotificationReports: .unimplemented, registerGroupRequestHandler: .unimplemented, registerGroupChatProcessor: .unimplemented, + isGroupChatRunning: .unimplemented, startGroupChat: .unimplemented ) } diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsGroupChatRunningTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsGroupChatRunningTests.swift new file mode 100644 index 00000000..364c1203 --- /dev/null +++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsGroupChatRunningTests.swift @@ -0,0 +1,20 @@ +import XCTest +@testable import XXMessengerClient + +final class MessengerIsGroupChatRunningTests: XCTestCase { + func testIsRunning() { + var env: MessengerEnvironment = .unimplemented + env.groupChat.get = { .unimplemented } + let isRunning: MessengerIsGroupChatRunning = .live(env) + + XCTAssertTrue(isRunning()) + } + + func testIsNotRunning() { + var env: MessengerEnvironment = .unimplemented + env.groupChat.get = { nil } + let isRunning: MessengerIsGroupChatRunning = .live(env) + + XCTAssertFalse(isRunning()) + } +} -- GitLab