package Ġpl . dz iel ins 4 2 . v 8 n . string Ċ Ċ import Ġpl . dz iel ins 4 2 . v 8 n . Validator Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . Parameterized Ċ Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠLength Validator Test ( ĊĠĠĠ Ġvalue : ĠString , ĊĠĠĠ Ġexpected Result : ĠBoolean , ĊĠĠĠ Ġmin Length : ĠInt ?, ĊĠĠĠ ĠmaxLength : ĠInt ? Ċ ) Ġ: ĠBase String Validator Test ( value , Ġexpected Result ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġvalidator : ĠValidator < String > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( min Length Ġ!= Ġnull Ġ&& ĠmaxLength Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLength Validator ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Length Ġ= Ġmin Length , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxLength Ġ= ĠmaxLength ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( min Length Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLength Validator ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Length Ġ= Ġmin Length ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( maxLength Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLength Validator ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmaxLength Ġ= ĠmaxLength ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLength Validator () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Parameterized . Parameters ( name Ġ= Ġ" input Ġvalue : Ġ\" { 0 }\ "; Ġexpected Ġresult : Ġ{ 1 }") ĊĠĠĠĠĠĠĠ Ġfun Ġdata (): ĠCollection < Array < out ĠAny ? >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ("", Ġtrue , Ġnull , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" Ġ", Ġtrue , Ġnull , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" abc ", Ġtrue , Ġnull , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ("", Ġfalse , Ġ 1 , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" Ġ", Ġtrue , Ġ 1 , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" abc ", Ġtrue , Ġ 1 , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ("", Ġtrue , Ġnull , Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" Ġ", Ġtrue , Ġnull , Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" abc ", Ġfalse , Ġnull , Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ("", Ġfalse , Ġ 1 , Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" Ġ", Ġtrue , Ġ 1 , Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" abc ", Ġfalse , Ġ 1 , Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }