Skip to content

Commit 77d77e9

Browse files
Unit tests
Signed-off-by: George J Padayatti <[email protected]>
1 parent 2d07b4c commit 77d77e9

File tree

4 files changed

+477
-0
lines changed

4 files changed

+477
-0
lines changed

mydata_did/v1_0/models/exchange_records/tests/__init__.py

Whitespace-only changes.
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
import typing
2+
3+
from asynctest import TestCase as AsyncTestCase
4+
from asynctest import mock as async_mock
5+
6+
from aries_cloudagent.storage.base import BaseStorage
7+
from aries_cloudagent.storage.basic import BasicStorage
8+
from aries_cloudagent.wallet.base import BaseWallet
9+
from aries_cloudagent.wallet.basic import BasicWallet
10+
from aries_cloudagent.config.injection_context import InjectionContext
11+
12+
from ....manager import ADAManager
13+
from ...data_agreement_model import DataAgreementPersonalData
14+
from ..data_agreement_personal_data_record import DataAgreementPersonalDataRecord
15+
16+
class TestDataAgreementPersonalDataRecord(AsyncTestCase):
17+
18+
def setUp(self) -> None:
19+
20+
self.storage = BasicStorage()
21+
self.wallet = BasicWallet()
22+
23+
24+
self.context = InjectionContext(enforce_typing=False)
25+
self.context.injector.bind_instance(
26+
BaseStorage, self.storage
27+
)
28+
self.context.injector.bind_instance(
29+
BaseWallet, self.wallet
30+
)
31+
32+
self.manager = ADAManager(self.context)
33+
34+
async def test_personal_data_record_without_restrictions(self):
35+
da_personal_data_1 = DataAgreementPersonalDataRecord(
36+
attribute_name="First Name",
37+
attribute_sensitive=True,
38+
attribute_category="Biographic",
39+
attribute_description="First name of the person"
40+
)
41+
42+
da_personal_data_2 = DataAgreementPersonalDataRecord(
43+
attribute_name="Last Name",
44+
attribute_sensitive=True,
45+
attribute_category="Biographic",
46+
attribute_description="Last name of the person"
47+
)
48+
49+
await da_personal_data_1.save(self.context)
50+
await da_personal_data_2.save(self.context)
51+
52+
da_personal_data_records: typing.List[DataAgreementPersonalDataRecord] = await DataAgreementPersonalDataRecord.query(
53+
self.context,
54+
{}
55+
)
56+
57+
self.assertEqual(len(da_personal_data_records), 2)
58+
59+
async def test_personal_data_record_with_restrictions(self):
60+
da_personal_data_1 = DataAgreementPersonalDataRecord(
61+
attribute_name="First Name",
62+
attribute_sensitive=True,
63+
attribute_category="Biographic",
64+
attribute_description="First name of the person",
65+
restrictions=[
66+
{
67+
"schema_id": "issuer_did:name:1.0.0",
68+
"cred_def_id": "issuer_did:3:CL:19:tag",
69+
}
70+
]
71+
)
72+
73+
await da_personal_data_1.save(self.context)
74+
75+
da_personal_data_records: typing.List[DataAgreementPersonalDataRecord] = await DataAgreementPersonalDataRecord.query(
76+
self.context,
77+
{}
78+
)
79+
80+
self.assertEqual(len(da_personal_data_records), 1)
81+
82+
da_personal_data_2 = DataAgreementPersonalDataRecord(
83+
attribute_name="Last Name",
84+
attribute_sensitive=True,
85+
attribute_category="Biographic",
86+
attribute_description="Last name of the person",
87+
restrictions=[]
88+
)
89+
90+
await da_personal_data_2.save(self.context)
91+
92+
da_personal_data_records: typing.List[DataAgreementPersonalDataRecord] = await DataAgreementPersonalDataRecord.query(
93+
self.context,
94+
{}
95+
)
96+
97+
self.assertEqual(len(da_personal_data_records), 2)
98+
99+
da_personal_data_3 = DataAgreementPersonalDataRecord(
100+
attribute_name="Age",
101+
attribute_sensitive=True,
102+
attribute_category="Biographic",
103+
attribute_description="Age of the person",
104+
restrictions=[{}]
105+
)
106+
107+
await da_personal_data_3.save(self.context)
108+
109+
da_personal_data_records: typing.List[DataAgreementPersonalDataRecord] = await DataAgreementPersonalDataRecord.query(
110+
self.context,
111+
{}
112+
)
113+
114+
self.assertEqual(len(da_personal_data_records), 3)
115+
116+
async def test_personal_data_record_serialize(self):
117+
da_personal_data_1 = DataAgreementPersonalDataRecord(
118+
attribute_name="First Name",
119+
attribute_sensitive=True,
120+
attribute_category="Biographic",
121+
attribute_description="First name of the person",
122+
restrictions=[
123+
{
124+
"schema_id": "issuer_did:name:1.0.0",
125+
"cred_def_id": "issuer_did:3:CL:19:tag",
126+
}
127+
]
128+
)
129+
130+
await da_personal_data_1.save(self.context)
131+
132+
self.assertTrue(da_personal_data_1.serialize().get("restrictions") == [
133+
{
134+
"schema_id": "issuer_did:name:1.0.0",
135+
"cred_def_id": "issuer_did:3:CL:19:tag",
136+
}
137+
])
138+
139+
da_personal_data_2 = DataAgreementPersonalDataRecord(
140+
attribute_name="Last Name",
141+
attribute_sensitive=True,
142+
attribute_category="Biographic",
143+
attribute_description="Last name of the person",
144+
restrictions=[
145+
{
146+
"attrib": "value",
147+
}
148+
]
149+
)
150+
151+
await da_personal_data_2.save(self.context)
152+
153+
self.assertTrue(da_personal_data_2.serialize().get("restrictions") == [{}])
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
import typing
2+
3+
from asynctest import TestCase as AsyncTestCase
4+
from aries_cloudagent.storage.base import BaseStorage
5+
from aries_cloudagent.storage.basic import BasicStorage
6+
from aries_cloudagent.wallet.base import BaseWallet
7+
from aries_cloudagent.wallet.basic import BasicWallet
8+
from aries_cloudagent.config.injection_context import InjectionContext
9+
10+
from ....manager import ADAManager
11+
12+
from ..data_agreement_record import DataAgreementV1Record
13+
14+
15+
class TestDataAgreementV1Record(AsyncTestCase):
16+
def setUp(self) -> None:
17+
18+
self.storage = BasicStorage()
19+
self.wallet = BasicWallet()
20+
21+
22+
self.context = InjectionContext(enforce_typing=False)
23+
self.context.injector.bind_instance(
24+
BaseStorage, self.storage
25+
)
26+
self.context.injector.bind_instance(
27+
BaseWallet, self.wallet
28+
)
29+
30+
self.manager = ADAManager(self.context)
31+
32+
self.data_agreement_v1_record = DataAgreementV1Record(
33+
data_agreement_id="123",
34+
state=DataAgreementV1Record.STATE_PREPARATION,
35+
method_of_use=DataAgreementV1Record.METHOD_OF_USE_DATA_SOURCE,
36+
data_agreement={},
37+
publish_flag="false",
38+
delete_flag="true",
39+
schema_id="schema_id",
40+
cred_def_id="cred_def_id",
41+
data_agreement_proof_presentation_request={},
42+
)
43+
44+
def test_delete_flag_property(self):
45+
assert self.data_agreement_v1_record._delete_flag == True
46+
47+
def test_publish_flag_property(self):
48+
assert self.data_agreement_v1_record._publish_flag == False
49+
50+
def test_is_deleted_property(self):
51+
assert self.data_agreement_v1_record.is_deleted == True
52+
53+
def test_is_published_property(self):
54+
self.data_agreement_v1_record._delete_flag = False
55+
self.data_agreement_v1_record._publish_flag = True
56+
57+
assert self.data_agreement_v1_record.is_published == True
58+
59+
async def test_save_data_agreement_v1_record (self):
60+
61+
assert self.data_agreement_v1_record.data_agreement_record_id == None
62+
63+
await self.data_agreement_v1_record.save(self.context)
64+
65+
da_v1_records: typing.List[DataAgreementV1Record] = await self.data_agreement_v1_record.query(
66+
self.context,
67+
)
68+
69+
assert len(da_v1_records) == 1

0 commit comments

Comments
 (0)