/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 8 ĠNB CO ĠY an dex . Money ĠLLC Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ċ Ġ* Ġassociated Ġdocumentation Ġfiles Ġ( the ĠâĢľ Software âĢĿ ), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ċ Ġ* Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ċ Ġ* Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ċ Ġ* Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ċ Ġ* Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED ĠâĢľ AS ĠIS âĢĿ, ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , Ċ Ġ* ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR Ċ Ġ* ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE Ċ Ġ* ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT Ċ Ġ* ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR Ċ Ġ* ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġru . yandex . money . android . sdk . impl . extensions Ċ Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . support . v 4 . content . Context Compat Ċ import Ġandroid . support . v 7 . content . res . AppCompat Resources Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . style . ForegroundColor Span Ċ import Ġandroid . text . style . Image Span Ċ import Ġandroid . text . style . Style Span Ċ import Ġorg . hamcrest . Matcher Assert . assertThat Ċ import Ġorg . hamcrest . Matchers . contains Ċ import Ġorg . hamcrest . Matchers . equalTo Ċ import Ġorg . hamcrest . Matchers . instance Of Ċ import Ġorg . hamcrest . Matchers . null Value Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . rules . Timeout Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . Ro bo lectric TestRunner Ċ import Ġorg . ro bo lectric . Runtime Environment Ċ import Ġru . yandex . money . android . sdk . R Ċ import Ġru . yandex . money . android . sdk . create Abstract Wallet Payment Option Ċ import Ġru . yandex . money . android . sdk . create Google Pay Payment Option With Fee Ċ import Ġru . yandex . money . android . sdk . create Linked Card Payment Option Ċ import Ġru . yandex . money . android . sdk . createNew Card Payment Option Ċ import Ġru . yandex . money . android . sdk . create S bol Sms In vo icing Payment Option Ċ import Ġru . yandex . money . android . sdk . create Wallet Payment Option Ċ import Ġru . yandex . money . android . sdk . equalTo Drawable Ċ import Ġru . yandex . money . android . sdk . impl . metrics . Token ize Scheme Bank Card Ċ import Ġru . yandex . money . android . sdk . impl . metrics . Token ize Scheme Google Pay Ċ import Ġru . yandex . money . android . sdk . impl . metrics . Token ize Scheme Linked Card Ċ import Ġru . yandex . money . android . sdk . impl . metrics . Token ize Scheme S bol Sms Ċ import Ġru . yandex . money . android . sdk . impl . metrics . Token ize Scheme Wallet Ċ import Ġru . yandex . money . android . sdk . model . External Confirmation Ċ import Ġru . yandex . money . android . sdk . model . Linked Card Ċ import Ġru . yandex . money . android . sdk . model . Payment Option Ċ import Ġru . yandex . money . android . sdk . model . Redirect Confirmation Ċ import Ġru . yandex . money . android . sdk . model . Wallet Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ @ RunWith ( Ro bo lectric TestRunner :: class ) Ċ class ĠPayment Option Extensions Test Ġ{ ĊĊĠĠĠ Ġ@ [ Rule ĠJ vm Field ] ĊĠĠĠ Ġval Ġx Ġ= ĠTimeout ( 1 , ĠTimeUnit . MIN UTES ) ĊĊĠĠĠ Ġprivate Ġval Ġcontext Ġ= ĠRuntime Environment . application ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġicon Ġfor ĠWallet `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Wallet Payment Option ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġpayment Option . get Icon ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( icon , ĠequalTo Drawable ( AppCompat Resources . get Drawable ( context , ĠR . drawable . ym _ ic _ y am oney ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġicon Ġfor ĠAbstract Wallet `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Abstract Wallet Payment Option ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġpayment Option . get Icon ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( icon , ĠequalTo Drawable ( AppCompat Resources . get Drawable ( context , ĠR . drawable . ym _ ic _ y am oney ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġicon Ġfor ĠLinked Card `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Linked Card Payment Option ( 1 ) Ġas ĠLinked Card ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġpayment Option . get Icon ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( icon , ĠequalTo Drawable ( AppCompat Resources . get Drawable ( context , Ġpayment Option . brand . get Icon Res Id ()))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġicon Ġfor ĠBank Card `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate New Card Payment Option ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġpayment Option . get Icon ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( icon , ĠequalTo Drawable ( AppCompat Resources . get Drawable ( context , ĠR . drawable . ym _ ic _ add _ card ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġicon Ġfor ĠGoogle Pay `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Google Pay Payment Option With Fee ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġpayment Option . get Icon ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( icon , ĠequalTo Drawable ( AppCompat Resources . get Drawable ( context , ĠR . drawable . ym _ ic _ google _ pay ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġtitle Ġfor ĠWallet `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Wallet Payment Option ( 1 ) Ġas ĠWallet ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġpayment Option . getTitle ( context ) Ġas ĠSp ann able StringBuilder ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( title . toString (), ĠequalTo ("${ payment Option . userName } ĠĠ Ġ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġexit Icon Ġ= ĠAppCompat Resources . get Drawable ( context , ĠR . drawable . ym _ ic _ exit ) ĊĠĠĠĠĠĠĠ Ġval Ġexit Span Ġ= Ġtitle . get Spans ( title . length Ġ- Ġ 2 , Ġtitle . length Ġ- Ġ 1 , ĠImage Span :: class . java ). single (). drawable ĊĠĠĠĠĠĠĠ ĠassertThat ( exit Icon , ĠequalTo Drawable ( exit Span )) ĊĊĠĠĠĠĠĠĠ Ġval Ġcolor Value Ġ= ĠContext Compat . getColor ( context , ĠR . color . ym _ button _ text _ link ) ĊĠĠĠĠĠĠĠ Ġval Ġcolor Span Ġ= Ġtitle . get Spans ( 0 , Ġtitle . length Ġ- Ġ 1 , ĠFore ground Color Span :: class . java ). single (). foreground Color ĊĠĠĠĠĠĠĠ ĠassertThat ( color Span , ĠequalTo ( color Value )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġtitle Ġfor ĠAbstract Wallet `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Abstract Wallet Payment Option ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġpayment Option . getTitle ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( title , ĠequalTo ( context . getText ( R . string . ym _ payment _ option _ y am oney ))) ĊĠĠĠĠĠĠĠ ĠassertThat ( title , Ġinstance Of ( String :: class . java )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġtitle Ġfor ĠLinked Card Ġwithout Ġname `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Linked Card Payment Option ( 1 ) Ġas ĠLinked Card ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġpayment Option . getTitle ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( title . toString (), ĠequalTo ( payment Option . pan . chunk ed ( 4 ). join ToString (" Ġ" ))) ĊĠĠĠĠĠĠĠ ĠassertThat ( title , Ġinstance Of ( String :: class . java )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġtitle Ġfor ĠLinked Card Ġwith Ġempty Ġname `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġ( create Linked Card Payment Option ( 1 ) Ġas ĠLinked Card ). copy ( name Ġ= Ġ"") ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġpayment Option . getTitle ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( title . toString (), ĠequalTo ( payment Option . pan . chunk ed ( 4 ). join ToString (" Ġ" ))) ĊĠĠĠĠĠĠĠ ĠassertThat ( title , Ġinstance Of ( String :: class . java )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġtitle Ġfor ĠLinked Card Ġwith Ġname `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġ( create Linked Card Payment Option ( 1 ) Ġas ĠLinked Card ). copy ( name Ġ= Ġ" name ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġpayment Option . getTitle ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( title . toString (), ĠequalTo ( payment Option . name )) ĊĠĠĠĠĠĠĠ ĠassertThat ( title , Ġinstance Of ( String :: class . java )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġtitle Ġfor ĠNew Card `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate New Card Payment Option ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġpayment Option . getTitle ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( title , ĠequalTo ( context . getText ( R . string . ym _ payment _ option _ new _ card ))) ĊĠĠĠĠĠĠĠ ĠassertThat ( title , Ġinstance Of ( String :: class . java )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġtitle Ġfor ĠGoogle Pay `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Google Pay Payment Option With Fee ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġpayment Option . getTitle ( context ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( title , ĠequalTo ( context . getText ( R . string . ym _ payment _ option _ google _ pay ))) ĊĠĠĠĠĠĠĠ ĠassertThat ( title , Ġinstance Of ( String :: class . java )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġadditional Ġinfo Ġfor ĠWallet `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġinit Extensions ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Wallet Payment Option ( 1 ) Ġas ĠWallet ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġadditional Info Ġ= Ġpayment Option . getAdditional Info () Ġas ĠSp ann able StringBuilder ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( additional Info . toString (), ĠequalTo ( payment Option . balance . format (). toString ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġstyle Ġ= Ġadditional Info . get Spans ( 0 , Ġadditional Info . length , ĠStyle Span :: class . java ). single (). style ĊĠĠĠĠĠĠĠ ĠassertThat ( style , ĠequalTo ( Type face . BOLD )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġadditional Ġinfo Ġfor ĠAbstract Wallet `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Abstract Wallet Payment Option ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġadditional Info Ġ= Ġpayment Option . getAdditional Info () ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( additional Info , Ġnull Value ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġadditional Ġinfo Ġfor ĠLinked Card `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Linked Card Payment Option ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġadditional Info Ġ= Ġpayment Option . getAdditional Info () ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( additional Info , Ġnull Value ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġadditional Ġinfo Ġfor ĠBank Card `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate New Card Payment Option ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġadditional Info Ġ= Ġpayment Option . getAdditional Info () ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( additional Info , Ġnull Value ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Ġadditional Ġinfo Ġfor ĠGoogle Pay `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Option Ġ= Ġcreate Google Pay Payment Option With Fee ( 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġadditional Info Ġ= Ġpayment Option . getAdditional Info () ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( additional Info , Ġnull Value ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġto Token ize Scheme ()` () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġpayment Options Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Abstract Wallet Payment Option ( 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Wallet Payment Option ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Linked Card Payment Option ( 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate New Card Payment Option ( 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate S bol Sms In vo icing Payment Option ( 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Google Pay Payment Option With Fee ( 5 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Token ize Schemes Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToken ize Scheme Wallet (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToken ize Scheme Wallet (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToken ize Scheme Linked Card (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToken ize Scheme Bank Card (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToken ize Scheme S bol Sms (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToken ize Scheme Google Pay () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġactual Token ize Schemes Ġ= Ġpayment Options . map ( Payment Option :: to Token ize Scheme ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( actual Token ize Schemes , Ġcontains (* expected Token ize Schemes )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġto Confirmation `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġprepare ĊĠĠĠĠĠĠĠ Ġval Ġredirect Url Ġ= Ġ" test Ġreturn Ġurl " ĊĠĠĠĠĠĠĠ Ġval Ġpayment Options Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Abstract Wallet Payment Option ( 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Wallet Payment Option ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Linked Card Payment Option ( 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate New Card Payment Option ( 3 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate S bol Sms In vo icing Payment Option ( 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Google Pay Payment Option With Fee ( 5 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Confirm ations Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRedirect Confirmation ( redirect Url ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRedirect Confirmation ( redirect Url ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRedirect Confirmation ( redirect Url ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRedirect Confirmation ( redirect Url ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠExternal Confirmation , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRedirect Confirmation ( redirect Url ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinvoke ĊĠĠĠĠĠĠĠ Ġval Ġactual Confirm ations Ġ= Ġpayment Options . map Ġ{ Ġit . get Confirmation ( redirect Url ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġassert ĊĠĠĠĠĠĠĠ ĠassertThat ( actual Confirm ations , Ġcontains (* expected Confirm ations )) ĊĠĠĠ Ġ} Ċ } Ċ