22import pytest
33
44from acapy_agent .resolver .did_resolver import DIDResolver
5+ from ...resolver .tests .test_did_resolver import MockResolver
56
67from ...did .did_key import DIDKey
78from ...utils .testing import create_test_profile
@@ -17,6 +18,40 @@ class TestDefaultVerificationKeyStrategy(IsolatedAsyncioTestCase):
1718 async def asyncSetUp (self ) -> None :
1819 self .profile = await create_test_profile ()
1920 resolver = DIDResolver ()
21+ resolver .register_resolver (
22+ MockResolver (
23+ ["example" ],
24+ resolved = {
25+ "@context" : [
26+ "https://www.w3.org/ns/did/v1" ,
27+ "https://w3id.org/security/multikey/v1" ,
28+ ],
29+ "id" : "did:example:123" ,
30+ "verificationMethod" : [
31+ {
32+ "id" : "did:example:123#key-1" ,
33+ "type" : "Multikey" ,
34+ "controller" : "did:example:123" ,
35+ "publicKeyMultibase" : "z6MkjYXizfaAXTriV3h2Vc9uxJ9AMQpfG7mE1WKMnn1KJvFE" ,
36+ },
37+ {
38+ "id" : "did:example:123#key-2" ,
39+ "type" : "Multikey" ,
40+ "controller" : "did:example:123" ,
41+ "publicKeyMultibase" : "z6MkjYXizfaAXTriV3h2Vc9uxJ9AMQpfG7mE1WKMnn1KJvFE" ,
42+ },
43+ {
44+ "id" : "did:example:123#key-3" ,
45+ "type" : "Ed25519VerificationKey2018" ,
46+ "controller" : "did:example:123" ,
47+ "publicKeyBase58" : "66GgQRKjBvNFNYrKp3C57CbAXqYorEWsKVQRxW3JPhTr" ,
48+ },
49+ ],
50+ "authentication" : ["did:example:123#key-1" ],
51+ "assertionMethod" : ["did:example:123#key-2" , "did:example:123#key-3" ],
52+ },
53+ )
54+ )
2055 self .profile .context .injector .bind_instance (DIDResolver , resolver )
2156
2257 async def test_with_did_sov (self ):
@@ -33,6 +68,27 @@ async def test_with_did_key(self):
3368 == DIDKey .from_did (TEST_DID_KEY ).key_id
3469 )
3570
71+ async def test_with_did_for_assertion (self ):
72+ strategy = DefaultVerificationKeyStrategy ()
73+ assert (
74+ await strategy .get_verification_method_id_for_did (
75+ "did:example:123" ,
76+ self .profile ,
77+ proof_type = "Ed25519Signature2020" ,
78+ proof_purpose = "assertionMethod" ,
79+ )
80+ == "did:example:123#key-2"
81+ )
82+ assert (
83+ await strategy .get_verification_method_id_for_did (
84+ "did:example:123" ,
85+ self .profile ,
86+ proof_type = "Ed25519Signature2018" ,
87+ proof_purpose = "assertionMethod" ,
88+ )
89+ == "did:example:123#key-3"
90+ )
91+
3692 async def test_unsupported_did_method (self ):
3793 strategy = DefaultVerificationKeyStrategy ()
3894 with pytest .raises (Exception ):
0 commit comments