Select Git revision
MessageSendReport.swift
MessengerStartTests.swift 1.71 KiB
import CustomDump
import XCTest
import XXClient
@testable import XXMessengerClient
final class MessengerStartTests: XCTestCase {
func testStart() throws {
var didStartNetworkFollower: [Int] = []
var env: MessengerEnvironment = .unimplemented
env.cMix.get = {
var cMix: CMix = .unimplemented
cMix.networkFollowerStatus.run = { .stopped }
cMix.startNetworkFollower.run = { timeoutMS in
didStartNetworkFollower.append(timeoutMS)
}
return cMix
}
let start: MessengerStart = .live(env)
try start(timeoutMS: 123)
XCTAssertNoDifference(didStartNetworkFollower, [123])
}
func testStartWhenNotLoaded() {
var env: MessengerEnvironment = .unimplemented
env.cMix.get = { nil }
let start: MessengerStart = .live(env)
XCTAssertThrowsError(try start()) { error in
XCTAssertEqual(
error as? MessengerStart.Error,
MessengerStart.Error.notLoaded
)
}
}
func testStartWhenRunning() throws {
var env: MessengerEnvironment = .unimplemented
env.cMix.get = {
var cMix: CMix = .unimplemented
cMix.networkFollowerStatus.run = { .running }
return cMix
}
let start: MessengerStart = .live(env)
try start()
}
func testStartNetworkFollowerFailure() {
struct Error: Swift.Error, Equatable {}
let error = Error()
var env: MessengerEnvironment = .unimplemented
env.cMix.get = {
var cMix: CMix = .unimplemented
cMix.networkFollowerStatus.run = { .stopped }
cMix.startNetworkFollower.run = { _ in throw error }
return cMix
}
let start: MessengerStart = .live(env)
XCTAssertThrowsError(try start()) { err in
XCTAssertEqual(err as? Error, error)
}
}
}