package Ġkr . later a . s ib y lla . user api Ċ Ċ import Ġkr . later a . s ib y lla . user api . dao . User Dao Ċ import Ġkr . later a . s ib y lla . user api . dto . User Dto Ċ import Ġkr . later a . s ib y lla . user api . dto . User Insert Dto Ċ import Ġkr . later a . s ib y lla . user api . util . Password Util Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Ignore Ċ 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 . test . context . junit 4 . Spring Runner Ċ import Ġjavax . sql . DataSource Ċ Ċ @ RunWith ( Spring Runner :: class ) Ċ @ SpringBootTest Ċ class ĠUser Dao Test Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar ĠdataSource : ĠDataSource ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Ignore ĊĠĠĠ Ġfun Ġdo Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser Dao Ġ= ĠUser Dao ( dataSource ) ĊĊĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġ" foo @ bar . com " ĊĠĠĠĠĠĠĠ Ġval Ġchanged Email Ġ= Ġ" my @ email . com " ĊĠĠĠĠĠĠĠ Ġval Ġplain Password Ġ= Ġ" p @ ss W 0 rd " ĊĠĠĠĠĠĠĠ Ġval Ġsalt Ġ= ĠPassword Util . make Salt () ĊĠĠĠĠĠĠĠ Ġval Ġhash Ġ= ĠPassword Util . encrypt ( plain Password , Ġsalt ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinsert User Ġ= ĠUser Insert Dto ( email , Ġhash , Ġsalt ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinserted Id Ġ= Ġuser Dao . insert ( insert User ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġselected ById Ġ= Ġuser Dao . select ById ( inserted Id ) ĊĠĠĠĠĠĠĠ Ġval Ġselected By Email Ġ= Ġuser Dao . select By Email ( email ) ĊĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( selected By Email ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( selected ById ) ĊĠĠĠĠĠĠĠ Ġif Ġ( selected ById Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( email , Ġselected ById . email ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( Password Util . check ( selected ById . password , Ġplain Password )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( selected By Email Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( email , Ġselected By Email . email ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( Password Util . check ( selected By Email . password , Ġplain Password )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( selected ById Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġupdated Ġ= Ġuser Dao . update ( User Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected ById . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchanged Email , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected ById . password , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected ById . salt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected ById . reg Date , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected ById . mod Date ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġupdated ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected ById Ġ= Ġuser Dao . select ById ( inserted Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selected ById Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( changed Email , Ġselected ById . email ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġaffected Ġ= Ġuser Dao . delete User ( inserted Id ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( 1 , Ġaffected ) ĊĊĠĠĠ Ġ} Ċ }