/* Ċ Ġ* ĠCopyright Ġ 2 0 0 2 - 2 0 2 0 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttps :// 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 . springframework . test . web . reactive . server Ċ Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġorg . reactiv est ream s . Publisher Ċ import Ġorg . springframework . core . Parameterized Type Reference Ċ import Ġorg . springframework . test . web . reactive . server . Web Test Client .* Ċ Ċ /** Ċ Ġ* ĠExtension Ġfor Ġ[ RequestBody Spec . body ] Ġproviding Ġa Ġvariant Ġwithout Ġexplicit Ġclass Ċ Ġ* Ġparameter Ġthanks Ġto ĠKotlin Ġre ified Ġtype Ġparameters . Ċ Ġ* Ċ Ġ* Ġ@ author ĠSeb ast ien ĠDe le u ze Ċ Ġ* Ġ@ since Ġ 5 . 0 Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny , ĠS Ġ: ĠPublisher < T >> ĠRequest Body Spec . body ( publisher : ĠS ): ĠRequest Headers Spec < *> Ċĉ ĉ = Ġbody ( publisher , Ġobject Ġ: ĠParameter ized Type Reference < T >() Ġ{}) Ċ Ċ /** Ċ Ġ* ĠExtension Ġfor Ġ[ RequestBody Spec . body ] Ġproviding Ġa Ġ` body < T >( Any )` Ġvariant Ċ Ġ* Ġlever aging ĠKotlin Ġre ified Ġtype Ġparameters . ĠThis Ġextension Ġis Ġnot Ġsubject Ġto Ġtype Ċ Ġ* Ġer asure Ġand Ġret ains Ġactual Ġgeneric Ġtype Ġarguments . Ċ Ġ* Ġ@ param Ġproducer Ġthe Ġproducer Ġto Ġwrite Ġto Ġthe Ġrequest . ĠThis Ġmust Ġbe Ġa Ċ Ġ* Ġ[ Publisher ] Ġor Ġanother Ġproducer Ġad ap table Ġto Ġa Ċ Ġ* Ġ[ Publisher ] Ġvia Ġ[ org . springframework . core . Reactive Adapter Registry ] Ċ Ġ* Ġ@ param ĠT Ġthe Ġtype Ġof Ġthe Ġelements Ġcontained Ġin Ġthe Ġproducer Ċ Ġ* Ġ@ author ĠSeb ast ien ĠDe le u ze Ċ Ġ* Ġ@ since Ġ 5 . 2 Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠRequest Body Spec . body ( producer : ĠAny ): ĠRequest Headers Spec < *> Ċĉ ĉ = Ġbody ( producer , Ġobject Ġ: ĠParameter ized Type Reference < T >() Ġ{}) Ċ Ċ /** Ċ Ġ* ĠExtension Ġfor Ġ[ RequestBody Spec . body ] Ġproviding Ġa Ġ` body ( Flow < T >) ` Ġvariant Ċ Ġ* Ġlever aging ĠKotlin Ġre ified Ġtype Ġparameters . ĠThis Ġextension Ġis Ġnot Ġsubject Ġto Ġtype Ċ Ġ* Ġer asure Ġand Ġret ains Ġactual Ġgeneric Ġtype Ġarguments . Ċ Ġ* Ġ@ param Ġflow Ġthe Ġ[ Flow ] Ġto Ġwrite Ġto Ġthe Ġrequest Ċ Ġ* Ġ@ param ĠT Ġthe Ġtype Ġof Ġthe Ġelements Ġcontained Ġin Ġthe Ġpublisher Ċ Ġ* Ġ@ author ĠSeb ast ien ĠDe le u ze Ċ Ġ* Ġ@ since Ġ 5 . 2 Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠRequest Body Spec . body ( flow : ĠFlow < T >): ĠRequest Headers Spec < *> Ġ= Ċĉ ĉ body ( flow , Ġobject Ġ: ĠParameter ized Type Reference < T >() Ġ{}) Ċ Ċ /** Ċ Ġ* ĠExtension Ġfor Ġ[ Response Spec . expect Body ] Ġproviding Ġan Ġ` expect Body < Foo > ()` Ġvariant Ċ Ġ* Ġlever aging ĠKotlin Ġre ified Ġtype Ġparameters . ĠThis Ġextension Ġis Ġnot Ġsubject Ġot Ġtype Ċ Ġ* Ġer asure Ġand Ġret ains Ġactual Ġgeneric Ġtype Ġarguments . Ċ Ġ* Ċ Ġ* Ġ@ author ĠSeb ast ien ĠDe le u ze Ċ Ġ* Ġ@ author ĠAr jen ĠP outs ma Ċ Ġ* Ġ@ since Ġ 5 . 0 Ċ Ġ*/ Ċ @ Suppress (" EXTENSION _ SH ADOW ED _ BY _ MEMBER ") Ċ inline Ġfun Ġ< re ified ĠB Ġ: ĠAny > ĠResponse Spec . expect Body (): ĠBody Spec < B , Ġ*> Ġ= Ċĉ ĉ expect Body ( object Ġ: ĠParameter ized Type Reference < B >() Ġ{}) Ċ Ċ /** Ċ Ġ* ĠExtension Ġfor Ġ[ Response Spec . expect Body List ] Ġproviding Ġa Ġ` expect Body List < Foo > ()` Ġvariant . Ċ Ġ* Ċ Ġ* Ġ@ author ĠSeb ast ien ĠDe le u ze Ċ Ġ* Ġ@ since Ġ 5 . 0 Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠE Ġ: ĠAny > ĠResponse Spec . expect Body List (): ĠList Body Spec < E > Ġ= Ċĉ ĉ expect Body List ( object Ġ: ĠParameter ized Type Reference < E >() Ġ{}) Ċ Ċ /** Ċ Ġ* ĠExtension Ġfor Ġ[ Response Spec . return Result ] Ġproviding Ġa Ġ` return Result < Foo > ()` Ġvariant . Ċ Ġ* Ċ Ġ* Ġ@ author ĠSeb ast ien ĠDe le u ze Ċ Ġ* Ġ@ since Ġ 5 . 0 Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠResponse Spec . return Result (): ĠFlux Exchange Result < T > Ġ= Ċĉ ĉ return Result ( object Ġ: ĠParameter ized Type Reference < T >() Ġ{}) Ċ