@@ -59,7 +59,6 @@ describe("model tests", function()
5959 assert .is .False (m :hasPolicies (" p" , " p" , rulesnotmatched ))
6060 end )
6161
62-
6362 it (" test addPolicy" , function ()
6463 local m = Model :new ()
6564 m :loadModel (basic_path )
@@ -72,6 +71,25 @@ describe("model tests", function()
7271 assert .is .True (m :hasPolicy (" p" , " p" , rule ))
7372 end )
7473
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+
7593 it (" test removePolicy" , function ()
7694 local m = Model :new ()
7795 m :loadModel (basic_path )
@@ -100,6 +118,16 @@ describe("model tests", function()
100118 assert .are .same (rules ,m :removePoliciesWithEffected (" p" , " p" , rules ))
101119 assert .is .False (m :hasPolicies (" p" , " p" , rules ))
102120 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 ]))
103131 end )
104132
105133 it (" test addRolePolicy" , function ()
0 commit comments