package Ġuk . gov . just ice . digital . h mp ps . manage off ences api . resource Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . test . context . jdbc . Sql Ċ import Ġuk . gov . just ice . digital . h mp ps . manage off ences api . integration . Integration TestBase Ċ import Ġuk . gov . just ice . digital . h mp ps . manage off ences api . model . Most Recent Load Result Ċ import Ġuk . gov . just ice . digital . h mp ps . manage off ences api . service . SD RS Service Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġuk . gov . just ice . digital . h mp ps . manage off ences api . model . Off ence Ġas ĠModel Off ence Ċ Ċ class ĠOff ences Controller Int Test Ġ: ĠIntegration TestBase () Ġ{ ĊĠ Ġ@ Autowired ĊĠ Ġlateinit Ġvar Ġs dr s Service : ĠS DR S Service ĊĊĠ Ġ@ Test ĊĠ Ġ@ Sql ( ĊĠĠĠ Ġ" classpath : test _ data / reset - all - data . sql ", ĊĠĠĠ Ġ" classpath : test _ data / insert - off ence - data . sql " ĊĠ Ġ) ĊĠ Ġfun Ġ` Get Ġoff ences Ġby Ġoff ence Ġcode `() Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġweb Test Client . get (). uri ("/ off ences / code / a B ") ĊĠĠĠĠĠ Ġ. headers ( set Author isation ()) ĊĠĠĠĠĠ Ġ. exchange () ĊĠĠĠĠĠ Ġ. expect Status (). is Ok ĊĠĠĠĠĠ Ġ. expect Body List ( Model Off ence :: class . java ) ĊĠĠĠĠĠ Ġ. return Result (). response Body ĊĊĠĠĠ ĠassertThat ( result ) ĊĠĠĠĠĠ Ġ. using Recursive Comparison () ĊĠĠĠĠĠ Ġ. ign oring Fields Matching Regex es (" .* d Date ") ĊĠĠĠĠĠ Ġ. ign oring Fields Matching Regex es (" id ") ĊĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠ ĠModel Off ence ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ" AB 1 4 0 0 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Fail Ġto Ġcomp ly Ġwith Ġan Ġanimal Ġby - product Ġrequirement ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc js Title Ġ= Ġ" Fail Ġto Ġcomp ly Ġwith Ġan Ġanimal Ġby - product Ġrequirement ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrevision Id Ġ= Ġ 5 7 4 4 1 5 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartDate Ġ= ĠLocalDate . of ( 2 0 1 5 , Ġ 3 , Ġ 1 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠendDate Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchanged Date Ġ= ĠLocalDateTime . of ( 2 0 2 0 , Ġ 6 , Ġ 1 7 , Ġ 1 6 , Ġ 3 1 , Ġ 2 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Date Ġ= ĠLocalDateTime . of ( 2 0 2 2 , Ġ 4 , Ġ 7 , Ġ 1 7 , Ġ 5 , Ġ 5 8 , Ġ 1 7 8 0 0 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ ĠModel Off ence ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ" AB 1 4 0 0 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Int ention ally Ġob struct Ġan Ġauthor ised Ġperson ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc js Title Ġ= Ġ" Int ention ally Ġob struct Ġan Ġauthor ised Ġperson ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrevision Id Ġ= Ġ 5 7 4 4 8 7 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartDate Ġ= ĠLocalDate . of ( 2 0 1 5 , Ġ 3 , Ġ 1 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠendDate Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchanged Date Ġ= ĠLocalDateTime . of ( 2 0 2 0 , Ġ 6 , Ġ 1 7 , Ġ 1 6 , Ġ 3 1 , Ġ 2 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Date Ġ= ĠLocalDateTime . of ( 2 0 2 2 , Ġ 4 , Ġ 7 , Ġ 1 7 , Ġ 5 , Ġ 5 8 , Ġ 1 7 8 0 0 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ ĠModel Off ence ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 4 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ" AB 1 4 0 0 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Fail Ġto Ġgive Ġto Ġan Ġauthor ised Ġperson Ġinformation Ġ/ Ġassistance Ġ/ Ġprovide Ġfacilities Ġthat Ġperson Ġmay Ġrequire ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc js Title Ġ= Ġ" C JS ĠTitle ĠFail Ġto Ġgive Ġto Ġan Ġauthor ised Ġperson Ġinformation Ġ/ Ġassistance Ġ/ Ġprovide Ġfacilities Ġthat Ġperson Ġmay Ġrequire ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrevision Id Ġ= Ġ 5 7 4 4 4 9 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartDate Ġ= ĠLocalDate . of ( 2 0 1 5 , Ġ 3 , Ġ 1 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠendDate Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchanged Date Ġ= ĠLocalDateTime . of ( 2 0 2 0 , Ġ 6 , Ġ 1 7 , Ġ 1 6 , Ġ 3 1 , Ġ 2 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Date Ġ= ĠLocalDateTime . of ( 2 0 2 2 , Ġ 4 , Ġ 7 , Ġ 1 7 , Ġ 5 , Ġ 5 8 , Ġ 1 7 8 0 0 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġ@ Sql ( ĊĠĠĠ Ġ" classpath : test _ data / reset - all - data . sql ", ĊĠĠĠ Ġ" classpath : test _ data / insert - off ence - data . sql " ĊĠ Ġ) ĊĠ Ġfun Ġ` Get Ġresults Ġof Ġlatest Ġload `() Ġ{ ĊĠĠĠ Ġs dr s Api Mock Server . stub GetAll Off ences Return Empty Array () ĊĠĠĠ Ġs dr s Api Mock Server . stub GetAll Off ences For A () ĊĠĠĠ Ġs dr s Service . synchron ise With S dr s () ĊĠĠĠ Ġval Ġresults Ġ= Ġweb Test Client . get (). uri ("/ off ences / load - results ") ĊĠĠĠĠĠ Ġ. headers ( set Author isation ()) ĊĠĠĠĠĠ Ġ. exchange () ĊĠĠĠĠĠ Ġ. expect Status (). is Ok ĊĠĠĠĠĠ Ġ. expect Body List ( Most Recent Load Result :: class . java ) ĊĠĠĠĠĠ Ġ. return Result (). response Body ĊĊĠĠĠ Ġ(' A ' .. ' Z '). forEach Ġ{ Ġalpha Char Ġ-> ĊĠĠĠĠĠ Ġval Ġresult Ġ= Ġresults ?. find Ġ{ Ġe Ġ-> Ġe . alpha Char Ġ== Ġalpha Char . toString () Ġ} ĊĠĠĠĠĠ ĠassertThat ( result ) ĊĠĠĠĠĠĠĠ Ġ. using Recursive Comparison () ĊĠĠĠĠĠĠĠ Ġ. ign oring Fields Matching Regex es (" .* d Date ") ĊĠĠĠĠĠĠĠ Ġ. isEqualTo ( ĊĠĠĠĠĠĠĠĠĠ ĠMost Recent Load Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalpha Char Ġ= Ġalpha Char . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġresult !!. status , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġresult . type , ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ