package Ġcom . example . capital city quiz k tx čĊč Ċ import Ġassert k . assertThat č Ċ import Ġcom . example . capital city quiz k tx . common . utils . Cont inent Selector č Ċ import Ġcom . example . capital city quiz k tx . common . utils . Database Utils č Ċ import Ġcom . example . capital city quiz k tx . data . models . geo graphical . Capital City č Ċ import Ġcom . example . capital city quiz k tx . data . models . geo graphical . Country č Ċ import Ġcom . example . capital city quiz k tx . data . models . geo graphical . cont in ents . Europe č Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals č Ċ import Ġorg . junit . jupiter . api . Test č Ċ import Ġorg . junit . jupiter . api . BeforeEach č Ċ import Ġorg . junit . jupiter . api . assert Throws č Ċ import Ġjava . io . ByteArray InputStream čĊč Ċ /** čĊ Ġ* ĠThis Ġclass Ġtests Ġa Ġhelper Ġfunction Ġget Countries From Stream (...) Ġwhich Ġhas Ġbeen Ġmoved Ġto čĊ Ġ* Ġa ĠCsv DataLoader Ġclass . čĊ Ġ*/ č Ċ class ĠDatabase UtilsTest { čĊčĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcontin ent Selector Ġ: ĠCont inent Selector čĊčĊĠĠĠ Ġ@ BeforeEach čĊĠĠĠ Ġfun ĠsetUp (){ čĊĠĠĠĠĠĠĠ Ġcontin ent Selector Ġ= ĠCont inent Selector () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` should Ġconvert ĠinputStream Ġto Ġa Ġlist Ġwhen Ġinput Ġis Ġright ` (){ čĊĠĠĠĠĠĠĠ Ġval Ġfake Input Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Sp ain , Mad rid , Europe , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| Fr ance , Par is , Europe """. trim Margin () čĊĠĠĠĠĠĠĠ Ġval Ġtarget Stream Ġ= ĠByteArrayInputStream ( fake Input . toByteArray ()) čĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠlistOf ( čĊĠĠĠĠĠĠĠĠĠĠĠ ĠCountry ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sp ain ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCap ital City ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Mad rid " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEurope čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), čĊĠĠĠĠĠĠĠĠĠĠĠ ĠCountry ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Fr ance ", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCap ital City ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Par is " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEurope čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠDatabase Utils . getCount ries From Stream ( target Stream , Ġcontin ent Selector ) čĊčĊĠĠĠĠĠĠĠ ĠassertThat { čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( element Ġin Ġexpected ){ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= Ġexpected . indexOf ( element ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( element . country Name , Ġactual [ index ]. country Name ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( element . capital City . name , Ġactual [ index ]. capital City . name ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( element . cont inent , Ġactual [ index ]. cont inent ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Test čĊĠĠĠ Ġfun Ġ` should Ġthrow Ġexception Ġwhen ĠinputStream Ġis Ġempty ` (){ čĊĠĠĠĠĠĠĠ Ġval Ġfake Input Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" """. trim Margin () čĊĠĠĠĠĠĠĠ Ġval Ġtarget Stream Ġ= ĠByteArrayInputStream ( fake Input . toByteArray ()) čĊčĊĠĠĠĠĠĠĠ ĠassertThrows < RuntimeException > Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Utils . getCount ries From Stream ( target Stream , Ġcontin ent Selector ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ }