This repository has been archived by the owner on Aug 30, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 32
/
DefaultAndroidEventProcessorTest.kt
91 lines (79 loc) · 2.8 KB
/
DefaultAndroidEventProcessorTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package io.sentry.android.core
import android.content.Context
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.nhaarman.mockitokotlin2.doReturn
import com.nhaarman.mockitokotlin2.mock
import io.sentry.core.ILogger
import io.sentry.core.SentryEvent
import io.sentry.core.SentryOptions
import kotlin.test.BeforeTest
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith
import kotlin.test.assertNotNull
import kotlin.test.assertNull
import org.junit.runner.RunWith
@RunWith(AndroidJUnit4::class)
class DefaultAndroidEventProcessorTest {
private lateinit var context: Context
private class Fixture {
var options: SentryOptions?
var logger: ILogger? = mock()
init {
val options = SentryOptions()
options.isDebug = true
options.setLogger(logger)
this.options = options
}
}
private val fixture = Fixture()
@BeforeTest
fun `set up`() {
context = ApplicationProvider.getApplicationContext()
}
@Test
fun `when instance is created, application context reference is stored`() {
val mockContext = mock<Context> {
on { applicationContext } doReturn context
}
val sut = DefaultAndroidEventProcessor(mockContext, fixture.options)
assertEquals(sut.context, context)
}
@Test
fun `when null context is provided, invalid argument is thrown`() {
assertFailsWith<IllegalArgumentException> { DefaultAndroidEventProcessor(null, fixture.options) }
}
@Test
fun `when null options is provided, invalid argument is thrown`() {
assertFailsWith<IllegalArgumentException> { DefaultAndroidEventProcessor(context, null) }
}
@Test
fun `When hint is not Cached, data should be applied`() {
val processor = DefaultAndroidEventProcessor(context, fixture.options)
var event = SentryEvent().apply {
}
// refactor and mock data later on
event = processor.process(event, null)
assertNotNull(event.user)
assertNotNull(event.contexts.app)
// assertNotNull(event.debugMeta) file doesnt exist
assertNotNull(event.sdk)
assertNotNull(event.release)
assertNotNull(event.dist)
}
@Test
fun `When hint is Cached, data should not be applied`() {
val processor = DefaultAndroidEventProcessor(context, fixture.options)
var event = SentryEvent().apply {
}
// refactor and mock data later on
event = processor.process(event, CachedEvent())
assertNull(event.user)
assertNull(event.contexts.app)
assertNull(event.debugMeta)
assertNull(event.sdk)
assertNull(event.release)
assertNull(event.dist)
}
}