/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 / 2 0 2 0 ĠL it ote Ċ Ġ* Ċ Ġ* Ġ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 Ġorg . lit ote . km ongo . util Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . fasterxml . jackson . databind . module . Simple Module Ċ import Ġorg . junit . Test Ċ import Ġorg . lit ote . km ongo . jackson . Jack son Codec Provider Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . test . assertFalse Ċ Ċ class ĠModule 1 Ġ: ĠSimple Module () Ċ Ċ class ĠModule 2 Ġ: ĠSimple Module () Ċ Ċ /** Ċ Ġ* Ċ Ġ*/ Ċ class ĠK Mongo Configuration Test Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġget Registered Module Types ( mapper : ĠObjectMapper ): ĠSet < String > Ġ= ĊĠĠĠĠĠĠĠ ĠObjectMapper :: class . java . getDeclared Field ("_ registered Module Types ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget ( mapper ) Ġas ĠSet < String > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcontains Module ( mapper : ĠObjectMapper , Ġmodule Class : ĠK Class < out ĠSimple Module >) Ġ= ĊĠĠĠĠĠĠĠ Ġget Registered Module Types ( mapper ). contains ( module Class . qualified Name ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` all Ġobject Ġmap pers Ġhave Ġloaded Ġmodules `() Ġ{ ĊĠĠĠĠĠĠĠ Ġassert ( contains Module ( K Mongo Configuration . bson Mapper , ĠTest Module :: class )) ĊĠĠĠĠĠĠĠ Ġassert ( contains Module ( K Mongo Configuration . bson Mapper Copy , ĠTest Module :: class )) ĊĠĠĠĠĠĠĠ Ġassert ( contains Module ( K Mongo Configuration . extended Json Mapper , ĠTest Module :: class )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` reset Configuration Ġdoes Ġnot Ġkeep Ġold Ġj ack son Ġmodules `() Ġ{ ĊĠĠĠĠĠĠĠ ĠK Mongo Configuration . reset Configuration () ĊĊĠĠĠĠĠĠĠ ĠK Mongo Configuration . register B son Module ( Module 1 ()) ĊĠĠĠĠĠĠĠ Ġvar Ġcodec Provider Ġ= ĠK Mongo Configuration . jackson Codec Provider Ġas ĠJack son Codec Provider ĊĠĠĠĠĠĠĠ Ġassert ( contains Module ( codec Provider . bson ObjectMapper , ĠModule 1 :: class )) ĊĠĠĠĠĠĠĠ Ġassert ( contains Module ( codec Provider . not B son ObjectMapper , ĠModule 1 :: class )) ĊĊĠĠĠĠĠĠĠ ĠK Mongo Configuration . reset Configuration () ĊĊĠĠĠĠĠĠĠ Ġcodec Provider Ġ= ĠK Mongo Configuration . jackson Codec Provider Ġas ĠJack son Codec Provider ĊĠĠĠĠĠĠĠ ĠassertFalse ( contains Module ( codec Provider . bson ObjectMapper , ĠModule 1 :: class )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( contains Module ( codec Provider . not B son ObjectMapper , ĠModule 1 :: class )) ĊĊĠĠĠĠĠĠĠ ĠK Mongo Configuration . reset Configuration () ĊĊĠĠĠĠĠĠĠ ĠK Mongo Configuration . register B son Module ( Module 2 ()) ĊĠĠĠĠĠĠĠ Ġcodec Provider Ġ= ĠK Mongo Configuration . jackson Codec Provider Ġas ĠJack son Codec Provider ĊĠĠĠĠĠĠĠ ĠassertFalse ( contains Module ( codec Provider . bson ObjectMapper , ĠModule 1 :: class )) ĊĠĠĠĠĠĠĠ ĠassertFalse ( contains Module ( codec Provider . not B son ObjectMapper , ĠModule 1 :: class )) ĊĠĠĠĠĠĠĠ Ġassert ( contains Module ( codec Provider . bson ObjectMapper , ĠModule 2 :: class )) ĊĠĠĠĠĠĠĠ Ġassert ( contains Module ( codec Provider . not B son ObjectMapper , ĠModule 2 :: class )) ĊĠĠĠ Ġ} Ċ }