package Ġde . r ki . cor on aw arn app . dcc re iss u ance . core . re issuer Ċ Ċ import Ġde . r ki . cor on aw arn app . c cl . dcc wallet info . model . Certificate Ċ import Ġde . r ki . cor on aw arn app . c cl . dcc wallet info . model . Certificate Ref Ċ import Ġde . r ki . cor on aw arn app . c cl . dcc wallet info . model . Certificate Re iss u ance Ċ import Ġde . r ki . cor on aw arn app . c cl . dcc wallet info . model . Re iss u ance Division Ċ import Ġde . r ki . cor on aw arn app . c cl . dcc wallet info . model . Single Text Ċ import Ġde . r ki . cor on aw arn app . covid certificate . common . exception . Invalid Health Certificate Exception Ċ import Ġde . r ki . cor on aw arn app . dcc re iss u ance . core . error . D cc Re iss u ance Exception Ċ import Ġde . r ki . cor on aw arn app . dcc re iss u ance . core . processor . D cc Re iss u ance Processor Ċ import Ġde . r ki . cor on aw arn app . dcc re iss u ance . core . server . data . D cc Re iss u ance Response Ċ import Ġio . kot est . assertions . throw ables . should Not Throw Ċ import Ġio . kot est . assertions . throw ables . should Throw Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . mock k . Mock K Annotations Ċ import Ġio . mock k . Runs Ċ import Ġio . mock k . co Every Ċ import Ġio . mock k . co Verify Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . just Ċ import Ġkotlinx . coroutines . test . run Blocking Test Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ import Ġtest helpers . Base Test Ċ Ċ internal Ġclass ĠD cc Re issuer Test Ġ: ĠBaseTest () Ġ{ ĊĠĠĠ Ġ@ Mock K Ġlateinit Ġvar Ġd cc Swap per : ĠD cc Swap per ĊĠĠĠ Ġ@ Mock K Ġlateinit Ġvar Ġd cc Re iss u ance Processor : ĠD cc Re iss u ance Processor ĊĊĠĠĠ Ġprivate Ġval Ġcertificate Re iss u ance Ġ= ĠCertificate Re iss u ance ( ĊĠĠĠĠĠĠĠ Ġre iss u ance Division Ġ= ĠRe iss u ance Division ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisible Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Text Ġ= ĠSingle Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" string ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocalized Text Ġ= Ġmap Of (" de " Ġto Ġ" Z ert ifi kat Ġer set zen "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= ĠlistOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsubtitle Text Ġ= ĠSingle Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" string ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocalized Text Ġ= Ġmap Of (" de " Ġto Ġ" Text "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= ĠlistOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlong Text Ġ= ĠSingle Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" string ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocalized Text Ġ= Ġmap Of (" de " Ġto Ġ" L anger ĠText "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparameters Ġ= ĠlistOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfa q Anchor Ġ= Ġ" dcc _ ad mission _ state " ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġcertificate To Re issue Ġ= ĠCertificate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcertificate Ref Ġ= ĠCertificate Ref ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbarcode Data Ġ= Ġ" HC 1 : 6 B FO XN ...", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġaccompanying Certificates Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCertificate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcertificate Ref Ġ= ĠCertificate Ref ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbarcode Data Ġ= Ġ" HC 1 : 6 B FO XN ..." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMock K Annotations . init ( this ) ĊĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġd cc Swap per . swap ( any (), Ġany ()) Ġ} Ġjust ĠRuns ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġd cc Re iss u ance Processor . request D cc Re iss u ance ( any ()) Ġ} Ġreturns ĠD cc Re iss u ance Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re iss u ances Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` start Re iss u ance Ġthrows ĠD CC _ RI _ NO _ REL ATION Ġif Ġno Ġre iss u ances `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġshould Throw < D cc Re iss u ance Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re issuer (). start Re iss u ance ( dcc Re iss u ance Descriptor Ġ= Ġcertificate Re iss u ance ) ĊĠĠĠĠĠĠĠ Ġ}. errorCode ĠshouldBe ĠD cc Re iss u ance Exception . ErrorCode . D CC _ RI _ NO _ REL ATION ĊĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġd cc Swap per . swap ( any (), Ġany ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` start Re iss u ance Ġthrows ĠD CC _ RI _ NO _ REL ATION Ġif Ġno Ġrelation Ġindex `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġd cc Re iss u ance Processor . request D cc Re iss u ance ( any ()) Ġ} Ġreturns ĠD cc Re iss u ance Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re iss u ances Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cc Re iss u ance Response . D cc Re iss u ance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcertificate Ġ= Ġ" HC 1 : 6 B FO XN ...", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelations Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cc Re iss u ance Response . Relation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġ" replace " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġshould Throw < D cc Re iss u ance Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re issuer (). start Re iss u ance ( dcc Re iss u ance Descriptor Ġ= Ġcertificate Re iss u ance ) ĊĠĠĠĠĠĠĠ Ġ}. errorCode ĠshouldBe ĠD cc Re iss u ance Exception . ErrorCode . D CC _ RI _ NO _ REL ATION ĊĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġd cc Swap per . swap ( any (), Ġany ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` start Re iss u ance Ġthrows ĠD CC _ RI _ NO _ REL ATION Ġif Ġno Ġrelation Ġaction `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġd cc Re iss u ance Processor . request D cc Re iss u ance ( any ()) Ġ} Ġreturns ĠD cc Re iss u ance Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re iss u ances Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cc Re iss u ance Response . D cc Re iss u ance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcertificate Ġ= Ġ" HC 1 : 6 B FO XN ...", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelations Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cc Re iss u ance Response . Relation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġ" combine " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġshould Throw < D cc Re iss u ance Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re issuer (). start Re iss u ance ( dcc Re iss u ance Descriptor Ġ= Ġcertificate Re iss u ance ) ĊĠĠĠĠĠĠĠ Ġ}. errorCode ĠshouldBe ĠD cc Re iss u ance Exception . ErrorCode . D CC _ RI _ NO _ REL ATION ĊĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġd cc Swap per . swap ( any (), Ġany ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` start Re iss u ance Ġworks `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd cc Re iss u ance Ġ= ĠD cc Re iss u ance Response . D cc Re iss u ance ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcertificate Ġ= Ġ" HC 1 : 6 B FO XN ...", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelations Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cc Re iss u ance Response . Relation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġ" replace " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġd cc Re iss u ance Processor . request D cc Re iss u ance ( any ()) Ġ} Ġreturns ĠD cc Re iss u ance Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re iss u ances Ġ= ĠlistOf ( dcc Re iss u ance ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġshould Not Throw < D cc Re iss u ance Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re issuer (). start Re iss u ance ( dcc Re iss u ance Descriptor Ġ= Ġcertificate Re iss u ance ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġco Verify ( exact ly Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Swap per . swap ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re iss u ance , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcertificate Re iss u ance . certificate To Re issue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` start Re iss u ance Ġshould Ġthrow Ġwhat Ġswap per Ġthrows `() Ġ= Ġrun Blocking Test Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd cc Re iss u ance Ġ= ĠD cc Re iss u ance Response . D cc Re iss u ance ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcertificate Ġ= Ġ" HC 1 : 6 B FO XN ...", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelations Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cc Re iss u ance Response . Relation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= Ġ" replace " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġd cc Re iss u ance Processor . request D cc Re iss u ance ( any ()) Ġ} Ġreturns ĠD cc Re iss u ance Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re iss u ances Ġ= ĠlistOf ( dcc Re iss u ance ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġco Every Ġ{ Ġd cc Swap per . swap ( dcc Re iss u ance , Ġcertificate Re iss u ance . certificate To Re issue ) Ġ} Ġthrows ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInvalid Health Certificate Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠerrorCode Ġ= ĠInvalid Health Certificate Exception . ErrorCode . HC _ BASE 4 5 _ DE CODING _ FAILED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġshould Throw < Invalid Health Certificate Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Re issuer (). start Re iss u ance ( dcc Re iss u ance Descriptor Ġ= Ġcertificate Re iss u ance ) ĊĠĠĠĠĠĠĠ Ġ}. errorCode ĠshouldBe ĠInvalid Health Certificate Exception . ErrorCode . HC _ BASE 4 5 _ DE CODING _ FAILED ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġd cc Re issuer () Ġ= ĠD cc Re issuer ( ĊĠĠĠĠĠĠĠ Ġd cc Swap per Ġ= Ġd cc Swap per , ĊĠĠĠĠĠĠĠ Ġd cc Re iss u ance Processor Ġ= Ġd cc Re iss u ance Processor ĊĠĠĠ Ġ) Ċ } Ċ