package Ġcom . github . nj uro . j ard . board Ċ Ċ import Ġcom . github . nj uro . j ard . MockMvc Test Ċ import Ġcom . github . nj uro . j ard . TestData Repository Ċ import Ġcom . github . nj uro . j ard . With Container Database Ċ import Ġcom . github . nj uro . j ard . With Mock J ard User Ċ import Ġcom . github . nj uro . j ard . attachment . Attachment Category Ċ import Ġcom . github . nj uro . j ard . board Ċ import Ġcom . github . nj uro . j ard . board . dto . Board Dto Ċ import Ġcom . github . nj uro . j ard . board . dto . Board Form Ċ import Ġcom . github . nj uro . j ard . common . Input Constraints . MAX _ BOARD _ NAME _ LENGTH Ċ import Ġcom . github . nj uro . j ard . common . Mappings Ċ import Ġcom . github . nj uro . j ard . random String Ċ import Ġcom . github . nj uro . j ard . thread Ċ import Ġcom . github . nj uro . j ard . to Form Ċ import Ġcom . github . nj uro . j ard . user . User Authority Ċ import Ġio . kot est . matchers . collections . should Have Size Ċ import Ġio . kot est . matchers . collections . should Not Be Empty Ċ import Ġio . kot est . matchers . optional . shouldBe Empty Ċ import Ġio . kot est . matchers . optional . shouldBe Present Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Nested Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . test . web . servlet . delete Ċ import Ġorg . springframework . test . web . servlet . get Ċ import Ġorg . springframework . test . web . servlet . post Ċ import Ġorg . springframework . test . web . servlet . put Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ Ċ @ With Container Database Ċ @ Transactional Ċ internal Ġclass ĠBoard IntegrationTest Ġ: ĠMock Mvc Test () Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdb : ĠTest Data Repository ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġ@ DisplayName (" create Ġboard ") ĊĠĠĠ Ġ@ With Mock J ard User ( User Authority . MANAGE _ BO AR DS ) ĊĠĠĠ Ġinner Ġclass ĠCreate Board Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Board ( board Form : ĠBoard Form ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Mvc . post ( Mappings . API _ ROOT _ BO AR DS ) Ġ{ ĠsetUp (); Ġbody ( board Form ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` create Ġvalid Ġboard `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġboard Form Ġ= Ġboard ( label Ġ= Ġ" r "). to Form () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġcreate Board ( board Form ). andExpect Ġ{ Ġstatus Ġ{ Ġis Created () Ġ} Ġ}. andReturn Converted < Board Dto >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . label ĠshouldBe Ġboard Form . label ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` don 't Ġcreate Ġinvalid Ġboard `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġboard Form Ġ= Ġboard ( label Ġ= Ġ" r ", Ġname Ġ= Ġrandom String ( MAX _ BOARD _ NAME _ LENGTH Ġ+ Ġ 1 )). to Form () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Board ( board Form ). andExpect Ġ{ Ġstatus Ġ{ Ġis BadRequest () Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock J ard User ( User Authority . MANAGE _ BO AR DS ) ĊĠĠĠ Ġfun Ġ` get Ġattachment Ġcategories `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Mvc . get ("${ Mappings . API _ ROOT _ BO AR DS }/ attachment - categories ") Ġ{ ĠsetUp () Ġ}. andExpect Ġ{ Ġstatus Ġ{ Ġis Ok () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn Converted < Set < Attachment Category . Preview >> (). should Not Be Empty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġall Ġboards `() Ġ{ ĊĠĠĠĠĠĠĠ Ġdb . insert ( board ( label Ġ= Ġ" r ")) ĊĠĠĠĠĠĠĠ Ġdb . insert ( board ( label Ġ= Ġ" fit ")) ĊĠĠĠĠĠĠĠ Ġdb . insert ( board ( label Ġ= Ġ" sp ")) ĊĠĠĠĠĠĠĠ Ġmock Mvc . get ( Mappings . API _ ROOT _ BO AR DS ) Ġ{ ĠsetUp () Ġ}. andExpect Ġ{ Ġstatus Ġ{ Ġis Ok () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn Converted < List < Board Dto >>() Ġshould Have Size Ġ 3 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġ@ DisplayName (" get Ġboard ") ĊĠĠĠ Ġinner Ġclass ĠGet Board Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Board ( label : ĠString ) Ġ= Ġmock Mvc . get ("${ Mappings . API _ ROOT _ BO AR DS }/ $ label ") Ġ{ ĠsetUp () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` get Ġexisting Ġboard `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġboard Ġ= Ġdb . insert ( board ( label Ġ= Ġ" r ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Board ( board . label ). andExpect Ġ{ Ġstatus Ġ{ Ġis Ok () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn Converted < Board Dto >(). label ĠshouldBe Ġboard . label ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` don 't Ġget Ġnon - existing Ġboard `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Board (" xxx "). andExpect Ġ{ Ġstatus Ġ{ Ġis NotFound () Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġ@ DisplayName (" get Ġboard Ġcatalog ") ĊĠĠĠ Ġinner Ġclass ĠGet Board Catalog Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Board Catalog ( label : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Mvc . get ("${ Mappings . API _ ROOT _ BO AR DS }/ $ label / catalog ") Ġ{ ĠsetUp () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UNUSED _ VARIABLE ") ĊĠĠĠĠĠĠĠ Ġfun Ġ` get Ġexisting Ġboard Ġcatalog `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġboard Ġ= Ġdb . insert ( board ( label Ġ= Ġ" r ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthread Ġ= Ġdb . insert ( thread ( board )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġget Board Catalog ( board . label ). andExpect Ġ{ Ġstatus Ġ{ Ġis Ok () Ġ} Ġ}. andReturn Converted < Board Dto >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . label ĠshouldBe Ġboard . label ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . threads Ġshould Have Size Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` don 't Ġget Ġnon - existing Ġboard `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Board Catalog (" xxx "). andExpect Ġ{ Ġstatus Ġ{ Ġis NotFound () Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġ@ DisplayName (" edit Ġboard ") ĊĠĠĠ Ġ@ With Mock J ard User ( User Authority . MANAGE _ BO AR DS ) ĊĠĠĠ Ġinner Ġclass ĠEdit Board Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġedit Board ( board Form : ĠBoard Form ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Mvc . put ("${ Mappings . API _ ROOT _ BO AR DS }/${ board Form . label }") Ġ{ ĠsetUp (); Ġbody ( board Form ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` edit Ġvalid Ġboard `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġboard Ġ= Ġdb . insert ( board ( label Ġ= Ġ" r ", Ġname Ġ= Ġ" random ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġupdated Name Ġ= Ġ" Updated " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġedit Board ( board . apply Ġ{ Ġname Ġ= Ġupdated Name Ġ}. to Form ()). andExpect Ġ{ Ġstatus Ġ{ Ġis Ok () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn Converted < Board Dto >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . name ĠshouldBe Ġupdated Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . select ( board ). shouldBe Present Ġ{ Ġit . name ĠshouldBe Ġupdated Name Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` don 't Ġedit Ġnon - existing Ġboard `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Board ( board ( label Ġ= Ġ" r ", Ġname Ġ= Ġ" random "). to Form ()). andExpect Ġ{ Ġstatus Ġ{ Ġis NotFound () Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` don 't Ġedit Ġinvalid Ġboard `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġboard Ġ= Ġdb . insert ( board ( label Ġ= Ġ" r ", Ġname Ġ= Ġ" random ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Board ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboard ( label Ġ= Ġboard . label , Ġname Ġ= Ġrandom String ( MAX _ BOARD _ NAME _ LENGTH Ġ+ Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Form () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). andExpect Ġ{ Ġstatus Ġ{ Ġis BadRequest () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . select ( board ). shouldBe Present Ġ{ Ġit . name ĠshouldBe Ġboard . name Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġ@ DisplayName (" delete Ġboard ") ĊĠĠĠ Ġ@ With Mock J ard User ( User Authority . MANAGE _ BO AR DS ) ĊĠĠĠ Ġinner Ġclass ĠDelete Board Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġdelete Board ( label : ĠString ) Ġ= Ġmock Mvc . delete ("${ Mappings . API _ ROOT _ BO AR DS }/ $ label ") Ġ{ ĠsetUp () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` delete Ġexisting Ġboard `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġboard Ġ= Ġdb . insert ( board ( label Ġ= Ġ" r ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Board ( board . label ). andExpect Ġ{ Ġstatus Ġ{ Ġis Ok () Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . select ( board ). shouldBe Empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ