/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠGame k ins Ġcontributors Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat ĊĊ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 ĊĊ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . game k ins . util Ċ Ċ import Ġh udson . model . Job Ċ import Ġh udson . model . User Ċ import Ġh udson . security . H udson Private Security Realm . Details Ċ import Ġh udson . util . Form Validation Ċ import Ġorg . game k ins . Game User Property Descriptor Ċ import Ġio . kot est . core . spec . style . Annotation Spec Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Class Ċ import Ġio . mock k . mock k Static Ċ import Ġio . mock k . un mock k All Ċ Ċ class ĠProperty Util Test Ġ: ĠAnnotation Spec () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġjob 1 Ġ= Ġmock k Class ( Job :: class ) ĊĠĠĠ Ġprivate Ġval Ġjob 2 Ġ= Ġmock k Class ( Job :: class ) ĊĠĠĠ Ġprivate Ġval Ġproperty 1 Ġ= Ġmock k Class ( org . game k ins . property . Game Job Property :: class ) ĊĠĠĠ Ġprivate Ġval Ġproperty 2 Ġ= Ġmock k Class ( org . game k ins . property . Game Job Property :: class ) ĊĠĠĠ Ġprivate Ġval Ġuser 1 Ġ= Ġmock k Class ( User :: class ) ĊĠĠĠ Ġprivate Ġval Ġuser 2 Ġ= Ġmock k Class ( User :: class ) ĊĠĠĠ Ġprivate Ġval Ġuser 3 Ġ= Ġmock k Class ( User :: class ) ĊĠĠĠ Ġprivate Ġval Ġuser Property 1 Ġ= Ġmock k Class ( org . game k ins . Game User Property :: class ) ĊĠĠĠ Ġprivate Ġval Ġdetails Property Ġ= Ġmock k Class ( Details :: class ) ĊĠĠĠ Ġprivate Ġval Ġteam 1 Ġ= Ġ" Team 1 " ĊĠĠĠ Ġprivate Ġval Ġteam 2 Ġ= Ġ" Team 2 " ĊĠĠĠ Ġprivate Ġval ĠuserName 1 Ġ= Ġ" User 1 " ĊĠĠĠ Ġprivate Ġval ĠuserName 2 Ġ= Ġ" User 2 " ĊĠĠĠ Ġprivate Ġval ĠuserName 3 Ġ= Ġ" User 3 " ĊĠĠĠ Ġprivate Ġval ĠprojectName 1 Ġ= Ġ" Project 1 " ĊĠĠĠ Ġprivate Ġval ĠprojectName 2 Ġ= Ġ" Project 2 " ĊĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġfun Ġinit All () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġjob 1 . fullName Ġ} Ġreturns ĠprojectName 1 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġjob 2 . fullName Ġ} Ġreturns ĠprojectName 2 ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty 1 . add Team ( any ()) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty 2 . add Team ( any ()) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty 1 . get Teams () Ġ} Ġreturns Ġarray ListOf ( team 1 , Ġteam 2 ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty 2 . get Teams () Ġ} Ġreturns Ġarray ListOf ( team 1 ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty 1 . remove Team ( any ()) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty 2 . remove Team ( any ()) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty 1 . reset Statistics ( any ()) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġproperty 2 . reset Statistics ( any ()) Ġ} Ġreturns ĠUnit ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 1 . fullName Ġ} Ġreturns ĠuserName 1 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 2 . fullName Ġ} Ġreturns ĠuserName 2 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 3 . fullName Ġ} Ġreturns ĠuserName 3 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 1 . getProperty ( org . game k ins . Game User Property :: class . java ) Ġ} Ġreturns Ġuser Property 1 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 2 . getProperty ( org . game k ins . Game User Property :: class . java ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 3 . getProperty ( org . game k ins . Game User Property :: class . java ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 1 . getProperty ( Details :: class . java ) Ġ} Ġreturns Ġdetails Property ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 2 . getProperty ( Details :: class . java ) Ġ} Ġreturns Ġdetails Property ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 3 . getProperty ( Details :: class . java ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 1 . save () Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 1 . properties Ġ} Ġreturns Ġmap Of ( mock k Class ( Details . Descriptor Impl :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġmock k Class ( Details :: class )) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 2 . properties Ġ} Ġreturns Ġmap Of ( mock k Class ( Details . Descriptor Impl :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġmock k Class ( Details :: class )) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 3 . properties Ġ} Ġreturns Ġmap Of ( mock k Class ( Details . Descriptor Impl :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġmock k Class ( Details :: class )) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Property 1 . get Team Name ( projectName 2 ) Ġ} Ġreturns Ġteam 1 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Property 1 . is Part icip ating ( projectName 1 ) Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Property 1 . is Part icip ating ( projectName 2 ) Ġ} Ġreturns Ġtrue ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Property 1 . is Part icip ating ( projectName 1 , Ġteam 1 ) Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Property 1 . is Part icip ating ( projectName 1 , Ġteam 2 ) Ġ} Ġreturns Ġtrue ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Property 1 . is Part icip ating ( projectName 2 , Ġteam 1 ) Ġ} Ġreturns Ġfalse ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Property 1 . set Part icip ating ( any (), Ġany ()) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Property 1 . remove Part icipation ( any ()) Ġ} Ġreturns ĠUnit ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser Property 1 . reset ( any ()) Ġ} Ġreturns ĠUnit ĊĊĠĠĠĠĠĠĠ Ġmock k Static ( User :: class ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠUser . getAll () Ġ} Ġreturns ĠlistOf ( user 1 , Ġuser 2 , Ġuser 3 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After All ĊĠĠĠ Ġfun Ġclean Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġun mock k All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Add Team () Ġ{ ĊĠĠĠĠĠĠĠ ĠProperty Util . do Add Team ( property 2 , Ġ" Ġ"). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Add Team ( null , Ġteam 1 ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Add Team ( property 2 , Ġteam 1 ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Add Team ( property 2 , Ġteam 2 ). kind ĠshouldBe ĠForm Validation . Kind . OK ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Add User To Team () Ġ{ ĊĠĠĠĠĠĠĠ ĠProperty Util . do Add User To Team ( job 2 , Ġ" Ġ", Ġ""). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Add User To Team ( null , Ġteam 1 , Ġ""). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Add User To Team ( job 2 , Ġteam 1 , ĠuserName 3 ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Add User To Team ( job 2 , Ġteam 1 , ĠuserName 2 ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Add User To Team ( job 2 , Ġteam 1 , ĠuserName 1 ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Add User To Team ( job 1 , Ġteam 1 , ĠuserName 1 ). kind ĠshouldBe ĠForm Validation . Kind . OK ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Delete Team () Ġ{ ĊĠĠĠĠĠĠĠ ĠProperty Util . do Delete Team ( projectName 1 , Ġproperty 2 , Ġ" Ġ"). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Delete Team ( projectName 1 , Ġnull , Ġteam 1 ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Delete Team ( projectName 1 , Ġproperty 2 , Ġteam 1 ). kind ĠshouldBe ĠForm Validation . Kind . OK ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Delete Team ( projectName 1 , Ġproperty 1 , Ġteam 2 ). kind ĠshouldBe ĠForm Validation . Kind . OK ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Fill Teams Box Items () Ġ{ ĊĠĠĠĠĠĠĠ ĠProperty Util . do Fill Teams Box Items ( property 1 ). size ĠshouldBe Ġ 2 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Fill Users Box Items () Ġ{ ĊĠĠĠĠĠĠĠ ĠProperty Util . do Fill Users Box Items ( projectName 1 ). size ĠshouldBe Ġ 1 ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Fill Users Box Items ( projectName 2 ). size ĠshouldBe Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Remove User From Team () Ġ{ ĊĠĠĠĠĠĠĠ ĠProperty Util . do Remove User From Team ( job 2 , Ġ" Ġ", Ġ""). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Remove User From Team ( null , Ġteam 1 , Ġ""). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Remove User From Team ( job 2 , Ġteam 1 , ĠuserName 3 ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Remove User From Team ( job 2 , Ġteam 1 , ĠuserName 2 ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Remove User From Team ( job 2 , Ġteam 1 , ĠuserName 1 ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Remove User From Team ( job 1 , Ġteam 2 , ĠuserName 1 ). kind ĠshouldBe ĠForm Validation . Kind . OK ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Reset () Ġ{ ĊĠĠĠĠĠĠĠ ĠProperty Util . do Reset ( null , Ġnull ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Reset ( job 1 , Ġnull ). kind ĠshouldBe ĠForm Validation . Kind . ERROR ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Reset ( job 1 , Ġproperty 1 ). kind ĠshouldBe ĠForm Validation . Kind . OK ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Reset ( job 2 , Ġproperty 2 ). kind ĠshouldBe ĠForm Validation . Kind . OK ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo Show Team Membership s () Ġ{ ĊĠĠĠĠĠĠĠ ĠProperty Util . do Show Team Membership s ( job 1 , Ġproperty 1 ) ĠshouldBe Ġ"{\" Team 2 \": [], \" Team 1 \": [] }" ĊĊĠĠĠĠĠĠĠ ĠProperty Util . do Show Team Membership s ( job 2 , Ġproperty 2 ) ĠshouldBe Ġ"{\" Team 1 \":[\" User 1 \"] }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġreal User () Ġ{ ĊĠĠĠĠĠĠĠ ĠProperty Util . real User ( user 1 ) ĠshouldBe Ġtrue ĊĊĠĠĠĠĠĠĠ Ġval Ġuser 4 Ġ= Ġmock k Class ( User :: class ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġuser 4 . properties Ġ} Ġreturns Ġmap Of ( mock k Class ( Game User Property Descriptor :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Ġmock k Class ( org . game k ins . Game User Property :: class )) ĊĠĠĠĠĠĠĠ ĠProperty Util . real User ( user 4 ) ĠshouldBe Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Does Ġnot Ġmake Ġsense Ġto Ġtest ĠJ aco co Util . re configure (), Ġsince Ġa Ġreal ĠJenkins Ġwould Ġbe Ġneeded Ġfor Ġit . Ċ }