package Ġcom . cle vert ap . android . x ps Ċ Ċ import Ġcom . cle vert ap . android . sdk . Manifest Info Ċ import Ġcom . cle vert ap . android . shared . test . Base TestCase Ċ import Ġcom . cle vert ap . android . shared . test . Test Application Ċ import Ġcom . xia omi . mip ush . sdk . Mi Push Client Ċ import Ġorg . junit .* Ċ import Ġorg . junit . runner .* Ċ import Ġorg . mockito .* Ċ import Ġorg . ro bo lectric . Ro bo lectric TestRunner Ċ import Ġorg . ro bo lectric . annotation . Config Ċ Ċ @ RunWith ( Ro bo lectric TestRunner :: class ) Ċ @ Config ( sdk Ġ= Ġ[ 2 8 ], Ġapplication Ġ= ĠTest Application :: class ) Ċ class ĠX ia omi Sdk Handler Test Ġ: ĠBase TestCase () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġhandler : ĠX ia omi Sdk Handler ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmanifest Info : ĠManifest Info ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setUp () ĊĠĠĠĠĠĠĠ Ġmanifest Info Ġ= ĠMockito . mock ( Manifest Info :: class . java ) ĊĠĠĠĠĠĠĠ Ġhandler Ġ= ĠX ia omi Sdk Handler ( application , Ġcle ver Tap Instance Config ) ĊĠĠĠĠĠĠĠ Ġhandler . set Manifest Info ( manifest Info ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest On New Token _ Without _ Registration () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito . mock Static ( Mi Push Client :: class . java ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( Mi Push Client . get Reg Id ( application )). thenReturn ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġhandler . on New Token () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNull ( token ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest On New Token _ After _ Registration () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App Key ). thenReturn ( X ps Test Constants . MI _ APP _ KEY ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App ID ). thenReturn ( X ps Test Constants . MI _ APP _ ID ) ĊĠĠĠĠĠĠĠ Ġhandler . register ( manifest Info . xia omi App ID , Ġmanifest Info . xia omi App Key ) ĊĠĠĠĠĠĠĠ ĠMockito . mock Static ( Mi Push Client :: class . java ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( Mi Push Client . get Reg Id ( application )). thenReturn (" abc ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġhandler . on New Token () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( token ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest On New Token Exception () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito . mock Static ( Mi Push Client :: class . java ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMockito .` when `( Mi Push Client . get Reg Id ( application )). then Throw ( RuntimeException (" Checking ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġhandler . on New Token () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNull ( token ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest App Key () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App Key ). thenReturn ( X ps Test Constants . MI _ APP _ KEY ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( handler . app Key (), ĠX ps Test Constants . MI _ APP _ KEY ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App Key ). thenReturn ( null ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNull ( handler . app Key ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest AppId () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App ID ). thenReturn (" abc ") ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( handler . appId ()) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App ID ). thenReturn ( null ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNull ( handler . appId ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Is Available _ valid AppId _ valid App Key () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App ID ). thenReturn (" abc ") ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App Key ). thenReturn (" xyz ") ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( handler . is Available ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Is Available _ valid AppId _ in Valid App Key () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App ID ). thenReturn (" abc ") ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App Key ). thenReturn ("") ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( handler . is Available ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Is Available _ in Valid AppId _ Valid App Key () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App ID ). thenReturn ( null ) ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App Key ). thenReturn (" xyz ") ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( handler . is Available ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Is Available _ in Valid AppId _ in Valid App Key () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App ID ). thenReturn ("") ĊĠĠĠĠĠĠĠ ĠMockito .` when `( manifest Info . xia omi App Key ). thenReturn ( null ) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( handler . is Available ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Should Init _ Returns _ True () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( handler . should Init ( application . packageName )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Should Init _ Returns _ False () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( handler . should Init (" XYZ ")) ĊĠĠĠ Ġ} Ċ }