/** Ċ Ġ* ĠĠ ĠCopyright Ġ 2 0 1 8 , ĠC ord ite ĠFoundation . Ċ Ġ* Ċ Ġ* ĠĠĠ Ġ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 Ġio . cord ite . network map . utils Ċ Ċ import Ġcom . n ha ar man . mockito _ kotlin . any Ċ import Ġcom . n ha ar man . mockito _ kotlin . do Answer Ċ import Ġcom . n ha ar man . mockito _ kotlin . wh enever Ċ import Ġnet . cord a . core . internal . static Field Ċ import Ġnet . cord a . core . serialization . Serialization Factory Ċ import Ġnet . cord a . core . serialization . internal . Serialization Environment Ċ import Ġnet . cord a . core . serialization . internal . effective Serialization Env Ċ import Ġnet . cord a . testing . internal .* Ċ import Ġorg . apache . activ emq . art emis . core . rem oting . impl . in vm . In VM Connector Ċ import Ġorg . junit . rules . Test Rule Ċ import Ġorg . junit . runner . Description Ċ import Ġorg . junit . runners . model . Statement Ċ import Ġjava . util . concurrent . ExecutorService Ċ import Ġjava . util . concurrent . Executors Ċ Ċ /** Ċ Ġ* ĠA Ġtest Ġserialization Ġrule Ġimplementation Ġfor Ġuse Ġin Ġtests Ċ Ġ* Ċ Ġ* Ġ@ param Ġinherit able Ġwhether Ġnew Ġthreads Ġinherit Ġthe Ġenvironment , Ġuse Ġs paring ly . Ċ Ġ*/ Ċ class ĠSerialization Environment Rule ( private Ġval Ġinherit able : ĠBoolean Ġ= Ġfalse ) Ġ: ĠTest Rule Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCan 't Ġturn Ġit Ġoff , Ġand Ġit Ġcreates Ġthreads Ġthat Ġdo Ġserialization , Ġso Ġhack Ġit : ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIn VM Connector :: class . static Field < ExecutorService >(" thread Pool Executor "). value Ġ= Ġrig or ous Mock < ExecutorService >(). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin VM Executors . compute If Absent ( effective Serialization Env ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExec utors . new Cached ThreadPool ( test Thread Factory ( true )) Ġ// ĠClose Ġenough Ġto Ġwhat ĠIn VM Connector Ġmakes Ġnormally . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. execute ( it . arguments [ 0 ] Ġas ĠRunnable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. wh enever ( it ). execute ( any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġenv : ĠSerialization Environment ĊĊĠĠĠ Ġval Ġserialization Factory : ĠSerialization Factory Ġget () Ġ= Ġenv . serialization Factory ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( base : ĠStatement , Ġdescription : ĠDescription ): ĠStatement Ġ{ ĊĠĠĠĠĠĠĠ Ġenv Ġ= Ġcreate Test Serialization Env () ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠStatement () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġevaluate () Ġ= Ġenv . as TestContext Env ( inherit able ) Ġ{ Ġbase . evaluate () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ