package Ġio . open future . api . controller . api Ċ Ċ import Ġio . open future . api . component . web 3 . Web 3 Wrapper Ċ import Ġio . open future . api . config . Controller Tests Ċ import Ġio . open future . api . config . pro pe ty . E thereum Properties Ċ import Ġio . open future . api . entity . auth . Role Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . BDD Mockito . given Ċ import Ġorg . mockito . Mock Ċ import Ġorg . springframework . boot . test . autoconfigure . web . servlet . Web Mvc Test Ċ import Ġorg . springframework . boot . test . mock . mockito . Mock Bean Ċ import Ġorg . springframework . http . HttpHeaders . AUTHORIZATION Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders . get Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . content Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . status Ċ import Ġorg . web 3 j . crypto . Credentials Ċ import Ġorg . web 3 j . spring . autoconfigure . Web 3 j Properties Ċ Ċ @ Web Mvc Test ( Frontend Properties Api Controller :: class ) Ċ class ĠFrontend Properties Api Controller Tests Ġ: ĠController Tests () Ġ{ ĊĊĠĠĠ Ġ@ Mock Bean ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġweb 3 : ĠWeb 3 Wrapper ĊĊĠĠĠ Ġ@ Mock Bean ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġweb 3 Properties : ĠWeb 3 j Properties ĊĊĠĠĠ Ġ@ Mock Bean ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġproperties : ĠEthereum Properties ĊĊĠĠĠ Ġ@ Mock ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcredentials : ĠCredentials ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġopen Key Ġ= Ġcreate Open Key ( set Of ( Role (" ROLE _ MASTER "))) ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġ" version " ĊĠĠĠĠĠĠĠ Ġval Ġclient Address Ġ= Ġ" client Address " ĊĠĠĠĠĠĠĠ Ġval Ġopen Token Address Ġ= Ġ" address " ĊĠĠĠĠĠĠĠ Ġval Ġplatform Address Ġ= Ġ" address " ĊĊĠĠĠĠĠĠĠ Ġgiven ( key Service . find ( open Key . value )). willReturn ( open Key ) ĊĠĠĠĠĠĠĠ Ġgiven ( web 3 . get Net Version ()). willReturn ( version ) ĊĠĠĠĠĠĠĠ Ġgiven ( web 3 Properties . client Address ). willReturn ( client Address ) ĊĠĠĠĠĠĠĠ Ġgiven ( properties . open Token Address ). willReturn ( open Token Address ) ĊĠĠĠĠĠĠĠ Ġgiven ( properties . get Credentials ()). willReturn ( credentials ) ĊĠĠĠĠĠĠĠ Ġgiven ( credentials . address ). willReturn ( platform Address ) ĊĊĠĠĠĠĠĠĠ Ġm vc . perform ( get ("/ api / properties ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header ( AUTHORIZATION , Ġopen Key . value )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). json (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" network Address ": Ġ$ client Address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" network Version ": Ġ$ version , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" open Token Address ": Ġ$ open Token Address , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" platform Address ": Ġ$ platform Address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġtrue )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget When Open Token Is NotFound Should Redirect To Index Page Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinvalid Token Ġ= Ġ" not _ valid _ token " ĊĊĠĠĠĠĠĠĠ Ġgiven ( key Service . find ( invalid Token )). willReturn ( null ) ĊĊĠĠĠĠĠĠĠ Ġm vc . perform ( get ("/ api / properties ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header ( AUTHORIZATION , Ġinvalid Token )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Unauthorized ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ