Skip to content

Commit

Permalink
Add integration test for session envelope attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
bidetofevil committed Aug 2, 2024
1 parent 3e8526e commit c4cd964
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package io.embrace.android.embracesdk.session

import androidx.test.ext.junit.runners.AndroidJUnit4
import io.embrace.android.embracesdk.IntegrationTestRule
import io.embrace.android.embracesdk.getSessionId
import io.embrace.android.embracesdk.internal.payload.AppFramework
import io.embrace.android.embracesdk.recordSession
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith

@RunWith(AndroidJUnit4::class)
internal class SessionPayloadTest {
@Rule
@JvmField
val testRule: IntegrationTestRule = IntegrationTestRule()

@Test
fun `device and app attributes are present in session envelope`() {
with(testRule) {
with(checkNotNull(harness.recordSession())) {
assertEquals("spans", type)
with(checkNotNull(resource)) {
assertTrue(checkNotNull(appVersion).isNotBlank())
assertTrue(checkNotNull(sdkVersion).isNotBlank())
assertTrue(checkNotNull(osVersion).isNotBlank())
assertTrue(checkNotNull(osName).isNotBlank())
assertTrue(checkNotNull(deviceModel).isNotBlank())
assertEquals(AppFramework.NATIVE, appFramework)
}

assertTrue(getSessionId().isNotBlank())
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,22 @@ internal class FakeCoreModule(
override val resources: FakeAndroidResourcesService = FakeAndroidResourcesService(),
override val isDebug: Boolean = if (isMockKMock(context)) false else AppEnvironment(context.applicationInfo).isDebug,
override val buildInfo: BuildInfo = BuildInfo.fromResources(resources, context.packageName),
@Suppress("DEPRECATION")
override val packageInfo: PackageInfo = context.packageManager.getPackageInfo(context.packageName, 0)
override val packageInfo: PackageInfo = fakePackageInfo
) : CoreModule {

companion object {

@Suppress("DEPRECATION")
fun getMockedContext(): Context {
val packageInfo = PackageInfo()
packageInfo.versionName = "1.0.0"
packageInfo.versionCode = 10
private val fakePackageInfo = PackageInfo().apply {
packageName = "com.fake.package"
versionName = "2.5.1"
versionCode = 99
}

fun getMockedContext(): Context {
val mockContext = mockk<Context>(relaxed = true)
every { mockContext.packageName }.returns("package-info")
every { mockContext.packageManager.getPackageInfo("package-info", 0) }.returns(packageInfo)
every { mockContext.packageName }.returns(fakePackageInfo.packageName)
every { mockContext.packageManager.getPackageInfo(fakePackageInfo.packageName, 0) }.returns(fakePackageInfo)
return mockContext
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@
"username": "John Doe"
},
"resource": {
"app_version": "",
"app_version": "2.5.1",
"app_framework": 1,
"build_id": "5.22.0",
"app_ecosystem_id": "io.embrace.android.embracesdk.test",
"app_ecosystem_id": "com.fake.package",
"build_type": "release",
"build_flavor": "delicious",
"environment": "dev",
"bundle_version": "0",
"bundle_version": "99",
"sdk_version": "__EMBRACE_TEST_IGNORE__",
"sdk_simple_version": 53,
"device_manufacturer": "__EMBRACE_TEST_IGNORE__",
Expand Down

0 comments on commit c4cd964

Please sign in to comment.