Newer
Older
import CustomDump
import XCTest
import XXClient
@testable import XXMessengerClient
XCTAssertThrowsError(try waitForNodes()) { error in
XCTAssertEqual(
error as? MessengerWaitForNodes.Error,
MessengerWaitForNodes.Error.notLoaded
)
}
}
func testWaitWhenHasTargetRatio() throws {
var didProgress: [NodeRegistrationReport] = []
var cMix: CMix = .unimplemented
cMix.getNodeRegistrationStatus.run = {
NodeRegistrationReport(registered: 8, total: 10)
}
return cMix
}
try waitForNodes(
targetRatio: 0.7,
retries: 3,
onProgress: { didProgress.append($0) }
)
XCTAssertNoDifference(didProgress, [
NodeRegistrationReport(registered: 8, total: 10)
])
}
func testWaitForTargetRatio() throws {
var didSleep: [TimeInterval] = []
var didProgress: [NodeRegistrationReport] = []
var reports: [NodeRegistrationReport] = [
.init(registered: 0, total: 10),
.init(registered: 3, total: 10),
.init(registered: 8, total: 10),
]
var cMix: CMix = .unimplemented
cMix.getNodeRegistrationStatus.run = { reports.removeFirst() }
return cMix
}
env.sleep = { didSleep.append($0) }
try waitForNodes(
targetRatio: 0.7,
retries: 3,
onProgress: { didProgress.append($0) }
)
XCTAssertNoDifference(didSleep, [123, 123])
XCTAssertNoDifference(didProgress, [
NodeRegistrationReport(registered: 0, total: 10),
NodeRegistrationReport(registered: 3, total: 10),
NodeRegistrationReport(registered: 8, total: 10),
])
var didSleep: [TimeInterval] = []
var didProgress: [NodeRegistrationReport] = []
var reports: [NodeRegistrationReport] = [
.init(registered: 0, total: 10),
.init(registered: 3, total: 10),
.init(registered: 5, total: 10),
.init(registered: 6, total: 10),
]
var cMix: CMix = .unimplemented
cMix.getNodeRegistrationStatus.run = { reports.removeFirst() }
return cMix
}
env.sleep = { didSleep.append($0) }
XCTAssertThrowsError(try waitForNodes(
targetRatio: 0.7,
retries: 3,
onProgress: { didProgress.append($0) }
)) { error in
XCTAssertEqual(
error as? MessengerWaitForNodes.Error,
MessengerWaitForNodes.Error.timeout
)
}
XCTAssertNoDifference(didSleep, [123, 123, 123])
XCTAssertNoDifference(didProgress, [
NodeRegistrationReport(registered: 0, total: 10),
NodeRegistrationReport(registered: 3, total: 10),
NodeRegistrationReport(registered: 5, total: 10),
NodeRegistrationReport(registered: 6, total: 10),
])