package Ġcom . jo e . transactions app . business . data Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . Json Parser Ċ import Ġcom . jo e . transactions app . business . domain . util . Date Util Ċ import Ġcom . jo e . transactions app . framework . datasource . cache . entity . Transaction Cache Entity Ċ import Ġcom . jo e . transactions app . framework . datasource . network . entity . Transaction Api Entity Ċ Ċ class ĠTransaction Data Factory ( ĊĠĠĠ Ġprivate Ġval Ġtest ClassLoader : ĠClassLoader , ĊĠĠĠ Ġprivate Ġval Ġdate Util : ĠDate Util Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġproduce ListOf Api Transactions (): ĠList < Transaction Api Entity > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Str Ġ= Ġget Transactions FromFile (" transaction _ list . json ") ĊĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠJson Parser (). parse ( json Str ). as JsonArray ĊĠĠĠĠĠĠĠ Ġval Ġtransaction List : ĠMutable List < Transaction Api Entity > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( json Ġin Ġarray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentity : ĠTransaction Api Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGson (). fromJson ( json , ĠTransaction Api Entity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction List . add ( entity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtransaction List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġproduce HashMap Of Api Transactions ( transaction Api Entity List : ĠList < Transaction Api Entity >): ĠHashMap < String , ĠTransaction Api Entity > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠTransaction Api Entity >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( transaction Ġin Ġtransaction Api Entity List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap [ transaction . id ] Ġ= Ġtransaction ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmap ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġproduce Empty ListOf Api Transactions (): ĠList < Transaction Api Entity > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠArrayList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġmock Ġdata Ġfrom Ġapi ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Transactions FromFile ( fileName : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtest ClassLoader . getResource ( fileName ). read Text () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġmock Ġdatabase Ġto Ġget Ġall Ġtransaction ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġproduce ListOf Cache Transactions (): ĠList < Transaction Cache Entity > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Str Ġ= Ġget Transactions FromFile (" transaction _ list . json ") ĊĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠJson Parser (). parse ( json Str ). as JsonArray ĊĠĠĠĠĠĠĠ Ġval Ġtransaction List : ĠMutable List < Transaction Cache Entity > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( json Ġin Ġarray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġentity : ĠTransaction Api Entity Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGson (). fromJson ( json , ĠTransaction Api Entity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Entity Ġ= ĠTransaction Cache Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġentity . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredit Ġ= Ġentity . credit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġde bit Ġ= Ġentity . debit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsummary Ġ= Ġentity . summary , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġdate Util . convert Offset DateTime StringTo Timestamp ( entity . transaction Date ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction List . add ( cache Entity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtransaction List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġproduce HashMap Of Cache Transactions ( transaction Cache Entity List : ĠList < Transaction Cache Entity >): ĠHashMap < String , ĠTransaction Cache Entity > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠTransaction Cache Entity >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( transaction Ġin Ġtransaction Cache Entity List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap [ transaction . id ] Ġ= Ġtransaction ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmap ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġproduce Empty ListOf Cache Transactions (): ĠList < Transaction Cache Entity > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠArrayList () ĊĠĠĠ Ġ} Ċ } ĊĊĊĊĊĊĊĊĊĊĊĊĊĊĊĊ ĊĊĊ