package Ġno . nav . cv . e ures . cv Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġio . micro meter . core . instrument . simple . Simple Meter Registry Ċ import Ġno . nav . ar be id . cv . avro . Mel ding Ċ import Ġno . nav . cv . e ures . sam ty k ke . Sam ty k ke Service Ċ import Ġorg . apache . kafka . clients . consumer . Consumer Record Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . mockito . Argument Captor Ċ import Ġorg . mockito . Captor Ċ import Ġorg . mockito . Mockito Ċ import Ġjava . time . Z onedDateTime Ċ Ċ class ĠC v Consumer Test Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcv Consumer Ġ: ĠC v Consumer ĊĊĠĠĠ Ġprivate Ġval Ġcv Repository Ġ= ĠMockito . mock ( Cv Repository :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġsam ty k ke Service Ġ= ĠMockito . mock ( Sam ty k ke Service :: class . java ) ĊĊĊĠĠĠ Ġprivate Ġval Ġmeter Registry Ġ= ĠSimple Meter Registry () ĊĠĠĠ Ġprivate Ġval ĠtestData Ġ= ĠC v TestData () ĊĊĠĠĠ Ġprivate Ġval ĠTOP IC Ġ= Ġ" test - topic " ĊĠĠĠ Ġprivate Ġval ĠPART ITION Ġ= Ġ 0 ĊĊĠĠĠ Ġval Ġme ld ing Captor Raw Cv Ġ= ĠArgument Captor . for Class ( Raw CV :: class . java ) ĊĠĠĠ Ġval Ġstring Captor Ġ= Ġcom . n ha ar man . mock it ok otlin 2 . argument Captor < String >() ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġcv Consumer Ġ= ĠC v Consumer ( cv Repository , Ġsam ty k ke Service , Ġmeter Registry ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` mot tar Ġen Ġog Ġen Ġcv Ġ- Ġlag res Ġri kt ig `() Ġ{ ĊĠĠĠĠĠĠĠ Ġcv Consumer . receive ( listOf ( record ( 0 , ĠtestData . ak to er Id 1 , ĠtestData . meld ing 1 ))) ĊĠĠĠĠĠĠĠ Ġcv Consumer . receive ( listOf ( record ( 1 , ĠtestData . ak to er Id 2 , ĠtestData . meld ing 2 ))) ĊĊĠĠĠĠĠĠĠ ĠMockito . verify ( cv Repository , ĠMockito . times ( 2 )). save And Flush ( meld ing Captor Raw Cv . capture ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( testData . fo ed se ls nummer 1 , Ġme ld ing Captor Raw Cv . all Values [ 0 ]. fo ed se ls nummer ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( testData . fo ed se ls nummer 2 , Ġme ld ing Captor Raw Cv . all Values [ 1 ]. fo ed se ls nummer ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` mot tar Ġto Ġc ver Ġ- Ġlag res Ġri kt ig `() Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 L ĊĊĠĠĠĠĠĠĠ Ġcv Consumer . receive ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecord ( offset ++, ĠtestData . ak to er Id 1 , ĠtestData . meld ing 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecord ( offset , ĠtestData . ak to er Id 2 , ĠtestData . meld ing 2 ) ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ ĠMockito . verify ( cv Repository , ĠMockito . times ( 2 )). save And Flush ( meld ing Captor Raw Cv . capture ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( testData . fo ed se ls nummer 1 , Ġme ld ing Captor Raw Cv . all Values [ 0 ]. fo ed se ls nummer ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( testData . fo ed se ls nummer 2 , Ġme ld ing Captor Raw Cv . all Values [ 1 ]. fo ed se ls nummer ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` mot tar Ġav sl utt et Ġopp f Ã¸ l ging Ġ- Ġs letter Ġxml Ġcv Ġog Ġsam ty k ke `() Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 L ĊĊĠĠĠĠĠĠĠ Ġdo Return ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRaw CV . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġak to er Id Ġ= ĠtestData . ak to er Id 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfo ed se ls nummer Ġ= ĠtestData . fo ed se ls nummer 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsist End ret Ġ= ĠZ onedDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw Av ro Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunder Opp fo el ging Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme ld ing stype Ġ= ĠRaw CV . Companion . Record Type . UPDATE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` when `( cv Repository ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. h ent Cv By Fo ed se ls nummer ( testData . fo ed se ls nummer 1 ) ĊĊĠĠĠĠĠĠĠ Ġdo Return ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRaw CV . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġak to er Id Ġ= ĠtestData . ak to er Id 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfo ed se ls nummer Ġ= ĠtestData . fo ed se ls nummer 2 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsist End ret Ġ= ĠZ onedDateTime . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw Av ro Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunder Opp fo el ging Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġme ld ing stype Ġ= ĠRaw CV . Companion . Record Type . UPDATE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` when `( cv Repository ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. h ent Cv By Fo ed se ls nummer ( testData . fo ed se ls nummer 2 ) ĊĊĠĠĠĠĠĠĠ Ġcv Consumer . receive ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecord ( offset ++, ĠtestData . ak to er Id 1 , ĠtestData . meld ing Med Opp fol g ings inform as jon ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecord ( offset , ĠtestData . ak to er Id 2 , ĠtestData . meld ing U ten Opp fol g ings inform as jo ) ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ ĠMockito . verify ( sam ty k ke Service , ĠMockito . times ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. s lett Sam ty k ke ( string Captor . capture ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( testData . fo ed se ls nummer 2 , Ġstring Captor . first Value ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġrecord ( offset : ĠLong , Ġakt or Id : ĠString , Ġme ld ing : ĠMel ding ) ĊĠĠĠ Ġ= ĠConsumer Record < String , ĠByteArray >( TOPIC , ĠPART ITION , Ġoffset , Ġakt or Id , Ġme ld ing . toByteArray ()) Ċ }