package Ġme . ce w ong . sm ol url . server . services Ċ Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġme . ce w ong . sm ol url . models . Url Model Ċ import Ġme . ce w ong . sm ol url . server . Base Test Ċ import Ġme . ce w ong . sm ol url . server . models . ErrorType Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ Ċ class ĠUrl Service Test Ġ: ĠBaseTest () Ġ{ ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` create Ġurl Ġwith Ġvalid Ġurl Ġreturns Ġsuccess `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġurl Model Ġ= ĠUrl Model ( ĊĠĠĠĠĠĠĠ Ġtarget Ġ= Ġ" google . com ", ĊĠĠĠĠĠĠĠ Ġalias Ġ= Ġ"" ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġval Ġresult Ġ= ĠUrl Service . create ( url Model ) ĊĠĠĠĠĠ ĠassertTrue ( result Ġis ĠSuccess ) ĊĠĠĠĠĠ ĠassertEquals (" google . com ", Ġ( result Ġas ĠSuccess ). url . target ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` create Ġurl Ġwith Ġinvalid Ġurl Ġreturns Ġerror `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġurl Model Ġ= ĠUrl Model ( ĊĠĠĠĠĠĠĠ Ġtarget Ġ= Ġ" invalid _ url ", ĊĠĠĠĠĠĠĠ Ġalias Ġ= Ġ"" ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġval Ġresult Ġ= ĠUrl Service . create ( url Model ) ĊĠĠĠĠĠ ĠassertTrue ( result Ġis ĠError ) ĊĠĠĠĠĠ ĠassertEquals ( ErrorType . INVALID _ URL , Ġ( result Ġas ĠError ). error Type ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` create Ġurl Ġwith Ġinvalid Ġalias Ġreturns Ġerror `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġurl Model Ġ= ĠUrl Model ( ĊĠĠĠĠĠĠĠ Ġtarget Ġ= Ġ" google . com ", ĊĠĠĠĠĠĠĠ Ġalias Ġ= Ġ" .... " ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġval Ġresult Ġ= ĠUrl Service . create ( url Model ) ĊĠĠĠĠĠ ĠassertTrue ( result Ġis ĠError ) ĊĠĠĠĠĠ ĠassertEquals ( ErrorType . INVALID _ ALIAS , Ġ( result Ġas ĠError ). error Type ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` create Ġurl Ġwith Ġvalid Ġalias Ġreturns Ġsuccess `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġurl Model Ġ= ĠUrl Model ( ĊĠĠĠĠĠĠĠ Ġtarget Ġ= Ġ" google . com ", ĊĠĠĠĠĠĠĠ Ġalias Ġ= Ġ" alias -- __ " ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġval Ġresult Ġ= ĠUrl Service . create ( url Model ) ĊĠĠĠĠĠ ĠassertTrue ( result Ġis ĠSuccess ) ĊĠĠĠĠĠ ĠassertEquals (" google . com ", Ġ( result Ġas ĠSuccess ). url . target ) ĊĠĠĠĠĠ ĠassertEquals (" alias -- __", Ġresult . url . alias ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` create Ġurl Ġwith Ġexisting Ġalias Ġand Ġdifferent Ġurl Ġreturns Ġerror `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Alias Model Ġ= ĠUrl Model ( ĊĠĠĠĠĠĠĠ Ġtarget Ġ= Ġ" google . com ", ĊĠĠĠĠĠĠĠ Ġalias Ġ= Ġ" alias " ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ ĠUrl Service . create ( first Alias Model ) ĊĊĠĠĠĠĠ Ġval Ġduplicate Alias Model Ġ= ĠUrl Model ( ĊĠĠĠĠĠĠĠ Ġtarget Ġ= Ġ" facebook . com ", ĊĠĠĠĠĠĠĠ Ġalias Ġ= Ġ" alias " ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġval Ġresult Ġ= ĠUrl Service . create ( duplicate Alias Model ) ĊĠĠĠĠĠ ĠassertTrue ( result Ġis ĠError ) ĊĠĠĠĠĠ ĠassertEquals ( ErrorType . DUPLIC ATE , Ġ( result Ġas ĠError ). error Type ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` create Ġurl Ġwith Ġexisting Ġalias Ġbut Ġsame Ġurl Ġreturns Ġsuccess `() Ġ{ ĊĠĠĠ Ġrun Blocking Ġ{ ĊĠĠĠĠĠ Ġval Ġfirst Alias Model Ġ= ĠUrl Model ( ĊĠĠĠĠĠĠĠ Ġtarget Ġ= Ġ" google . com ", ĊĠĠĠĠĠĠĠ Ġalias Ġ= Ġ" alias " ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ ĠUrl Service . create ( first Alias Model ) ĊĊĠĠĠĠĠ Ġval Ġduplicate Alias Model Ġ= ĠUrl Model ( ĊĠĠĠĠĠĠĠ Ġtarget Ġ= Ġ" google . com ", ĊĠĠĠĠĠĠĠ Ġalias Ġ= Ġ" alias " ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġval Ġresult Ġ= ĠUrl Service . create ( duplicate Alias Model ) ĊĠĠĠĠĠ ĠassertTrue ( result Ġis ĠSuccess ) ĊĠĠĠĠĠ ĠassertEquals (" google . com ", Ġ( result Ġas ĠSuccess ). url . target ) ĊĠĠĠĠĠ ĠassertEquals (" alias ", Ġresult . url . alias ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ