/** Ċ Ġ* ĠDesign ed Ġand Ġdeveloped Ġby ĠA id an ĠFol le st ad Ġ(@ af ol le st ad ) Ċ Ġ* Ċ Ġ* Ġ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 . af ol le st ad . inline activity result Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġcom . af ol le st ad . inline activity result . internal . Scheduler Ċ import Ġcom . af ol le st ad . inline activity result . tests . No Manifest TestRunner Ċ import Ġcom . af ol le st ad . inline activity result . tests . Test On Result Ċ import Ġcom . af ol le st ad . inline activity result . tests . single Value Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . argument Captor Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . eq Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . verify Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ @ RunWith ( No Manifest TestRunner :: class ) Ċ class ĠActiv ities Test Ġ{ ĊĠ Ġprivate Ġval Ġscheduler Ġ= Ġmock < Scheduler >() ĊĠ Ġprivate Ġval Ġfragment Manager Ġ= Ġmock < FragmentManager >() ĊĠ Ġprivate Ġval Ġactivity Ġ= Ġmock < Fragment Activity > Ġ{ ĊĠĠĠ Ġon Ġ{ ĠpackageName Ġ} Ġdo Return Ġ" com . af ol le st ad . inline activity result " ĊĠĠĠ Ġon Ġ{ Ġsupport FragmentManager Ġ} Ġdo Return Ġfragment Manager ĊĠ Ġ} ĊĊĠ Ġ@ Before Ġfun Ġsetup () Ġ{ ĊĠĠĠ Ġ// ĠForce Ġa Ġmocked Ġinstance Ġto Ġbe Ġreturned Ġby Ġinstance () ĊĠĠĠ ĠScheduler . instance Creator Ġ= Ġ{ Ġscheduler Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ After Ġfun Ġcleanup () Ġ{ ĊĠĠĠ ĠScheduler . destroy () ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġ` startActivity For Result Ġ- Ġfull Ġintent `() Ġ{ ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent (" com . testing . TEST ") ĊĠĠĠ Ġval Ġrequest Code Ġ= Ġ 6 9 ĊĠĠĠ Ġval Ġon Result Ġ= ĠTest On Result () ĊĊĠĠĠ Ġactivity . startActivity For Result ( ĊĠĠĠĠĠĠĠ Ġintent Ġ= Ġintent , ĊĠĠĠĠĠĠĠ Ġrequest Code Ġ= Ġrequest Code , ĊĠĠĠĠĠĠĠ Ġon Result Ġ= Ġon Result . capture () ĊĠĠĠ Ġ) ĊĠĠĠ Ġon Result . assert No Values () ĊĊĠĠĠ Ġverify ( scheduler ). schedule ( ĊĠĠĠĠĠĠĠ Ġfragment Manager , ĊĠĠĠĠĠĠĠ Ġintent , ĊĠĠĠĠĠĠĠ Ġrequest Code , ĊĠĠĠĠĠĠĠ Ġon Result . capture () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġ` startActivity For Result Ġ- Ġwith Ġextras `() Ġ{ ĊĠĠĠ Ġval Ġextras Ġ= ĠBundle (). apply Ġ{ Ġput String (" test ", Ġ" hello ") Ġ} ĊĠĠĠ Ġval Ġrequest Code Ġ= Ġ 3 4 ĊĠĠĠ Ġval Ġon Result Ġ= ĠTest On Result () ĊĊĠĠĠ Ġactivity . startActivity For Result < Placeholder Activity >( ĊĠĠĠĠĠĠĠ Ġextras Ġ= Ġextras , ĊĠĠĠĠĠĠĠ Ġrequest Code Ġ= Ġrequest Code , ĊĠĠĠĠĠĠĠ Ġon Result Ġ= Ġon Result . capture () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġintent Captor Ġ= Ġargument Captor < Intent >() ĊĠĠĠ Ġverify ( scheduler ). schedule ( ĊĠĠĠĠĠĠĠ Ġeq ( fragment Manager ), ĊĠĠĠĠĠĠĠ Ġintent Captor . capture (), ĊĠĠĠĠĠĠĠ Ġeq ( request Code ), ĊĠĠĠĠĠĠĠ Ġeq ( on Result . capture ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġintent Ġ= Ġintent Captor . single Value ĊĠĠĠ Ġval Ġcomponent Ġ= Ġintent . component !! ĊĊĠĠĠ ĠassertThat ( component . packageName ). isEqualTo (" com . af ol le st ad . inline activity result ") ĊĠĠĠ ĠassertThat ( component . className ) ĊĠĠĠĠĠĠĠ Ġ. isEqualTo (" com . af ol le st ad . inline activity result . Placeholder Activity ") ĊĠĠĠ ĠassertThat ( intent . has Extra (" test ")). isTrue () ĊĠĠĠ ĠassertThat ( intent . extras !!. getString (" test ")). isEqualTo (" hello ") ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġ` startActivity For Result Ġ- Ġno Ġextras `() Ġ{ ĊĠĠĠ Ġval Ġrequest Code Ġ= Ġ 3 4 ĊĠĠĠ Ġval Ġon Result Ġ= ĠTest On Result () ĊĊĠĠĠ Ġactivity . startActivity For Result < Placeholder Activity >( ĊĠĠĠĠĠĠĠ Ġrequest Code Ġ= Ġrequest Code , ĊĠĠĠĠĠĠĠ Ġon Result Ġ= Ġon Result . capture () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġintent Captor Ġ= Ġargument Captor < Intent >() ĊĠĠĠ Ġverify ( scheduler ). schedule ( ĊĠĠĠĠĠĠĠ Ġeq ( fragment Manager ), ĊĠĠĠĠĠĠĠ Ġintent Captor . capture (), ĊĠĠĠĠĠĠĠ Ġeq ( request Code ), ĊĠĠĠĠĠĠĠ Ġeq ( on Result . capture ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġintent Ġ= Ġintent Captor . single Value ĊĠĠĠ Ġval Ġcomponent Ġ= Ġintent . component !! ĊĊĠĠĠ ĠassertThat ( component . packageName ). isEqualTo (" com . af ol le st ad . inline activity result ") ĊĠĠĠ ĠassertThat ( component . className ) ĊĠĠĠĠĠĠĠ Ġ. isEqualTo (" com . af ol le st ad . inline activity result . Placeholder Activity ") ĊĠĠĠ ĠassertThat ( intent . extras !!. isEmpty ). isTrue () ĊĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠPlace holder Activity Ġ: ĠActivity () Ċ