Skip to content

Commit

Permalink
test: preliminary cases for verification relationship serialization
Browse files Browse the repository at this point in the history
  • Loading branch information
cpatsonakis committed Sep 15, 2024
1 parent 39c96d2 commit fd2b5cf
Showing 1 changed file with 63 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package id.walt.did.serialize.verification.relationship

import id.walt.crypto.keys.jwk.JWKKey
import id.walt.did.dids.document.models.verification.method.VerificationMaterialType
import id.walt.did.dids.document.models.verification.method.VerificationMethod
import id.walt.did.dids.document.models.verification.method.VerificationMethodType
import id.walt.did.dids.document.models.verification.relationship.VerificationRelationship
import id.walt.did.utils.JsonCanonicalization
import kotlinx.coroutines.test.runTest
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import kotlin.test.Test
import kotlin.test.assertEquals


class VerificationRelationshipTest {

@Test
fun testVerificationRelationshipId() {
val verRel = VerificationRelationship.buildFromId(
id = "some-id"
)
val verRelJsonString = """"some-id""""
//encode
assertEquals(
expected = verRelJsonString,
actual = Json.encodeToString(verRel),
)
//decode
assertEquals(
expected = verRel,
actual = Json.decodeFromString(verRelJsonString),
)
}

@Test
fun testVerificationRelationshipMethod() = runTest {
val keyString = """{"alg":"EdDSA","crv":"Ed25519","kid":"151df6ec01714883b812f26f2d63e584","kty":"OKP","use":"sig","x":"qBDsYw3k62mUT8UmEx99Xz3yckiSRmTsL6aa21ZcAVM"}"""
val key = JWKKey.importJWK(keyString).getOrThrow()
val method = VerificationMethod(
id = "some-id",
type = VerificationMethodType.JsonWebKey2020,
controller = "some-controller",
material = Pair(VerificationMaterialType.PublicKeyJwk, key.exportJWKObject()),
)
val verRel = VerificationRelationship.buildFromVerificationMethod(
method,
)
val verRelJsonString = "{\"id\":\"some-id\",\"type\":\"JsonWebKey2020\",\"controller\":\"some-controller\",\"publicKeyJwk\":{\"alg\":\"EdDSA\",\"crv\":\"Ed25519\",\"kid\":\"151df6ec01714883b812f26f2d63e584\",\"kty\":\"OKP\",\"use\":\"sig\",\"x\":\"qBDsYw3k62mUT8UmEx99Xz3yckiSRmTsL6aa21ZcAVM\"}}"
val canonicalVerRelJsonString = JsonCanonicalization
.getCanonicalString("{\"id\":\"some-id\",\"type\":\"JsonWebKey2020\",\"controller\":\"some-controller\",\"publicKeyJwk\":{\"alg\":\"EdDSA\",\"crv\":\"Ed25519\",\"kid\":\"151df6ec01714883b812f26f2d63e584\",\"kty\":\"OKP\",\"use\":\"sig\",\"x\":\"qBDsYw3k62mUT8UmEx99Xz3yckiSRmTsL6aa21ZcAVM\"}}")
//encode
assertEquals(
expected = canonicalVerRelJsonString,
actual = JsonCanonicalization.getCanonicalString(Json.encodeToString(verRel)),
)
//decode
assertEquals(
expected = verRel,
actual = Json.decodeFromString<VerificationRelationship>(verRelJsonString)
)
}
}

0 comments on commit fd2b5cf

Please sign in to comment.