package Ġio . github . deb op . spring data . jpa . mapping . associ ations . onet om any . set Ċ Ċ import Ġio . github . deb op . spring data . jpa . Abstract Data Jpa Test Ċ import Ġorg . am sh ove . k lu ent . shouldBe Empty Ċ import Ġorg . am sh ove . k lu ent . shouldBe EqualTo Ċ import Ġorg . am sh ove . k lu ent . shouldBe False Ċ import Ġorg . am sh ove . k lu ent . should Not BeNull Ċ import Ġorg . am sh ove . k lu ent . should Not Contain Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . data . repository . findById OrNull Ċ import Ġjava . math . BigDecimal Ċ Ċ /** Ċ Ġ* ĠOne ToMany Set Tests Ċ Ġ* Ċ Ġ* Ġ@ author Ġdeb op Ċ Ġ* Ġ@ since Ġ 1 9 . Ġ 6 . Ġ 5 Ċ Ġ*/ Ċ class ĠOne ToMany Set Tests Ġ: ĠAbstract Data Jpa Test () Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġb idding Item Repo : ĠB idding Item Repository ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġproduct Repo : ĠProduct Repository ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` one - to - many Ġset Ġwith Ġbid irectional `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠB idding Item ( name Ġ= Ġ" TV ") ĊĠĠĠĠĠĠĠ Ġval Ġbid 1 Ġ= ĠBid ( amount Ġ= ĠBigDecimal ( 1 0 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġbid 2 Ġ= ĠBid ( amount Ġ= ĠBigDecimal ( 2 0 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġbid 3 Ġ= ĠBid ( amount Ġ= ĠBigDecimal ( 3 0 0 . 0 )) ĊĠĠĠĠĠĠĠ Ġitem . add B ids ( bid 1 , Ġbid 2 , Ġbid 3 ) ĊĊĠĠĠĠĠĠĠ Ġitem . bids . size ĠshouldBe EqualTo Ġ 3 ĊĊĠĠĠĠĠĠĠ Ġb idding Item Repo . save And Flush ( item ) ĊĠĠĠĠĠĠĠ Ġclear () ĊĊĠĠĠĠĠĠĠ Ġval Ġloaded Ġ= Ġb idding Item Repo . findById OrNull ( item . id ) ĊĠĠĠĠĠĠĠ Ġloaded . should Not BeNull () ĊĠĠĠĠĠĠĠ Ġloaded ĠshouldBe EqualTo Ġitem ĊĠĠĠĠĠĠĠ Ġloaded . bids . size ĠshouldBe EqualTo Ġitem . bids . size ĊĊĠĠĠĠĠĠĠ Ġval Ġbid To Removed Ġ= Ġloaded . bids . first () ĊĠĠĠĠĠĠĠ Ġloaded . remove B ids ( bid To Removed ) ĊĠĠĠĠĠĠĠ Ġb idding Item Repo . save And Flush ( loaded ) ĊĠĠĠĠĠĠĠ Ġclear () ĊĊĠĠĠĠĠĠĠ Ġval Ġloaded 2 Ġ= Ġb idding Item Repo . findById OrNull ( item . id ) ĊĠĠĠĠĠĠĠ Ġloaded 2 . should Not BeNull () ĊĠĠĠĠĠĠĠ Ġloaded 2 ĠshouldBe EqualTo Ġitem ĊĠĠĠĠĠĠĠ Ġloaded 2 . bids . size ĠshouldBe EqualTo Ġitem . bids . size Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġloaded 2 . bids Ġshould Not Contain Ġbid To Removed ĊĊĠĠĠĠĠĠĠ Ġb idding Item Repo . delete ( loaded 2 ) ĊĠĠĠĠĠĠĠ Ġb idding Item Repo . flush () ĊĠĠĠĠĠĠĠ Ġclear () ĊĊĠĠĠĠĠĠĠ Ġb idding Item Repo . findAll (). shouldBe Empty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` one - to - many Ġwith Ġem dde dd able Ġcomponent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproduct Ġ= ĠProduct ( name Ġ= Ġ" Car ") ĊĠĠĠĠĠĠĠ Ġval Ġimage 1 Ġ= ĠProduct Image ( name Ġ= Ġ" front ") ĊĠĠĠĠĠĠĠ Ġval Ġimage 2 Ġ= ĠProduct Image (" inter ior ") ĊĠĠĠĠĠĠĠ Ġval Ġimage 3 Ġ= ĠProduct Image (" engine Ġroom ") ĊĊĠĠĠĠĠĠĠ Ġproduct . add Images ( image 1 , Ġimage 2 , Ġimage 3 ) ĊĠĠĠĠĠĠĠ Ġproduct Repo . save And Flush ( product ) ĊĠĠĠĠĠĠĠ Ġclear () ĊĊĠĠĠĠĠĠĠ Ġval Ġloaded Ġ= Ġproduct Repo . findById OrNull ( product . id ) ĊĠĠĠĠĠĠĠ Ġloaded . should Not BeNull () ĊĠĠĠĠĠĠĠ Ġloaded ĠshouldBe EqualTo Ġproduct ĊĠĠĠĠĠĠĠ Ġloaded . images . size ĠshouldBe EqualTo Ġproduct . images . size ĊĊĠĠĠĠĠĠĠ Ġval Ġimage ToRemove Ġ= Ġloaded . images . first () ĊĠĠĠĠĠĠĠ Ġloaded . remove Images ( image ToRemove ) ĊĠĠĠĠĠĠĠ Ġproduct Repo . save And Flush ( loaded ) ĊĠĠĠĠĠĠĠ Ġclear () ĊĊĠĠĠĠĠĠĠ Ġval Ġloaded 2 Ġ= Ġproduct Repo . findById OrNull ( product . id ) ĊĠĠĠĠĠĠĠ Ġloaded 2 . should Not BeNull () ĊĠĠĠĠĠĠĠ Ġloaded 2 ĠshouldBe EqualTo Ġproduct ĊĠĠĠĠĠĠĠ Ġloaded 2 . images . size ĠshouldBe EqualTo Ġproduct . images . size Ġ- Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġproduct Repo . delete ( loaded 2 ) ĊĠĠĠĠĠĠĠ Ġproduct Repo . flush () ĊĠĠĠĠĠĠĠ Ġclear () ĊĊĠĠĠĠĠĠĠ Ġproduct Repo . exists ById ( product . id !! ). shouldBe False () ĊĠĠĠ Ġ} Ċ }