/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġandroidx . we ar . comp lications Ċ Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . IB inder Ċ import Ġandroid . support . we arable . comp lications . IP review Comp lication Data Callback Ċ import Ġandroid . support . we arable . comp lications . I Provider Info Service Ċ import Ġandroidx . test . core . app . Application Provider Ċ import Ġandroidx . we ar . comp lications . data . Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . Comp lication Type Ċ import Ġandroidx . we ar . comp lications . data . Long Text Comp lication Data Ċ import Ġandroidx . we ar . comp lications . data . Plain Comp lication Text Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . Argument Matchers . eq Ċ import Ġorg . mockito . Argument Matchers . any Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito . do Answer Ċ Ċ /* Ċ * ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ * Ċ * Ġ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 . Ċ */ Ċ Ċ @ RunWith ( Shared Ro bo lectric TestRunner :: class ) Ċ public Ġclass ĠProvider Info Retriever Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmock Service Ġ= ĠMockito . mock ( I Provider Info Service :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġmock Binder Ġ= ĠMockito . mock ( IB inder :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġprovider Info Retriever Ġ= ĠProvider Info Retriever ( mock Service ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġrequest Preview Comp lication Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠComponent Name (" provider . package ", Ġ" provider . class ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠComp lication Type . LONG _ TEXT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( mock Service . apiVersion ). thenReturn ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( mock Service . as Binder ()). thenReturn ( mock Binder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtestData : ĠComp lication Data Ġ= ĠLong Text Comp lication Data . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlain Comp lication Text . Builder (" Test ĠText "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġit . arguments [ 2 ] Ġas ĠI Preview Comp lication Data Callback ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . update Comp lication Data ( testData . as Wire Comp lication Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. ` when `( mock Service ). request Preview Comp lication Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeq ( component ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeq ( type . to Wire Comp lication Type ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġany () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpreview Data Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovider Info Retriever . request Preview Comp lication Data ( component , Ġtype ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( preview Data . type ). isEqualTo ( type ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( preview Data Ġas ĠLong Text Comp lication Data ). text . getText At ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApplication Provider . getApplicationContext < Context >(). resources , Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). isEqualTo (" Test ĠText ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġrequest Preview Comp lication DataProvider Returns Null () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠComponent Name (" provider . package ", Ġ" provider . class ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠComp lication Type . LONG _ TEXT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( mock Service . apiVersion ). thenReturn ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( mock Service . as Binder ()). thenReturn ( mock Binder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġit . arguments [ 2 ] Ġas ĠI Preview Comp lication Data Callback ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . update Comp lication Data ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. ` when `( mock Service ). request Preview Comp lication Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeq ( component ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeq ( type . to Wire Comp lication Type ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġany () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( provider Info Retriever . request Preview Comp lication Data ( component , Ġtype )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġrequest Preview Comp lication Data Api NotSupported () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠComponent Name (" provider . package ", Ġ" provider . class ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠComp lication Type . LONG _ TEXT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( mock Service . apiVersion ). thenReturn ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( mock Service . as Binder ()). thenReturn ( mock Binder ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( provider Info Retriever . request Preview Comp lication Data ( component , Ġtype )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġrequest Preview Comp lication Data Api Returns False () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= ĠComponent Name (" provider . package ", Ġ" provider . class ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠComp lication Type . LONG _ TEXT ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( mock Service . apiVersion ). thenReturn ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( mock Service . as Binder ()). thenReturn ( mock Binder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Answer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. ` when `( mock Service ). request Preview Comp lication Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeq ( component ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeq ( type . to Wire Comp lication Type ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġany () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( provider Info Retriever . request Preview Comp lication Data ( component , Ġtype )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }