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" ) == [{}])
0 commit comments