/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 - 2 0 1 9 ĠHERE ĠEurope ĠB . V . Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ* ĠLicense - Filename : ĠLICENSE Ċ Ġ*/ Ċ Ċ package Ġcom . here . glue co di um . validator Ċ Ċ import Ġcom . here . glue co di um . model . lime . L ime Basic Type Ċ import Ġcom . here . glue co di um . model . lime . L ime Class Ċ import Ġcom . here . glue co di um . model . lime . L ime Comment Ċ import Ġcom . here . glue co di um . model . lime . L ime Element Ċ import Ġcom . here . glue co di um . model . lime . L ime Exception Ċ import Ġcom . here . glue co di um . model . lime . L ime Function Ċ import Ġcom . here . glue co di um . model . lime . L ime Model Ċ import Ġcom . here . glue co di um . model . lime . L ime Model Loader Exception Ċ import Ġcom . here . glue co di um . model . lime . L ime Path . Companion . EMPTY _ PATH Ċ import Ġcom . here . glue co di um . model . lime . L ime ReturnType Ċ import Ġcom . here . glue co di um . model . lime . L ime Thrown Type Ċ import Ġcom . here . glue co di um . model . lime . L ime Type Alias Ċ import Ġcom . here . glue co di um . model . lime . L ime Type Ref Ċ import Ġcom . here . glue co di um . model . lime . L ime Typed Element Ċ import Ġcom . here . glue co di um . model . lime . L ime Visibility Ċ import Ġio . mock k . mock k Ċ import Ġorg . junit . Assert . assertFalse Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . Parameterized Ċ Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠL ime Type Refs Validator Test ( private Ġval ĠcreateElement : Ġ( L ime Type Ref ) Ġ-> ĠL ime Element ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġall Elements Ġ= Ġmutable Map Of < String , ĠL ime Element >() ĊĠĠĠ Ġprivate Ġval Ġlime Model Ġ= ĠL ime Model ( all Elements , Ġempty List ()) ĊĠĠĠ Ġprivate Ġval Ġdummy Type Ref Ġ= Ġobject Ġ: ĠL ime Type Ref () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġelement FullName Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġtype Ġ= ĠL ime Basic Type ( L ime Basic Type . TypeId . VOID ) ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġis Nullable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġas Nullable () Ġ= Ġthis ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġthrowing Type Ref Ġ= Ġobject Ġ: ĠL ime Type Ref () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġelement FullName Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġthrow ĠL ime Model Loader Exception ("") ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġis Nullable Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġas Nullable () Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġvalidator Ġ= ĠL ime Type Refs Validator ( mock k ( relax ed Ġ= Ġtrue )) ĊĊĠĠĠ Ġclass ĠDummy Typed Element ( lime Type Ref : ĠL ime Type Ref ) Ġ: ĠL ime Typed Element ( ĊĠĠĠĠĠĠĠ Ġpath Ġ= ĠEMPTY _ PATH , ĊĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠL ime Visibility . PUBLIC , ĊĠĠĠĠĠĠĠ Ġcomment Ġ= ĠL ime Comment (), ĊĠĠĠĠĠĠĠ Ġattributes Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġtype Ref Ġ= Ġlime Type Ref ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġvalidate With Valid Ref () Ġ{ ĊĠĠĠĠĠĠĠ Ġall Elements [ "" ] Ġ= ĠcreateElement ( dummy Type Ref ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( validator . validate ( lime Model )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġvalidate Invalid Ref () Ġ{ ĊĠĠĠĠĠĠĠ Ġall Elements [ "" ] Ġ= ĠcreateElement ( throw ing Type Ref ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( validator . validate ( lime Model )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" Remove Explicit Type Arguments ") ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Parameterized . Parameters ĊĠĠĠĠĠĠĠ Ġfun ĠtestData () Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf <( L ime Type Ref ) Ġ-> ĠL ime Element >({ ĠDummy Typed Element ( it ) Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf <( L ime Type Ref ) Ġ-> ĠL ime Element >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠL ime Function ( EMPTY _ PATH , ĠreturnType Ġ= ĠL ime ReturnType ( it )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf <( L ime Type Ref ) Ġ-> ĠL ime Element >({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠL ime Function ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY _ PATH , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrown Type Ġ= ĠL ime Thrown Type ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf <( L ime Type Ref ) Ġ-> ĠL ime Element >({ ĠL ime Class ( EMPTY _ PATH , Ġparent Ġ= Ġit ) Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf <( L ime Type Ref ) Ġ-> ĠL ime Element >({ ĠL ime Type Alias ( EMPTY _ PATH , Ġtype Ref Ġ= Ġit ) Ġ}), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf <( L ime Type Ref ) Ġ-> ĠL ime Element >({ ĠL ime Exception ( EMPTY _ PATH , Ġerror Type Ġ= Ġit ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ