package Ġdk . cache t . car p . protocols . domain Ċ Ċ import Ġdk . cache t . car p . protocols . domain . deployment . Deployment Issue Ċ import Ġdk . cache t . car p . protocols . infrastructure . test . create Empty Protocol Ċ import Ġdk . cache t . car p . test . find Concrete Types Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . jvm . is Accessible Ċ import Ġkotlin . test .* ĊĊ Ċ class ĠStudy Protocol Reflection Test Ċ { ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġall _ deployment _ issues _ are _ registered () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprotocol Ġ= Ġcreate Empty Protocol () ĊĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġall Ġregistered Ġdeployment Ġissues . ĊĠĠĠĠĠĠĠ Ġval Ġmember Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStudy Protocol :: class . members . first Ġ{ Ġit . name Ġ== Ġ" possible Deployment Issues " Ġ} ĊĠĠĠĠĠĠĠ Ġmember . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ@ Suppress ( Ġ" UN CHECK ED _ CAST " Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġregistered Deployment Issues Ġ= Ġmember . call ( Ġprotocol Ġ) Ġas ? ĠList < Deployment Issue > ĊĠĠĠĠĠĠĠ ĠassertNotNull ( Ġregistered Deployment Issues Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġregistered Deployment Issue Types Ġ= Ġregistered Deployment Issues . map Ġ{ Ġit :: class Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdefined Deployment Issues : ĠList < K Class < out ĠDeployment Issue >> Ġ= Ġfind Concrete Types () ĊĊĠĠĠĠĠĠĠ Ġ// ĠFor Ġeach Ġdefined Ġdeployment Ġissue , Ġverify Ġwhether Ġit Ġis Ġregistered Ġin Ġ` Study Protocol `. ĊĠĠĠĠĠĠĠ Ġdefined Deployment Issues . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġin Ġregistered Deployment Issue Types , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"` $ it ` Ġis Ġnot Ġregistered Ġas Ġa Ġpossible Ġdeployment Ġissue Ġin Ġ` Study Protocol `. " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ