/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠF rol lo Ċ Ġ* Ċ Ġ* Ġ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 Ġus . f rol lo . f rol lo sdk . notifications Ċ Ċ import Ġcom . jr ask a . li ved ata . test Ċ import Ġokhttp 3 . mock webserver . Dispatcher Ċ import Ġokhttp 3 . mock webserver . Mock Response Ċ import Ġokhttp 3 . mock webserver . Re corded Request Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertNotNull Ċ import Ġorg . junit . Test Ċ import Ġorg . th reet en . bp . LocalDateTime Ċ import Ġorg . th reet en . bp . Zone Offset Ċ import Ġus . f rol lo . f rol lo sdk . Base Android Test Ċ import Ġus . f rol lo . f rol lo sdk . model . test Event Notification Bundle Ċ import Ġus . f rol lo . f rol lo sdk . model . test Message Notification Bundle Ċ import Ġus . f rol lo . f rol lo sdk . network . api . Device API Ċ import Ġus . f rol lo . f rol lo sdk . test . R Ċ import Ġus . f rol lo . f rol lo sdk . test utils . readString FromJson Ċ import Ġus . f rol lo . f rol lo sdk . test utils . trimmed Path Ċ import Ġus . f rol lo . f rol lo sdk . test utils . wait Ċ Ċ class ĠNotifications Test Ġ: ĠBase Android Test () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġinit Setup () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init Setup () ĊĊĠĠĠĠĠĠĠ Ġpreferences . logged In Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġpreferences . encrypted AccessToken Ġ= Ġkeystore . encrypt (" Existing AccessToken ") ĊĠĠĠĠĠĠĠ Ġpreferences . encrypted RefreshToken Ġ= Ġkeystore . encrypt (" Existing RefreshToken ") ĊĠĠĠĠĠĠĠ Ġpreferences . accessToken Expiry Ġ= ĠLocalDateTime . now ( Zone Offset . UTC ). to Epoch Second ( Zone Offset . UTC ) Ġ+ Ġ 9 0 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Register Push Notification Token () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Setup () ĊĊĠĠĠĠĠĠĠ Ġmock Server . dispatcher Ġ= Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠDispatcher () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdispatch ( request : ĠRe corded Request ): ĠMock Response Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request . trimmed Path Ġ== ĠDevice API . URL _ DEVICE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMock Response () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Response Code ( 2 0 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMock Response (). set Response Code ( 4 0 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtoken String Ġ= Ġ" 7 4 0 f 4 7 0 7 beb cf 7 4 f 9 b 7 c 2 5 d 4 8 e 3 3 5 8 9 4 5 f 6 aa 0 1 da 5 ddb 3 8 7 4 6 2 c 7 eaf 6 1 bb 7 8 ad " ĊĊĠĠĠĠĠĠĠ Ġnotifications . register Push Notification Token ( token String ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġmock Server . take Request () ĊĠĠĠĠĠĠĠ ĠassertEquals ( Device API . URL _ DEVICE , Ġrequest . trimmed Path ) ĊĊĠĠĠĠĠĠĠ ĠtearDown () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Handle Push Notification Event () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Setup () ĊĊĠĠĠĠĠĠĠ Ġnotifications . handle Push Notification ( test Event Notification Bundle ()) ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠHow Ġto Ġtest Ġthis ? ĊĊĠĠĠĠĠĠĠ ĠtearDown () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Handle Push Notification Message () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Setup () ĊĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= Ġread String FromJson ( app , ĠR . raw . message _ id _ 1 2 3 4 5 ) ĊĠĠĠĠĠĠĠ Ġmock Server . dispatcher Ġ= Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠDispatcher () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdispatch ( request : ĠRe corded Request ): ĠMock Response Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( request . trimmed Path Ġ== Ġ" messages / 1 2 3 4 5 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMock Response () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Response Code ( 2 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Body ( body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMock Response (). set Response Code ( 4 0 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġnotifications . handle Push Notification ( test Message Notification Bundle ()) ĊĊĠĠĠĠĠĠĠ Ġwait ( 3 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġmock Server . take Request () ĊĠĠĠĠĠĠĠ ĠassertEquals (" messages / 1 2 3 4 5 ", Ġrequest . trimmed Path ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Observer Ġ= Ġmessages . fetch Message ( 1 2 3 4 5 L ). test () ĊĠĠĠĠĠĠĠ Ġtest Observer . await Value () ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġtest Observer . value (). data ĊĠĠĠĠĠĠĠ ĠassertNotNull ( model ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 2 3 4 5 L , Ġmodel ?. message Id ) ĊĊĠĠĠĠĠĠĠ ĠtearDown () ĊĠĠĠ Ġ} Ċ } Ċ