package Ġd sm . service . announcement . core . use case Ċ Ċ import Ġd sm . service . announcement . core . domain . entity . Account Ċ import Ġd sm . service . announcement . core . domain . entity . Anno uncement Ċ import Ġd sm . service . announcement . core . domain . entity . enums . Account Type Ċ import Ġd sm . service . announcement . core . domain . repository . Anno uncement Repository Ċ import Ġd sm . service . announcement . core . use case . announcement . Get Account UseCase Ċ import Ġd sm . service . announcement . core . use case . announcement . Search Anno unce ments UseCase Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . BDD Mockito .* Ċ import Ġorg . mockito . Inject Mocks Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . springframework . data . domain . Page Ċ import Ġorg . springframework . data . domain . Page Impl Ċ import Ġjava . time . LocalDateTime Ċ Ċ class ĠSearch Anno unce ments UseCase Test : ĠUse Case Test () Ġ{ ĊĠĠĠ Ġ@ Inject Mocks Ġprivate Ġlateinit Ġvar Ġsearch Anno unce ments UseCase : ĠSearch Anno unce ments UseCase ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġanno uncement Repository : ĠAnno uncement Repository ĊĠĠĠ Ġ@ Mock Ġprivate Ġlateinit Ġvar Ġget Account UseCase : ĠGet Account UseCase ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Search School Anno unce ments () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠSearch Anno unce ments UseCase . Input Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Uuid Ġ= Ġ" student - 1 1 1 1 2 2 2 2 3 3 3 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġ" Anno uncement ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" school " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġanno uncement List : ĠList < Anno uncement > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarray ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnno uncement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= Ġ" announcement - 1 1 1 1 2 2 2 2 3 3 3 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter Uuid Ġ= Ġ" teacher - 1 1 1 1 2 2 2 2 3 3 3 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter Name = Ġ" ìĦł ìĥĿ ëĭ ĺ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Anno uncement 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Grade Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Class Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" school ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclub Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Accounts Ġ= Ġarray ListOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ"{ ' content ': Ġ' origin ' }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnno uncement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= Ġ" announcement - 1 1 1 1 2 2 2 2 3 3 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter Uuid Ġ= Ġ" teacher - 1 1 1 1 2 2 2 2 3 3 3 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter Name = Ġ" ìĦł ìĥĿ ëĭ ĺ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Anno uncement 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Grade Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Class Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" school ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclub Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Accounts Ġ= Ġarray ListOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ"{ ' content ': Ġ' origin ' }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġpage Response : ĠPage < Anno uncement > Ġ= ĠPage Impl ( announcement List ) ĊĠĠĠĠĠĠĠ Ġ` when `( announcement Repository . findBy Title Contains And Type And Target Grade Contains And Target Group Contains OrderBy Date Desc ( any String (), Ġany String (), Ġany String (), Ġany String (), Ġany ())). thenReturn ( page Response ) ĊĠĠĠĠĠĠĠ Ġgiven ( announcement Repository . count By Title Contains And Type ( any String (), Ġany String ())). willReturn ( page Response . total Elements ) ĊĠĠĠĠĠĠĠ Ġgiven ( get Account UseCase . execute ( any ())). willReturn ( Get Account UseCase . Output Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrade Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" íķĻ ìĥĿ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠphoneNumber Ġ= Ġ" 0 1 0 1 1 1 1 2 2 2 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠAccount Type . ST UD ENT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġsearch Anno unce ments UseCase . execute ( input ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( announce ments . first (). title , Ġ" Anno uncement 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( announce ments . first (). writer Uuid , Ġ" teacher - 1 1 1 1 2 2 2 2 3 3 3 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( announce ments . first (). type , Ġ" school ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( count , Ġpage Response . total Elements ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet Search Club Anno unce ments () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠSearch Anno unce ments UseCase . Input Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Uuid Ġ= Ġ" student - 1 1 1 1 2 2 2 2 3 3 3 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġ" Anno uncement ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" club " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġanno uncement List : ĠList < Anno uncement > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarray ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnno uncement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= Ġ" announcement - 1 1 1 1 2 2 2 2 3 3 3 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter Uuid Ġ= Ġ" teacher - 1 1 1 1 2 2 2 2 3 3 3 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter Name = Ġ" ìĦł ìĥĿ ëĭ ĺ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Anno uncement 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Grade Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Class Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" club ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclub Ġ= Ġ" D MS ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Accounts Ġ= Ġarray ListOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ"{ ' content ': Ġ' origin ' }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnno uncement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= Ġ" announcement - 1 1 1 1 2 2 2 2 3 3 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter Uuid Ġ= Ġ" teacher - 1 1 1 1 2 2 2 2 3 3 3 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriter Name = Ġ" ìĦł ìĥĿ ëĭ ĺ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= ĠLocalDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" Anno uncement 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Grade Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Class Ġ= Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" club ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclub Ġ= Ġ" Non amed ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Accounts Ġ= Ġarray ListOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ"{ ' content ': Ġ' origin ' }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġpage Response : ĠPage < Anno uncement > Ġ= ĠPage Impl ( announcement List ) ĊĠĠĠĠĠĠĠ Ġ` when `( announcement Repository . findBy Title Contains And Type OrderBy Date Desc ( any String (), Ġany String (), Ġany ())). thenReturn ( page Response ) ĊĠĠĠĠĠĠĠ Ġgiven ( announcement Repository . count By Title Contains And Type ( any String (), Ġany String ())). willReturn ( page Response . total Elements ) ĊĊĊĠĠĠĠĠĠĠ Ġsearch Anno unce ments UseCase . execute ( input ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( announce ments . first (). title , Ġ" Anno uncement 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( announce ments . first (). writer Uuid , Ġ" teacher - 1 1 1 1 2 2 2 2 3 3 3 3 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( announce ments . first (). type , Ġ" club ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( count , Ġpage Response . total Elements ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet None Search School Anno unce ments () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠSearch Anno unce ments UseCase . Input Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Uuid Ġ= Ġ" student - 1 1 1 1 2 2 2 2 3 3 3 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġ" Anno uncement ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" school " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpage Response : ĠPage < Anno uncement > Ġ= ĠPage Impl ( array ListOf ()) ĊĠĠĠĠĠĠĠ Ġ` when `( announcement Repository . findBy Title Contains And Type And Target Grade Contains And Target Group Contains OrderBy Date Desc ( any String (), Ġany String (), Ġany String (), Ġany String (), Ġany ())). thenReturn ( page Response ) ĊĠĠĠĠĠĠĠ Ġgiven ( announcement Repository . count By Title Contains And Type ( any String (), Ġany String ())). willReturn ( page Response . total Elements ) ĊĠĠĠĠĠĠĠ Ġgiven ( get Account UseCase . execute ( any ())). willReturn ( Get Account UseCase . Output Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrade Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" ìĸ´ ëĵľ ë¯ ¼ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠphoneNumber Ġ= Ġ" 0 1 0 1 1 1 1 2 2 2 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠAccount Type . ADMIN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġsearch Anno unce ments UseCase . execute ( input ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( count , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet None Search Club Anno unce ments () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠSearch Anno unce ments UseCase . Input Values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Uuid Ġ= Ġ" student - 1 1 1 1 2 2 2 2 3 3 3 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġ" Anno uncement ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" club " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpage Response : ĠPage < Anno uncement > Ġ= ĠPage Impl ( array ListOf ()) ĊĠĠĠĠĠĠĠ Ġ` when `( announcement Repository . findBy Title Contains And Type OrderBy Date Desc ( any String (), Ġany String (), Ġany ())). thenReturn ( page Response ) ĊĠĠĠĠĠĠĠ Ġgiven ( announcement Repository . count By Title Contains And Type ( any String (), Ġany String ())). willReturn ( page Response . total Elements ) ĊĊĠĠĠĠĠĠĠ Ġsearch Anno unce ments UseCase . execute ( input ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( count , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T > Ġany (): ĠT Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito . any < T >() ĊĠĠĠĠĠĠĠ Ġreturn Ġnull Ġas ĠT ĊĠĠĠ Ġ} Ċ }