package Ġcom . gre kov . translate . presentation Ċ Ċ import Ġandroid . view . View Ċ import Ġassert Cmd Ċ import Ġcmd Should Ċ import Ġcom . gre kov . translate . R Ċ import Ġcom . gre kov . translate . domain . I ResourceManager Ċ import Ġcom . gre kov . translate . domain . elm . Init Ċ import Ġcom . gre kov . translate . domain . elm . None Ċ import Ġcom . gre kov . translate . domain . inter actor . history . History Clear UseCase Ċ import Ġcom . gre kov . translate . domain . inter actor . history . History Loaded Msg Ċ import Ġcom . gre kov . translate . domain . inter actor . history . History Ph rases Sub Ċ import Ġcom . gre kov . translate . domain . model . Phrase Ċ import Ġcom . gre kov . translate . presentation . core . elm . Program Ċ import Ġcom . gre kov . translate . presentation . core . elm . Time Tr av eller Ċ import Ġcom . gre kov . translate . presentation . history . presenter . History Ċ import Ġcom . gre kov . translate . presentation . history . presenter . History Presenter Ċ import Ġcom . gre kov . translate . presentation . history . view . I History View Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġmock Ċ import Ġorg . jetbrains . spe k . api . Spe k Ċ import Ġorg . jetbrains . spe k . api . dsl . describe Ċ import Ġorg . jetbrains . spe k . api . dsl . given Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito . verify Ċ import Ġorg . mockito . Mockito . verify No More Interactions Ċ import Ġstate Assert Ċ import Ġview Assert Ċ import Ġjava . util .* Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠHistory Presenter Test Ġ: ĠSpe k ({ ĊĊĠĠĠ Ġvar Ġview : ĠI History View Ġ= Ġmock () ĊĠĠĠ Ġval Ġresource Manager : ĠI ResourceManager Ġ= Ġmock () ĊĠĠĠ Ġval Ġhistory Ph rases Sub : ĠHistory Ph rases Sub Ġ= Ġmock () ĊĠĠĠ Ġval Ġhistory Clear UseCase : ĠHistory Clear UseCase Ġ= Ġmock () ĊĠĠĠ Ġvar Ġhistory Presenter Ġ= ĠHistory Presenter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProgram ( Schedulers . tr amp oline (), ĠTime Tr av eller ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresource Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Ph rases Sub , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Clear UseCase ) ĊĠĠĠ ĠMockito .` when `( view . is Attached ()). thenReturn ( true ) ĊĠĠĠ ĠMockito .` when `( resource Manager . getString ( R . string . history _ title )). thenReturn (" History ") ĊĠĠĠ ĠMockito .` when `( resource Manager . getString ( R . string . history _ search _ hint )). thenReturn (" search Ġin Ġhistory ") ĊĊĠĠĠ Ġdescribe (" history Ġscreen ") Ġ{ ĊĊĠĠĠĠĠĠĠ ĠbeforeEach Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( view . is Attached ()). thenReturn ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠafterEach Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito . reset ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġgiven (" history Ġscreen Ġinit ", Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠinitialState Ġ= ĠHistory Presenter . History State ( false , ĠlistOf (), Ġ"", ĠHistory ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( state After Init , Ġcmd After Init ) Ġ= Ġhistory Presenter . update ( Init , ĠinitialState ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate Assert ("", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( initialState , Ġstate After Init ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Assert ("", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Presenter . render ( state After Init ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). is Attached () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). setTitle (" History ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). set Filter Hint (" search Ġin Ġhistory ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). trigger Empty Text ( View . VISIBLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). set Search Text ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). set Ph rases ( listOf ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcmd Should (" after Ġinit ", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Cmd ( cmd After Init , ĠNone :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgiven (" ph rases Ġhistory Ġloaded Ġ", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġphrases Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP hr ase (" cat ", Ġ" ÐºÐ¾ ÑĪ ÐºÐ° ", Ġ" en - ru ", Ġfalse , ĠDate ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP hr ase (" dog ", Ġ" Ñģ Ð¾Ð± Ð°Ðº Ð° ", Ġ" en - ru ", Ġfalse , ĠDate ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP hr ase (" door ", Ġ" Ð´ Ð²ÐµÑĢ ÑĮ ", Ġ" en - ru ", Ġfalse , ĠDate ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP hr ase (" light ", Ġ" Ñģ Ð²ÐµÑĤ ", Ġ" en - ru ", Ġfalse , ĠDate ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( state After Loaded , Ġcmd After Loaded ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Presenter . update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHistory Loaded Msg ( ph rases ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate After Init ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Assert (" state Ġafter Ġphrases Ġloaded ", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( state After Init . copy ( ph rases Ġ= Ġphrases ), Ġstate After Loaded ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Assert (" view Ġafter Ġphrases Ġloaded ", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhistory Presenter . render ( state After Loaded ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). is Attached () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). setTitle (" History ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). set Filter Hint (" search Ġin Ġhistory ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). trigger Empty Text ( View . GONE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). set Search Text ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( view ). set Ph rases ( ph rases ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcmd Should (" cmd Ġafter Ġphrases Ġloaded ", Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Cmd ( cmd After Loaded , ĠNone :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ })