/* Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 0 - 2 0 2 1 , ĠSimp lex ion , ĠH ung ary Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ package Ġz ak ad ab ar . core . authorize Ċ Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . After Class Ċ import Ġorg . junit . BeforeClass Ċ import Ġorg . junit . Test Ċ import Ġz ak ad ab ar . core . business . Entity Business Logic Base Ċ import Ġz ak ad ab ar . core . persistence . Empty Persistence Api Ċ import Ġz ak ad ab ar . core . server . server Ċ import Ġz ak ad ab ar . core . testing . Test Companion Base Ċ import Ġz ak ad ab ar . core . data . Empty Entity Bo Ċ import Ġz ak ad ab ar . core . data . EntityId Ċ import Ġz ak ad ab ar . core . exception . Forbidden Ċ import Ġkotlin . test . assert Fails With Ċ Ċ object ĠRoles Ġ: ĠApp Roles Base () Ġ{ ĊĠĠĠ Ġval Ġtest Role Ġby Ġ" test - role " Ċ } Ċ Ċ internal Ġobject ĠWith Default Ġ: ĠEntity Business Logic Base < Empty Entity Bo >( Empty Entity Bo :: class ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġpa Ġ= ĠEmpty Persistence Api < Empty Entity Bo >() ĊĠĠĠ Ġoverride Ġval Ġnamespace Ġ= Ġ" not - used " ĊĠĠĠ Ġoverride Ġval Ġauthor izer Ġby Ġprovider () Ċ } Ċ Ċ internal Ġobject ĠWith Query Ġ: ĠEntity Business Logic Base < Empty Entity Bo >( Empty Entity Bo :: class ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġpa Ġ= ĠEmpty Persistence Api < Empty Entity Bo >() ĊĠĠĠ Ġoverride Ġval Ġnamespace Ġ= Ġ" not - used " ĊĠĠĠ Ġoverride Ġval Ġauthor izer Ġby Ġprovider Ġ{ ĊĠĠĠĠĠĠĠ Ġthis Ġas ĠSimple Role Author izer ĊĠĠĠĠĠĠĠ Ġquery ( Test Query :: class , ĠLOG GED _ IN ) ĊĠĠĠĠĠĠĠ Ġaction ( Test Action :: class , ĠRoles . test Role ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSimple Role Author izer Provider Test Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠTest Companion Base ( ĊĠĠĠĠĠĠĠ Ġall Public Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġroles Ġ= ĠRoles ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd Modules () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ+= ĠSimple Role Author izer Provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Reads Ġ= ĠLOG GED _ IN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall Writes Ġ= ĠRoles . test Role ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ+= ĠWith Default ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ+= ĠWith Query ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ BeforeClass ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġsetup () Ġ= Ġsuper . setup () ĊĊĠĠĠĠĠĠĠ Ġ@ After Class ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġteardown () Ġ= Ġsuper . teardown () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Provider () Ġ= Ġrun Blocking Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtest RoleId Ġ= Ġserver . first < Role Bl Provider >(). get ByName ( Roles . test Role ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsite Member Ġ= ĠExecutor ( EntityId ( 1 ), Ġfalse , ĠlistOf ( test RoleId ), ĠlistOf ( Roles . test Role )) ĊĠĠĠĠĠĠĠ Ġval Ġanonymous Ġ= ĠExecutor ( EntityId ( 2 ), Ġtrue , Ġempty List (), Ġempty List ()) ĊĊĠĠĠĠĠĠĠ ĠWith Default . author izer . authorize Read ( site Member , ĠEntity Id ( 1 )) ĊĠĠĠĠĠĠĠ ĠWith Default . author izer . authorize Update ( site Member , ĠEmpty Entity Bo ) ĊĊĠĠĠĠĠĠĠ Ġassert Fails With ( Forbidden :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWith Default . author izer . authorize Read ( anonymous , ĠEntity Id ( 1 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert Fails With ( Forbidden :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWith Default . author izer . authorize Update ( anonymous , ĠEmpty Entity Bo ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠWith Query . author izer . authorize Query ( site Member , ĠTest Query ()) ĊĠĠĠĠĠĠĠ ĠWith Query . author izer . authorize Action ( site Member , ĠTest Action ()) ĊĊĠĠĠĠĠĠĠ Ġassert Fails With ( Forbidden :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWith Query . author izer . authorize Query ( anonymous , ĠTest Query ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġassert Fails With ( Forbidden :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWith Query . author izer . authorize Action ( anonymous , ĠTest Action ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠ Ġ} Ċ Ċ }