Skip to content

Commit 8d79579

Browse files
committed
Add some unit tests.
1 parent 3e30e45 commit 8d79579

File tree

1 file changed

+76
-8
lines changed

1 file changed

+76
-8
lines changed

CardAnimationTests/CardAnimationTests.swift

+76-8
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,84 @@ class CardAnimationTests: XCTestCase {
2121
super.tearDown()
2222
}
2323

24-
func testExample() {
25-
// This is an example of a functional test case.
26-
// Use XCTAssert and related functions to verify your tests produce the correct results.
24+
func testCallsToTheDelegate() {
25+
let cardComponent = AnimatedCardsView(frame: CGRectMake(0, 0, 800, 800))
26+
let dataSourceMock = DataSourceDelegateMock()
27+
28+
cardComponent.dataSourceDelegate = dataSourceMock
29+
30+
let visibleCount = dataSourceMock.numberOfVisibleCardsCallCount
31+
let cardCount = dataSourceMock.numberOfCardsCallCount
32+
XCTAssert(cardCount > 0, "numberOfCards delegate not called")
33+
XCTAssert(visibleCount > 0, "numberOfVisibleCards delegate not called")
2734
}
2835

29-
func testPerformanceExample() {
30-
// This is an example of a performance test case.
31-
self.measureBlock {
32-
// Put the code you want to measure the time of here.
33-
}
36+
func testComponentAsksForTheCorrectAmountOfData() {
37+
let numberOfCards = 10, numberOfVisibleCards = 5
38+
39+
let cardComponent = AnimatedCardsView(frame: CGRectMake(0, 0, 800, 800))
40+
let dataSourceMock = DataSourceDelegateMock()
41+
dataSourceMock.numberOfCardsValue = numberOfCards
42+
dataSourceMock.numberOfVisibleCardsValue = numberOfVisibleCards
43+
44+
cardComponent.dataSourceDelegate = dataSourceMock
45+
46+
let visibleCount = dataSourceMock.numberOfVisibleCardsCallCount
47+
let cardCount = dataSourceMock.numberOfCardsCallCount
48+
XCTAssert(cardCount == 1, "wrong number of calls to numberOfCards delegate")
49+
XCTAssert(visibleCount == 1, "wrong number of calls to numberOfVisibleCards delegate")
50+
XCTAssert(numberOfVisibleCards == dataSourceMock.cardNumberCallCount, "wrong number of calls to cardNumber delegate")
3451
}
3552

53+
func testReloadDataAsksAgainForAllTheData() {
54+
let cardComponent = AnimatedCardsView(frame: CGRectMake(0, 0, 800, 800))
55+
let dataSourceMock = DataSourceDelegateMock()
56+
57+
cardComponent.dataSourceDelegate = dataSourceMock
58+
59+
let visibleCount = dataSourceMock.numberOfVisibleCardsCallCount
60+
let cardCount = dataSourceMock.numberOfCardsCallCount
61+
62+
cardComponent.reloadData()
63+
64+
XCTAssert(cardCount == dataSourceMock.numberOfCardsCallCount/2, "not the same number of calls to the numberOfCards delegate")
65+
XCTAssert(visibleCount == dataSourceMock.numberOfVisibleCardsCallCount/2, "not the same number of calls to the numberOfVisibleCards delegate")
66+
}
67+
68+
func testChangeOfSizeReloadsData() {
69+
let cardComponent = AnimatedCardsView(frame: CGRectMake(0, 0, 800, 800))
70+
let dataSourceMock = DataSourceDelegateMock()
71+
72+
cardComponent.dataSourceDelegate = dataSourceMock
73+
74+
let visibleCount = dataSourceMock.numberOfVisibleCardsCallCount
75+
let cardCount = dataSourceMock.numberOfCardsCallCount
76+
77+
cardComponent.cardSize = (100,100)
78+
79+
XCTAssert(cardCount == dataSourceMock.numberOfCardsCallCount/2, "not the same number of calls to the numberOfCards delegate")
80+
XCTAssert(visibleCount == dataSourceMock.numberOfVisibleCardsCallCount/2, "not the same number of calls to the numberOfVisibleCards delegate")
81+
}
82+
83+
}
84+
85+
class DataSourceDelegateMock : AnimatedCardsViewDataSource {
86+
var numberOfVisibleCardsValue = 10, numberOfVisibleCardsCallCount = 0
87+
func numberOfVisibleCards() -> Int {
88+
numberOfVisibleCardsCallCount++
89+
return numberOfVisibleCardsValue
90+
}
91+
92+
var numberOfCardsValue = 5, numberOfCardsCallCount = 0
93+
func numberOfCards() -> Int {
94+
numberOfCardsCallCount++
95+
return numberOfCardsValue
96+
}
97+
98+
var cardNumberCallCount = 0, cacheMiss = 0, cacheHit = 0
99+
func cardNumber(number:Int, view:BaseCardView?) -> BaseCardView {
100+
cardNumberCallCount++
101+
view != nil ? cacheHit++ : cacheMiss++
102+
return BaseCardView(frame: CGRectMake(0, 0, 10, 10))
103+
}
36104
}

0 commit comments

Comments
 (0)