/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠGoogle ĠLLC Ċ Ġ* Ċ Ġ* Ġ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 Ġcom . google . android . fhir . index Ċ Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . hl 7 . fhir . r 4 . model . Enumer ations Ċ import Ġorg . hl 7 . fhir . r 4 . model . Resource Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . Parameterized Ċ Ċ @ RunWith ( Parameterized :: class ) Ċ class ĠSearch Parameter Repository Generated Test ( private Ġval Ġresource : ĠResource ) Ġ{ ĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Resources () Ġ{ ĊĠĠĠ ĠassertThat ( get Search Param List ( resource )) ĊĠĠĠĠĠ Ġ. contains Exactly Elements In ( get Search Param List Reflection ( resource )) ĊĠ Ġ} ĊĊĠ Ġprivate Ġfun Ġget Search Param List Reflection ( resource : ĠResource ): ĠMutable List < Search Param Definition > Ġ{ ĊĠĠĠ Ġreturn Ġresource ĊĠĠĠĠĠ Ġ. java Class ĊĠĠĠĠĠ Ġ. fields ĊĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠ Ġ. map NotNull Ġ{ ĊĠĠĠĠĠĠĠ Ġit . getAnnotation ( ca . u hn . fhir . model . api . annotation . Search Param Definition :: class . java ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. filter Ġ{ Ġit . path . isNotEmpty () Ġ} ĊĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠ ĠSearch Param Definition ( ĊĠĠĠĠĠĠĠĠĠ Ġit . name , ĊĠĠĠĠĠĠĠĠĠ ĠEnum er ations . Search Param Type . valueOf ( it . type . toUpperCase ()), ĊĠĠĠĠĠĠĠĠĠ Ġit . path ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ. to Mutable List () ĊĠ Ġ} ĊĊĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Parameterized . Parameters Ġ@ Jvm Static Ġfun Ġdata (): ĠList < Resource > Ġ= ĠgetAll Resources () ĊĠ Ġ} Ċ } Ċ