Skip to content

Commit a07bf21

Browse files
authored
Use XCTestExpectation instead of counter (#18)
1 parent d2fcc57 commit a07bf21

File tree

3 files changed

+15
-20
lines changed

3 files changed

+15
-20
lines changed

Tests/AtomicTransitionTests/AsymmetricTests.swift

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,34 @@ final class AsymmetricTests: XCTestCase {
77
let contextUsed = UnimplementedUIKitContext()
88

99
func testInsertion() {
10-
var handlerCalls = 0
10+
let expectation = expectation(description: "Handler called")
1111
let sut = AtomicTransition.asymmetric(
1212
insertion: .spy { [self] animator, view, operation, context in
1313
XCTAssertIdentical(animator, animatorUsed)
1414
XCTAssertIdentical(view, viewUsed)
1515
XCTAssertEqual(operation, .insertion)
1616
XCTAssertIdentical(context, contextUsed)
17-
handlerCalls += 1
17+
expectation.fulfill()
1818
},
1919
removal: .spy { XCTFail() }
2020
)
21-
XCTAssertEqual(handlerCalls, 0)
2221
sut.prepare(animatorUsed, or: viewUsed, for: .insertion, in: contextUsed)
23-
XCTAssertEqual(handlerCalls, 1)
22+
wait(for: [expectation], timeout: 0)
2423
}
2524

2625
func testRemoval() {
27-
var handlerCalls = 0
26+
let expectation = expectation(description: "Handler called")
2827
let sut = AtomicTransition.asymmetric(
2928
insertion: .spy { XCTFail() },
3029
removal: .spy { [self] animator, view, operation, context in
3130
XCTAssertIdentical(animator, animatorUsed)
3231
XCTAssertIdentical(view, viewUsed)
3332
XCTAssertEqual(operation, .removal)
3433
XCTAssertIdentical(context, contextUsed)
35-
handlerCalls += 1
34+
expectation.fulfill()
3635
}
3736
)
38-
XCTAssertEqual(handlerCalls, 0)
3937
sut.prepare(animatorUsed, or: viewUsed, for: .removal, in: contextUsed)
40-
XCTAssertEqual(handlerCalls, 1)
38+
wait(for: [expectation], timeout: 0)
4139
}
4240
}

Tests/AtomicTransitionTests/AtomicTransitionTests.swift

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,16 @@ final class AtomicTransitionTests: XCTestCase {
88
let operationUsed = AtomicTransition.Operation.random()
99
let contextUsed = UnimplementedUIKitContext()
1010

11-
var handlerCalls = 0
11+
let expectation = expectation(description: "Handler called")
1212
let sut = AtomicTransition.spy { animator, view, operation, context in
1313
XCTAssertIdentical(animator, animatorUsed)
1414
XCTAssertIdentical(view, viewUsed)
1515
XCTAssertEqual(operation, operationUsed)
1616
XCTAssertIdentical(context, contextUsed)
17-
handlerCalls += 1
17+
expectation.fulfill()
1818
}
1919

20-
XCTAssertEqual(handlerCalls, 0)
2120
sut.prepare(animatorUsed, or: viewUsed, for: operationUsed, in: contextUsed)
22-
XCTAssertEqual(handlerCalls, 1)
21+
wait(for: [expectation], timeout: 0)
2322
}
2423
}

Tests/AtomicTransitionTests/CustomTests.swift

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,16 @@ final class CustomTests: XCTestCase {
1010
let operationUsed = AtomicTransition.Operation.random()
1111
let contextUsed = UnimplementedUIKitContext()
1212

13-
var handlerCalls = 0
13+
let expectation = expectation(description: "Handler called")
1414
let sut = AtomicTransition.custom(withAnimator: { animator, uiView, operation, context in
1515
XCTAssertIdentical(animator, animatorUsed)
1616
XCTAssertIdentical(uiView, uiViewUsed)
1717
XCTAssertEqual(operation, operationUsed)
1818
XCTAssertIdentical(context, contextUsed)
19-
handlerCalls += 1
19+
expectation.fulfill()
2020
})
21-
XCTAssertEqual(handlerCalls, 0)
2221
sut.prepare(animatorUsed, or: viewUsed, for: operationUsed, in: contextUsed)
23-
XCTAssertEqual(handlerCalls, 1)
22+
wait(for: [expectation], timeout: 0)
2423
}
2524

2625
func testWithTransientView() {
@@ -30,15 +29,14 @@ final class CustomTests: XCTestCase {
3029
let containerViewUsed = UIView()
3130
let contextUsed = MockedUIKitContext(containerView: containerViewUsed)
3231

33-
var handlerCalls = 0
32+
let expectation = expectation(description: "Handler called")
3433
let sut = AtomicTransition.custom(withTransientView: { view, operation, container in
3534
XCTAssertIdentical(view, viewUsed)
3635
XCTAssertEqual(operation, operationUsed)
3736
XCTAssertIdentical(container, containerViewUsed)
38-
handlerCalls += 1
37+
expectation.fulfill()
3938
})
40-
XCTAssertEqual(handlerCalls, 0)
4139
sut.prepare(animatorUsed, or: viewUsed, for: operationUsed, in: contextUsed)
42-
XCTAssertEqual(handlerCalls, 1)
40+
wait(for: [expectation], timeout: 0)
4341
}
4442
}

0 commit comments

Comments
 (0)