Skip to content

Commit eb23ac0

Browse files
committed
A couple of unit tests
Signed-off-by: Ian Costanzo <ian@anon-solutions.ca>
1 parent c2ec492 commit eb23ac0

2 files changed

Lines changed: 136 additions & 0 deletions

File tree

aries_cloudagent/ledger/tests/test_routes.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,50 @@ async def test_register_nym_create_transaction_for_endorser(self):
359359
{"success": True, "txn": {"signed_txn": {"...": "..."}}}
360360
)
361361

362+
async def test_register_nym_create_transaction_for_endorser_no_public_did(self):
363+
self.request.query = {
364+
"did": "a_test_did",
365+
"verkey": "a_test_verkey",
366+
"alias": "did_alias",
367+
"role": "reset",
368+
"create_transaction_for_endorser": "true",
369+
"conn_id": "dummy",
370+
}
371+
self.profile.context.settings["endorser.author"] = True
372+
373+
with async_mock.patch.object(
374+
ConnRecord, "retrieve_by_id", async_mock.AsyncMock()
375+
) as mock_conn_rec_retrieve, async_mock.patch.object(
376+
test_module, "TransactionManager", async_mock.MagicMock()
377+
) as mock_txn_mgr, async_mock.patch.object(
378+
test_module.web, "json_response", async_mock.MagicMock()
379+
) as mock_response:
380+
mock_txn_mgr.return_value = async_mock.MagicMock(
381+
create_record=async_mock.AsyncMock(
382+
return_value=async_mock.MagicMock(
383+
serialize=async_mock.MagicMock(return_value={"...": "..."})
384+
)
385+
)
386+
)
387+
mock_conn_rec_retrieve.return_value = async_mock.MagicMock(
388+
metadata_get=async_mock.AsyncMock(
389+
return_value={
390+
"endorser_did": ("did"),
391+
"endorser_name": ("name"),
392+
}
393+
)
394+
)
395+
self.ledger.register_nym.return_value: Tuple[bool, dict] = (
396+
True,
397+
{"signed_txn": {"...": "..."}},
398+
)
399+
400+
result = await test_module.register_ledger_nym(self.request)
401+
assert result == mock_response.return_value
402+
mock_response.assert_called_once_with(
403+
{"success": True, "txn": {"signed_txn": {"...": "..."}}}
404+
)
405+
362406
async def test_register_nym_create_transaction_for_endorser_storage_x(self):
363407
self.request.query = {
364408
"did": "a_test_did",

aries_cloudagent/protocols/endorse_transaction/v1_0/tests/test_manager.py

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)