import CustomDump import XXClient import XCTest @testable import XXMessengerClient final class MessengerStartGroupChatTests: XCTestCase { func testStart() throws { var didCreateNewGroupChatWithE2eId: [Int] = [] var didSetGroupChat: [GroupChat?] = [] let e2eId = 123 var env: MessengerEnvironment = .unimplemented env.e2e.get = { var e2e: E2E = .unimplemented e2e.getId.run = { e2eId } return e2e } env.groupRequests.registered = { .unimplemented } env.groupChatProcessors.registered = { .unimplemented } env.newGroupChat.run = { e2eId, _, _ in didCreateNewGroupChatWithE2eId.append(e2eId) return .unimplemented } env.groupChat.set = { groupChat in didSetGroupChat.append(groupChat) } let start: MessengerStartGroupChat = .live(env) try start() XCTAssertEqual(didCreateNewGroupChatWithE2eId, [e2eId]) XCTAssertEqual(didSetGroupChat.map { $0 != nil }, [true]) } func testStartWithoutE2E() throws { var env: MessengerEnvironment = .unimplemented env.e2e.get = { nil } let start: MessengerStartGroupChat = .live(env) XCTAssertThrowsError(try start()) { error in XCTAssertEqual(error as? MessengerStartGroupChat.Error, .notConnected) } } }