package Ġorg . ort . school . app . service Ċ Ċ import Ġcom . n ha ar man . mockito _ kotlin .* Ċ import Ġio . kot est . core . spec . style . Annotation Spec Ċ import Ġorg . jooq . DSL Context Ċ import Ġorg . jooq . Transactional Callable Ċ import Ġorg . jooq . impl . Default Configuration Ċ import Ġorg . jooq . tools . jdbc . Mock Ċ import Ġorg . jooq . tools . jdbc . Mock Configuration Ċ import Ġorg . ort . school . app . model . Parent Info Ċ import Ġorg . ort . school . app . model . Student Info Ċ import Ġorg . ort . school . app . model . Subscribe DTO Ċ import Ġorg . ort . school . app . repo . Degree Repo Ċ Ċ class ĠSubscribe Service Test Ġ: ĠAnnotation Spec (){ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsubscribe () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmock Configuration Ġ= ĠMock Configuration ( Default Configuration (), ĠMock . of ( 1 )) ĊĠĠĠĠĠĠĠ Ġval Ġctx Ġ= Ġmock < DSL Context > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġtransaction Result ( any < Transactional Callable <* >> ()) Ġ} Ġdo Answer Ġ{ Ġinvocation Ġ-> Ġinvocation . get Argument < Transactional Callable < *> >( 0 ). run ( mock Configuration ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġstudent Ġ= ĠStudent Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ss ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ss ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ss ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= ĠParent Info (" ss ", Ġ" ss ", Ġ" ss ", Ġ" ss ") ĊĠĠĠĠĠĠĠ Ġval Ġdegree No Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġsubscribe DTO Ġ= ĠSubscribe DTO ( parent , ĠlistOf ( student )) ĊĠĠĠĠĠĠĠ Ġval Ġdegree Repo Ġ= Ġmock < Degree Repo > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġsave Student ( eq ( student ), Ġany ()) Ġ} Ġdo Return Ġ 7 7 7 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsubscribe Service Ġ= ĠSubscribe Service ( ctx , Ġdegree Repo ) ĊĠĠĠĠĠĠĠ Ġsubscribe Service . subscribe ( subscribe DTO ) ĊĊĠĠĠĠĠĠĠ Ġverify ( degree Repo , Ġtimes ( 1 )). create Parent ( eq ( parent ), Ġeq ( 7 7 7 ), Ġany ()) ĊĠĠĠ Ġ} Ċ }