package Ġcom . github . nik it av bv . servic emon itor Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . github . nik it av bv . servic emon itor . project . Create Project Result Ċ import Ġcom . github . nik it av bv . servic emon itor . project . Project Ċ import Ġcom . github . nik it av bv . servic emon itor . project . Project Repository Ċ import Ġcom . github . nik it av bv . servic emon itor . user . Application User Ċ import Ġcom . github . nik it av bv . servic emon itor . user . Application UserRepository Ċ import Ġjunit . framework . TestCase . assertEquals Ċ import Ġjunit . framework . TestCase . assertNotNull Ċ import Ġjunit . framework . TestCase . assertNull Ċ import Ġorg . hamcrest . Matchers . equalTo Ċ import Ġorg . hamcrest . Matchers . anything Ċ 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 . security . test . context . support . With Mock User Ċ import Ġorg . springframework . security . test . web . servlet . setup . Security MockMvc Configur ers . spring Security Ċ import Ġorg . springframework . test . context . junit 4 . Spring Runner Ċ import Ġorg . springframework . test . web . servlet . MockMvc Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders . post Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . json Path Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers . status Ċ import Ġorg . springframework . test . web . servlet . setup . Default MockMvc Builder Ċ import Ġorg . springframework . test . web . servlet . setup . MockMvc Builders Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġorg . springframework . web . context . Web ApplicationContext Ċ Ċ @ RunWith ( Spring Runner :: class ) Ċ @ SpringBootTest ( web Environment Ġ= ĠSpring Boot Test . Web Environment . MOCK ) Ċ class ĠProject Tests Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġcontext : ĠWeb ApplicationContext ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġproject Repository : ĠProject Repository ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġuser Repository : ĠApplication UserRepository ĊĊĠĠĠ Ġlateinit Ġvar Ġmock Mvc : ĠMock Mvc ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġmock Mvc Ġ= ĠMock Mvc Builders ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. web AppContext Setup ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply < Default MockMvc Builder >( spring Security ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User (" admin ") ĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġfun Ġcreate Project () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠApplication User ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġ" admin ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġ"\ $ 2 a \$ 1 0 \$ HEX l Sr By ZS s Ro z Cy DC il 1 uZ m XF 1 u 2 v 6 ky 9 Ud XN kv 7 u 6 K ds ZV uj FZ 2 " Ġ// Ġ" password " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġuser Repository . save ( user ) ĊĊĠĠĠĠĠĠĠ Ġval Ġprojects Before Test Ġ= Ġproject Repository . count () ĊĠĠĠĠĠĠĠ Ġval Ġprinter Ġ= ĠObjectMapper (). writer (). with Default PrettyPrinter () ĊĠĠĠĠĠĠĠ Ġmock Mvc . perform ( post ( PROJECT _ API ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( printer . writeValue As Bytes ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name " Ġto Ġ" Project Ġname " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ )))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. id ", Ġanything ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. name ", ĠequalTo (" Project Ġname "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Do Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Info Ġ= Ġconvert JSON StringTo Object ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . response . content AsString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCreate Project Result :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( projects Before Test Ġ+ Ġ 1 , Ġproject Repository . count ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" Project Ġname ", Ġproject Info . name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġproject Repository . getOne ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Info . id Ġ?: Ġthrow ĠAssertionError (" No Ġid Ġset Ġfor Ġproject ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( project . apiKey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . users . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Repository . delete ( project ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Project API Key Generation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= ĠProject ( name Ġ= Ġ" Test Ġproject ") ĊĠĠĠĠĠĠĠ ĠassertNull ( project . apiKey ) ĊĠĠĠĠĠĠĠ Ġproject Repository . save ( project ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( project . apiKey ) ĊĊĠĠĠĠĠĠĠ Ġval ĠapiKey Ġ= Ġproject . apiKey ĊĠĠĠĠĠĠĠ Ġval Ġproject Second Instance Ġ= Ġproject Repository . getOne ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . id Ġ?: Ġthrow Ġjava . lang . AssertionError (" Project Ġid Ġis Ġnot Ġset ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( project Second Instance . apiKey ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( apiKey , Ġproject Second Instance . apiKey ) ĊĠĠĠĠĠĠĠ Ġproject Repository . save ( project ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( apiKey , Ġproject Second Instance . apiKey ) ĊĠĠĠ Ġ} Ċ } Ċ