package Ġname . gy ger . j money . account Ċ Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . test . context . junit 4 . Spring Runner Ċ import Ġorg . springframework . test . context . web . WebApp Configuration Ċ import Ġorg . springframework . test . web . servlet . MockMvc Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders .* Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . content Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . status Ċ import Ġorg . springframework . test . web . servlet . setup . MockMvc Builders Ċ import Ġorg . springframework . web . context . Web ApplicationContext Ċ Ċ @ RunWith ( Spring Runner :: class ) Ċ @ SpringBootTest Ċ @ WebApp Configuration Ċ open Ġclass ĠAccount Controller Tests Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġprivate Ġvar Ġcontext : ĠWeb ApplicationContext ĊĊĠĠĠ Ġlateinit Ġprivate Ġvar Ġmock Mvc : ĠMock Mvc ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Mvc Ġ= ĠMock Mvc Builders . web AppContext Setup ( context ). build () ĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( put ("/ api / options / init ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun ĠtestGet Empty Accounts () Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( get ("/ api / accounts ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). json (" [] ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun Ġtest Basics () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmock Mvc . perform ( post ("/ api / accounts ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ("{ \" name \":\" Account Ġ 1 \" } ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĠĠĠĠĠĠĠ Ġval ĠaccountId Ġ= Ġresult . response . content AsString ĊĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( get ("/ api / accounts ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). json (" [{ ' name ':' Account Ġ 1 '} ] ")) ĊĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( put ("/ api / accounts /" Ġ+ ĠaccountId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ("{ \" name \":\" Account Ġ 1 b \" } ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( get ("/ api / accounts /" Ġ+ ĠaccountId )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). json (" {' name ':' Account Ġ 1 b '} ")) ĊĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( delete ("/ api / accounts /" Ġ+ ĠaccountId )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĊĠĠĠĠĠĠĠ ĠtestGet Empty Accounts () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġfun Ġtest Account With Entries () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠaccountId Ġ= Ġmock Mvc . perform ( post ("/ api / accounts ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content (" {\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġ\" name \": Ġ\" Account Ġ 1 \",\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġ\" entries \": Ġ[\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ{\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠ Ġ\" date \": Ġ\" 2 0 0 1 - 1 7 - 1 9 \",\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠ Ġ\" description \": Ġ\" Entry Ġ 1 \",\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠĠĠ Ġ\" expense \": Ġ 1 0 \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠĠĠ Ġ}\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ Ġ] \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"} ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn (). response . content AsString ĊĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( get ("/ api / accounts /" Ġ+ ĠaccountId )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). json (" {' name ':' Account Ġ 1 '} ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġentry Ġ= Ġmock Mvc . perform ( get ("/ api / accounts /$ accountId / entries ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). json (" [] ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn (). response . content AsString ĊĠĠĠĠĠĠĠ Ġprintln ( entry ) ĊĠĠĠ Ġ} Ċ } Ċ