package Ġcom . very good security . vgs collect . view . card . info Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . graphics . Type face Ċ import Ġandroid . text . InputType Ċ import Ġandroid . view . View Ċ import Ġcom . very good security . vgs collect . Test Application Ċ import Ġcom . very good security . vgs collect . any Ċ import Ġcom . very good security . vgs collect . core . storage . On Field State ChangeListener Ċ import Ġcom . very good security . vgs collect . view . card . FieldType Ċ import Ġcom . very good security . vgs collect . view . card . validation . rules . V GS Info Rule Ċ import Ġcom . very good security . vgs collect . view . internal . Base Input Field Ċ import Ġcom . very good security . vgs collect . view . internal . Info Input Field Ċ import Ġcom . very good security . vgs collect . widget . VG SE dit Text Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . Mockito .* Ċ import Ġorg . ro bo lectric . Ro bo lectric Ċ import Ġorg . ro bo lectric . Ro bo lectric TestRunner Ċ import Ġorg . ro bo lectric . android . controller . Activity Controller Ċ import Ġorg . ro bo lectric . annotation . Config Ċ Ċ @ RunWith ( Ro bo lectric TestRunner :: class ) Ċ @ Config ( application Ġ= ĠTest Application :: class ) Ċ class ĠV G SE dit Text Test Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġactivity Controller : ĠActivity Controller < Activity > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġactivity : ĠActivity ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġview : ĠV G SE dit Text ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity Controller Ġ= ĠRo bo lectric . build Activity ( Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġactivity Controller . get () ĊĊĠĠĠĠĠĠĠ Ġview Ġ= ĠV G SE dit Text ( activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ view () Ġ{ ĊĠĠĠĠĠĠĠ Ġview . on Attached To Window () ĊĠĠĠĠĠĠĠ Ġval Ġinternal Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( internal ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ attach _ view () Ġ{ ĊĠĠĠĠĠĠĠ Ġview . on Attached To Window () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġview . child Count ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ check _ internal _ view () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinternal Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( internal ) ĊĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠInfo Input Field ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ info () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( FieldType . INFO , Ġview . getField Type ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ info _ input _ type _ text () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġview . set InputType ( InputType . TYPE _ CLASS _ TEXT ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( InputType . TYPE _ CLASS _ TEXT , Ġview . getInput Type ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ info _ input _ type _ number () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġview . set InputType ( InputType . TYPE _ CLASS _ NUMBER ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( InputType . TYPE _ CLASS _ NUMBER , Ġview . getInput Type ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ info _ input _ type _ date () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġview . set InputType ( InputType . TYPE _ CLASS _ DATETIME ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( InputType . TYPE _ CLASS _ DATETIME , Ġview . getInput Type ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ info _ input _ type _ text _ password () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Pass Ġ= ĠInput Type . TYPE _ CLASS _ TEXT Ġor ĠInput Type . TYPE _ TEXT _ VARI ATION _ PASSWORD ĊĠĠĠĠĠĠĠ Ġview . set InputType ( text Pass ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( text Pass , Ġview . getInput Type ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ info _ input _ type _ number _ password () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnum Pass Ġ= ĠInput Type . TYPE _ CLASS _ NUMBER Ġor ĠInput Type . TYPE _ NUMBER _ VARI ATION _ PASSWORD ĊĠĠĠĠĠĠĠ Ġview . set InputType ( num Pass ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( num Pass , Ġview . getInput Type ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ info _ input _ type _ none () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġview . set InputType ( InputType . TYPE _ NULL ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( InputType . TYPE _ NULL , Ġview . getInput Type ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ field _ state _ change _ listener _ first () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġmock ( On Field State ChangeListener :: class . java ) ĊĠĠĠĠĠĠĠ Ġview . setOn Field State ChangeListener ( listener ) ĊĠĠĠĠĠĠĠ Ġverify ( listener , Ġtimes ( 0 )). on StateChange ( any ()) ĊĊĠĠĠĠĠĠĠ Ġ( child Ġas ĠBase Input Field ). prepare FieldType Connection () ĊĠĠĠĠĠĠĠ Ġchild . apply Internal Field State ChangeListener () ĊĊĠĠĠĠĠĠĠ Ġverify ( listener , Ġtimes ( 1 )). on StateChange ( any ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ field _ state _ change _ listener _ last () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġ( child Ġas ĠBase Input Field ). prepare FieldType Connection () ĊĠĠĠĠĠĠĠ Ġchild . apply Internal Field State ChangeListener () ĊĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġmock ( On Field State ChangeListener :: class . java ) ĊĠĠĠĠĠĠĠ Ġview . setOn Field State ChangeListener ( listener ) ĊĊĠĠĠĠĠĠĠ Ġverify ( listener , Ġtimes ( 1 )). on StateChange ( any ()) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ on _ focus _ change _ listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġ( child Ġas ĠBase Input Field ). prepare FieldType Connection () ĊĠĠĠĠĠĠĠ Ġchild . apply Internal Field State ChangeListener () ĊĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= Ġmock ( View . On Focus ChangeListener :: class . java ) ĊĠĠĠĠĠĠĠ Ġview . on Focus ChangeListener Ġ= Ġlistener ĊĠĠĠĠĠĠĠ Ġview . request Focus () ĊĊĠĠĠĠĠĠĠ Ġverify ( listener ). on Focus Change ( view , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset _ type face () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġview . getType face ()) ĊĠĠĠĠĠĠĠ Ġview . getType face (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setType face ( it , ĠType face . BOLD ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( view . getType face (), ĠType face . DEFAULT _ BOLD ) ĊĠĠĠĠĠĠĠ Ġview . setType face ( null , ĠType face . NORMAL ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( view . getType face (), ĠType face . DEFAULT ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ length () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġ( child Ġas ĠBase Input Field ). prepare FieldType Connection () ĊĠĠĠĠĠĠĠ Ġchild . apply Internal Field State ChangeListener () ĊĊĠĠĠĠĠĠĠ Ġval Ġrule Ġ= ĠV GS Info Rule . Validation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Allow able Min Length ( 1 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Allow able MaxLength ( 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġview . add Rule ( rule ) ĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 ") ĊĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 1 , Ġstate . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 ") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 2 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 2 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 2 , Ġstate 2 . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 ") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 3 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 3 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 5 , Ġstate 3 . content Length ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ length _ min () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġ( child Ġas ĠBase Input Field ). prepare FieldType Connection () ĊĠĠĠĠĠĠĠ Ġchild . apply Internal Field State ChangeListener () ĊĊĠĠĠĠĠĠĠ Ġval Ġrule Ġ= ĠV GS Info Rule . Validation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Allow able Min Length ( 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġview . add Rule ( rule ) ĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 ") ĊĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 6 , Ġstate . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 4 ") ĊĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 2 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 2 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 7 , Ġstate 2 . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 ") ĊĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 3 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 3 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 9 , Ġstate 3 . content Length ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ length _ max () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġ( child Ġas ĠBase Input Field ). prepare FieldType Connection () ĊĠĠĠĠĠĠĠ Ġchild . apply Internal Field State ChangeListener () ĊĊĠĠĠĠĠĠĠ Ġval Ġrule Ġ= ĠV GS Info Rule . Validation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Allow able MaxLength ( 1 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġview . add Rule ( rule ) ĊĠĠĠĠĠĠĠ Ġview . setText ("") ĊĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġstate . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 ") ĊĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 1 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 1 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġstate 1 . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 3 ") ĊĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 2 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 2 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 3 , Ġstate 2 . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 ") ĊĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 3 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 3 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 7 , Ġstate 3 . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 ") ĊĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 4 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate 4 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 8 , Ġstate 4 . content Length ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ length _ min _ max () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġ( child Ġas ĠBase Input Field ). prepare FieldType Connection () ĊĠĠĠĠĠĠĠ Ġchild . apply Internal Field State ChangeListener () ĊĊĠĠĠĠĠĠĠ Ġval Ġrule Ġ= ĠV GS Info Rule . Validation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Allow able MaxLength ( 1 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Allow able Min Length ( 1 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġview . add Rule ( rule ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 1 2 ") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 4 , Ġstate . content Length ) ĊĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 ") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 2 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 2 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 5 , Ġstate 2 . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 ") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 3 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 3 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 7 , Ġstate 3 . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 ") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 4 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 4 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 7 , Ġstate 4 . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 ") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 5 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate 5 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 8 , Ġstate 5 . content Length ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ regex () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= Ġview . state Pre par er . getView () ĊĠĠĠĠĠĠĠ ĠassertTrue ( child Ġis ĠBase Input Field ) ĊĊĠĠĠĠĠĠĠ Ġ( child Ġas ĠBase Input Field ). prepare FieldType Connection () ĊĠĠĠĠĠĠĠ Ġchild . apply Internal Field State ChangeListener () ĊĊĠĠĠĠĠĠĠ Ġval Ġrule Ġ= ĠV GS Info Rule . Validation Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Regex ("^ [ 0 - 9 ]{ 1 5 }( ?: [ 0 - 9 ]{ 1 }) ?\ $ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġview . add Rule ( rule ) ĊĊĠĠĠĠĠĠĠ Ġview . setText ("") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 0 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state 0 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate 0 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġstate 0 . content Length ) ĊĊĊĠĠĠĠĠĠĠ Ġview . setText (" 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 1 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state 1 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġstate 1 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 6 , Ġstate 1 . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 0 1 1 1 1 1 1 1 1 1 1 1 1 w 1 1 1 ") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 2 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state 2 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate 2 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 7 , Ġstate 2 . content Length ) ĊĊĠĠĠĠĠĠĠ Ġview . setText (" 0 1 1 1 1 1 1 1 1 1 1 1 1 1 ") ĊĠĠĠĠĠĠĠ Ġchild . refresh Internal State () ĊĊĠĠĠĠĠĠĠ Ġval Ġstate 3 Ġ= Ġview . getState () ĊĠĠĠĠĠĠĠ ĠassertNotNull ( state 3 ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġstate 3 !!. isValid ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 4 , Ġstate 3 . content Length ) ĊĠĠĠ Ġ} Ċ Ċ }