package Ġorg . mys pec ial way . ui . login Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġio . reactivex . Observable Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Annotations Ċ import Ġorg . mys pec ial way . session . Token Ċ import Ġorg . mys pec ial way . utils . create Fake Token Ċ import Ġorg . mys pec ial way . utils . fake Token Ċ import Ġorg . mys pec ial way . utils . token Parser Ċ Ċ class ĠToken Parser Test Ġ{ ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġlateinit Ġvar Ġsp : ĠSharedPreferences ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġbefore (){ ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` check Ġtoken Ġparse Ġusername ` (){ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtoken Parser . parse Payload ( fake Token ) ĊĠĠĠĠĠĠĠ ĠassertThat ( result . username ). isEqualTo (" student ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` check Ġtoken Ġparsing Ġ- Ġfirst Ġname `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtoken Parser . parse Payload ( fake Token ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" M sw ", Ġresult . firstname ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` check Ġtoken Ġparsing Ġ- Ġlast Ġname `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtoken Parser . parse Payload ( fake Token ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals (" Student ", Ġresult . lastname ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` token Ġis Ġvalid Ġcheck Ġ- Ġnot Ġexpired Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnot Expired Token Ġ= Ġcreate Fake Token ( false ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( not Expired Token . isValid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` token Ġis Ġvalid Ġcheck Ġ- Ġexpired `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnot Expired Token Ġ= Ġcreate Fake Token ( true ) ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( not Expired Token . isValid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` fail Ġparse Ġwith Ġbad Ġtoken `() Ġ{ ĊĠĠĠĠĠĠĠ ĠObservable . from Callable Ġ{ Ġtoken Parser . parse Payload (" a _ b _ c _ d ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. test () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. assert Error Ġ{ Ġtrue Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` map Token Ġ- Ġcheck Ġmap Ġreturns Ġvalid Ġtoken `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfake Token Generated Ġ= Ġcreate Fake Token ( false ). accessToken ĊĠĠĠĠĠĠĠ Ġval Ġmapped Token Ġ= ĠToken (). map ( fake Token Generated !! , Ġtoken Parser ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( mapped Token . accessToken ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( mapped Token . iss ued Time Sec ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( mapped Token . expiration Time Sec ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( mapped Token . isValid ) ĊĠĠĠ Ġ} Ċ Ċ }