/* Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠP AY , ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 Ġjp . pay . android . ui . widget Ċ Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġjp . pay . android . model . Card Brand Ċ import Ġorg . hamcrest . Matchers .` is ` Ċ import Ġorg . junit . Assert . assertThat Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . Parameterized Ro bo lectric TestRunner Ċ Ċ @ RunWith ( Parameterized Ro bo lectric TestRunner :: class ) Ċ class ĠCard NumberFormat Text Watcher Test ( ĊĠĠĠ Ġprivate Ġval Ġinput : ĠString ?, ĊĠĠĠ Ġprivate Ġval Ġbrand : ĠCard Brand ?, ĊĠĠĠ Ġprivate Ġval Ġresult : ĠString ? Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Parameterized Ro bo lectric TestRunner . Parameters ĊĠĠĠĠĠĠĠ Ġfun Ġdata (): ĠList < Array < out ĠAny ? >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 ", Ġnull , Ġ" 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 ", Ġnull , Ġ" 1 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 5 ", Ġnull , Ġ" 1 2 3 4 Ġ 5 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 5 6 aaa ", Ġnull , Ġ" 1 2 3 4 Ġ 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" aaaa ", Ġnull , Ġ""), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 ", Ġnull , Ġ" 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 ", ĠCard Brand . VIS A , Ġ" 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 ", ĠCard Brand . MASTER _ CARD , Ġ" 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 ", ĠCard Brand . J CB , Ġ" 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 ", ĠCard Brand . DIS COVER , Ġ" 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 Ġ 1 2 3 4 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 1 2 3 4 5 6 1 2 3 4 5 ", ĠCard Brand . AME X , Ġ" 1 2 3 4 Ġ 1 2 3 4 5 6 Ġ 1 2 3 4 5 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 1 2 3 4 5 6 1 2 3 4 ", ĠCard Brand . D IN ERS _ CL UB , Ġ" 1 2 3 4 Ġ 1 2 3 4 5 6 Ġ 1 2 3 4 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 5 6 ", ĠCard Brand . AME X , Ġ" 1 2 3 4 Ġ 5 6 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 2 3 4 5 6 ", ĠCard Brand . D IN ERS _ CL UB , Ġ" 1 2 3 4 Ġ 5 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtext Watcher : ĠCard NumberFormat Text Watcher ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġedit Text : ĠEditText ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Watcher Ġ= ĠCard NumberFormat Text Watcher (' Ġ') ĊĠĠĠĠĠĠĠ Ġedit Text Ġ= ĠEditText ( Application Provider . getApplicationContext ()) ĊĠĠĠĠĠĠĠ Ġedit Text . add TextChanged Listener ( text Watcher ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġformat Input () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( brand Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Watcher . brand Ġ= Ġbrand ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġedit Text . setText ( input ) ĊĠĠĠĠĠĠĠ ĠassertThat (" input Ġ= Ġ$ input , Ġbrand Ġ= Ġ$ brand ", Ġedit Text . text . toString (), Ġ` is `( result )) ĊĠĠĠ Ġ} Ċ } Ċ