Skip to content

Commit fac324a

Browse files
committed
Further simplify the integration test rule
1 parent ea995b9 commit fac324a

File tree

13 files changed

+65
-60
lines changed

13 files changed

+65
-60
lines changed

embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/AppStartupTraceTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
55
import io.embrace.android.embracesdk.arch.assertError
66
import io.embrace.android.embracesdk.assertions.findSpansOfType
77
import io.embrace.android.embracesdk.fakes.FakeActivity
8-
import io.embrace.android.embracesdk.fakes.FakeEmbLogger
98
import io.embrace.android.embracesdk.fakes.FakeSplashScreenActivity
109
import io.embrace.android.embracesdk.fakes.config.FakeEnabledFeatureConfig
1110
import io.embrace.android.embracesdk.fakes.config.FakeInstrumentedConfig
@@ -40,7 +39,7 @@ internal class AppStartupTraceTest {
4039
@JvmField
4140
val testRule: SdkIntegrationTestRule = SdkIntegrationTestRule {
4241
EmbraceSetupInterface().apply {
43-
(overriddenInitModule.logger as FakeEmbLogger).ignoredErrors.clear()
42+
getEmbLogger().ignoredErrors.clear()
4443
}
4544
}
4645

embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/PublicApiTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ internal class PublicApiTest {
6161
recordSession {
6262
assertEquals(
6363
embrace.currentSessionId,
64-
testRule.setup.overriddenOpenTelemetryModule.currentSessionSpan.getSessionId()
64+
testRule.setup.getCurrentSessionSpan().getSessionId()
6565
)
6666
assertNotNull(embrace.currentSessionId)
6767
}

embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/TracingApiTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,7 @@ internal class TracingApiTest {
151151
)
152152
val allSpans = getSdkInitSpanFromBackgroundActivity() +
153153
checkNotNull(session.data.spans) +
154-
testRule.setup.overriddenOpenTelemetryModule.spanSink.completedSpans()
155-
.map(EmbraceSpanData::toNewPayload)
154+
testRule.setup.getSpanSink().completedSpans().map(EmbraceSpanData::toNewPayload)
156155

157156
val spansMap = allSpans.associateBy { it.name }
158157
val sessionSpan = checkNotNull(spansMap["emb-session"])

embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/features/AnrFeatureTest.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import org.junit.Rule
1717
import org.junit.Test
1818
import org.junit.runner.RunWith
1919

20-
private const val START_TIME_MS = 10000000000L
2120
private const val INTERVAL_MS = 100L
2221
private const val ANR_THRESHOLD_MS = 1000L
2322
private const val MAX_SAMPLE_COUNT = 80
@@ -29,19 +28,21 @@ internal class AnrFeatureTest {
2928

3029
private lateinit var anrMonitorExecutor: BlockingScheduledExecutorService
3130
private lateinit var blockedThreadDetector: BlockedThreadDetector
31+
private var startTimeMs: Long = 0L
3232

3333
@Rule
3434
@JvmField
3535
val testRule: SdkIntegrationTestRule = SdkIntegrationTestRule {
3636
EmbraceSetupInterface(
37-
currentTimeMs = START_TIME_MS,
3837
workerToFake = Worker.Background.AnrWatchdogWorker,
3938
anrMonitoringThread = Thread.currentThread()
4039
).also {
4140
with(it) {
4241
anrMonitorExecutor = getFakedWorkerExecutor()
4342
anrMonitorExecutor.blockingMode = false
4443
blockedThreadDetector = getBlockedThreadDetector()
44+
startTimeMs = getClock().now()
45+
4546
}
4647
}
4748
}
@@ -66,7 +67,7 @@ internal class AnrFeatureTest {
6667
// assert ANRs received
6768
val spans = message.findAnrSpans()
6869
assertEquals(2, spans.size)
69-
assertAnrReceived(spans[0], START_TIME_MS, firstSampleCount)
70+
assertAnrReceived(spans[0], startTimeMs, firstSampleCount)
7071
assertAnrReceived(spans[1], checkNotNull(secondAnrStartTime), secondSampleCount)
7172
}
7273
)
@@ -88,7 +89,7 @@ internal class AnrFeatureTest {
8889
// assert ANRs received
8990
val spans = message.findAnrSpans()
9091
val span = spans.single()
91-
assertAnrReceived(span, START_TIME_MS, sampleCount)
92+
assertAnrReceived(span, startTimeMs, sampleCount)
9293
}
9394
)
9495
}
@@ -149,7 +150,7 @@ internal class AnrFeatureTest {
149150
// assert ANRs received
150151
val spans = message.findAnrSpans()
151152
val span = spans.single()
152-
assertAnrReceived(span, START_TIME_MS, sampleCount, endTime = endTime)
153+
assertAnrReceived(span, startTimeMs, sampleCount, endTime = endTime)
153154
}
154155
)
155156
}

embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/features/InternalErrorLogTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package io.embrace.android.embracesdk.testcases.features
22

33
import androidx.test.ext.junit.runners.AndroidJUnit4
4-
import io.embrace.android.embracesdk.fakes.FakeEmbLogger
54
import io.embrace.android.embracesdk.internal.spans.findAttributeValue
65
import io.embrace.android.embracesdk.testframework.SdkIntegrationTestRule
76
import io.embrace.android.embracesdk.testframework.assertions.getLogWithAttributeValue
@@ -22,7 +21,7 @@ internal class InternalErrorLogTest {
2221
fun `internal error log delivered`() {
2322
testRule.runTest(
2423
setupAction = {
25-
(overriddenInitModule.logger as FakeEmbLogger).throwOnInternalError = false
24+
getEmbLogger().throwOnInternalError = false
2625

2726
},
2827
testCaseAction = {

embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/features/NativeCrashFeatureTest.kt

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package io.embrace.android.embracesdk.testcases.features
22

33
import androidx.test.ext.junit.runners.AndroidJUnit4
44
import io.embrace.android.embracesdk.assertions.getSessionId
5-
import io.embrace.android.embracesdk.fakes.FakeEmbLogger
65
import io.embrace.android.embracesdk.fakes.FakePayloadStorageService
76
import io.embrace.android.embracesdk.fakes.TestPlatformSerializer
87
import io.embrace.android.embracesdk.fakes.config.FakeEnabledFeatureConfig
@@ -11,6 +10,7 @@ import io.embrace.android.embracesdk.fakes.fakeEnvelopeMetadata
1110
import io.embrace.android.embracesdk.fakes.fakeEnvelopeResource
1211
import io.embrace.android.embracesdk.fakes.fakeLaterEnvelopeMetadata
1312
import io.embrace.android.embracesdk.fakes.fakeLaterEnvelopeResource
13+
import io.embrace.android.embracesdk.internal.arch.schema.EmbType
1414
import io.embrace.android.embracesdk.internal.delivery.PayloadType
1515
import io.embrace.android.embracesdk.internal.delivery.StoredTelemetryMetadata
1616
import io.embrace.android.embracesdk.internal.delivery.SupportedEnvelopeType
@@ -23,6 +23,7 @@ import io.embrace.android.embracesdk.testframework.actions.EmbraceSetupInterface
2323
import io.embrace.android.embracesdk.testframework.actions.StoredNativeCrashData
2424
import io.embrace.android.embracesdk.testframework.actions.createStoredNativeCrashData
2525
import io.embrace.android.embracesdk.testframework.assertions.getLastLog
26+
import io.embrace.android.embracesdk.testframework.assertions.getLogOfType
2627
import org.junit.Assert.assertEquals
2728
import org.junit.Assert.assertFalse
2829
import org.junit.Assert.assertTrue
@@ -103,7 +104,7 @@ internal class NativeCrashFeatureTest {
103104
EmbraceSetupInterface(
104105
processIdentifier = "8115ec91-3e5e-4d8a-816d-cc40306f9822"
105106
).apply {
106-
(overriddenInitModule.logger as FakeEmbLogger).throwOnInternalError = false
107+
getEmbLogger().throwOnInternalError = false
107108
}
108109
}
109110

@@ -155,12 +156,9 @@ internal class NativeCrashFeatureTest {
155156
recordSession()
156157
},
157158
assertAction = {
158-
val envelope = getSingleLogEnvelope()
159-
with(envelope) {
160-
assertEquals(fakeEnvelopeResource, resource)
161-
assertEquals(fakeEnvelopeMetadata, metadata)
162-
}
163-
val log = envelope.getLastLog()
159+
val envelope = getLogEnvelopes(2)
160+
.single { it.resource == fakeEnvelopeResource && it.metadata == fakeEnvelopeMetadata }
161+
val log = envelope.getLogOfType(EmbType.System.NativeCrash)
164162
assertNativeCrashSent(log, crashData, testRule.setup.symbols)
165163
}
166164
)

embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/features/PersonaFeaturesTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ internal class PersonaFeaturesTest {
1919
fun `personas found in metadata`() {
2020
testRule.runTest(
2121
setupAction = {
22-
overriddenAndroidServicesModule.preferencesService.userPersonas = setOf("preloaded")
22+
getPreferencesService().userPersonas = setOf("preloaded")
2323
},
2424
testCaseAction = {
2525
embrace.addUserPersona("payer")

embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/features/PruningFeatureTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ internal class PruningFeatureTest {
2626
@JvmField
2727
val testRule: SdkIntegrationTestRule = SdkIntegrationTestRule {
2828
EmbraceSetupInterface().apply {
29-
(overriddenInitModule.logger as FakeEmbLogger).throwOnInternalError = false
29+
getEmbLogger().throwOnInternalError = false
3030
}
3131
}
3232

embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/features/ResurrectionFeatureTest.kt

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.embrace.android.embracesdk.testcases.features
22

3+
import android.os.Build.VERSION_CODES.TIRAMISU
34
import androidx.test.ext.junit.runners.AndroidJUnit4
4-
import io.embrace.android.embracesdk.fakes.FakeEmbLogger
55
import io.embrace.android.embracesdk.fakes.FakePayloadStorageService
66
import io.embrace.android.embracesdk.fakes.TestPlatformSerializer
77
import io.embrace.android.embracesdk.fakes.config.FakeEnabledFeatureConfig
@@ -24,12 +24,13 @@ import org.junit.Assert.assertEquals
2424
import org.junit.Assert.assertFalse
2525
import org.junit.Assert.assertNotNull
2626
import org.junit.Assert.assertTrue
27-
import org.junit.Before
2827
import org.junit.Ignore
2928
import org.junit.Rule
3029
import org.junit.Test
3130
import org.junit.runner.RunWith
31+
import org.robolectric.annotation.Config
3232

33+
@Config(sdk = [TIRAMISU])
3334
@RunWith(AndroidJUnit4::class)
3435
internal class ResurrectionFeatureTest {
3536

@@ -40,20 +41,11 @@ internal class ResurrectionFeatureTest {
4041
@JvmField
4142
val testRule: SdkIntegrationTestRule = SdkIntegrationTestRule {
4243
EmbraceSetupInterface().apply {
43-
(overriddenInitModule.logger as FakeEmbLogger).throwOnInternalError = false
44+
getEmbLogger().throwOnInternalError = false
45+
cacheStorageService = FakePayloadStorageService(processIdProvider = getProcessIdentifierProvider())
4446
}
4547
}
4648

47-
@Before
48-
fun setUp() {
49-
cacheStorageService =
50-
FakePayloadStorageService(
51-
processIdProvider = {
52-
testRule.setup.overriddenOpenTelemetryModule.openTelemetryConfiguration.processIdentifier
53-
}
54-
)
55-
}
56-
5749
@Test
5850
fun `crashed session and native crash resurrected and sent properly`() {
5951
val crashData = createStoredNativeCrashData(

embrace-android-sdk/src/integrationTest/kotlin/io/embrace/android/embracesdk/testcases/features/SessionPropertiesTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ internal class SessionPropertiesTest {
128128
}
129129

130130
private fun EmbraceSetupInterface.setupPermanentProperties() {
131-
overriddenAndroidServicesModule.preferencesService.permanentSessionProperties =
131+
getPreferencesService().permanentSessionProperties =
132132
mapOf(
133133
EXISTING_KEY_1 to VALUE,
134134
EXISTING_KEY_2 to VALUE,

0 commit comments

Comments
 (0)