@@ -59,7 +59,6 @@ describe("model tests", function()
59
59
assert .is .False (m :hasPolicies (" p" , " p" , rulesnotmatched ))
60
60
end )
61
61
62
-
63
62
it (" test addPolicy" , function ()
64
63
local m = Model :new ()
65
64
m :loadModel (basic_path )
@@ -72,6 +71,25 @@ describe("model tests", function()
72
71
assert .is .True (m :hasPolicy (" p" , " p" , rule ))
73
72
end )
74
73
74
+ it (" test addPoliciesWithAffected" , function ()
75
+ local m = Model :new ()
76
+ m :loadModel (basic_path )
77
+
78
+ local rules = {{' admin' , ' domain1' , ' data1' , ' read' },{' admin' , ' domain2' , ' data2' , ' read' },{' admin' , ' domain1' , ' data1' , ' write' }}
79
+ assert .is .False (m :hasPolicies (" p" , " p" , rules ))
80
+
81
+ assert .are .same (rules ,m :addPoliciesWithAffected (" p" , " p" , rules ))
82
+ assert .is .True (m :hasPolicies (" p" , " p" , rules ))
83
+
84
+ local rules1 = {{' Alice' , ' domain1' , ' data1' , ' read' },{' Bob' , ' domain2' , ' data2' , ' read' },{' admin' , ' domain1' , ' data1' , ' write' }}
85
+ assert .is .True (m :hasPolicies (" p" , " p" , rules1 ))
86
+
87
+ assert .are .same ({{' Alice' , ' domain1' , ' data1' , ' read' },{' Bob' , ' domain2' , ' data2' , ' read' }},m :addPoliciesWithAffected (" p" , " p" , rules1 ))
88
+ assert .is .True (m :hasPolicy (" p" , " p" , {' Alice' , ' domain1' , ' data1' , ' read' }))
89
+ assert .is .True (m :hasPolicy (" p" , " p" , {' Bob' , ' domain2' , ' data2' , ' read' }))
90
+
91
+ end )
92
+
75
93
it (" test removePolicy" , function ()
76
94
local m = Model :new ()
77
95
m :loadModel (basic_path )
@@ -100,6 +118,16 @@ describe("model tests", function()
100
118
assert .are .same (rules ,m :removePoliciesWithEffected (" p" , " p" , rules ))
101
119
assert .is .False (m :hasPolicies (" p" , " p" , rules ))
102
120
assert .is .False (m :removePolicy (" p" , " p" , rules [1 ]))
121
+
122
+ m :addPolicies (" p" , " p" , rules )
123
+ assert .is .True (m :hasPolicies (" p" , " p" , rules ))
124
+
125
+ local removeList = {{' Alice' , ' domain1' , ' data1' , ' read' },{' admin' , ' domain2' , ' data2' , ' read' },{' admin' , ' domain1' , ' data1' , ' write' }}
126
+ assert .is .False (m :hasPolicy (" p" , " p" , {' Alice' , ' domain1' , ' data1' , ' read' }))
127
+
128
+ assert .are .same ({{' admin' , ' domain2' , ' data2' , ' read' },{' admin' , ' domain1' , ' data1' , ' write' }},m :removePoliciesWithEffected (" p" , " p" , removeList ))
129
+ assert .is .False (m :hasPolicy (" p" , " p" , removeList [2 ]))
130
+ assert .is .False (m :removePolicy (" p" , " p" , removeList [3 ]))
103
131
end )
104
132
105
133
it (" test addRolePolicy" , function ()
0 commit comments