@@ -42,28 +42,27 @@ final class SwiftHoleTests: XCTestCase {
42
42
let decoder = JSONDecoder ( )
43
43
do {
44
44
let decoded = try decoder. decode ( Summary . self, from: data)
45
- XCTAssert ( decoded. domainsBeingBlocked == 276319 )
46
- XCTAssert ( decoded. dnsQueriesToday == 37852 )
47
- XCTAssert ( decoded. adsBlockedToday == 5356 )
48
- XCTAssert ( decoded. adsPercentageToday == 14.149847 )
49
- XCTAssert ( decoded. uniqueDomains == 6863 )
50
- XCTAssert ( decoded. queriesForwarded == 23015 )
51
- XCTAssert ( decoded. queriesCached == 6932 )
52
- XCTAssert ( decoded. clientsEverSeen == 33 )
53
- XCTAssert ( decoded. uniqueClients == 19 )
54
- XCTAssert ( decoded. dnsQueriesAllTypes == 37852 )
55
- XCTAssert ( decoded. replyNODATA == 3097 )
56
- XCTAssert ( decoded. replyNXDOMAIN == 4675 )
57
- XCTAssert ( decoded. replyCNAME == 10987 )
58
- XCTAssert ( decoded. replyIP == 17593 )
59
- XCTAssert ( decoded. privacyLevel == 0 )
60
- XCTAssert ( decoded. status == " enabled " )
61
- XCTAssert ( decoded. gravityLastUpdated. fileExists == true )
62
- XCTAssert ( decoded. gravityLastUpdated. absolute == 1589194189 )
63
- XCTAssert ( decoded. gravityLastUpdated. relative. days == 5 )
64
- XCTAssert ( decoded. gravityLastUpdated. relative. hours == 1 )
65
- XCTAssert ( decoded. gravityLastUpdated. relative. minutes == 36 )
66
-
45
+ XCTAssertEqual ( decoded. domainsBeingBlocked, 276319 , " it should have 276319 domainsBeingBlocked " )
46
+ XCTAssertEqual ( decoded. dnsQueriesToday, 37852 , " it should have 37852 dnsQueriesToday " )
47
+ XCTAssertEqual ( decoded. adsBlockedToday, 5356 , " it should have 5356 adsBlockedToday " )
48
+ XCTAssertEqual ( decoded. adsPercentageToday, 14.149847 , " it should have 14.149847 adsPercentageToday " )
49
+ XCTAssertEqual ( decoded. uniqueDomains, 6863 , " it should have 6863 uniqueDomains " )
50
+ XCTAssertEqual ( decoded. queriesForwarded, 23015 , " it should have 23015 queriesForwarded " )
51
+ XCTAssertEqual ( decoded. queriesCached, 6932 , " it should have 6932 queriesCached " )
52
+ XCTAssertEqual ( decoded. clientsEverSeen, 33 , " it should have 33 clientsEverSeen " )
53
+ XCTAssertEqual ( decoded. uniqueClients, 19 , " it should have 19 uniqueClients " )
54
+ XCTAssertEqual ( decoded. dnsQueriesAllTypes, 37852 , " it should have 37852 dnsQueriesAllTypes " )
55
+ XCTAssertEqual ( decoded. replyNODATA, 3097 , " it should have 3097 replyNODATA " )
56
+ XCTAssertEqual ( decoded. replyNXDOMAIN, 4675 , " it should have 4675 replyNXDOMAIN " )
57
+ XCTAssertEqual ( decoded. replyCNAME, 10987 , " it should have 10987 replyCNAME " )
58
+ XCTAssertEqual ( decoded. replyIP, 17593 , " it should have 17593 replyIP " )
59
+ XCTAssertEqual ( decoded. privacyLevel, 0 , " it should have 0 privacyLevel " )
60
+ XCTAssertEqual ( decoded. status, " enabled " , " it should have status enabled " )
61
+ XCTAssertEqual ( decoded. gravityLastUpdated. fileExists, true , " it should have fileExists true " )
62
+ XCTAssertEqual ( decoded. gravityLastUpdated. absolute, 1589194189 , " it should have 1589194189 gravityLastUpdated.absolute " )
63
+ XCTAssertEqual ( decoded. gravityLastUpdated. relative. days, 5 , " it should have 5 gravityLastUpdated.relative.days " )
64
+ XCTAssertEqual ( decoded. gravityLastUpdated. relative. hours, 1 , " it should have 1 gravityLastUpdated.relative.hours " )
65
+ XCTAssertEqual ( decoded. gravityLastUpdated. relative. minutes, 36 , " it should have 36 gravityLastUpdated.relative.minutes " )
67
66
} catch {
68
67
XCTFail ( " Can't decode test file bundle \( error) " )
69
68
}
@@ -108,28 +107,89 @@ final class SwiftHoleTests: XCTestCase {
108
107
let decoder = JSONDecoder ( )
109
108
do {
110
109
let decoded = try decoder. decode ( Summary . self, from: data)
111
- XCTAssert ( decoded. domainsBeingBlocked == 261271 )
112
- XCTAssert ( decoded. dnsQueriesToday == 27581 )
113
- XCTAssert ( decoded. adsBlockedToday == 4295 )
114
- XCTAssert ( decoded. adsPercentageToday == 15.572314 )
115
- XCTAssert ( decoded. uniqueDomains == 2760 )
116
- XCTAssert ( decoded. queriesForwarded == 19663 )
117
- XCTAssert ( decoded. queriesCached == 3623 )
118
- XCTAssert ( decoded. clientsEverSeen == 14 )
119
- XCTAssert ( decoded. uniqueClients == 13 )
120
- XCTAssert ( decoded. dnsQueriesAllTypes == 27581 )
121
- XCTAssert ( decoded. replyNODATA == 2732 )
122
- XCTAssert ( decoded. replyNXDOMAIN == 1071 )
123
- XCTAssert ( decoded. replyCNAME == 8179 )
124
- XCTAssert ( decoded. replyIP == 11865 )
125
- XCTAssert ( decoded. privacyLevel == 0 )
126
- XCTAssert ( decoded. status == " enabled " )
127
- XCTAssert ( decoded. gravityLastUpdated. fileExists == true )
128
- XCTAssert ( decoded. gravityLastUpdated. absolute == 1587264260 )
129
- XCTAssert ( decoded. gravityLastUpdated. relative. days == 0 )
130
- XCTAssert ( decoded. gravityLastUpdated. relative. hours == 18 )
131
- XCTAssert ( decoded. gravityLastUpdated. relative. minutes == 47 )
132
-
110
+ XCTAssertEqual ( decoded. domainsBeingBlocked, 261271 , " it should have 261271 domainsBeingBlocked " )
111
+ XCTAssertEqual ( decoded. dnsQueriesToday, 27581 , " it should have 27581 dnsQueriesToday " )
112
+ XCTAssertEqual ( decoded. adsBlockedToday, 4295 , " it should have 4295 adsBlockedToday " )
113
+ XCTAssertEqual ( decoded. adsPercentageToday, 15.572314 , " it should have 15.572314 adsPercentageToday " )
114
+ XCTAssertEqual ( decoded. uniqueDomains, 2760 , " it should have 2760 uniqueDomains " )
115
+ XCTAssertEqual ( decoded. queriesForwarded, 19663 , " it should have 19663 queriesForwarded " )
116
+ XCTAssertEqual ( decoded. queriesCached, 3623 , " it should have 3623 queriesCached " )
117
+ XCTAssertEqual ( decoded. clientsEverSeen, 14 , " it should have 14 clientsEverSeen " )
118
+ XCTAssertEqual ( decoded. uniqueClients, 13 , " it should have 13 uniqueClients " )
119
+ XCTAssertEqual ( decoded. dnsQueriesAllTypes, 27581 , " it should have 261271 dnsQueriesAllTypes " )
120
+ XCTAssertEqual ( decoded. replyNODATA, 2732 , " it should have 261271 replyNODATA " )
121
+ XCTAssertEqual ( decoded. replyNXDOMAIN, 1071 , " it should have 1071 replyNXDOMAIN " )
122
+ XCTAssertEqual ( decoded. replyCNAME, 8179 , " it should have 8179 replyCNAME " )
123
+ XCTAssertEqual ( decoded. replyIP, 11865 , " it should have 11865 replyIP " )
124
+ XCTAssertEqual ( decoded. privacyLevel, 0 , " it should have 0 privacyLevel " )
125
+ XCTAssertEqual ( decoded. status, " enabled " , " it should have status enabled " )
126
+ XCTAssertEqual ( decoded. gravityLastUpdated. fileExists, true , " it should have fileExists true " )
127
+ XCTAssertEqual ( decoded. gravityLastUpdated. absolute, 1587264260 , " it should have 1587264260 gravityLastUpdated.absolute " )
128
+ XCTAssertEqual ( decoded. gravityLastUpdated. relative. days, 0 , " it should have 0 gravityLastUpdated.relative.days " )
129
+ XCTAssertEqual ( decoded. gravityLastUpdated. relative. hours, 18 , " it should have 18 gravityLastUpdated.relative.hours " )
130
+ XCTAssertEqual ( decoded. gravityLastUpdated. relative. minutes, 47 , " it should have 47 gravityLastUpdated.relative.minutes " )
131
+ } catch {
132
+ XCTFail ( " Can't decode test file bundle \( error) " )
133
+ }
134
+ }
135
+
136
+ func testDomainsOverTime( ) {
137
+ let jsonString = """
138
+ {
139
+ " domains_over_time " : {
140
+ " 1593882300 " : 357,
141
+ " 1593882900 " : 209,
142
+ " 1593883500 " : 211,
143
+ " 1593884100 " : 170,
144
+ " 1593884700 " : 274,
145
+ " 1593885300 " : 224,
146
+ " 1593885900 " : 368,
147
+ " 1593886500 " : 238,
148
+ " 1593887100 " : 652,
149
+ " 1593887700 " : 392,
150
+ " 1593888300 " : 331,
151
+ " 1593888900 " : 279
152
+ },
153
+ " ads_over_time " : {
154
+ " 1593882300 " : 104,
155
+ " 1593882900 " : 60,
156
+ " 1593883500 " : 34,
157
+ " 1593884100 " : 30,
158
+ " 1593884700 " : 117,
159
+ " 1593885300 " : 71,
160
+ " 1593885900 " : 44,
161
+ " 1593886500 " : 51,
162
+ " 1593887100 " : 83,
163
+ " 1593887700 " : 54,
164
+ " 1593888300 " : 54,
165
+ " 1593888900 " : 70
166
+ }
167
+ }
168
+ """
169
+
170
+ guard let data = jsonString. data ( using: . utf8) else {
171
+ XCTFail ( " Can't transform string into data " )
172
+ return
173
+ }
174
+
175
+ let decoder = JSONDecoder ( )
176
+ do {
177
+ let decoded = try decoder. decode ( HistoricalQueries . self, from: data)
178
+ XCTAssertEqual ( decoded. requests. count, 12 , " it should have 12 requests " )
179
+
180
+ XCTAssertEqual ( decoded. requests [ 0 ] . adsCount, 104 , " it should have 104 ads " )
181
+ XCTAssertEqual ( decoded. requests [ 0 ] . permittedRequests, 253 , " it should have 253 permitted requests " )
182
+ XCTAssertEqual ( decoded. requests [ 0 ] . requestCount, 357 , " it should have 253 permitted requests " )
183
+ XCTAssertEqual ( decoded. requests [ 0 ] . date. timeIntervalSince1970, TimeInterval ( 1593882300 ) , " date should be 1593882300 timeInterval " )
184
+ XCTAssertEqual ( decoded. requests [ 0 ] . startDate. timeIntervalSince1970, TimeInterval ( ( 1593882000 ) ) , " startDate should be 1593882000 timeInterval " )
185
+ XCTAssertEqual ( decoded. requests [ 0 ] . endDate. timeIntervalSince1970, TimeInterval ( 1593882599 ) , " startDate should be 1593882000 timeInterval " )
186
+
187
+ XCTAssertEqual ( decoded. requests [ 5 ] . adsCount, 71 , " it should have 71 ads " )
188
+ XCTAssertEqual ( decoded. requests [ 5 ] . permittedRequests, 153 , " it should have 153 permitted requests " )
189
+ XCTAssertEqual ( decoded. requests [ 5 ] . requestCount, 224 , " it should have 224 permitted requests " )
190
+ XCTAssertEqual ( decoded. requests [ 5 ] . date. timeIntervalSince1970, TimeInterval ( 1593885300 ) , " date should be 1593885300 timeInterval " )
191
+ XCTAssertEqual ( decoded. requests [ 5 ] . startDate. timeIntervalSince1970, TimeInterval ( ( 1593885000 ) ) , " startDate should be 1593885000 timeInterval " )
192
+ XCTAssertEqual ( decoded. requests [ 5 ] . endDate. timeIntervalSince1970, TimeInterval ( 1593885599 ) , " startDate should be 1593885599 timeInterval " )
133
193
} catch {
134
194
XCTFail ( " Can't decode test file bundle \( error) " )
135
195
}
0 commit comments