CommandLineToolkit
39 строк · 1.1 Кб
1import Foundation
2import SynchronousWaiter
3import TestHelpers
4import XCTest
5
6class WaiterTests: XCTestCase {
7let waiterUnderTest: Waiter = SynchronousWaiter()
8
9func test___waiting_for_unwrap___provides_result_if_provider_returns_result() {
10assertDoesNotThrow {
11let result: String = try waiterUnderTest.waitForUnwrap(
12timeout: 1,
13valueProvider: { "hello" },
14description: ""
15)
16XCTAssertEqual(result, "hello")
17}
18}
19
20func test___waiting_for_unwrap___throws_on_timeout() {
21assertThrows {
22let _: String = try waiterUnderTest.waitForUnwrap(
23timeout: 0,
24valueProvider: { nil },
25description: ""
26)
27}
28}
29
30func test___waiting_for_unwrap___throws_if_provider_throws() {
31assertThrows {
32let _: String = try waiterUnderTest.waitForUnwrap(
33timeout: 0,
34valueProvider: { throw ErrorForTestingPurposes(text: "sample error") },
35description: ""
36)
37}
38}
39}
40