-
Notifications
You must be signed in to change notification settings - Fork 59
/
Copy pathPlaybookTests.swift
82 lines (67 loc) · 2.51 KB
/
PlaybookTests.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import Playbook
import XCTest
final class PlaybookTests: XCTestCase {
func testScenarios() {
let playbook = Playbook()
let first = playbook.scenarios(of: "category")
let second = playbook.scenarios(of: "category")
XCTAssertEqual(ObjectIdentifier(first), ObjectIdentifier(second))
}
func testScenariosOrder() {
let playbook = Playbook()
let first = playbook.scenarios(of: "first")
let second = playbook.scenarios(of: "second")
let third = playbook.scenarios(of: "third")
XCTAssertEqual(
playbook.stores.map { $0.category },
[
first.category,
second.category,
third.category,
]
)
}
func testAddProvider() {
struct TestProvider: ScenarioProvider {
static func addScenarios(into playbook: Playbook) {
playbook
.scenarios(of: "category")
.add(Scenario("title", layout: .fill) { UIView() })
}
}
let playbook = Playbook()
playbook.add(TestProvider.self)
let scenario = playbook.scenarios(of: "category").scenarios.first
XCTAssertEqual(scenario?.title, "title")
}
func testAddScenarios() {
let playbook = Playbook()
let scenario0 = Scenario("0", layout: .fill) { UIView() }
let scenario1 = Scenario("1", layout: .fill) { UIView() }
playbook.addScenarios(of: "category") {
scenario0
scenario1
}
let store = playbook.scenarios(of: "category")
XCTAssertEqual(store.scenarios.count, 2)
XCTAssertEqual(store.scenarios[0].title, scenario0.title)
XCTAssertEqual(store.scenarios[1].title, scenario1.title)
}
func testRunTestTools() throws {
final class TestTestTool: TestTool {
var playbookIdentifier: ObjectIdentifier?
func run(with playbook: Playbook) throws {
playbookIdentifier = ObjectIdentifier(playbook)
}
}
let playbook = Playbook()
let playbookIdentifier = ObjectIdentifier(playbook)
let tool0 = TestTestTool()
let tool1 = TestTestTool()
let tool2 = TestTestTool()
try playbook.run(tool0, tool1, tool2)
XCTAssertEqual(tool0.playbookIdentifier, playbookIdentifier)
XCTAssertEqual(tool1.playbookIdentifier, playbookIdentifier)
XCTAssertEqual(tool2.playbookIdentifier, playbookIdentifier)
}
}