Skip to content

Commit b7fbef2

Browse files
committed
Update tests after reverting.
1 parent 730f751 commit b7fbef2

File tree

1 file changed

+37
-42
lines changed

1 file changed

+37
-42
lines changed

core/src/test/kotlin/com/segment/analytics/kotlin/core/SettingsTests.kt

Lines changed: 37 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,9 @@ class SettingsTests {
8888

8989
// no settings available, should not be called
9090
analytics.add(mockPlugin)
91-
91+
verify (exactly = 0){
92+
mockPlugin.update(any(), any())
93+
}
9294

9395
// load settings
9496
mockHTTPClient()
@@ -102,7 +104,7 @@ class SettingsTests {
102104
// load settings again
103105
mockHTTPClient()
104106
analytics.checkSettings()
105-
verify (exactly = 2) {
107+
verify (exactly = 1) {
106108
mockPlugin.update(any(), Plugin.UpdateType.Refresh)
107109
}
108110
}
@@ -230,102 +232,95 @@ class SettingsTests {
230232

231233
@Test
232234
fun `fetchSettings returns null when Settings string is invalid`() {
233-
val emptySettings = analytics.fetchSettings("emptySettingsObject", "cdn-settings.segment.com/v1")
234235
// Null on invalid JSON
235236
mockHTTPClient("")
236237
var settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
237-
assertEquals(emptySettings, settings)
238+
assertNull(settings)
238239

239240
// Null on invalid JSON
240241
mockHTTPClient("hello")
241242
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
242-
assertEquals(emptySettings, settings)
243+
assertNull(settings)
243244

244245
// Null on invalid JSON
245246
mockHTTPClient("#! /bin/sh")
246247
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
247-
assertEquals(emptySettings, settings)
248+
assertNull(settings)
248249

249250
// Null on invalid JSON
250251
mockHTTPClient("<!DOCTYPE html>")
251252
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
252-
assertEquals(emptySettings, settings)
253+
assertNull(settings)
253254

254255
// Null on invalid JSON
255256
mockHTTPClient("true")
256257
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
257-
assertEquals(emptySettings, settings)
258+
assertNull(settings)
258259

259260
// Null on invalid JSON
260261
mockHTTPClient("[]")
261262
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
262-
assertEquals(emptySettings, settings)
263+
assertNull(settings)
263264

264265
// Null on invalid JSON
265266
mockHTTPClient("}{")
266267
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
267-
assertEquals(emptySettings, settings)
268+
assertNull(settings)
268269

269270
// Null on invalid JSON
270271
mockHTTPClient("{{{{}}}}")
271272
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
272-
assertEquals(emptySettings, settings)
273+
assertNull(settings)
273274

274275
// Null on invalid JSON
275276
mockHTTPClient("{null:\"bar\"}")
276277
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
277-
assertEquals(emptySettings, settings)
278+
assertNull(settings)
278279
}
279280

280281
@Test
281282
fun `fetchSettings returns null when parameters are invalid`() {
282-
val emptySettings = analytics.fetchSettings("emptySettingsObject", "cdn-settings.segment.com/v1")
283283
mockHTTPClient("{\"integrations\":{}, \"plan\":{}, \"edgeFunction\": {}, \"middlewareSettings\": {}}")
284284

285285
// empty host
286286
var settings = analytics.fetchSettings("foo", "")
287-
assertEquals(emptySettings, settings)
287+
assertNull(settings)
288288

289289
// not a host name
290290
settings = analytics.fetchSettings("foo", "http://blah")
291-
assertEquals(emptySettings, settings)
291+
assertNull(settings)
292292

293293
// emoji
294294
settings = analytics.fetchSettings("foo", "😃")
295-
assertEquals(emptySettings, settings)
295+
assertNull(settings)
296296
}
297297

298298
@Test
299299
fun `fetchSettings returns null when Settings string is null for known properties`() {
300300
// Null if integrations is null
301301
mockHTTPClient("{\"integrations\":null}")
302302
var settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
303-
assertTrue(settings?.integrations?.isEmpty() ?: true, "Integrations should be empty")
304-
assertTrue(settings?.plan?.isEmpty() ?: true, "Plan should be empty")
305-
assertTrue(settings?.edgeFunction?.isEmpty() ?: true, "EdgeFunction should be empty")
306-
assertTrue(settings?.middlewareSettings?.isEmpty() ?: true, "MiddlewareSettings should be empty")
307-
assertTrue(settings?.metrics?.isEmpty() ?: true, "Metrics should be empty")
308-
assertTrue(settings?.consentSettings?.isEmpty() ?: true, "ConsentSettings should be empty")
309-
310-
// // Null if plan is null
311-
// mockHTTPClient("{\"plan\":null}")
312-
// settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
313-
// assertNull(settings)
314-
//
315-
// // Null if edgeFunction is null
316-
// mockHTTPClient("{\"edgeFunction\":null}")
317-
// settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
318-
// assertNull(settings)
319-
//
320-
// // Null if middlewareSettings is null
321-
// mockHTTPClient("{\"middlewareSettings\":null}")
322-
// settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
323-
// assertNull(settings)
303+
assertNull(settings)
304+
305+
// Null if plan is null
306+
mockHTTPClient("{\"plan\":null}")
307+
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
308+
assertNull(settings)
309+
310+
// Null if edgeFunction is null
311+
mockHTTPClient("{\"edgeFunction\":null}")
312+
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
313+
assertNull(settings)
314+
315+
// Null if middlewareSettings is null
316+
mockHTTPClient("{\"middlewareSettings\":null}")
317+
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
318+
assertNull(settings)
324319
}
325320

326321
@Test
327322
fun `known Settings property types must match json type`() {
328-
val emptySettings = analytics.fetchSettings("emptySettingsObject", "cdn-settings.segment.com/v1")
323+
329324
// integrations must be a JSON object
330325
mockHTTPClient("{\"integrations\":{}}")
331326
var settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
@@ -334,21 +329,21 @@ class SettingsTests {
334329
// Null if integrations is a number
335330
mockHTTPClient("{\"integrations\":123}")
336331
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
337-
assertEquals(emptySettings, settings)
332+
assertNull(settings)
338333

339334
// Null if integrations is a string
340335
mockHTTPClient("{\"integrations\":\"foo\"}")
341336
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
342-
assertEquals(emptySettings, settings)
337+
assertNull(settings)
343338

344339
// Null if integrations is an array
345340
mockHTTPClient("{\"integrations\":[\"foo\"]}")
346341
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
347-
assertEquals(emptySettings, settings)
342+
assertNull(settings)
348343

349344
// Null if integrations is an emoji (UTF-8 string)
350345
mockHTTPClient("{\"integrations\": 😃}")
351346
settings = analytics.fetchSettings("foo", "cdn-settings.segment.com/v1")
352-
assertEquals(emptySettings, settings)
347+
assertNull(settings)
353348
}
354349
}

0 commit comments

Comments
 (0)