Skip to content

Commit 3fe44a5

Browse files
committed
Still needs PayloadBuilder
1 parent 48a45d8 commit 3fe44a5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+202
-266
lines changed

sdk/src/androidTest/java/network/xyo/client/account/AccountTest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package network.xyo.client.account
33
import androidx.test.platform.app.InstrumentationRegistry
44
import kotlinx.coroutines.runBlocking
55
import network.xyo.client.datastore.previous_hash_store.PreviousHashStorePrefsRepository
6+
import network.xyo.client.lib.hexStringToByteArray
67
import org.junit.Before
78
import org.junit.Test
89

sdk/src/androidTest/java/network/xyo/client/boundwitness/BoundWitnessBuilderTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import network.xyo.client.account.Account
22
import network.xyo.client.account.Wallet
3-
import network.xyo.client.account.model.AccountInstance
43
import org.junit.jupiter.api.BeforeEach
54
import org.junit.jupiter.api.Test
65
import org.junit.jupiter.api.Assertions.*
@@ -18,7 +17,7 @@ class BoundWitnessBuilderTest {
1817
fun build_returns_expected_hash() {
1918
for (testCase in boundWitnessSequenceTestCases) {
2019
// Create accounts
21-
val signers = mutableListOf<AccountInstance>()
20+
val signers = mutableListOf<network.xyo.client.account.model.Account>()
2221
for ((i, mnemonic) in testCase.mnemonics.withIndex()) {
2322
val path = testCase.paths[i]
2423
val account = try {

sdk/src/androidTest/java/network/xyo/client/boundwitness/BoundWitnessTest.kt

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
77
import kotlinx.coroutines.runBlocking
88
import network.xyo.client.payload.TestPayload1
99
import network.xyo.client.account.Account
10+
import network.xyo.client.account.Wallet
1011
import network.xyo.client.archivist.wrapper.ArchivistWrapper
1112
import network.xyo.client.node.client.DiscoverPayload
1213
import network.xyo.client.datastore.previous_hash_store.PreviousHashStorePrefsRepository
@@ -78,7 +79,6 @@ class BoundWitnessTest {
7879
val bw = BoundWitnessBuilder().signer(Account.random()).payloads(listOf(
7980
TestPayload1()
8081
)).build()
81-
assert(bw.dataHash() == bw.getBodyJson().dataHash())
8282
assert(bw._meta.client == "android")
8383
assert(bw._meta.signatures?.size == 1)
8484
}
@@ -98,44 +98,57 @@ class BoundWitnessTest {
9898
}
9999
}
100100

101+
@OptIn(ExperimentalStdlibApi::class)
101102
@Test
102103
fun testBoundWitnessPreviousHash() {
103104
runBlocking {
104-
val testAccount = Account.random()
105+
val testAccount = Wallet.fromMnemonic("abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about")
106+
val knownBw1DataHash = "cb8b63aaaa8da5763f3e62541421c48b9b2356b4b9da24f58359072b89549e66"
107+
val testPayload = TestPayload1()
105108
val bw = BoundWitnessBuilder().signer(testAccount).payloads(listOf(
106-
TestPayload1()
109+
testPayload
107110
)).build()
111+
val calcDataHash = bw.dataHash().toHexString()
112+
val calcJson = bw.toJson()
113+
val calcDataJson = bw.toJson(true)
114+
val calcDataHash2 = JsonSerializable.sha256(calcDataJson).toHexString()
115+
assertEquals(calcDataHash, calcDataHash2)
116+
assertNotEquals(calcJson, calcDataJson)
117+
assertEquals(knownBw1DataHash, calcDataHash)
108118
val bw2 = BoundWitnessBuilder().signer(testAccount).payloads(listOf(
109119
TestPayload1()
110120
)).build()
111-
assert(bw2.previous_hashes.first() == bw.dataHash())
121+
assertEquals(bw2.previous_hashes.first(), knownBw1DataHash)
122+
assertEquals(bw2.previous_hashes.first(), bw.dataHash().toHexString())
112123
}
113124
}
114125

126+
@OptIn(ExperimentalStdlibApi::class)
115127
@Test
116128
fun testBoundWitnessRoundTripToArchivist() {
117129
runBlocking {
118130
val client = ArchivistWrapper(NodeClient("$apiDomainBeta/Archivist", null, appContext))
119131
val testAccount = Account.random()
120132
val testPayload = TestPayload1()
121133
val bw = BoundWitnessBuilder().signer(testAccount).payloads(listOf(testPayload)).build()
122-
val bwJson: String = bw.toPrettyJson()
134+
val bwJson: String = bw.toJson()
123135
println("bwJson-start")
124136
println(bwJson)
125137
println("bwJson-end")
126-
val queryResult = client.insert(listOf(bw, testPayload))
138+
val queryResult = client.insert(listOf(testPayload))
127139

128140
assert((queryResult.errors?.size ?: 0) == 0)
129-
assert((queryResult.response?.payloads?.size == 2))
141+
assert(((queryResult.response?.payloads?.size ?: 0) > 0))
142+
assert(((queryResult.response?.payloads?.size ?: 0) == 2))
130143

131-
val bwDataHash = bw.dataHash()
132-
assert(((queryResult.response?.payloads?.filter { it.dataHash() == bwDataHash})?.size == 1))
144+
val bwDataHash = bw.dataHash().toHexString()
145+
assert(((queryResult.response?.payloads?.filter { it.dataHash().toHexString() == bwDataHash})?.size == 1))
133146

134147
val dataResult = client.get(listOf(bwDataHash))
135148
val dataResponse = dataResult.response?.rawResponse
136149
assert(dataResponse!!.contains(bwDataHash))
137150

138-
val bwHash = bw.dataHash()
151+
val bwHash = bw.dataHash().toHexString()
139152
val result = client.get(listOf(bwHash))
140153
val response = result.response?.rawResponse
141154
assert(response!!.contains(bwHash))

sdk/src/androidTest/java/network/xyo/client/node/client/NodeClientTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import kotlinx.coroutines.runBlocking
77
import network.xyo.client.lib.TestConstants
88
import network.xyo.client.account.Account
99
import network.xyo.client.archivist.wrapper.ArchivistWrapper
10-
import network.xyo.client.boundwitness.BoundWitnessBody
10+
import network.xyo.client.boundwitness.BoundWitnessFields
1111
import network.xyo.client.payload.Payload
1212
import org.junit.Before
1313
import org.junit.Test
@@ -71,7 +71,7 @@ class NodeClientTest {
7171
assertEquals(errors, null)
7272

7373
if (response != null) {
74-
assertEquals(response.bw?.schema, BoundWitnessBody.SCHEMA)
74+
assertEquals(response.bw?.schema, BoundWitnessFields.SCHEMA)
7575
} else {
7676
throw(Error("Response should not be null"))
7777
}

sdk/src/androidTest/java/network/xyo/client/node/client/QueryResponseWrapperTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ import network.xyo.client.lib.TestConstants
44
import org.junit.Test
55
import org.junit.jupiter.api.Assertions.*
66

7+
@OptIn(ExperimentalStdlibApi::class)
78
class QueryResponseWrapperTest {
89
@Test
910
fun parseTest() {
1011
val queryResponseWrapper = QueryResponseWrapper.parse(TestConstants.queryResponseJson)
1112
assertNotEquals(queryResponseWrapper?.bw, null)
12-
assertEquals(queryResponseWrapper?.bwHash, TestConstants.queryResponseBWHash)
13+
assertEquals(queryResponseWrapper?.bwHash?.toHexString(), TestConstants.queryResponseBWHash)
1314

1415
assertNotEquals(queryResponseWrapper?.payloads?.size, 2)
1516
}

sdk/src/androidTest/java/network/xyo/client/payload/PayloadTest.kt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package network.xyo.client.payload
33
import android.content.Context
44
import androidx.test.platform.app.InstrumentationRegistry
55
import androidx.test.rule.GrantPermissionRule
6+
import com.squareup.moshi.Json
67
import kotlinx.coroutines.CoroutineScope
78
import kotlinx.coroutines.Dispatchers
89
import kotlinx.coroutines.launch
@@ -11,11 +12,14 @@ import network.xyo.client.lib.TestConstants
1112
import network.xyo.client.account.Account
1213
import network.xyo.client.boundwitness.BoundWitnessBuilder
1314
import network.xyo.client.lib.JsonSerializable
15+
import network.xyo.client.payload.model.WithMeta
16+
import network.xyo.client.types.HashHex
1417
import network.xyo.client.witness.XyoWitness
1518
import org.junit.Before
1619
import org.junit.Rule
1720
import org.junit.Test
1821
import org.junit.jupiter.api.Assertions.*
22+
import java.io.Serializable
1923

2024
open class TestSubjectPayload: Payload("network.xyo.test") {
2125

@@ -26,13 +30,23 @@ class TestPayload1SubObject {
2630
var string_value = "yo"
2731
}
2832

29-
class TestPayload1: TestSubjectPayload() {
33+
class TestPayload1Meta: Serializable {
34+
var name = "yo"
35+
}
36+
37+
open class TestPayload1Body: TestSubjectPayload() {
3038
var timestamp = 1618603439107
3139
var number_field = 1
3240
var object_field = TestPayload1SubObject()
3341
var string_field = "there"
3442
}
3543

44+
@OptIn(ExperimentalStdlibApi::class)
45+
class TestPayload1: TestPayload1Body(), WithMeta<TestPayload1Meta> {
46+
@Json(name = "\$meta")
47+
override var _meta = TestPayload1Meta()
48+
}
49+
3650
class TestPayload2SubObject {
3751
var string_value = "yo"
3852
var number_value = 2
@@ -55,6 +69,7 @@ class TestInvalidSchemaPayload: TestSubjectPayload() {
5569
val knownAddress = Account.fromPrivateKey(ByteArray(32) {index -> index.toByte()})
5670
const val knownHash = "6e173bbfc0577ebde66b44b090316eca5ecad8ecdb5c51886211d805c769d2ea"
5771

72+
@OptIn(ExperimentalStdlibApi::class)
5873
class PayloadTest {
5974

6075
@Rule
@@ -116,6 +131,6 @@ class PayloadTest {
116131
@Test
117132
fun testHashing() {
118133
val payload = TestConstants.debugPayload
119-
assertEquals(payload.dataHash(), TestConstants.debugPayloadHash)
134+
assertEquals(payload.dataHash().toHexString(), TestConstants.debugPayloadHash)
120135
}
121136
}

sdk/src/androidTest/java/network/xyo/client/prefs/PreviousHashStorePrefsRepositoryTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import androidx.test.platform.app.InstrumentationRegistry
55
import kotlinx.coroutines.runBlocking
66
import network.xyo.client.lib.TestConstants
77
import network.xyo.client.account.Account
8-
import network.xyo.client.account.hexStringToByteArray
8+
import network.xyo.client.lib.hexStringToByteArray
99
import network.xyo.client.datastore.previous_hash_store.PreviousHashStorePrefsRepository
1010
import org.junit.Before
1111
import org.junit.Test

sdk/src/androidTest/java/network/xyo/client/settings/XyoSdkTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
66
import kotlinx.coroutines.runBlocking
77
import network.xyo.client.payload.EventPayload
88
import network.xyo.client.witness.XyoPanel
9-
import network.xyo.client.account.model.AccountInstance
9+
import network.xyo.client.account.model.Account
1010
import org.junit.Before
1111
import org.junit.Test
1212
import org.junit.jupiter.api.Assertions.assertEquals
@@ -58,11 +58,11 @@ class XyoSdkTest {
5858
runBlocking {
5959
val instance = XyoSdk.getInstance(appContext)
6060
val account = instance.getAccount(appContext)
61-
assertInstanceOf<AccountInstance>(account)
61+
assertInstanceOf<Account>(account)
6262
}
6363
}
6464

65-
@OptIn(ExperimentalCoroutinesApi::class)
65+
@OptIn(ExperimentalCoroutinesApi::class, ExperimentalStdlibApi::class)
6666
@Test
6767
fun testValidChainOnInit() {
6868
runBlocking {
@@ -76,7 +76,7 @@ class XyoSdkTest {
7676
val bw = result.bw
7777

7878
val result2 = panel.reportAsyncQuery()
79-
assert(result2.bw.previous_hashes.contains(bw.dataHash()))
79+
assert(result2.bw.previous_hashes.contains(bw.dataHash().toHexString()))
8080
}
8181
}
8282
}

sdk/src/androidTest/java/network/xyo/client/witness/LocationWitnessTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,14 @@ class LocationWitnessTest {
5555
}
5656
}
5757

58-
@OptIn(ExperimentalCoroutinesApi::class)
58+
@OptIn(ExperimentalCoroutinesApi::class, ExperimentalStdlibApi::class)
5959
@Test
6060
fun testInsidePanel() {
6161
runBlocking {
6262
val panel = XyoPanel(appContext, Account.random(), arrayListOf(Pair("${TestConstants.nodeUrlBeta}/Archivist", null)), listOf(XyoLocationWitness()))
6363
val result = panel.reportAsyncQuery()
6464
result.payloads?.forEach{ payload ->
65-
val hash = payload.dataHash()
65+
val hash = payload.dataHash().toHexString()
6666
assert(result.bw.payload_hashes.contains(hash))
6767
}
6868
}

sdk/src/androidTest/java/network/xyo/client/witness/WitnessLocationHandlerTest.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import androidx.test.rule.GrantPermissionRule
99
import kotlinx.coroutines.runBlocking
1010
import network.xyo.client.lib.TestConstants
1111
import network.xyo.client.account.Account
12-
import network.xyo.client.boundwitness.BoundWitnessBody
12+
import network.xyo.client.boundwitness.BoundWitnessFields
1313
import network.xyo.client.boundwitness.BoundWitness
1414
import network.xyo.client.datastore.previous_hash_store.PreviousHashStorePrefsRepository
1515
import network.xyo.client.witness.types.WitnessResult
@@ -46,6 +46,7 @@ class WitnessLocationHandlerTest {
4646
private val apiDomainBeta = "${TestConstants.nodeUrlBeta}/Archivist"
4747
private val apiDomainLocal = "${TestConstants.nodeUrlLocal}/Archivist"
4848

49+
@OptIn(ExperimentalStdlibApi::class)
4950
@Test
5051
fun testObserve() {
5152
runBlocking {
@@ -54,7 +55,7 @@ class WitnessLocationHandlerTest {
5455
when (result1) {
5556
is WitnessResult.Success<Triple<BoundWitness?, Payload?, Payload?>> -> {
5657
firstBw = result1.data.first
57-
assertInstanceOf<BoundWitnessBody>(firstBw)
58+
assertInstanceOf<BoundWitnessFields>(firstBw)
5859
assertInstanceOf<LocationPayload>(result1.data.second)
5960
assertInstanceOf<LocationPayloadRaw>(result1.data.third)
6061
}
@@ -78,7 +79,7 @@ class WitnessLocationHandlerTest {
7879
}
7980
}
8081

81-
val firstBwHash = firstBw!!.dataHash()
82+
val firstBwHash = firstBw!!.dataHash().toHexString()
8283
assert(secondBw!!.previous_hashes.size == 1)
8384
assert(secondBw.previous_hashes.first() == firstBwHash)
8485
}

0 commit comments

Comments
 (0)