/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠZ UP ĠIT ĠSER V IC OS ĠEM ĠT EC NO LOG IA ĠE ĠIN OV AC AO ĠSA Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġbr . com . z up . be agle . utils Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . view . Gravity Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . widget . TextView Compat Ċ import Ġbr . com . z up . be agle . extensions . once Ċ import Ġbr . com . z up . be agle . setup . Be agle Environment Ċ import Ġbr . com . z up . be agle . setup . Design System Ċ import Ġbr . com . z up . be agle . testutil . Random Data Ċ import Ġbr . com . z up . be agle . view . Be agle TextView Ċ import Ġbr . com . z up . be agle . view . setText Widget Ċ import Ġbr . com . z up . be agle . widget . ui . Text Ċ import Ġbr . com . z up . be agle . widget . ui . Text Alignment Ċ import Ġio . mock k .* Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . impl . annotations . Rel ax ed Mock K Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertEquals Ċ Ċ private Ġval ĠSTYLE _ RES Ġ= ĠRandom Data . int () Ċ private Ġval ĠIMAGE _ RES Ġ= ĠRandom Data . int () Ċ Ċ class ĠBe agle TextView Extensions Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtext Value Slot Ġ= Ġslot < String >() ĊĠĠĠ Ġprivate Ġval Ġtext Alignment Ġ= Ġslot < Int >() ĊĊĠĠĠ Ġ@ Rel ax ed Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbe agle TextView : ĠBe agle TextView ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdesign System : ĠDesign System ĊĠĠĠ Ġ@ Rel ax ed Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġactivity : ĠAppCompatActivity ĊĠĠĠ Ġ@ Rel ax ed Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtext : ĠText ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMock K Annotations . init ( this ) ĊĊĠĠĠĠĠĠĠ Ġmock k Object ( Be agle Environment ) ĊĠĠĠĠĠĠĠ Ġmock k Static ( TextView Compat :: class ) ĊĠĠĠĠĠĠĠ Ġmock k Static ( Color :: class ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠBe agle Environment . be agle Sdk . design System Ġ} Ġreturns Ġdesign System ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠTextView Compat . setText Appearance ( any (), Ġany ()) Ġ} Ġjust ĠRuns ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġbe agle TextView . context Ġ} Ġreturns Ġactivity ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġbe agle TextView . text Ġ= Ġcapture ( text Value Slot ) Ġ} Ġjust ĠRuns ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġbe agle TextView . gravity Ġ= Ġcapture ( text Alignment ) Ġ} Ġjust ĠRuns ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdesign System . text Appearance ( any ()) Ġ} Ġreturns ĠSTYLE _ RES ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdesign System . button Style ( any ()) Ġ} Ġreturns ĠSTYLE _ RES ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdesign System . image ( any ()) Ġ} Ġreturns ĠIMAGE _ RES ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . textColor Ġ} Ġreturns Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġun mock k All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Text Widget _ with _ text _ should _ call _ TextView Compat _ setText Appearance () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġtext Value Ġ= ĠRandom Data . string () ĊĠĠĠĠĠĠĠ Ġval Ġstyle Ġ= ĠRandom Data . string () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . text Ġ} Ġreturns Ġtext Value ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . style Ġ} Ġreturns Ġstyle ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . alignment Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġbe agle TextView . setText Widget ( text ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertEquals ( text Value , Ġtext Value Slot . captured ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠTextView Compat . setText Appearance ( be agle TextView , ĠSTYLE _ RES ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Text Widget _ with _ text _ should _ not _ call _ TextView Compat _ setText Appearance _ when _ style _ is _ null () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġtext Value Ġ= ĠRandom Data . string () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . text Ġ} Ġreturns Ġtext Value ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . style Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . alignment Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġbe agle TextView . setText Widget ( text ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġdesign System . text Appearance ("") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Text Widget _ with _ text _ should _ set _ alignment _ when _ is _ center () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġtext Value Ġ= ĠRandom Data . string () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . text Ġ} Ġreturns Ġtext Value ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . style Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . alignment Ġ} Ġreturns ĠText Alignment . CENTER ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġbe agle TextView . setText Widget ( text ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertEquals ( Gravity . CENTER , Ġtext Alignment . captured ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Text Widget _ with _ text _ should _ set _ alignment _ when _ is _ right () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġtext Value Ġ= ĠRandom Data . string () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . text Ġ} Ġreturns Ġtext Value ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . style Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . alignment Ġ} Ġreturns ĠText Alignment . RIGHT ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġbe agle TextView . setText Widget ( text ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertEquals ( Gravity . END , Ġtext Alignment . captured ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Text Widget _ with _ text _ should _ set _ alignment _ when _ is _ left () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġtext Value Ġ= ĠRandom Data . string () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . text Ġ} Ġreturns Ġtext Value ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . style Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . alignment Ġ} Ġreturns ĠText Alignment . LEFT ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġbe agle TextView . setText Widget ( text ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertEquals ( Gravity . START , Ġtext Alignment . captured ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Text Widget _ with _ text _ should _ not _ call _ TextView Compat _ setText Appearance _ when _ design System _ is _ null () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval Ġtext Value Ġ= ĠRandom Data . string () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . text Ġ} Ġreturns Ġtext Value ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . style Ġ} Ġreturns ĠRandom Data . string () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠBe agle Environment . be agle Sdk . design System Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . alignment Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġbe agle TextView . setText Widget ( text ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠTextView Compat . setText Appearance ( be agle TextView , ĠSTYLE _ RES ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Text Widget _ should _ call _ setTextColor () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval ĠtextColor Ġ= Ġ"# 0 0 0 0 0 0 " ĊĠĠĠĠĠĠĠ Ġval Ġcolor Int Ġ= Ġ 0 x 0 0 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠColor . parse Color ( textColor ) Ġ} Ġreturns Ġcolor Int ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . textColor Ġ} Ġreturns ĠtextColor ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġbe agle TextView . setText Widget ( text ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġonce ()) Ġ{ Ġbe agle TextView . setTextColor ( color Int ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Text Widget _ should _ not _ call _ setTextColor _ when _ color _ is _ null () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġval ĠtextColor Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġcolor Int Ġ= Ġ 0 x 0 0 0 0 0 0 ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġtext . textColor Ġ} Ġreturns ĠtextColor ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġbe agle TextView . setText Widget ( text ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġbe agle TextView . setTextColor ( color Int ) Ġ} ĊĠĠĠ Ġ} Ċ }