package Ġchat . rocket . core . internal . rest Ċ Ċ import Ġchat . rocket . common . Rocket Chat Exception Ċ import Ġchat . rocket . common . model . Room Type Ċ import Ġchat . rocket . common . model . Token Ċ import Ġchat . rocket . common . util . Platform Logger Ċ import Ġchat . rocket . core . Rocket Chat Client Ċ import Ġchat . rocket . core . Token Repository Ċ import Ġio . fabric 8 . mock webserver . Default Mock Server Ċ import Ġkotlinx . coroutines . experimental . run Blocking Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito Annotations Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠChat Room Test Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmock Server : ĠDefault Mock Server ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsut : ĠRocket Chat Client ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtoken Provider : ĠToken Repository ĊĊĠĠĠ Ġprivate Ġval Ġauth Token Ġ= ĠToken (" userId ", Ġ" auth Token ") ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĊĠĠĠĠĠĠĠ Ġmock Server Ġ= ĠDefault Mock Server () ĊĠĠĠĠĠĠĠ Ġmock Server . start () ĊĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient () ĊĠĠĠĠĠĠĠ Ġsut Ġ= ĠRocket Chat Client . create Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠhttpClient Ġ= Ġclient ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrest Url Ġ= Ġmock Server . url ("/") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Repository Ġ= Ġthis @ Chat Room Test . token Provider ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplatform Logger Ġ= ĠPlatform Logger . No Op Logger () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠMockito .` when `( token Provider . get ()). thenReturn ( auth Token ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` mark As Read () Ġshould Ġsucceed Ġwithout Ġthrowing `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Server . expect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ api / v 1 / subscriptions . read ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn ( 2 0 0 , ĠSUCCESS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. once () ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsut . mark As Read ( roomId =" GENERAL ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠRocket Chat Exception :: class ) ĊĠĠĠ Ġfun Ġ` mark As Read () Ġshould Ġfail Ġwith ĠRocket Chat Auth Exception Ġif Ġnot Ġlogged Ġin `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Server . expect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ api / v 1 / subscriptions . read ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn ( 4 0 1 , ĠMUST _ BE _ LOG GED _ ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. once () ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsut . mark As Read ( roomId =" GENERAL ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Members () Ġshould Ġsucceed Ġwithout Ġthrowing `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Server . expect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ api / v 1 / channels . members ? roomId = GENERAL & offset = 0 & count = 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn ( 2 0 0 , ĠMEMBER S _ OK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. once () ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmembers Ġ= Ġsut . get Members ( roomId =" GENERAL ", Ġroom Type Ġ= ĠRoom Type . CHANNEL , Ġoffset Ġ= Ġ 0 , Ġcount Ġ= Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println (" Members : Ġ$ members ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠRocket Chat Exception :: class ) ĊĠĠĠ Ġfun Ġ` get Members () Ġshould Ġfail Ġwith ĠRocket Chat Auth Exception Ġif Ġnot Ġlogged Ġin `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Server . expect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ api / v 1 / channels . members ? roomId = GENERAL & offset = 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn ( 4 0 1 , ĠMUST _ BE _ LOG GED _ ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. once () ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsut . get Members ( roomId =" GENERAL ", Ġroom Type Ġ= ĠRoom Type . CHANNEL , Ġoffset Ġ= Ġ 0 , Ġcount Ġ= Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` join Chat () Ġshould Ġsucceed Ġwithout Ġthrowing `() Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Server . expect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ api / v 1 / channels . join ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn ( 2 0 0 , ĠSUCCESS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. once () ĊĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsut . join Chat ( roomId =" GENERAL ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }