package Ġcom . ap top ay ments . sdk . features . card . transaction list Ċ Ċ import Ġcom . ap top ay ments . mobile . data . config . UI Config Ċ import Ġcom . ap top ay ments . mobile . data . transaction . M CC Ċ import Ġcom . ap top ay ments . mobile . data . transaction . Transaction Ċ import Ġcom . ap top ay ments . sdk . UnitTest Ċ import Ġcom . ap top ay ments . sdk . core . data . Test DataProvider Ċ import Ġcom . ap top ay ments . sdk . core . di . fragment . Fragment Factory Ċ import Ġcom . ap top ay ments . sdk . features . transaction details . Transaction Details Fragment Ċ import Ġorg . mockito . kotlin .* Ċ import Ġorg . mockito . kotlin . mock Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . k oin . core . context . start K oin Ċ import Ġorg . k oin . dsl . module Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertTrue Ċ Ċ private Ġconst Ġval ĠLIST _ TAG Ġ= Ġ" Transaction List Fragment " Ċ private Ġconst Ġval ĠDET AIL S _ TAG Ġ= Ġ" Transaction Details Fragment " Ċ Ċ class ĠTransaction List Flow Test Ġ: ĠUnit Test () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsut : ĠTransaction List Flow ĊĊĠĠĠ Ġ// ĠCol labor ators ĊĠĠĠ Ġprivate Ġval Ġmock Fragment Factory : ĠFragment Factory Ġ= Ġmock () ĊĠĠĠ Ġprivate Ġval Ġcard Id Ġ= Ġ" card Id " ĊĠĠĠ Ġprivate Ġval Ġconfig Ġ= ĠTransaction List Config ( startDate Ġ= Ġnull , ĠendDate Ġ= Ġnull , Ġm cc Ġ= ĠM CC ( name Ġ= Ġnull , Ġicon Ġ= Ġnull )) ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠUI Config . update UI Config From ( Test DataProvider . provide Project Brand ing ()) ĊĠĠĠĠĠĠĠ Ġstart K oin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Ġ{ Ġmock Fragment Factory Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sut Ġinitialized Ġwith Ġcorrect ĠTheme Ġinstantiate Ġfragment Ġfrom Ġthe Ġfactory `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġsut Ġ= ĠTransaction List Flow ( card Id Ġ= Ġcard Id , Ġconfig Ġ= Ġconfig , Ġon Back Ġ= Ġ{}) ĊĠĠĠĠĠĠĠ Ġval Ġfragment Test Double Ġ= Ġtransaction List Fragment Test Double () ĊĠĠĠĠĠĠĠ Ġgiven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Fragment Factory . transaction List Fragment ( card Id , Ġconfig , ĠLIST _ TAG ) ĊĠĠĠĠĠĠĠ Ġ}. willReturn ( fragment Test Double ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġsut . init Ġ{} ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġverify ( mock Fragment Factory ). transaction List Fragment ( card Id , Ġconfig , ĠLIST _ TAG ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( sut , Ġfragment Test Double . delegate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Ġback Ġpressed Ġin Ġfragment Ġcall Ġon Ġback Ġclosure `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġvar Ġon Back Called Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġsut Ġ= ĠTransaction List Flow ( card Id Ġ= Ġcard Id , Ġconfig Ġ= Ġconfig , Ġon Back Ġ= Ġ{ Ġon Back Called Ġ= Ġtrue Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġsut . on Back Pressed () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ Ġon Back Called Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` on Ġtransaction Ġt apped Ġinstantiate Ġfragment Ġfrom Ġthe Ġfactory `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGiven ĊĠĠĠĠĠĠĠ Ġsut Ġ= ĠTransaction List Flow ( card Id Ġ= Ġcard Id , Ġconfig Ġ= Ġconfig , Ġon Back Ġ= Ġ{}) ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġmock < Transaction >() ĊĠĠĠĠĠĠĠ Ġval Ġfragment Test Double Ġ= Ġtransaction Details Fragment Test Double () ĊĠĠĠĠĠĠĠ Ġgiven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Fragment Factory . transaction Details Fragment ( transaction , ĠDET AIL S _ TAG ) ĊĠĠĠĠĠĠĠ Ġ}. willReturn ( fragment Test Double ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen ĊĠĠĠĠĠĠĠ Ġsut . on Transaction T apped ( transaction ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠThen ĊĠĠĠĠĠĠĠ Ġverify ( mock Fragment Factory ). transaction Details Fragment ( transaction , ĠDET AIL S _ TAG ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( sut , Ġfragment Test Double . delegate ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtransaction List Fragment Test Double (): ĠTransaction List Fragment Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġspy < Transaction List Fragment >(). apply Ġ{ ĠTAG Ġ= ĠLIST _ TAG Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtransaction Details Fragment Test Double (): ĠTransaction Details Fragment Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġspy < Transaction Details Fragment >(). apply Ġ{ ĠTAG Ġ= ĠDET AIL S _ TAG Ġ} ĊĠĠĠ Ġ} Ċ } Ċ