package Ġcom . line corp . kotlin jd sl . query . clause . orderby Ċ Ċ import Ġcom . line corp . kotlin jd sl . query . spec . From s Ċ import Ġcom . line corp . kotlin jd sl . query . spec . Order Spec Ċ import Ġcom . line corp . kotlin jd sl . test . With Kotlin J dsl Assertions Ċ import Ġio . mock k . confirm Verified Ċ import Ġio . mock k . every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . junit 5 . Mock K Extension Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . verify Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġjavax . persistence . criteria . Criteria Builder Ċ import Ġjavax . persistence . criteria . Criteria Query Ċ import Ġjavax . persistence . criteria . Order Ċ Ċ @ Extend With ( Mock K Extension :: class ) Ċ internal Ġclass ĠOrder By Clause Test Ġ: ĠWith Kotlin J dsl Assertions Ġ{ ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfrom s : ĠFrom s ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcriteria Query : ĠCriteria Query < Int > ĊĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcriteria Builder : ĠCriteria Builder ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġapply () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġorder Spec 1 : ĠOrder Spec Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġval Ġorder Spec 2 : ĠOrder Spec Ġ= Ġmock k () ĊĊĠĠĠĠĠĠĠ Ġval Ġorder 1 : ĠOrder Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġval Ġorder 2 : ĠOrder Ġ= Ġmock k () ĊĠĠĠĠĠĠĠ Ġval Ġorder 3 : ĠOrder Ġ= Ġmock k () ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġorder Spec 1 . to Criteria Order ( from s , Ġcriteria Query , Ġcriteria Builder ) Ġ} Ġreturns ĠlistOf ( order 1 ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġorder Spec 2 . to Criteria Order ( from s , Ġcriteria Query , Ġcriteria Builder ) Ġ} Ġreturns ĠlistOf ( order 2 , Ġorder 3 ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġcriteria Query . orderBy ( listOf ( order 1 , Ġorder 2 , Ġorder 3 )) Ġ} Ġreturns Ġcriteria Query ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ ĠOrder By Clause ( listOf ( order Spec 1 , Ġorder Spec 2 )). apply ( from s , Ġcriteria Query , Ġcriteria Builder ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder Spec 1 . to Criteria Order ( from s , Ġcriteria Query , Ġcriteria Builder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder Spec 2 . to Criteria Order ( from s , Ġcriteria Query , Ġcriteria Builder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcriteria Query . orderBy ( listOf ( order 1 , Ġorder 2 , Ġorder 3 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfirm Verified ( order Spec 1 , Ġorder Spec 2 , Ġfrom s , Ġcriteria Query , Ġcriteria Builder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` apply Ġ- Ġempty `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ ĠOrder By Clause ( emptyList ()). apply ( from s , Ġcriteria Query , Ġcriteria Builder ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġconfirm Verified ( from s , Ġcriteria Query , Ġcriteria Builder ) ĊĠĠĠ Ġ} Ċ }