@@ -115,6 +115,7 @@ async def setUp(self):
115115 self .ledger .txn_endorse = async_mock .CoroutineMock (
116116 return_value = self .test_endorsed_message
117117 )
118+ self .ledger .register_nym = async_mock .CoroutineMock (return_value = (True , {}))
118119
119120 self .context = AdminRequestContext .test_context ()
120121 self .profile = self .context .profile
@@ -235,6 +236,48 @@ async def test_create_request(self):
235236 transaction_request .messages_attach == transaction_record .messages_attach [0 ]
236237 )
237238
239+ async def test_create_request_author_did (self ):
240+ transaction_record = await self .manager .create_record (
241+ messages_attach = self .test_messages_attach ,
242+ connection_id = self .test_connection_id ,
243+ )
244+
245+ with async_mock .patch .object (
246+ TransactionRecord , "save" , autospec = True
247+ ) as save_record :
248+ (
249+ transaction_record ,
250+ transaction_request ,
251+ ) = await self .manager .create_request (
252+ transaction_record ,
253+ expires_time = self .test_expires_time ,
254+ author_goal_code = TransactionRecord .REGISTER_PUBLIC_DID ,
255+ signer_goal_code = TransactionRecord .WRITE_DID_TRANSACTION ,
256+ )
257+ save_record .assert_called_once ()
258+
259+ assert transaction_record ._type == TransactionRecord .SIGNATURE_REQUEST
260+ assert transaction_record .signature_request [0 ] == {
261+ "context" : TransactionRecord .SIGNATURE_CONTEXT ,
262+ "method" : TransactionRecord .ADD_SIGNATURE ,
263+ "signature_type" : TransactionRecord .SIGNATURE_TYPE ,
264+ "signer_goal_code" : TransactionRecord .WRITE_DID_TRANSACTION ,
265+ "author_goal_code" : TransactionRecord .REGISTER_PUBLIC_DID ,
266+ }
267+ assert transaction_record .state == TransactionRecord .STATE_REQUEST_SENT
268+ assert transaction_record .connection_id == self .test_connection_id
269+ assert transaction_record .timing ["expires_time" ] == self .test_expires_time
270+
271+ assert transaction_request .transaction_id == transaction_record ._id
272+ assert (
273+ transaction_request .signature_request
274+ == transaction_record .signature_request [0 ]
275+ )
276+ assert transaction_request .timing == transaction_record .timing
277+ assert (
278+ transaction_request .messages_attach == transaction_record .messages_attach [0 ]
279+ )
280+
238281 async def test_recieve_request (self ):
239282 mock_request = async_mock .MagicMock ()
240283 mock_request .transaction_id = self .test_author_transaction_id
@@ -340,6 +383,55 @@ async def test_create_endorse_response(self):
340383 )
341384 assert endorsed_transaction_response .endorser_did == self .test_endorser_did
342385
386+ async def test_create_endorse_response_author_did (self ):
387+ transaction_record = await self .manager .create_record (
388+ messages_attach = self .test_messages_attach ,
389+ connection_id = self .test_connection_id ,
390+ )
391+
392+ with async_mock .patch .object (
393+ TransactionRecord , "save" , autospec = True
394+ ) as save_record :
395+ (
396+ transaction_record ,
397+ transaction_request ,
398+ ) = await self .manager .create_request (
399+ transaction_record ,
400+ expires_time = self .test_expires_time ,
401+ author_goal_code = TransactionRecord .REGISTER_PUBLIC_DID ,
402+ signer_goal_code = TransactionRecord .WRITE_DID_TRANSACTION ,
403+ )
404+ save_record .assert_called_once ()
405+
406+ transaction_record .state = TransactionRecord .STATE_REQUEST_RECEIVED
407+ transaction_record .thread_id = self .test_author_transaction_id
408+ transaction_record .messages_attach [0 ]["data" ]["json" ] = json .dumps (
409+ {
410+ "did" : "test" ,
411+ "verkey" : "test" ,
412+ "alias" : "test" ,
413+ "role" : "" ,
414+ }
415+ )
416+
417+ with async_mock .patch .object (
418+ TransactionRecord , "save" , autospec = True
419+ ) as save_record :
420+ (
421+ transaction_record ,
422+ endorsed_transaction_response ,
423+ ) = await self .manager .create_endorse_response (
424+ transaction_record ,
425+ state = TransactionRecord .STATE_TRANSACTION_ENDORSED ,
426+ )
427+ save_record .assert_called_once ()
428+
429+ assert transaction_record ._type == TransactionRecord .SIGNATURE_RESPONSE
430+ assert (
431+ transaction_record .messages_attach [0 ]["data" ]["json" ]
432+ == '{"result": {"txn": {"type": "1", "data": {"dest": "test"}}}, "meta_data": {"did": "test", "verkey": "test", "alias": "test", "role": ""}}'
433+ )
434+
343435 async def test_receive_endorse_response (self ):
344436 transaction_record = await self .manager .create_record (
345437 messages_attach = self .test_messages_attach ,
0 commit comments