package Ġuk . gov . just ice . digital . h mp ps . cmd . api . service Ċ Ċ import Ġio . mock k . clear Mocks Ċ import Ġio . mock k . confirm Verified Ċ import Ġio . mock k . every Ċ import Ġio . mock k . junit 5 . Mock K Extension Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġuk . gov . just ice . digital . h mp ps . cmd . api . client . El ite 2 ApiClient Ċ import Ġuk . gov . just ice . digital . h mp ps . cmd . api . model . Pr ison Ċ import Ġuk . gov . just ice . digital . h mp ps . cmd . api . repository . Pr ison Repository Ċ Ċ @ Extend With ( Mock K Extension :: class ) Ċ @ DisplayName (" Pr ison ĠService Ġtests ") Ċ internal Ġclass ĠPr ison Service Test Ġ{ ĊĠ Ġprivate Ġval Ġpr ison Repository : ĠPr ison Repository Ġ= Ġmock k ( relax Unit Fun Ġ= Ġtrue ) ĊĠ Ġprivate Ġval Ġel ite 2 Client : ĠEl ite 2 ApiClient Ġ= Ġmock k ( relax Unit Fun Ġ= Ġtrue ) ĊĠ Ġprivate Ġval Ġservice Ġ= ĠPr ison Service ( pr ison Repository , Ġel ite 2 Client ) ĊĊĠ Ġ@ BeforeEach ĊĠ Ġfun Ġreset All Mocks () Ġ{ ĊĠĠĠ Ġclear Mocks ( pr ison Repository ) ĊĠ Ġ} ĊĊĠ Ġ@ Nested ĊĠ Ġ@ DisplayName (" Get ĠPr is ons Ġtests ") ĊĠ Ġinner Ġclass ĠGet Pr is ons Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġget ĠPr is ons `() Ġ{ ĊĠĠĠĠĠ Ġval Ġpr is ons Stub Ġ= Ġget Valid Pr is ons () ĊĠĠĠĠĠ Ġevery Ġ{ Ġpr ison Repository . findAll () Ġ} Ġreturns Ġpr is ons Stub ĊĊĠĠĠĠĠ Ġval Ġpr is ons Ġ= Ġservice . getAll Pr is ons () ĊĊĠĠĠĠĠ Ġverify Ġ{ Ġpr ison Repository . findAll () Ġ} ĊĠĠĠĠĠ Ġconfirm Verified ( pr ison Repository ) ĊĊĠĠĠĠĠ ĠassertThat ( pr is ons ). has Size ( 2 ) ĊĠĠĠĠĠ ĠassertThat ( pr is ons ). contains ( pr ison 1 ) ĊĠĠĠĠĠ ĠassertThat ( pr is ons ). contains ( pr ison 2 ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Nested ĊĠ Ġ@ DisplayName (" Get ĠPr ison Ġfor ĠUser Ġtests ") ĊĠ Ġinner Ġclass ĠGet Pr ison ForUser Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġget ĠPr ison `() Ġ{ ĊĠĠĠĠĠ Ġval Ġpr ison Id Ġ= Ġ" AK A " ĊĊĠĠĠĠĠ Ġevery Ġ{ Ġel ite 2 Client . getCurrent Pr ison Id ForUser () Ġ} Ġreturns Ġpr ison Id ĊĠĠĠĠĠ Ġevery Ġ{ Ġpr ison Repository . findBy Pr ison Id ( pr ison Id ) Ġ} Ġreturns Ġpr ison 1 ĊĊĠĠĠĠĠ Ġval Ġpr ison Ġ= Ġservice . get Pr ison ForUser () ĊĊĠĠĠĠĠ Ġverify Ġ{ Ġpr ison Repository . findBy Pr ison Id ( pr ison Id ) Ġ} ĊĠĠĠĠĠ Ġconfirm Verified ( pr ison Repository ) ĊĊĠĠĠĠĠ ĠassertThat ( pr ison ). isEqualTo ( pr ison 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Should Ġget ĠPr ison Ġnot Ġfound `() Ġ{ ĊĠĠĠĠĠ Ġval Ġpr ison Id Ġ= Ġ" AK A " ĊĊĠĠĠĠĠ Ġevery Ġ{ Ġel ite 2 Client . getCurrent Pr ison Id ForUser () Ġ} Ġreturns Ġpr ison Id ĊĠĠĠĠĠ Ġevery Ġ{ Ġpr ison Repository . findBy Pr ison Id ( pr ison Id ) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠ Ġval Ġpr ison Ġ= Ġservice . get Pr ison ForUser () ĊĊĠĠĠĠĠ Ġverify Ġ{ Ġpr ison Repository . findBy Pr ison Id ( pr ison Id ) Ġ} ĊĠĠĠĠĠ Ġconfirm Verified ( pr ison Repository ) ĊĊĠĠĠĠĠ ĠassertThat ( pr ison ). isEqualTo ( null ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġval Ġpr ison 1 Ġ= ĠPr ison (" AK A ", Ġ" Big Ġplan ", Ġ" Ar k ham ĠAs yl um ", Ġ 5 ) ĊĠĠĠ Ġval Ġpr ison 2 Ġ= ĠPr ison (" TP T ", Ġ" Little Ġplan ", Ġ" The ĠP it ", Ġ 3 ) ĊĊĠĠĠ Ġfun Ġget Valid Pr is ons (): ĠCollection < Pr ison > Ġ{ ĊĠĠĠĠĠ Ġreturn ĠlistOf ( pr ison 1 , Ġpr ison 2 ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ