package Ġcom . gu hun gry . views . text view Ċ Ċ import Ġorg . hamcrest . Core Matchers Ċ import Ġorg . hamcrest . Matcher Assert Ċ import Ġorg . jetbrains . spe k . api . Spe k Ċ import Ġorg . jetbrains . spe k . api . dsl . given Ċ import Ġorg . jetbrains . spe k . api . dsl . it Ċ import Ġorg . jetbrains . spe k . api . dsl . on Ċ Ċ object ĠOn Before TextChanged Listener Test Ġ: ĠSpe k ({ ĊĠĠĠ Ġgiven (" On Before TextChanged Listener ") Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġc Value : ĠCharSequence ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġc Start Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġc Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġc After Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġcall Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġlambda : Ġ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ-> ĠUnit Ġ= Ġ{ Ġs , Ġstart , Ġcount , Ġafter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Count ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Value Ġ= Ġs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Start Ġ= Ġstart ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc Count Ġ= Ġcount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc After Ġ= Ġafter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsut Ġby Ġmemoized Ġ{ ĠOn Before TextChanged Listener ( lambda ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġon (" before TextChanged ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall Count Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġpass Ġcorrect Ġvalues Ġwhen Ġcalled Ġ 1 st Ġtime ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ" B ED A " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsut . before TextChanged ( expected , Ġ 1 , Ġ 2 , Ġ 3 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( call Count , ĠCore Matchers . equalTo ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( c Value , ĠCore Matchers . equalTo < CharSequence >( expected )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( c Start , ĠCore Matchers . equalTo ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( c Count , ĠCore Matchers . equalTo ( 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( c After , ĠCore Matchers . equalTo ( 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġpass Ġcorrect Ġvalues Ġwhen Ġcalled Ġ 2 nd Ġtime ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ" a eda " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsut . before TextChanged ( expected , Ġ 3 , Ġ 1 , Ġ 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( call Count , ĠCore Matchers . equalTo ( 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( c Value , ĠCore Matchers . equalTo < CharSequence >( expected )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( c Start , ĠCore Matchers . equalTo ( 3 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( c Count , ĠCore Matchers . equalTo ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMatcher Assert . assertThat ( c After , ĠCore Matchers . equalTo ( 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ })