Signal-iOS/SignalServiceKit/TestUtils/FakeMessageSender.swift
2025-08-27 12:13:05 -05:00

29 lines
863 B
Swift

//
// Copyright 2022 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
#if TESTABLE_BUILD
class FakeMessageSender: MessageSender {
public var stubbedFailingErrors = [Error?]()
public var sentMessages = [TSOutgoingMessage]()
public var sendMessageWasCalledBlock: ((TSOutgoingMessage) -> Void)?
init(accountChecker: AccountChecker) {
super.init(accountChecker: accountChecker, groupSendEndorsementStore: GroupSendEndorsementStoreImpl())
}
override func sendMessage(_ preparedMessage: PreparedOutgoingMessage) async throws {
try await preparedMessage.send { message in
sentMessages.append(message)
sendMessageWasCalledBlock?(message)
}
if let stubbedFailingError = stubbedFailingErrors.removeFirst() { throw stubbedFailingError }
}
}
#endif