-
Notifications
You must be signed in to change notification settings - Fork 7
/
SessionMessageTest.kt
79 lines (71 loc) · 2.47 KB
/
SessionMessageTest.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
package io.embrace.android.embracesdk.payload
import com.squareup.moshi.JsonDataException
import io.embrace.android.embracesdk.assertJsonMatchesGoldenFile
import io.embrace.android.embracesdk.deserializeEmptyJsonString
import io.embrace.android.embracesdk.deserializeJsonFromResource
import io.embrace.android.embracesdk.fakes.fakeSession
import io.embrace.android.embracesdk.internal.payload.SessionPayload
import io.embrace.android.embracesdk.internal.spans.EmbraceSpanData
import io.opentelemetry.api.trace.StatusCode
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNotNull
import org.junit.Assert.assertTrue
import org.junit.Test
internal class SessionMessageTest {
private val session = fakeSession()
private val userInfo = UserInfo("fake-user-id", "fake-user-name")
private val appInfo = AppInfo("fake-app-version")
private val deviceInfo = DeviceInfo("fake-manufacturer")
private val performanceInfo = PerformanceInfo(DiskUsage(150923409L, 509209823L))
private val breadcrumbs = Breadcrumbs(
customBreadcrumbs = listOf(CustomBreadcrumb("Hi", 109234098234))
)
private val spans = listOf(
EmbraceSpanData(
"fake-span-id",
"",
null,
"",
0,
0,
StatusCode.OK,
emptyList()
)
)
private val info = SessionMessage(
session,
userInfo,
appInfo,
deviceInfo,
performanceInfo,
breadcrumbs,
spans
)
@Test
fun testSerialization() {
assertJsonMatchesGoldenFile("session_message_expected.json", info)
}
@Test
fun testDeserialization() {
val obj = deserializeJsonFromResource<SessionMessage>("session_message_expected.json")
assertNotNull(obj)
assertEquals(session, obj.session)
assertEquals(userInfo, obj.userInfo)
assertEquals(appInfo, obj.appInfo)
assertEquals(deviceInfo, obj.deviceInfo)
assertEquals(performanceInfo, obj.performanceInfo)
assertEquals(breadcrumbs, obj.breadcrumbs)
assertEquals(spans, obj.spans)
}
@Test(expected = JsonDataException::class)
fun testEmptyObject() {
deserializeEmptyJsonString<SessionMessage>()
}
@Test
fun `is v2 payload`() {
assertFalse(info.isV2Payload())
val obj = SessionMessage(session = session, data = SessionPayload())
assertTrue(obj.isV2Payload())
}
}