package Ġun q . edu . remote trainer . persistence . repository Ċ Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . autoconfigure . orm . jpa . Data Jpa Test Ċ import Ġorg . springframework . boot . test . autoconfigure . orm . jpa . Test EntityManager Ċ import Ġorg . springframework . data . repository . findById OrNull Ċ import Ġun q . edu . remote trainer . persistence . entity . Exercise Block Entity Ċ import Ġun q . edu . remote trainer . persistence . entity . Exercise Entity Ċ import Ġun q . edu . remote trainer . persistence . entity . Exercise Re petition Entity Ċ Ċ @ Data Jpa Test Ċ internal Ġclass ĠExercise Block Repository Test Ġ@ Autowired Ġconstructor ( ĊĠĠĠ Ġoverride Ġval Ġentity Manager : ĠTest EntityManager , ĊĠĠĠ Ġoverride Ġval Ġrepository : ĠExercise Block Repository , ĊĠĠĠ Ġval Ġexercise Repository : ĠExercise Repository Ġ// Ġneeded Ġto Ġremove Ġthe Ġcreated Ġexercise Ċ ): ĠAbstract Repository Test < Exercise Block Entity >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠafterEach () Ġ{ ĊĠĠĠĠĠĠĠ Ġexercise Repository . delete All () ĊĠĠĠĠĠĠĠ Ġrepository . delete All () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġreturns Ġonly Ġthe Ġblocks Ġwith Ġnon Ġnull Ġnames `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġnamed Block : ĠExercise Block Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager . persist ( Exercise Block Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" this Ġblock Ġhas Ġto Ġbe Ġreturned ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercises Ġ= Ġmutable ListOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġun named Block : ĠExercise Block Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager . persist ( Exercise Block Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercises Ġ= Ġmutable ListOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġentity Manager . flush () ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġnamed Blocks : ĠIterable < Exercise Block Entity > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . getAll ByName NotNull () ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( named Blocks ). isNotNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( named Blocks ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( named Blocks ). contains Exactly ( named Block ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġreturns Ġblocks Ġfor Ġthe Ġgiven Ġnames `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġnamed Block : ĠExercise Block Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager . persist ( Exercise Block Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" this Ġblock Ġhas Ġto Ġbe Ġreturned ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercises Ġ= Ġmutable ListOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġun named Block : ĠExercise Block Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager . persist ( Exercise Block Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercises Ġ= Ġmutable ListOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġentity Manager . flush () ĊĊĠĠĠĠĠĠĠ Ġval Ġnames To Search : ĠList < String > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnamed Block . name !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" un existent Ġblock " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġfound Blocks : ĠIterable < Exercise Block Entity > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . get ByName In ( names To Search ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( found Blocks ). isNotNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( found Blocks ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( found Blocks ). contains Exactly ( named Block ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġupdates Ġthe Ġinstance `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġval Ġexercise Block : ĠExercise Block Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager . persist And Flush ( Exercise Block Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" some Ġname ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercises Ġ= Ġmutable ListOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġupdated Name : ĠString Ġ= Ġ" some Ġnew Ġname " ĊĠĠĠĠĠĠĠ Ġval Ġupdated Notes : ĠString Ġ= Ġ" some Ġnotes " ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġval Ġfound : ĠExercise Block Entity ? Ġ= Ġrepository . findById OrNull ( exercise Block . id !! ) ĊĠĠĠĠĠĠĠ Ġval Ġnon Null Entity : ĠExercise Block Entity Ġ= ĠcheckNotNull ( found ) ĊĊĠĠĠĠĠĠĠ Ġnon Null Entity . name Ġ= Ġupdated Name ĊĠĠĠĠĠĠĠ Ġnon Null Entity . notes Ġ= Ġupdated Notes ĊĊĠĠĠĠĠĠĠ Ġrepository . save ( non Null Entity ) ĊĊĠĠĠĠĠĠĠ Ġval Ġupdated Entity : ĠExercise Block Entity ? Ġ= Ġrepository . findById OrNull ( exercise Block . id !! ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( updated Entity ). isNotNull () ĊĠĠĠĠĠĠĠ Ġupdated Entity !! ĊĠĠĠĠĠĠĠ ĠassertThat ( updated Entity . name ). isEqualTo ( updated Name ) ĊĠĠĠĠĠĠĠ ĠassertThat ( updated Entity . notes ). isEqualTo ( updated Notes ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġupdates Ġthe Ġinstance Ġwith Ġa Ġchange Ġin Ġrepet itions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġ// Ġbase Ġexercise Block ĊĠĠĠĠĠĠĠ Ġval Ġexercise : ĠExercise Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager . persist ( Exercise Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" some Ġexercise ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" some Ġdescription " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġexercise Re petition : ĠExercise Re petition Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠExercise Re petition Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercise Ġ= Ġexercise , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquantity Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexercise Block : ĠExercise Block Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager . persist ( Exercise Block Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" some Ġname ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercises Ġ= Ġmutable ListOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġentity Manager . flush () ĊĊĠĠĠĠĠĠĠ Ġ// Ġnow , Ġthe Ġupdate Ġpart ĊĠĠĠĠĠĠĠ Ġexercise Block . exercises Ġ= Ġmutable ListOf ( exercise Re petition ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġrepository . save ( exercise Block ) ĊĊĠĠĠĠĠĠĠ Ġval Ġupdated Entity : ĠExercise Block Entity ? Ġ= Ġrepository . findById OrNull ( exercise Block . id !! ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( updated Entity ). isNotNull () ĊĠĠĠĠĠĠĠ Ġupdated Entity !! ĊĊĠĠĠĠĠĠĠ ĠassertThat ( updated Entity . exercises ). has Size ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfirst Exercise Ġ= Ġupdated Entity . exercises . first OrNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( first Exercise ). isNotNull () ĊĠĠĠĠĠĠĠ Ġfirst Exercise !! ĊĠĠĠĠĠĠĠ ĠassertThat ( first Exercise . quantity ). isEqualTo ( exercise Re petition . quantity ) ĊĠĠĠĠĠĠĠ ĠassertThat ( first Exercise . exercise ). isEqualTo ( exercise ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` it Ġcas ca des Ġexercise Ġrepet itions `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġarrange ĊĠĠĠĠĠĠĠ Ġ// Ġbase Ġexercise Block ĊĠĠĠĠĠĠĠ Ġval Ġexercise : ĠExercise Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager . persist ( Exercise Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" some Ġexercise ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" some Ġdescription " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġexercise Re petition : ĠExercise Re petition Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠExercise Re petition Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercise Ġ= Ġexercise , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquantity Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexercise Block : ĠExercise Block Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager . persist ( Exercise Block Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" some Ġname ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercises Ġ= Ġmutable ListOf ( exercise Re petition ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġentity Manager . flush () ĊĊĠĠĠĠĠĠĠ Ġ// Ġnow , Ġthe Ġupdate Ġpart ĊĠĠĠĠĠĠĠ Ġexercise Re petition . quantity Ġ+= 1 ĊĊĠĠĠĠĠĠĠ Ġ// Ġact ĊĠĠĠĠĠĠĠ Ġrepository . save ( exercise Block ) ĊĊĠĠĠĠĠĠĠ Ġval Ġupdated Entity : ĠExercise Block Entity ? Ġ= Ġrepository . findById OrNull ( exercise Block . id !! ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( updated Entity ). isNotNull () ĊĠĠĠĠĠĠĠ Ġupdated Entity !! ĊĊĠĠĠĠĠĠĠ ĠassertThat ( updated Entity . exercises ). has Size ( 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġfirst Exercise Ġ= Ġupdated Entity . exercises . first OrNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( first Exercise ). isNotNull () ĊĠĠĠĠĠĠĠ Ġfirst Exercise !! ĊĠĠĠĠĠĠĠ ĠassertThat ( first Exercise . quantity ). isEqualTo ( exercise Re petition . quantity ) ĊĠĠĠĠĠĠĠ ĠassertThat ( first Exercise . exercise ). isEqualTo ( exercise ) ĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġ/* Ġ***************** Ġ* ĊĠĠĠĠ Ġ* ĠIN HER IT ED ĠMETHO DS Ġ* ĊĠĠĠĠ Ġ* Ġ***************** Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġnew Instance Assertions ( saved Instance : ĠExercise Block Entity , Ġnew Instance : ĠExercise Block Entity ) Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( saved Instance . id ). isNotNull () ĊĠĠĠĠĠĠĠ ĠassertThat ( saved Instance . name ). isEqualTo ( newInstance . name ) ĊĠĠĠĠĠĠĠ ĠassertThat ( saved Instance . notes ). isEqualTo ( newInstance . notes ) ĊĠĠĠĠĠĠĠ ĠassertThat ( saved Instance . exercises ). has Size ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġid ( entity : ĠExercise Block Entity ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġentity . id !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsample Entity (): ĠExercise Block Entity Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexercise : ĠExercise Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager . persist And Flush ( Exercise Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" some Ġexercise ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" some Ġdescription " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġval Ġexercise Re petition : ĠExercise Re petition Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠExercise Re petition Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexercise Ġ= Ġexercise , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquantity Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠExercise Block Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexercises Ġ= Ġmutable ListOf ( exercise Re petition ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotes Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }