Skip to content

Commit 353fdbe

Browse files
committed
Add a few more tests
1 parent e993340 commit 353fdbe

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

platform/jvm/capture/src/test/kotlin/io/bitdrift/capture/reports/exitinfo/PreviousRunInfoResolverTest.kt

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
package io.bitdrift.capture.reports.exitinfo
99

1010
import android.app.ActivityManager
11+
import android.app.ApplicationExitInfo
1112
import com.nhaarman.mockitokotlin2.any
1213
import com.nhaarman.mockitokotlin2.eq
1314
import com.nhaarman.mockitokotlin2.mock
1415
import com.nhaarman.mockitokotlin2.never
1516
import com.nhaarman.mockitokotlin2.verify
17+
import com.nhaarman.mockitokotlin2.whenever
1618
import io.bitdrift.capture.IInternalLogger
1719
import org.assertj.core.api.Assertions.assertThat
1820
import org.junit.Before
@@ -102,7 +104,7 @@ class PreviousRunInfoResolverTest {
102104

103105
@Test
104106
@Config(sdk = [30])
105-
fun initLegacyWatcher_isNoopOnApi30() {
107+
fun initLegacyWatcher_whenApi30_shouldBeNoop() {
106108
val sdkDir = tempFolder.root.absolutePath
107109
resolver.initLegacyWatcher(sdkDir)
108110

@@ -111,12 +113,42 @@ class PreviousRunInfoResolverTest {
111113

112114
@Test
113115
@Config(sdk = [30])
114-
fun persistJvmCrashState_isNoopOnApi30() {
116+
fun persistJvmCrashState_whenApi30_shouldBeNoop() {
115117
val sdkDir = tempFolder.root.absolutePath
116118
resolver.initLegacyWatcher(sdkDir)
117119
resolver.persistJvmCrashState()
118120

119121
assertThat(tempFolder.root.resolve("reports/previous_run_info.state").exists()).isFalse()
120122
verify(internalLogger, never()).logInternalError(any(), any(), any())
121123
}
124+
125+
@Test
126+
@Config(sdk = [30])
127+
fun get_onApi30_returnsFatalForCrashReason() {
128+
val appExitInfo: ApplicationExitInfo = mock()
129+
whenever(appExitInfo.reason).thenReturn(ApplicationExitInfo.REASON_CRASH)
130+
val provider = ILatestAppExitInfoProvider { LatestAppExitReasonResult.Valid(appExitInfo) }
131+
val api30Resolver = PreviousRunInfoResolver(internalLogger, provider)
132+
133+
val result = api30Resolver.get(activityManager)
134+
135+
assertThat(result).isEqualTo(
136+
PreviousRunInfo(hasFatallyTerminated = true, reason = ExitReason.JvmCrash),
137+
)
138+
}
139+
140+
@Test
141+
@Config(sdk = [30])
142+
fun get_onApi30_returnsNonFatalForUserRequested() {
143+
val appExitInfo: ApplicationExitInfo = mock()
144+
whenever(appExitInfo.reason).thenReturn(ApplicationExitInfo.REASON_USER_REQUESTED)
145+
val provider = ILatestAppExitInfoProvider { LatestAppExitReasonResult.Valid(appExitInfo) }
146+
val api30Resolver = PreviousRunInfoResolver(internalLogger, provider)
147+
148+
val result = api30Resolver.get(activityManager)
149+
150+
assertThat(result).isEqualTo(
151+
PreviousRunInfo(hasFatallyTerminated = false, reason = ExitReason.UserRequested),
152+
)
153+
}
122154
}

0 commit comments

Comments
 (0)