Signal-iOS/SignalServiceKit/TestUtils/FakeMessageSender.swift
2025-12-30 11:34:05 -08:00

36 lines
1.0 KiB
Swift

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