package Ġcom . example . ez ik et ob enna . b aking app . recipe . presentation . fake Ċ Ċ import Ġcom . example . ez ik et ob enna . b aking app . domain . model . Recipe Ċ import Ġcom . example . ez ik et ob enna . b aking app . domain . repository . Recipe Repository Ċ import Ġcom . example . ez ik et ob enna . b aking app . recipe . presentation . data . Dummy Data Ċ import Ġjava . net . Socket TimeoutException Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . flow Ċ import Ġkotlinx . coroutines . flow . flow Of Ċ Ċ class ĠFake Recipe Repository Ġ: ĠRecipe Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Recipes (): ĠFlow < List < Recipe >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġflow Of ( listOf ( Dummy Data . recipe )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠFake Recipe Repository Empty Ġ: ĠRecipe Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Recipes (): ĠFlow < List < Recipe >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġflow Of ( listOf ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠFake Recipe Repository Error Ġ: ĠRecipe Repository Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠERROR _ MSG : ĠString Ġ= Ġ" No Ġdata " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Recipes (): ĠFlow < List < Recipe >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġflow Ġ{ Ġthrow ĠSocket TimeoutException ( ERROR _ MSG ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmake Fake Recipe Repository ( type : ĠRepo Type ): ĠRecipe Repository Ġ{ ĊĠĠĠ Ġreturn Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠ ĠRepo Type . DATA Ġ-> ĠFake Recipe Repository () ĊĠĠĠĠĠĠĠ ĠRepo Type . EMPTY Ġ-> ĠFake Recipe Repository Empty () ĊĠĠĠĠĠĠĠ ĠRepo Type . ERROR Ġ-> ĠFake Recipe Repository Error () ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠRepo Type Ġ{ ĊĠĠĠ ĠDATA , ĊĠĠĠ ĠEMPTY , ĊĠĠĠ ĠERROR Ċ } Ċ