/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠNet flix , ĠInc . Ċ Ġ* Ċ Ġ* Ġ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 . netflix . graphql . d gs Ċ Ċ import Ġcom . netflix . graphql . d gs . internal . D gs DataLoader Provider Ċ import Ġcom . netflix . graphql . d gs . internal . D gs Schema Provider Ċ import Ġgraphql . Execution Input Ċ import Ġgraphql . GraphQL Ċ import Ġgraphql . schema . Data Fetching Environment Ċ import Ġio . mock k . every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . impl . annotations . Rel ax ed Mock K Ċ import Ġio . mock k . junit 5 . Mock K Extension Ċ import Ġio . mock k . verify Ċ import Ġorg . dataloader . DataLoader Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ import Ġorg . springframework . beans . factory . support . Static List able BeanFactory Ċ import Ġorg . springframework . context . ApplicationContext Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ Ċ @ Extend With ( Mock K Extension :: class ) Ċ internal Ġclass ĠD gs Data Fetching Environment Test Ġ{ ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġlateinit Ġvar Ġapplication Context Mock : ĠApplication Context ĊĊĠĠĠ Ġ@ Rel ax ed Mock K ĊĠĠĠ Ġlateinit Ġvar Ġd fe Mock : ĠData Fetching Environment ĊĊĠĠĠ Ġval Ġhello Fetcher Ġ= Ġobject Ġ: ĠAny () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ D gs Data ( parent Type Ġ= Ġ" Query ", Ġfield Ġ= Ġ" hello ") ĊĠĠĠĠĠĠĠ Ġfun Ġsome Fetcher ( dfe : ĠD gs Data Fetching Environment ): ĠCompletableFuture < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloader : ĠDataLoader < String , ĠString > Ġ= Ġd fe . getData Loader ( Example Batch Loader :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" a ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" b ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloader . load (" c ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġhello Fetcher With Field Ġ= Ġobject Ġ: ĠAny () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ D gs Data ( parent Type Ġ= Ġ" Query ", Ġfield Ġ= Ġ" hello ") ĊĠĠĠĠĠĠĠ Ġfun Ġsome Fetcher ( dfe : ĠD gs Data Fetching Environment ): ĠCompletableFuture < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloader : ĠDataLoader < String , ĠString > Ġ= Ġd fe . getData Loader ( Example Batch Loader From Field :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" a ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" b ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloader . load (" c ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġhello Fetcher With Multiple Field Ġ= Ġobject Ġ: ĠAny () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ D gs Data ( parent Type Ġ= Ġ" Query ", Ġfield Ġ= Ġ" hello ") ĊĠĠĠĠĠĠĠ Ġfun Ġsome Fetcher ( dfe : ĠD gs Data Fetching Environment ): ĠCompletableFuture < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloader : ĠDataLoader < String , ĠString > Ġ= Ġd fe . getData Loader ( Example Multiple Batch Lo aders As Field :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" a ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" b ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloader . load (" c ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġhello Fetcher Mapped Ġ= Ġobject Ġ: ĠAny () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ D gs Data ( parent Type Ġ= Ġ" Query ", Ġfield Ġ= Ġ" hello ") ĊĠĠĠĠĠĠĠ Ġfun Ġsome Fetcher ( dfe : ĠD gs Data Fetching Environment ): ĠCompletableFuture < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloader Ġ= Ġd fe . getData Loader < String , ĠString >(" example Mapped Loader ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" a ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" b ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloader . load (" c ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġhello Fetcher With Field Mapped Ġ= Ġobject Ġ: ĠAny () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ D gs Data ( parent Type Ġ= Ġ" Query ", Ġfield Ġ= Ġ" hello ") ĊĠĠĠĠĠĠĠ Ġfun Ġsome Fetcher ( dfe : ĠD gs Data Fetching Environment ): ĠCompletableFuture < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloader : ĠDataLoader < String , ĠString > Ġ= Ġd fe . getData Loader ( Example Mapped Batch Loader From Field :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" a ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" b ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloader . load (" c ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġhello Fetcher With Basic DF E Ġ= Ġobject Ġ: ĠAny () Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ D gs Data ( parent Type Ġ= Ġ" Query ", Ġfield Ġ= Ġ" hello ") ĊĠĠĠĠĠĠĠ Ġfun Ġsome Fetcher ( dfe : ĠData Fetching Environment ): ĠCompletableFuture < String > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġval Ġloader : ĠDataLoader < String , ĠString > Ġ= Ġd fe . getData Loader < String , ĠString >( Example Batch Loader :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġloader Ġ= Ġd fe . getData Loader < String , ĠString >(" example Loader ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" a ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloader . load (" b ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġloader . load (" c ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġset DataLoader Instrumentation Extension Provider () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist able BeanFactory Ġ= ĠStatic List able BeanFactory () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . getBean Provider ( DataLoader Instrumentation Extension Provider :: class . java ) Ġ} Ġreturns ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist able BeanFactory . getBean Provider ( DataLoader Instrumentation Extension Provider :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs Scalar :: class . java ) Ġ} Ġreturns Ġempty Map () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetData Loader () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs Component :: class . java ) Ġ} Ġreturns Ġmap Of ( Pair (" hello Fetcher ", Ġhello Fetcher )) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs DataLoader :: class . java ) Ġ} Ġreturns Ġmap Of ( Pair (" hello Loader ", ĠExample Batch Loader ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= ĠD gs DataLoader Provider ( application Context Mock ) ĊĠĠĠĠĠĠĠ Ġprovider . find Data Lo aders () ĊĠĠĠĠĠĠĠ Ġval Ġdata Loader Registry Ġ= Ġprovider . build Registry () ĊĊĠĠĠĠĠĠĠ Ġval Ġschema Provider Ġ= ĠD gs Schema Provider ( application Context Mock , ĠOptional . empty (), ĠOptional . empty (), ĠOptional . empty ()) ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= Ġschema Provider . schema () ĊĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= ĠGraphQL . new GraphQL ( schema ). build () ĊĊĠĠĠĠĠĠĠ Ġval Ġexecution Input : ĠExecution Input Ġ= ĠExecution Input . new Execution Input () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. query ("{ hello }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. data Loader Registry ( data Loader Registry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġexecution Result Ġ= Ġbuild . execute ( execution Input ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( execution Result . is Data Present ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġexecution Result . getData () Ġas ĠMap < String , ĠString > ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals (" c ", Ġresult [" hello "]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetData Loader With Basic DF E () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs Component :: class . java ) Ġ} Ġreturns Ġmap Of ( Pair (" hello Fetcher ", Ġhello Fetcher With Basic DF E )) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs DataLoader :: class . java ) Ġ} Ġreturns Ġmap Of ( Pair (" hello Loader ", ĠExample Batch Loader ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= ĠD gs DataLoader Provider ( application Context Mock ) ĊĠĠĠĠĠĠĠ Ġprovider . find Data Lo aders () ĊĠĠĠĠĠĠĠ Ġval Ġdata Loader Registry Ġ= Ġprovider . build Registry () ĊĊĠĠĠĠĠĠĠ Ġval Ġschema Provider Ġ= ĠD gs Schema Provider ( application Context Mock , ĠOptional . empty (), ĠOptional . empty (), ĠOptional . empty ()) ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= Ġschema Provider . schema () ĊĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= ĠGraphQL . new GraphQL ( schema ). build () ĊĊĠĠĠĠĠĠĠ Ġval Ġexecution Input : ĠExecution Input Ġ= ĠExecution Input . new Execution Input () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. query ("{ hello }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. data Loader Registry ( data Loader Registry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġexecution Result Ġ= Ġbuild . execute ( execution Input ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( execution Result . is Data Present ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġexecution Result . getData () Ġas ĠMap < String , ĠString > ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals (" c ", Ġresult [" hello "]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠgetData Loader From Field () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs DataLoader :: class . java ) Ġ} Ġreturns Ġempty Map () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs Component :: class . java ) Ġ} Ġreturns Ġmap Of ( Pair (" hello Fetcher ", Ġhello Fetcher With Field ), ĠPair (" hello Loader ", ĠExample Batch Loader From Field ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= ĠD gs DataLoader Provider ( application Context Mock ) ĊĠĠĠĠĠĠĠ Ġprovider . find Data Lo aders () ĊĠĠĠĠĠĠĠ Ġval Ġdata Loader Registry Ġ= Ġprovider . build Registry () ĊĊĠĠĠĠĠĠĠ Ġval Ġschema Provider Ġ= ĠD gs Schema Provider ( application Context Mock , ĠOptional . empty (), ĠOptional . empty (), ĠOptional . empty ()) ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= Ġschema Provider . schema () ĊĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= ĠGraphQL . new GraphQL ( schema ). build () ĊĊĠĠĠĠĠĠĠ Ġval Ġexecution Input : ĠExecution Input Ġ= ĠExecution Input . new Execution Input () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. query ("{ hello }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. data Loader Registry ( data Loader Registry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġexecution Result Ġ= Ġbuild . execute ( execution Input ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( execution Result . is Data Present ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġexecution Result . getData () Ġas ĠMap < String , ĠString > ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals (" c ", Ġresult [" hello "]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Multiple Data Lo aders From Field () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs DataLoader :: class . java ) Ġ} Ġreturns Ġempty Map () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs Component :: class . java ) Ġ} Ġreturns Ġmap Of ( Pair (" hello Fetcher ", Ġhello Fetcher With Multiple Field ), ĠPair (" hello Loader ", ĠExample Multiple Batch Lo aders As Field ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= ĠD gs DataLoader Provider ( application Context Mock ) ĊĠĠĠĠĠĠĠ Ġprovider . find Data Lo aders () ĊĠĠĠĠĠĠĠ Ġval Ġdata Loader Registry Ġ= Ġprovider . build Registry () ĊĊĠĠĠĠĠĠĠ Ġval Ġschema Provider Ġ= ĠD gs Schema Provider ( application Context Mock , ĠOptional . empty (), ĠOptional . empty (), ĠOptional . empty ()) ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= Ġschema Provider . schema () ĊĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= ĠGraphQL . new GraphQL ( schema ). build () ĊĊĠĠĠĠĠĠĠ Ġval Ġexecution Input : ĠExecution Input Ġ= ĠExecution Input . new Execution Input () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. query ("{ hello }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. data Loader Registry ( data Loader Registry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġexecution Result Ġ= Ġbuild . execute ( execution Input ) ĊĠĠĠĠĠĠĠ Ġassert ( execution Result . errors . size Ġ> Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Mapped DataLoader () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs Component :: class . java ) Ġ} Ġreturns Ġmap Of ( Pair (" hello Fetcher ", Ġhello Fetcher Mapped )) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs DataLoader :: class . java ) Ġ} Ġreturns Ġmap Of ( Pair (" hello Loader ", ĠExample Mapped Batch Loader ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= ĠD gs DataLoader Provider ( application Context Mock ) ĊĠĠĠĠĠĠĠ Ġprovider . find Data Lo aders () ĊĠĠĠĠĠĠĠ Ġval Ġdata Loader Registry Ġ= Ġprovider . build Registry () ĊĊĠĠĠĠĠĠĠ Ġval Ġschema Provider Ġ= ĠD gs Schema Provider ( application Context Mock , ĠOptional . empty (), ĠOptional . empty (), ĠOptional . empty ()) ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= Ġschema Provider . schema () ĊĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= ĠGraphQL . new GraphQL ( schema ). build () ĊĊĠĠĠĠĠĠĠ Ġval Ġexecution Input : ĠExecution Input Ġ= ĠExecution Input . new Execution Input () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. query ("{ hello }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. data Loader Registry ( data Loader Registry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġexecution Result Ġ= Ġbuild . execute ( execution Input ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( execution Result . is Data Present ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġexecution Result . getData () Ġas ĠMap < String , ĠString > ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals (" C ", Ġresult [" hello "]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Mapped DataLoader From Field () Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs DataLoader :: class . java ) Ġ} Ġreturns Ġempty Map () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġapplication Context Mock . get Beans With Annotation ( D gs Component :: class . java ) Ġ} Ġreturns Ġmap Of ( Pair (" hello Fetcher ", Ġhello Fetcher With Field Mapped ), ĠPair (" hello Loader ", ĠExample Mapped Batch Loader From Field ())) ĊĊĠĠĠĠĠĠĠ Ġval Ġprovider Ġ= ĠD gs DataLoader Provider ( application Context Mock ) ĊĠĠĠĠĠĠĠ Ġprovider . find Data Lo aders () ĊĠĠĠĠĠĠĠ Ġval Ġdata Loader Registry Ġ= Ġprovider . build Registry () ĊĊĠĠĠĠĠĠĠ Ġval Ġschema Provider Ġ= ĠD gs Schema Provider ( application Context Mock , ĠOptional . empty (), ĠOptional . empty (), ĠOptional . empty ()) ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= Ġschema Provider . schema () ĊĠĠĠĠĠĠĠ Ġval Ġbuild Ġ= ĠGraphQL . new GraphQL ( schema ). build () ĊĊĠĠĠĠĠĠĠ Ġval Ġexecution Input : ĠExecution Input Ġ= ĠExecution Input . new Execution Input () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. query ("{ hello }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. data Loader Registry ( data Loader Registry ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġexecution Result Ġ= Ġbuild . execute ( execution Input ) ĊĠĠĠĠĠĠĠ ĠAssertions . assertTrue ( execution Result . is Data Present ) ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġexecution Result . getData () Ġas ĠMap < String , ĠString > ĊĠĠĠĠĠĠĠ ĠAssertions . assertEquals (" C ", Ġresult [" hello "]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġverify Deleg ation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd gs D fe Ġ= ĠD gs Data Fetching Environment ( dfe Mock ) ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . getSource < String >() ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . getSource () Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . get Argument < String >(" name ") ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . get Argument (" name ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . arguments ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . arguments Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . contains Argument (" name ") ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . contains Argument (" name ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . get Argument < String >(" name ") ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . get Argument < String >(" name ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . get Argument OrDefault (" name ", Ġ"") ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . get Argument OrDefault (" name ", Ġ"") Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . getContext < String >() ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . getContext < String >() Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . getLocal Context < String >() ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . getLocal Context () Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . getRoot < String >() ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . getRoot () Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . field Definition ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . field Definition Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠ Ġd gs D fe . fields ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . fields Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . merged Field ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . merged Field Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . field ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . field Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . fieldType ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . fieldType Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . execution Step Info ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . execution Step Info Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . parent Type ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . parent Type Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . graph QL Schema ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . graph QL Schema Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . fragments ByName ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . fragments ByName Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . execution Id ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . execution Id Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . selection Set ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . selection Set Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . query Directives ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . query Directives Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . getData Loader < String , ĠString >(" loader A ") ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . getData Loader < String , ĠString >(" loader A ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . data Loader Registry ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . data Loader Registry Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . cache Control ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . cache Control Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . locale ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . locale Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . operation Definition ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . operation Definition Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . document ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . document Ġ} ĊĊĠĠĠĠĠĠĠ Ġd gs D fe . variables ĊĠĠĠĠĠĠĠ Ġverify Ġ{ Ġd fe Mock . variables Ġ} ĊĠĠĠ Ġ} Ċ } Ċ