package Ġde . z al ando . z ally . rule Ċ Ċ import Ġde . z al ando . z ally . ap ire view . RestApi Base Test Ċ import Ġde . z al ando . z ally . util . ErrorResponse Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . http . HttpStatus . BAD _ REQUEST Ċ import Ġorg . springframework . test . context . Test Property Source Ċ Ċ @ Suppress (" Un document ed Public Class ") Ċ @ Test Property Source ( properties Ġ= Ġ[" z ally . ignore Rules = Test Check Always Report 3 Must Vi olations "]) Ċ class ĠRest Supported Rules Test Ġ: ĠRest Api Base Test () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġignored Rules Ġ= ĠlistOf (" Test Check Always Report 3 Must Vi olations ") ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġimplemented Rules : ĠRules Manager ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Rules Count () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( supported Rules . size ). isEqualTo ( implemented Rules . size ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Rules Ordered () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrules Ġ= Ġsupported Rules ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 1 Ġuntil Ġrules . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprev Ġ= Ġrules [ i Ġ- Ġ 1 ]. type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġrules [ i ]. type ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Item Ġ# " Ġ+ Ġi Ġ+ Ġ" Ġis Ġout Ġof Ġorder :\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrules . join ToString ( separator Ġ= Ġ"\ n ") Ġ{ Ġit . toString () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprev !! Ġ<= Ġnext !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Rules Fields () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ(( title , Ġtype , Ġurl , Ġcode ) Ġin Ġsupported Rules ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( code ). isNotEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( title ). isNotEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( type ). isNotNull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( url ). isNotNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest IsActive Flag () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ(( _, Ġ_, Ġ_, Ġcode , Ġactive ) Ġin Ġsupported Rules ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( active ). isEqualTo (! ignored Rules . contains ( code )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Filter ByType () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġcount Ġ+= Ġget Supported Rules (" Mu ST ", Ġnull ). size ĊĠĠĠĠĠĠĠ Ġcount Ġ+= Ġget Supported Rules (" Sh Ou Ld ", Ġnull ). size ĊĠĠĠĠĠĠĠ Ġcount Ġ+= Ġget Supported Rules (" Ma Y ", Ġnull ). size ĊĠĠĠĠĠĠĠ Ġcount Ġ+= Ġget Supported Rules (" Hi Nt ", Ġnull ). size ĊĊĠĠĠĠĠĠĠ ĠassertThat ( count ). isEqualTo ( implemented Rules . size ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Returns For Unknown Type () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġget Supported Rules (" TOP KE K ", Ġnull , ĠError Response :: class . java ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( response . statusCode ). isEqualTo ( BAD _ REQUEST ) ĊĠĠĠĠĠĠĠ ĠassertThat ( response . headers . contentType !!. toString ()). isEqualTo ( RestApi Base Test . APPLICATION _ PRO BLE M _ JSON ) ĊĠĠĠĠĠĠĠ ĠassertThat ( response . body !!. title ). isEqualTo ( BAD _ REQUEST . reason Phrase ) ĊĠĠĠĠĠĠĠ ĠassertThat ( response . body !!. status ). isNotEmpty () ĊĠĠĠĠĠĠĠ ĠassertThat ( response . body !!. detail ). isNotEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Filter By Active True () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrules Ġ= Ġget Supported Rules ( null , Ġtrue ) ĊĠĠĠĠĠĠĠ ĠassertThat ( rules . size ). isEqualTo ( implemented Rules . size () Ġ- Ġignored Rules . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Filter By Active False () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrules Ġ= Ġget Supported Rules ( null , Ġfalse ) ĊĠĠĠĠĠĠĠ ĠassertThat ( rules . size ). isEqualTo ( ignored Rules . size ) ĊĠĠĠ Ġ} Ċ } Ċ