@@ -11,26 +11,120 @@ import XCTest
11
11
12
12
class UICircularProgressRingTests : XCTestCase {
13
13
14
+ var progressRing : UICircularProgressRingView !
15
+
14
16
override func setUp( ) {
15
17
super. setUp ( )
16
- // Put setup code here. This method is called before the invocation of each test method in the class.
18
+
19
+ progressRing = UICircularProgressRingView ( frame: CGRect ( x: 0 , y: 0 , width: 100 , height: 200 ) )
17
20
}
18
21
19
22
override func tearDown( ) {
20
- // Put teardown code here. This method is called after the invocation of each test method in the class.
21
23
super. tearDown ( )
24
+
25
+ progressRing = nil
22
26
}
23
27
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.
27
- }
28
-
29
- func testPerformanceExample( ) {
30
- // This is an example of a performance test case.
31
- self . measure {
32
- // Put the code you want to measure the time of here.
28
+ func testApiAndAnimations( ) {
29
+
30
+ progressRing. setProgress ( value: 20 , animationDuration: 2 ) {
31
+ XCTAssertEqual ( self . progressRing. value, 20 )
33
32
}
33
+
34
+ progressRing. setProgress ( value: 23.1 , animationDuration: 0 )
35
+ XCTAssertEqual ( progressRing. value, 23.1 )
36
+
37
+ progressRing. setProgress ( value: 17.9 , animationDuration: 0 , completion: nil )
38
+ XCTAssertEqual ( progressRing. value, 17.9 )
39
+
40
+ progressRing. setProgress ( value: 100 , animationDuration: 2 ) {
41
+ XCTAssertEqual ( self . progressRing. value, 100 ) // Value should be set
42
+ XCTAssertEqual ( self . progressRing. isAnimating, false ) // No longer animating, this should be false
43
+ self . progressRing. setProgress ( value: 25.32 , animationDuration: 3 , completion: {
44
+ XCTAssertEqual ( self . progressRing. value, 25.32 ) // Value set
45
+ XCTAssertEqual ( self . progressRing. isAnimating, false ) // No longer animating, this should be false
46
+ } )
47
+ }
48
+
49
+ // Since animation takes 2 seconds and happens concurrently, isAnimating should be true here
50
+ XCTAssertEqual ( progressRing. isAnimating, true )
34
51
}
35
52
53
+ func testDefaultsAndSetters( ) {
54
+ // Check the defaults for the view, change them, then make sure they changed
55
+ XCTAssertNil ( progressRing. delegate)
56
+
57
+ XCTAssertEqual ( progressRing. value, 0 )
58
+ progressRing. value = 50
59
+ XCTAssertEqual ( progressRing. value, 50 )
60
+
61
+ XCTAssertEqual ( progressRing. maxValue, 100 )
62
+ progressRing. maxValue = 200
63
+ XCTAssertEqual ( progressRing. maxValue, 200 )
64
+
65
+ XCTAssertEqual ( progressRing. viewStyle, 1 )
66
+ progressRing. viewStyle = 2
67
+ XCTAssertEqual ( progressRing. viewStyle, 2 )
68
+
69
+ XCTAssertEqual ( progressRing. patternForDashes, [ 7.0 , 7.0 ] )
70
+ progressRing. patternForDashes = [ 6.0 , 5.0 ]
71
+ XCTAssertEqual ( progressRing. patternForDashes, [ 6.0 , 5.0 ] )
72
+
73
+ XCTAssertEqual ( progressRing. startAngle, 0 )
74
+ progressRing. startAngle = 90
75
+ XCTAssertEqual ( progressRing. startAngle, 90 )
76
+
77
+ XCTAssertEqual ( progressRing. endAngle, 360 )
78
+ progressRing. endAngle = 180
79
+ XCTAssertEqual ( progressRing. endAngle, 180 )
80
+
81
+
82
+ XCTAssertEqual ( progressRing. outerRingWidth, 10 )
83
+ progressRing. outerRingWidth = 5
84
+ XCTAssertEqual ( progressRing. outerRingWidth, 5 )
85
+
86
+ XCTAssertEqual ( progressRing. outerRingColor, UIColor . gray)
87
+ progressRing. outerRingColor = UIColor . red
88
+ XCTAssertEqual ( progressRing. outerRingColor, UIColor . red)
89
+
90
+ XCTAssertEqual ( progressRing. outerRingCapStyle, 1 )
91
+ XCTAssertEqual ( progressRing. outStyle, . butt)
92
+ progressRing. outerRingCapStyle = 2
93
+ XCTAssertEqual ( progressRing. outerRingCapStyle, 2 )
94
+ XCTAssertEqual ( progressRing. outStyle, . round)
95
+
96
+ XCTAssertEqual ( progressRing. innerRingWidth, 5.0 )
97
+ progressRing. innerRingWidth = 10.0
98
+ XCTAssertEqual ( progressRing. innerRingWidth, 10.0 )
99
+
100
+ XCTAssertEqual ( progressRing. innerRingColor, UIColor . blue)
101
+ progressRing. innerRingColor = UIColor . green
102
+ XCTAssertEqual ( progressRing. innerRingColor, UIColor . green)
103
+
104
+ XCTAssertEqual ( progressRing. innerRingSpacing, 1 )
105
+ progressRing. innerRingSpacing = 2
106
+ XCTAssertEqual ( progressRing. innerRingSpacing, 2 )
107
+
108
+ XCTAssertEqual ( progressRing. innerRingCapStyle, 2 )
109
+ XCTAssertEqual ( progressRing. inStyle, . round)
110
+ progressRing. innerRingCapStyle = 3
111
+ XCTAssertEqual ( progressRing. innerRingCapStyle, 3 )
112
+ XCTAssertEqual ( progressRing. inStyle, . square)
113
+
114
+ XCTAssertEqual ( progressRing. shouldShowValueText, true )
115
+ progressRing. shouldShowValueText = false
116
+ XCTAssertEqual ( progressRing. shouldShowValueText, false )
117
+
118
+ XCTAssertEqual ( progressRing. fontColor, UIColor . black)
119
+ progressRing. fontColor = UIColor . darkText
120
+ XCTAssertEqual ( progressRing. fontColor, UIColor . darkText)
121
+
122
+ XCTAssertEqual ( progressRing. fontSize, 18 )
123
+ progressRing. fontSize = 20
124
+ XCTAssertEqual ( progressRing. fontSize, 20 )
125
+
126
+ XCTAssertEqual ( progressRing. animationStyle, kCAMediaTimingFunctionEaseIn)
127
+ progressRing. animationStyle = kCAMediaTimingFunctionLinear
128
+ XCTAssertEqual ( progressRing. animationStyle, kCAMediaTimingFunctionLinear)
129
+ }
36
130
}
0 commit comments