@@ -7,11 +7,17 @@ import androidx.test.ext.junit.rules.ActivityScenarioRule
77import androidx.test.rule.GrantPermissionRule
88import kotlinx.coroutines.CoroutineScope
99import kotlinx.coroutines.Dispatchers
10+ import kotlinx.coroutines.ExperimentalCoroutinesApi
1011import kotlinx.coroutines.launch
12+ import kotlinx.coroutines.runBlocking
13+ import network.xyo.client.account.Account
14+ import network.xyo.client.lib.TestConstants
15+ import network.xyo.client.lib.XyoSerializable
1116import network.xyo.client.witness.location.info.LocationActivity
1217import network.xyo.client.witness.location.info.XyoLocationPayload
1318import network.xyo.client.witness.location.info.XyoLocationPayloadRaw
1419import network.xyo.client.witness.location.info.XyoLocationWitness
20+ import org.junit.Before
1521import org.junit.Rule
1622import org.junit.Test
1723import org.junit.jupiter.api.assertInstanceOf
@@ -25,24 +31,41 @@ class LocationWitnessTest {
2531 @get:Rule
2632 val activityRule = ActivityScenarioRule (LocationActivity ::class .java)
2733
34+ lateinit var appContext: Context
35+
36+ @Before
37+ fun useContext () {
38+ this .appContext = ApplicationProvider .getApplicationContext()
39+ }
40+
2841 @Test
2942 fun testObserve () {
30- // Get the application context
31- val context = ApplicationProvider .getApplicationContext<Context >()
32-
3343 CoroutineScope (Dispatchers .Main ).launch {
3444 val witness = XyoLocationWitness ()
35- val locationPayload = witness.observe(context )?.first()
45+ val locationPayload = witness.observe(appContext )?.first()
3646
3747 assertInstanceOf<XyoLocationPayload >(locationPayload)
3848 assert (locationPayload.schema == XyoLocationPayload .schema)
3949 assert (locationPayload.currentLocation != = null )
4050 assert (locationPayload.currentLocation?.coords?.latitude != = null )
4151 assert (locationPayload.currentLocation?.coords?.longitude != = null )
4252
43- val locationRawPayload = witness.observe(context )?.get(1 )
53+ val locationRawPayload = witness.observe(appContext )?.get(1 )
4454 assertInstanceOf<XyoLocationPayloadRaw >(locationRawPayload)
4555 assert (locationRawPayload.schema == XyoLocationPayloadRaw .schema)
4656 }
4757 }
58+
59+ @OptIn(ExperimentalCoroutinesApi ::class )
60+ @Test
61+ fun testInsidePanel () {
62+ runBlocking {
63+ val panel = XyoPanel (appContext, Account .random(), arrayListOf (Pair (" ${TestConstants .nodeUrlBeta} /Archivist" , null )), listOf (XyoLocationWitness ()))
64+ val result = panel.reportAsyncQuery()
65+ result.payloads?.forEach{ payload ->
66+ val hash = XyoSerializable .sha256String(payload)
67+ assert (result.bw.payload_hashes.contains(hash))
68+ }
69+ }
70+ }
4871}
0 commit comments