@ file : Suppress (" Spell Checking Inspection ") Ċ Ċ package Ġch . d ifty . sc ip am ato . core . persistence . paper Ċ Ċ import Ġch . d ifty . sc ip am ato . common . persistence . paging . Pagination Context Ċ import Ġch . d ifty . sc ip am ato . core . entity . Paper Ċ import Ġch . d ifty . sc ip am ato . core . entity . Paper Attachment Ċ import Ġch . d ifty . sc ip am ato . core . entity . newsletter . News letter Ċ import Ġch . d ifty . sc ip am ato . core . entity . search . Paper Filter Ċ import Ġch . d ifty . sc ip am ato . core . entity . search . Search Order Ċ import Ġch . d ifty . sc ip am ato . core . persistence . Abstract Service Test Ċ import Ġch . d ifty . sc ip am ato . core . persistence . newsletter . News letter Repository Ċ import Ġch . d ifty . sc ip am ato . core . pub med . Abstract Pub med Article Facade Ċ import Ġch . d ifty . sc ip am ato . core . pub med . Pub med Article Facade Ċ import Ġch . d ifty . sc ip am ato . core . pub med . api . Article Ċ import Ġch . d ifty . sc ip am ato . core . pub med . api . Article Title Ċ import Ġch . d ifty . sc ip am ato . core . pub med . api . Journal Ċ import Ġch . d ifty . sc ip am ato . core . pub med . api . Journal Issue Ċ import Ġch . d ifty . sc ip am ato . core . pub med . api . Med line C itation Ċ import Ġch . d ifty . sc ip am ato . core . pub med . api . Med line Journal Info Ċ import Ġch . d ifty . sc ip am ato . core . pub med . api . PM ID Ċ import Ġch . d ifty . sc ip am ato . core . pub med . api . Pub Date Ċ import Ġch . d ifty . sc ip am ato . core . pub med . api . Pub med Article Ċ import Ġio . mock k . confirm Verified Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġorg . am sh ove . k lu ent . inv oking Ċ 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 . shouldBe True Ċ import Ġorg . am sh ove . k lu ent . should Contain Ċ import Ġorg . am sh ove . k lu ent . should Contain Same Ċ import Ġorg . am sh ove . k lu ent . should Not BeNull Ċ import Ġorg . am sh ove . k lu ent . should Throw Ċ import Ġorg . am sh ove . k lu ent . with Message Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠJ oo q Paper Service Test Ġ: ĠAbstract Service Test < Long , ĠPaper , ĠPaper Repository >() Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġrepo Ġ= Ġmock k < Paper Repository >( relax ed Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdelete ( any (), Ġany ()) Ġ} Ġreturns Ġentity ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġnews letter Repo Mock Ġ= Ġmock k < News letter Repository >() ĊĠĠĠ Ġprivate Ġval Ġfilter Mock Ġ= Ġmock k < Paper Filter >() ĊĠĠĠ Ġprivate Ġval Ġsearch Order Mock Ġ= Ġmock k < Search Order >() ĊĠĠĠ Ġprivate Ġval Ġpagination Context Mock Ġ= Ġmock k < Pagination Context >() ĊĠĠĠ Ġoverride Ġval Ġentity Ġ= Ġmock k < Paper >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġpaper Mock 2 Ġ= Ġmock k < Paper >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġpaper Mock 3 Ġ= Ġmock k < Paper >( relax ed Ġ= Ġtrue ) ĊĠĠĠ Ġprivate Ġval Ġattachment Mock Ġ= Ġmock k < Paper Attachment >() ĊĊĠĠĠ Ġprivate Ġval Ġservice : ĠJ oo q Paper Service Ġ= ĠJ oo q Paper Service ( repo , Ġnews letter Repo Mock , Ġuser Repo Mock ) ĊĊĠĠĠ Ġprivate Ġval Ġpapers Ġ= Ġmutable ListOf ( entity , Ġentity ) ĊĠĠĠ Ġprivate Ġval Ġarticles Ġ= Ġmutable ListOf < Pub med Article Facade >() ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġspecific Tear Down () Ġ{ ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( repo , Ġfilter Mock , Ġsearch Order Mock , Ġpagination Context Mock , Ġentity , Ġpaper Mock 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding ById _ with Found Entity _ returns Optional Of It () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 7 L ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . findById ( id ) Ġ} Ġreturns Ġentity ĊĠĠĠĠĠĠĠ Ġaudit Fixture () ĊĊĠĠĠĠĠĠĠ Ġval Ġopt Paper Ġ= Ġservice . findById ( id ) ĊĠĠĠĠĠĠĠ Ġopt Paper . isPresent . shouldBe True () ĊĠĠĠĠĠĠĠ Ġopt Paper . get () ĠshouldBe EqualTo Ġentity ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . findById ( id ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity Ġ== Ġentity Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify Audit ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding ById _ with NotFound Entity _ returns Optional Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 7 L ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . findById ( id ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġservice . findById ( id ). isPresent . shouldBe False () ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . findById ( id ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding By Filter _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Page By Filter ( filter Mock , Ġpagination Context Mock ) Ġ} Ġreturns Ġpapers ĊĠĠĠĠĠĠĠ Ġaudit Fixture () ĊĠĠĠĠĠĠĠ Ġservice . find Page By Filter ( filter Mock , Ġpagination Context Mock ) ĠshouldBe EqualTo Ġpapers ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Page By Filter ( filter Mock , Ġpagination Context Mock ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Audit ( 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcounting By Filter _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . count By Filter ( filter Mock ) Ġ} Ġreturns Ġ 3 ĊĠĠĠĠĠĠĠ Ġservice . count By Filter ( filter Mock ) ĠshouldBe EqualTo Ġ 3 ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . count By Filter ( filter Mock ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsaving Or Updating _ with Paper With Null Id _ has Repo Add The Paper () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġentity . id Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . add ( entity ) Ġ} Ġreturns Ġentity ĊĠĠĠĠĠĠĠ Ġaudit Fixture () ĊĠĠĠĠĠĠĠ Ġservice . save OrUpdate ( entity ) ĠshouldBe EqualTo Ġentity ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . add ( entity ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity . id Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity Ġ== Ġentity Ġ} ĊĠĠĠĠĠĠĠ Ġverify Audit ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsaving Or Updating _ with Paper With NonNull Id _ has Repo Update The Paper () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġentity . id Ġ} Ġreturns Ġ 1 7 L ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . update ( entity ) Ġ} Ġreturns Ġentity ĊĠĠĠĠĠĠĠ Ġaudit Fixture () ĊĠĠĠĠĠĠĠ Ġservice . save OrUpdate ( entity ) ĠshouldBe EqualTo Ġentity ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . update ( entity ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity . id Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity Ġ== Ġentity Ġ} ĊĠĠĠĠĠĠĠ Ġverify Audit ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdeleting _ with Null Entity _ does Nothing () Ġ{ ĊĠĠĠĠĠĠĠ Ġservice . remove ( null ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġrepo . delete ( any (), Ġany ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdeleting _ with Entity With Null Id _ does Nothing () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġentity . id Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġservice . remove ( entity ) ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity . id Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġrepo . delete ( any (), Ġany ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdeleting _ with Entity With Normal Id _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġentity . id Ġ} Ġreturns Ġ 3 L ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġentity . version Ġ} Ġreturns Ġ 1 7 ĊĊĠĠĠĠĠĠĠ Ġservice . remove ( entity ) ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġentity . id Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġentity . version Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġrepo . delete ( 3 L , Ġ 1 7 ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding By Search Order _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . findBy Search Order ( search Order Mock , ĠLC ) Ġ} Ġreturns Ġpapers ĊĠĠĠĠĠĠĠ Ġservice . findBy Search Order ( search Order Mock , ĠLC ) Ġshould Contain Same Ġpapers ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . findBy Search Order ( search Order Mock , ĠLC ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity Ġ== Ġentity Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding Paged By Search Order _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Page By Search Order ( search Order Mock , Ġpagination Context Mock , ĠLC ) Ġ} Ġreturns Ġpapers ĊĠĠĠĠĠĠĠ Ġservice . find Page By Search Order ( search Order Mock , Ġpagination Context Mock , ĠLC ) ĠshouldBe EqualTo Ġpapers ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Page By Search Order ( search Order Mock , Ġpagination Context Mock , ĠLC ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcounting By Search Order _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . count By Search Order ( search Order Mock ) Ġ} Ġreturns Ġ 2 ĊĠĠĠĠĠĠĠ Ġservice . count By Search Order ( search Order Mock ) ĠshouldBe EqualTo Ġ 2 ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . count By Search Order ( search Order Mock ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdump ing Empty ListOf Articles _ logs Warn Message () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsr Ġ= Ġservice . dump Pub med Articles To Db ( articles , ĠMIN IMUM _ NUMBER ) ĊĠĠĠĠĠĠĠ Ġsr . info Messages . shouldBe Empty () ĊĠĠĠĠĠĠĠ Ġsr . warn Messages . shouldBe Empty () ĊĠĠĠĠĠĠĠ Ġsr . error Messages . shouldBe Empty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdump ing Single Article _ which AlreadyExists _ does Not Save () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpm Id Value Ġ= Ġ 2 3 1 9 3 2 8 7 ĊĠĠĠĠĠĠĠ Ġval Ġpa Ġ= Ġnew Pub med Article ( pm Id Value ) ĊĠĠĠĠĠĠĠ Ġarticles . add ( Pub med Article Facade . new Pub med Article From ( pa )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġexisting Ġpapers ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Existing Pm Ids OutOf ( listOf ( pm Id Value )) Ġ} Ġreturns ĠlistOf ( pm Id Value ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsr Ġ= Ġservice . dump Pub med Articles To Db ( articles , ĠMIN IMUM _ NUMBER ) ĊĠĠĠĠĠĠĠ Ġsr . info Messages . shouldBe Empty () ĊĠĠĠĠĠĠĠ Ġsr . warn Messages Ġshould Contain Ġ" PM ID Ġ$ pm Id Value " ĊĠĠĠĠĠĠĠ Ġsr . error Messages . shouldBe Empty () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Existing Pm Ids OutOf ( listOf ( pm Id Value )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdump ing Single New Article _ s aves () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpm Id Value Ġ= Ġ 2 3 1 9 3 2 8 7 ĊĠĠĠĠĠĠĠ Ġval Ġpa Ġ= Ġnew Pub med Article ( pm Id Value ) ĊĠĠĠĠĠĠĠ Ġarticles . add ( Pub med Article Facade . new Pub med Article From ( pa )) ĊĠĠĠĠĠĠĠ Ġarticles [ 0 ]. pm Id . should Not BeNull () ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Existing Pm Ids OutOf ( listOf ( pm Id Value )) Ġ} Ġreturns Ġempty List () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Low est Free Number Starting From ( MIN IMUM _ NUMBER ) Ġ} Ġreturns Ġ 1 7 L ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . add ( any ()) Ġ} Ġreturns Ġpaper Mock 2 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpaper Mock 2 . id Ġ} Ġreturns Ġ 2 7 L ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpaper Mock 2 . pm Id Ġ} Ġreturns Ġpm Id Value ĊĊĠĠĠĠĠĠĠ Ġval Ġsr Ġ= Ġservice . dump Pub med Articles To Db ( articles , ĠMIN IMUM _ NUMBER ) ĊĠĠĠĠĠĠĠ Ġsr . info Messages Ġshould Contain Ġ" PM ID Ġ$ pm Id Value Ġ( id Ġ 2 7 )" ĊĠĠĠĠĠĠĠ Ġsr . warn Messages . shouldBe Empty () ĊĠĠĠĠĠĠĠ Ġsr . error Messages . shouldBe Empty () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Existing Pm Ids OutOf ( listOf ( pm Id Value )) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Low est Free Number Starting From ( MIN IMUM _ NUMBER ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . add ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġpaper Mock 2 . id Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġpaper Mock 2 . pm Id Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdump ing Single New Article With Null Pm Id _ does Not Try To Save () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpm Id Value Ġ= Ġ 2 3 1 9 3 2 8 7 ĊĠĠĠĠĠĠĠ Ġval Ġpa Ġ= Ġnew Pub med Article ( pm Id Value ) ĊĠĠĠĠĠĠĠ Ġarticles . add ( Pub med Article Facade . new Pub med Article From ( pa )) ĊĠĠĠĠĠĠĠ Ġ( articles [ 0 ] Ġas ĠAbstract Pub med Article Facade ). pm Id Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġsr Ġ= Ġservice . dump Pub med Articles To Db ( articles , ĠMIN IMUM _ NUMBER ) ĊĠĠĠĠĠĠĠ Ġsr . info Messages . shouldBe Empty () ĊĠĠĠĠĠĠĠ Ġsr . warn Messages . shouldBe Empty () ĊĠĠĠĠĠĠĠ Ġsr . error Messages . shouldBe Empty () ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġrepo . find Existing Pm Ids OutOf ( listOf ( pm Id Value )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdump ing Two New Article OneOf Which With Null Pm Id _ s aves Only Other () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpm Id Value Ġ= Ġ 2 3 1 9 3 2 8 7 ĊĠĠĠĠĠĠĠ Ġval Ġpa 1 Ġ= Ġnew Pub med Article ( pm Id Value ) ĊĠĠĠĠĠĠĠ Ġarticles . add ( Pub med Article Facade . new Pub med Article From ( pa 1 )) ĊĠĠĠĠĠĠĠ Ġarticles . add ( Pub med Article Facade . new Pub med Article From ( new Pub med Article ( 0 ))) ĊĠĠĠĠĠĠĠ Ġarticles [ 1 ]. pm Id ĠshouldBe EqualTo Ġ" 0 " ĊĠĠĠĠĠĠĠ Ġ( articles [ 1 ] Ġas ĠAbstract Pub med Article Facade ). pm Id Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Existing Pm Ids OutOf ( listOf ( pm Id Value )) Ġ} Ġreturns Ġempty List () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Low est Free Number Starting From ( MIN IMUM _ NUMBER ) Ġ} Ġreturns Ġ 1 7 L ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . add ( any ()) Ġ} Ġreturns Ġpaper Mock 2 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpaper Mock 2 . id Ġ} Ġreturns Ġ 2 7 L ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpaper Mock 2 . pm Id Ġ} Ġreturns Ġpm Id Value ĊĊĠĠĠĠĠĠĠ Ġval Ġsr Ġ= Ġservice . dump Pub med Articles To Db ( articles , ĠMIN IMUM _ NUMBER ) ĊĠĠĠĠĠĠĠ Ġsr . info Messages Ġshould Contain Same ĠlistOf (" PM ID Ġ$ pm Id Value Ġ( id Ġ 2 7 )") ĊĠĠĠĠĠĠĠ Ġsr . warn Messages . shouldBe Empty () ĊĠĠĠĠĠĠĠ Ġsr . error Messages . shouldBe Empty () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Existing Pm Ids OutOf ( listOf ( pm Id Value )) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Low est Free Number Starting From ( MIN IMUM _ NUMBER ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . add ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġpaper Mock 2 . id Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġpaper Mock 2 . pm Id Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnew Pub med Article ( pm Id Value : ĠInt ?): ĠPub med Article Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpa Ġ= ĠPub med Article () ĊĠĠĠĠĠĠĠ Ġval Ġmc Ġ= ĠMed line C itation () ĊĠĠĠĠĠĠĠ Ġval Ġm ji Ġ= ĠMed line Journal Info () ĊĠĠĠĠĠĠĠ Ġmc . med line Journal Info Ġ= Ġm ji ĊĠĠĠĠĠĠĠ Ġval Ġpm Id Ġ= ĠPM ID () ĊĠĠĠĠĠĠĠ Ġpm Id . set value ( pm Id Value . toString ()) ĊĠĠĠĠĠĠĠ Ġmc . pm id Ġ= Ġpm Id ĊĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠArticle () ĊĠĠĠĠĠĠĠ Ġval Ġat Ġ= ĠArticle Title () ĊĠĠĠĠĠĠĠ Ġa . article Title Ġ= Ġat ĊĠĠĠĠĠĠĠ Ġval Ġj Ġ= ĠJournal () ĊĠĠĠĠĠĠĠ Ġval Ġji Ġ= ĠJournal Issue () ĊĠĠĠĠĠĠĠ Ġval Ġpd Ġ= ĠPub Date () ĊĠĠĠĠĠĠĠ Ġji . pub Date Ġ= Ġpd ĊĠĠĠĠĠĠĠ Ġj . journal Issue Ġ= Ġji ĊĠĠĠĠĠĠĠ Ġa . journal Ġ= Ġj ĊĠĠĠĠĠĠĠ Ġmc . article Ġ= Ġa ĊĠĠĠĠĠĠĠ Ġpa . med line C itation Ġ= Ġmc ĊĠĠĠĠĠĠĠ Ġreturn Ġpa ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding By Number _ with No Result _ returns Optional Empty () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . findBy Numbers ( listOf ( 1 L ), ĠLC ) Ġ} Ġreturns ĠArrayList () ĊĠĠĠĠĠĠĠ Ġval Ġopt Ġ= Ġservice . findBy Number ( 1 L , ĠLC ) ĊĠĠĠĠĠĠĠ Ġopt . isPresent . shouldBe False () ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . findBy Numbers ( listOf ( 1 L ), ĠLC ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding By Number _ with Single Result From Repo _ returns That As Optional () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . findBy Numbers ( listOf ( 1 L ), ĠLC ) Ġ} Ġreturns ĠlistOf ( entity ) ĊĠĠĠĠĠĠĠ Ġaudit Fixture () ĊĠĠĠĠĠĠĠ Ġtest Finding By Numbers () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtest Finding By Numbers () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġopt Ġ= Ġservice . findBy Number ( 1 L , ĠLC ) ĊĠĠĠĠĠĠĠ Ġopt . isPresent . shouldBe True () ĊĠĠĠĠĠĠĠ Ġopt . get () ĠshouldBe EqualTo Ġentity ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . findBy Numbers ( listOf ( 1 L ), ĠLC ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġuser Repo Mock . findById ( CRE ATOR _ ID ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġuser Repo Mock . findById ( MODI FIER _ ID ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity . created By Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity . lastModified By Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity . created ByName Ġ= Ġ" creating User " Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity . created By FullName Ġ= Ġ" creating User FullName " Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity . lastModified ByName Ġ= Ġ" modify ing User " Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity Ġ== Ġentity Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding By Number _ with Multiple Records From Repo _ returns First As Optional () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . findBy Numbers ( listOf ( 1 L ), ĠLC ) Ġ} Ġreturns ĠlistOf ( entity , Ġpaper Mock 2 ) ĊĠĠĠĠĠĠĠ Ġaudit Fixture () ĊĠĠĠĠĠĠĠ Ġtest Finding By Numbers () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding Low est Free Number Starting From _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġminimum Ġ= Ġ 4 L ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Low est Free Number Starting From ( minimum ) Ġ} Ġreturns Ġ 1 7 L ĊĠĠĠĠĠĠĠ Ġservice . find Low est Free Number Starting From ( minimum ) ĠshouldBe EqualTo Ġ 1 7 L ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Low est Free Number Starting From ( minimum ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding Page Of Ids By Filter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġids Ġ= ĠlistOf ( 3 L , Ġ 1 7 L , Ġ 5 L ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Page Of Ids By Filter ( filter Mock , Ġpagination Context Mock ) Ġ} Ġreturns Ġids ĊĠĠĠĠĠĠĠ Ġservice . find Page Of Ids By Filter ( filter Mock , Ġpagination Context Mock ) ĠshouldBe EqualTo Ġids ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Page Of Ids By Filter ( filter Mock , Ġpagination Context Mock ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding Page Of Ids By Search Order () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġids Ġ= ĠlistOf ( 3 L , Ġ 1 7 L , Ġ 5 L ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Page Of Ids By Search Order ( search Order Mock , Ġpagination Context Mock ) Ġ} Ġreturns Ġids ĊĠĠĠĠĠĠĠ Ġservice . find Page Of Ids By Search Order ( search Order Mock , Ġpagination Context Mock ) ĠshouldBe EqualTo Ġids ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Page Of Ids By Search Order ( search Order Mock , Ġpagination Context Mock ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġexcluding From Search Order _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsearch OrderId Ġ= Ġ 4 L ĊĠĠĠĠĠĠĠ Ġval Ġpaper Id Ġ= Ġ 5 L ĊĠĠĠĠĠĠĠ Ġservice . exclude From Search Order ( search OrderId , Ġpaper Id ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . exclude Paper From Search Order Results ( search OrderId , Ġpaper Id ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġre including From Search Order _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsearch OrderId Ġ= Ġ 4 L ĊĠĠĠĠĠĠĠ Ġval Ġpaper Id Ġ= Ġ 5 L ĊĠĠĠĠĠĠĠ Ġservice . re include Into Search Order ( search OrderId , Ġpaper Id ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . re include Paper Into Search Order Results ( search OrderId , Ġpaper Id ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsaving Attachment _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpa Mock Ġ= Ġmock k < Paper Attachment >() ĊĠĠĠĠĠĠĠ Ġservice . save Attachment ( pa Mock ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . save Attachment ( pa Mock ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġloading Attachment With Content ById _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 7 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . load Attachment With Content By ( id ) Ġ} Ġreturns Ġattachment Mock ĊĠĠĠĠĠĠĠ Ġservice . load Attachment With Content By ( id ) ĠshouldBe EqualTo Ġattachment Mock ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . load Attachment With Content By ( id ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdeleting Attachment _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 5 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . delete Attachment ( id ) Ġ} Ġreturns Ġentity ĊĠĠĠĠĠĠĠ Ġservice . delete Attachment ( id ) ĠshouldBe EqualTo Ġentity ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . delete Attachment ( id ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġentity Ġ== Ġentity Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdeleting ById s _ deleg ates To Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġids Ġ= ĠlistOf ( 5 L , Ġ 7 L , Ġ 9 L ) ĊĠĠĠĠĠĠĠ Ġservice . delete P apers With Ids ( ids ) ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . delete ( ids ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġfinding By Filter _ with Paper With Null Creator () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpaper Mock 3 . created By Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġpaper Mock 3 . lastModified By Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġpapers . clear () ĊĠĠĠĠĠĠĠ Ġpapers . add ( paper Mock 3 ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . find Page By Filter ( filter Mock , Ġpagination Context Mock ) Ġ} Ġreturns Ġpapers ĊĠĠĠĠĠĠĠ Ġservice . find Page By Filter ( filter Mock , Ġpagination Context Mock ) ĠshouldBe EqualTo Ġpapers ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . find Page By Filter ( filter Mock , Ġpagination Context Mock ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġpaper Mock 3 . created By Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġpaper Mock 3 . created ByName Ġ= Ġnull Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġpaper Mock 3 . created By FullName Ġ= Ġnull Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġpaper Mock 3 . lastModified ByName Ġ= Ġnull Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmerging Paper Into News letter _ with W ip News letter Present _ deleg ates To News letter Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnews letter Id Ġ= Ġ 1 3 ĊĠĠĠĠĠĠĠ Ġval Ġpaper Id : ĠLong Ġ= Ġ 1 4 ĊĠĠĠĠĠĠĠ Ġval Ġtopic Id Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġval Ġlang Code Ġ= Ġ" en " ĊĊĠĠĠĠĠĠĠ Ġval Ġw ip News letter Ġ= ĠNews letter () ĊĠĠĠĠĠĠĠ Ġw ip News letter . id Ġ= Ġnews letter Id ĊĊĠĠĠĠĠĠĠ Ġval Ġnl Ġ= ĠPaper . News letter Link ( 1 , Ġ" link ", Ġ 2 , Ġ 3 , Ġ" topic ", Ġ" headline ") ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnews letter Repo Mock . newsletter In Status Work InProgress Ġ} Ġreturns Ġjava . util . Optional . of ( w ip News letter ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnews letter Repo Mock . merge Paper Into News letter ( newsletter Id , Ġpaper Id , Ġtopic Id , Ġlang Code ) Ġ} Ġreturns Ġjava . util . Optional . of ( nl ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġservice . merge Paper Into W ip News letter ( paper Id , Ġtopic Id , Ġlang Code ) ĊĠĠĠĠĠĠĠ Ġresult . isPresent . shouldBe True () ĊĠĠĠĠĠĠĠ Ġresult . get () ĠshouldBe EqualTo Ġnl ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnews letter Repo Mock . newsletter In Status Work InProgress Ġ} ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnews letter Repo Mock . merge Paper Into News letter ( newsletter Id , Ġpaper Id , Ġtopic Id , Ġlang Code ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmerging Paper Into News letter _ with No W ip News letter Present _ returns 0 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpaper Id : ĠLong Ġ= Ġ 1 4 ĊĠĠĠĠĠĠĠ Ġval Ġtopic Id Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġval Ġlanguage Code Ġ= Ġ" en " ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnews letter Repo Mock . newsletter In Status Work InProgress Ġ} Ġreturns Ġjava . util . Optional . empty () ĊĠĠĠĠĠĠĠ Ġservice . merge Paper Into W ip News letter ( paper Id , Ġtopic Id , Ġlanguage Code ) ĠshouldBe EqualTo Ġjava . util . Optional . empty < Any >() ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnews letter Repo Mock . newsletter In Status Work InProgress Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġremoving Paper From News letter _ deleg ates To News letter Repo () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnews letter Id Ġ= Ġ 1 3 ĊĠĠĠĠĠĠĠ Ġval Ġpaper Id : ĠLong Ġ= Ġ 1 4 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġnews letter Repo Mock . remove Paper From News letter ( newsletter Id , Ġpaper Id ) Ġ} Ġreturns Ġ 1 ĊĠĠĠĠĠĠĠ Ġservice . remove Paper From News letter ( newsletter Id , Ġpaper Id ) ĠshouldBe EqualTo Ġ 1 ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġnews letter Repo Mock . remove Paper From News letter ( newsletter Id , Ġpaper Id ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhas Duplicate Field Next To Current _ with Invalid FieldName Fails () Ġ{ ĊĠĠĠĠĠĠĠ Ġinvoking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . has Duplicate Field Next To Current (" foo ", Ġ" fw ", Ġ 1 L ) ĊĠĠĠĠĠĠĠ Ġ} Ġshould Throw ĠIllegalArgumentException :: class Ġwith Message Ġ" Field Ġ' foo ' Ġis Ġnot Ġsupported Ġby Ġthis Ġvalidator ." ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhas Duplicate Field Next To Current _ with Pm Id Validated _ with No Duplicate () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġ" pm Id " ĊĠĠĠĠĠĠĠ Ġval Ġfield Value Ġ= Ġ 1 1 ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 1 L ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . is Pm Id Already Assigned ( field Value , Ġid ) Ġ} Ġreturns Ġjava . util . Optional . empty () ĊĊĠĠĠĠĠĠĠ Ġservice . has Duplicate Field Next To Current ( fieldName , Ġfield Value , Ġid ). isPresent . shouldBe False () ĊĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . is Pm Id Already Assigned ( field Value , Ġid ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhas Duplicate Field Next To Current _ with Pm Id Validated _ with Duplicate () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġ" pm Id " ĊĠĠĠĠĠĠĠ Ġval Ġfield Value Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 1 L ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . is Pm Id Already Assigned ( field Value , Ġid ) Ġ} Ġreturns Ġjava . util . Optional . of (" 2 ") ĊĠĠĠĠĠĠĠ Ġservice . has Duplicate Field Next To Current ( fieldName , Ġfield Value , Ġid ). get () ĠshouldBe EqualTo Ġ" 2 " ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . is Pm Id Already Assigned ( field Value , Ġid ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhas Duplicate Field Next To Current _ with Do i Validated _ with No Duplicate () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġ" doi " ĊĠĠĠĠĠĠĠ Ġval Ġfield Value Ġ= Ġ" fw " ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 1 L ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġrepo . is Do i Already Assigned ( field Value , Ġid ) Ġ} Ġreturns Ġjava . util . Optional . empty () ĊĠĠĠĠĠĠĠ Ġservice . has Duplicate Field Next To Current ( fieldName , Ġfield Value , Ġid ). isPresent . shouldBe False () ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġrepo . is Do i Already Assigned ( field Value , Ġid ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhas Duplicate Field Next To Current _ with Null FieldValue _ is Always False () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfieldName Ġ= Ġ" doi " ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ 1 L ĊĊĠĠĠĠĠĠĠ Ġservice . has Duplicate Field Next To Current ( fieldName , Ġnull , Ġid ). isPresent . shouldBe False () ĊĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġrepo . is Pm Id Already Assigned ( any (), Ġeq ( id )) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġrepo . is Do i Already Assigned ( any (), Ġeq ( id )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMIN IMUM _ NUMBER Ġ= Ġ 7 L ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLC Ġ= Ġ" de " ĊĠĠĠ Ġ} Ċ } Ċ