/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 , Ġhttp :// www . s na key aml . org Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 , ĠChris ĠCl if ton Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġuk . org . j urg . y ak l . engine . use cases . inherited ĊĊ Ċ import Ġuk . org . j urg . y ak l . engine . utils . File Input Ċ import Ġuk . org . j urg . y ak l . engine . v 2 . api . Load Settings Ċ import Ġuk . org . j urg . y ak l . engine . v 2 . api . Yaml Unicode Reader Ċ import Ġuk . org . j urg . y ak l . engine . v 2 . exceptions . Reader Exception Ċ import Ġuk . org . j urg . y ak l . engine . v 2 . exceptions . Yaml Engine Exception Ċ import Ġuk . org . j urg . y ak l . engine . v 2 . scanner . StreamReader Ċ import Ġkotlin . test . Ignore Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertTrue Ċ import Ġkotlin . test . fail Ċ Ċ class ĠInherit ed Reader Test Ġ: ĠInherit ed Import Test () Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Ignore Ġ// TODO ĊĠĠĠ Ġfun Ġ` Reader Ġerrors `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinputs Ġ= Ġget Stream sBy Extension (". stream - error ") ĊĠĠĠĠĠĠĠ Ġprintln ( inputs ) ĊĠĠĠĠĠĠĠ Ġinputs . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Processing Ġ$ it ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠFile Input ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunicode Reader Ġ= ĠYaml Unicode Reader ( input ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstream Ġ= ĠStream Reader ( unicode Reader , ĠLoad Settings ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( stream . peek () Ġ!= Ġ'\ u 0 0 0 0 '. toInt ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstream . forward () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" Invalid Ġstream Ġmust Ġnot Ġbe Ġaccepted : Ġ$ it ; Ġencoding =${ unicode Reader . encoding }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠReader Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( e . toString (). contains (" Ġspecial Ġcharacters Ġare Ġnot Ġallowed "), Ġe . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠYaml Engine Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( e . toString (). contains (" Malformed Input Exception "), Ġe . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ