/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġavailable . ĠĠĊ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠTH L ĠA 2 9 ĠLimited , Ġa ĠTencent Ġcompany . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense . Ċ Ġ* Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠMIT ĠLicense Ġis Ġincluded Ġin Ġthis Ġfile . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTerms Ġof Ġthe ĠMIT ĠLicense : Ċ Ġ* Ġ------------------------------------------------ --- Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ* Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġcom . tencent . bk repo . repository . service Ċ Ċ import Ġcom . tencent . bk repo . common . api . exception . ErrorCode Exception Ċ import Ġcom . tencent . bk repo . common . artifact . pojo . Repository Category Ċ import Ġcom . tencent . bk repo . common . artifact . pojo . Repository Type Ċ import Ġcom . tencent . bk repo . common . artifact . pojo . configuration . local . Local Configuration Ċ import Ġcom . tencent . bk repo . repository . UT _ PROJECT _ ID Ċ import Ġcom . tencent . bk repo . repository . UT _ REPO _ DESC Ċ import Ġcom . tencent . bk repo . repository . UT _ REPO _ DISPLAY Ċ import Ġcom . tencent . bk repo . repository . UT _ REPO _ NAME Ċ import Ġcom . tencent . bk repo . repository . UT _ USER Ċ import Ġcom . tencent . bk repo . repository . dao . File Reference Dao Ċ import Ġcom . tencent . bk repo . repository . dao . Node Dao Ċ import Ġcom . tencent . bk repo . repository . pojo . node . service . Node Copy Request Ċ import Ġcom . tencent . bk repo . repository . pojo . node . service . Node CreateRequest Ċ import Ġcom . tencent . bk repo . repository . pojo . node . service . Node Delete Request Ċ import Ġcom . tencent . bk repo . repository . pojo . node . service . Node Move Request Ċ import Ġcom . tencent . bk repo . repository . pojo . node . service . Node Rename Request Ċ import Ġcom . tencent . bk repo . repository . pojo . project . Project CreateRequest Ċ import Ġcom . tencent . bk repo . repository . pojo . repo . Repo CreateRequest Ċ import Ġcom . tencent . bk repo . repository . util . Node Utils Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertFalse Ċ import Ġorg . junit . jupiter . api . Assertions . assertNotNull Ċ import Ġorg . junit . jupiter . api . Assertions . assertNull Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . Before All Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Test Instance Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . autoconfigure . data . mongo . Data Mongo Test Ċ import Ġorg . springframework . context . annotation . Import Ċ Ċ @ DisplayName (" èĬĤçĤ¹ æľįåĬ¡ æµĭè¯ķ ") Ċ @ Data Mongo Test Ċ @ Import ( ĊĠĠĠ ĠNode Dao :: class , ĊĠĠĠ ĠFile Reference Dao :: class Ċ ) Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) Ċ class ĠNode Service Test Ġ@ Autowired Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġproject Service : ĠProject Service , ĊĠĠĠ Ġprivate Ġval Ġrepository Service : ĠRepository Service , ĊĠĠĠ Ġprivate Ġval Ġnode Service : ĠNode Service Ċ ) Ġ: ĠService Base Test () Ġ{ ĊĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġfun Ġbefore All () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Mock () ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! project Service . exist ( UT _ PROJECT _ ID )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject CreateRequest Ġ= ĠProject CreateRequest ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , ĠUT _ REPO _ DISPLAY , ĠUT _ USER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Service . create ( project CreateRequest ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! repository Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepo CreateRequest Ġ= ĠRepo CreateRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠRepository Type . GENERIC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= ĠRepository Category . LOCAL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= ĠUT _ REPO _ DESC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= ĠLocal Configuration (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository Service . create ( repo CreateRequest ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠbeforeEach () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Mock () ĊĠĠĠĠĠĠĠ Ġnode Service . delete By Path ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , ĠNode Utils . ROOT _ PATH , ĠUT _ USER , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" æł¹ èĬĤçĤ¹ æµĭè¯ķ ") ĊĠĠĠ Ġfun Ġtest Root Node () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertNull ( node Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/", Ġinclude Folder Ġ= Ġtrue , Ġdeep Ġ= Ġtrue ). size ) ĊĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( node Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/", Ġinclude Folder Ġ= Ġfalse , Ġdeep Ġ= Ġtrue ). size ) ĊĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( node Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/", Ġinclude Folder Ġ= Ġfalse , Ġdeep Ġ= Ġtrue ). size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" æµĭè¯ķ åħĥ æķ°æį® æŁ¥è¯¢ ") ĊĠĠĠ Ġfun Ġtest Include Metadata () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ", Ġfolder Ġ= Ġfalse , Ġmetadata Ġ= Ġmap Of (" key " Ġto Ġ" value "))) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 2 . txt ", Ġfolder Ġ= Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġnode 1 Ġ= Ġnode Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / 1 . txt ") ĊĠĠĠĠĠĠĠ Ġval Ġnode 2 Ġ= Ġnode Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / 2 . txt ") ĊĠĠĠĠĠĠĠ ĠassertNotNull ( node 1 !!. metadata ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( node 1 . metadata [" key "]) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( node 2 !!. metadata ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlist 1 Ġ= Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ", Ġinclude Metadata Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( list 1 [ 0 ]. metadata ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( list 1 [ 1 ]. metadata ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlist 2 Ġ= Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ", Ġinclude Metadata Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ ĠassertNull ( list 2 [ 0 ]. metadata ) ĊĠĠĠĠĠĠĠ ĠassertNull ( list 2 [ 1 ]. metadata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" åĪĹè¡¨ æŁ¥è¯¢ ") ĊĠĠĠ Ġfun Ġtest List () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b ")) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġ 2 0 ĊĠĠĠĠĠĠĠ Ġrepeat ( size ) Ġ{ Ġi Ġ-> Ġnode Service . create ( create Request ("/ a / b / c /$ i . txt ", Ġfalse )) Ġ} ĊĠĠĠĠĠĠĠ Ġrepeat ( size ) Ġ{ Ġi Ġ-> Ġnode Service . create ( create Request ("/ a / b / d /$ i . txt ", Ġfalse )) Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ", Ġinclude Folder Ġ= Ġfalse , Ġdeep Ġ= Ġfalse ). size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ", Ġinclude Folder Ġ= Ġtrue , Ġdeep Ġ= Ġfalse ). size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( size Ġ* Ġ 2 Ġ+ Ġ 1 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ", Ġinclude Folder Ġ= Ġfalse , Ġdeep Ġ= Ġtrue ). size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( size Ġ* Ġ 2 Ġ+ Ġ 3 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ", Ġinclude Folder Ġ= Ġtrue , Ġdeep Ġ= Ġtrue ). size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( size , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c ", Ġinclude Folder Ġ= Ġtrue , Ġdeep Ġ= Ġtrue ). size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" åĪĹè¡¨ æŁ¥è¯¢ ") ĊĠĠĠ Ġfun Ġtest List 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / ")) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ b ")) ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġ 2 0 ĊĠĠĠĠĠĠĠ Ġrepeat ( size ) Ġ{ Ġi Ġ-> Ġnode Service . create ( create Request ("/ a /$ i . txt ", Ġfalse )) Ġ} ĊĠĠĠĠĠĠĠ Ġrepeat ( size ) Ġ{ Ġi Ġ-> Ġnode Service . create ( create Request ("/ b /$ i . txt ", Ġfalse )) Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"", Ġinclude Folder Ġ= Ġfalse , Ġdeep Ġ= Ġfalse ). size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"", Ġinclude Folder Ġ= Ġtrue , Ġdeep Ġ= Ġfalse ). size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 2 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"", Ġinclude Folder Ġ= Ġtrue , Ġdeep Ġ= Ġtrue ). size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" åĪĨé¡µ æŁ¥è¯¢ ") ĊĠĠĠ Ġfun Ġtest Page () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġ 5 1 L ĊĠĠĠĠĠĠĠ Ġrepeat ( size . toInt ()) Ġ{ Ġi Ġ-> Ġnode Service . create ( create Request ("/ a / b / c /$ i . txt ", Ġfalse )) Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġpage Ġ= Ġnode Service . page ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c ", Ġ 0 , Ġ 1 0 , Ġinclude Folder Ġ= Ġfalse , Ġdeep Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 , Ġpage . records . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( size , Ġpage . count ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġpage . page ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 0 , Ġpage . pageSize ) ĊĊĠĠĠĠĠĠĠ Ġpage Ġ= Ġnode Service . page ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c ", Ġ 5 , Ġ 1 0 , Ġinclude Folder Ġ= Ġfalse , Ġdeep Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġpage . records . size ) ĊĠĠĠĠĠĠĠ Ġpage Ġ= Ġnode Service . page ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c ", Ġ 6 , Ġ 1 0 , Ġinclude Folder Ġ= Ġfalse , Ġdeep Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġpage . records . size ) ĊĊĠĠĠĠĠĠĠ Ġpage Ġ= Ġnode Service . page ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c ", Ġ 0 , Ġ 2 0 , Ġinclude Folder Ġ= Ġfalse , Ġdeep Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 0 , Ġpage . records . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( size , Ġpage . count ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġpage . page ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 0 , Ġpage . pageSize ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" åĪ¤æĸŃ èĬĤçĤ¹ æĺ¯åĲ¦ åŃĺåľ¨ ") ĊĠĠĠ Ġfun Ġtest Exist () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ")) ĊĊĠĠĠĠĠĠĠ Ġcreate Request (" Ġ Ġ/ Ġa Ġ/ ĠĠ Ġb Ġ/ ĠĠ 1 . txt ĠĠ Ġ", Ġfalse ) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request (" Ġ Ġ/ Ġa Ġ/ ĠĠ Ġb Ġ/ ĠĠ 1 . txt ĠĠ Ġ", Ġfalse )) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" åĪĽå»º èĬĤçĤ¹ ï¼Į éĿŀ æ³ķ åĲįç§° æĬĽ å¼Ĥå¸¸ ") ĊĠĠĠ Ġfun Ġtest Create Throw () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < ErrorCode Exception > Ġ{ Ġnode Service . create ( create Request (" Ġa Ġ/ ĠĠ Ġb Ġ/ ĠĠ 1 . txt ĠĠ Ġ", Ġfalse )) Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows < ErrorCode Exception > Ġ{ Ġnode Service . create ( create Request (" Ġa Ġ/ ĠĠ Ġb Ġ/ ĠĠ 1 ./ txt ĠĠ Ġ", Ġfalse )) Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows < ErrorCode Exception > Ġ{ Ġnode Service . create ( create Request ("/ a / b / .. ", Ġtrue )) Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows < ErrorCode Exception > Ġ{ Ġnode Service . create ( create Request ("/ a / b / .", Ġtrue )) Ġ} ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b ", Ġtrue )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" åĪĽå»º æĸĩä»¶ ") ĊĠĠĠ Ġfun Ġtest Create File () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request (" Ġ Ġ/ Ġa Ġ/ ĠĠ Ġb Ġ/ ĠĠ 1 . txt Ġ Ġ", Ġfalse )) ĊĠĠĠĠĠĠĠ ĠassertThrows < ErrorCode Exception > Ġ{ Ġnode Service . create ( create Request (" Ġ Ġ/ Ġa Ġ/ ĠĠ Ġb Ġ/ ĠĠ 1 . txt Ġ Ġ", Ġfalse )) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= Ġnode Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / 1 . txt ") !! ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( UT _ USER , Ġnode . created By ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( node . created Date ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( UT _ USER , Ġnode . lastModified By ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( node . last ModifiedDate ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġnode . folder ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("/ a / b /", Ġnode . path ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 . txt ", Ġnode . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("/ a / b / 1 . txt ", Ġnode . fullPath ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 L , Ġnode . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" sha 2 5 6 ", Ġnode . sha 2 5 6 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" åĪĽå»º çĽ®å½ķ æµĭè¯ķ ") ĊĠĠĠ Ġfun Ġtest Create Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request (" Ġ Ġ/// Ġa Ġ/ ĠĠ Ġc Ġ//// ĠĠĠ Ġä¸Ń æĸĩ . @ _- ` ~ ... Ġ Ġ")) ĊĠĠĠĠĠĠĠ Ġval Ġnode Ġ= Ġnode Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / c / ä¸Ńæĸĩ . @ _- ` ~ ...") !! ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( UT _ USER , Ġnode . created By ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( node . created Date ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( UT _ USER , Ġnode . lastModified By ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( node . last ModifiedDate ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġnode . folder ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("/ a / c /", Ġnode . path ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" ä¸Ńæĸĩ . @ _- ` ~ ...", Ġnode . name ) ĊĠĠĠĠĠĠĠ ĠassertEquals ("/ a / c / ä¸Ńæĸĩ . @ _- ` ~ ...", Ġnode . fullPath ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 L , Ġnode . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġnode . sha 2 5 6 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" åĪłéĻ¤ èĬĤçĤ¹ ") ĊĠĠĠ Ġfun Ġtest Delete () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . delete ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNode Delete Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull Path Ġ= Ġ"/ a / b / 1 . txt ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / 1 . txt ")) ĊĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ")) ĊĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c ")) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / 1 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / 1 . txt ")) ĊĊĠĠĠĠĠĠĠ Ġnode Service . delete ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNode Delete Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull Path Ġ= Ġ"/ a / b / c / 1 . txt ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / 1 . txt ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" æŃ£ åĪĻ è½¬ ä¹ī ") ĊĠĠĠ Ġfun Ġtest Escape () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ .* | ^ / a / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / 1 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ .* | ^ / a ", Ġinclude Folder Ġ= Ġtrue , Ġdeep Ġ= Ġtrue ). size ) ĊĠĠĠĠĠĠĠ Ġnode Service . delete By Path ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ .* | ^ / a ", ĠUT _ USER ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ .* | ^ / a ", Ġinclude Folder Ġ= Ġtrue , Ġdeep Ġ= Ġtrue ). size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a ", Ġinclude Folder Ġ= Ġtrue , Ġdeep Ġ= Ġtrue ). size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" è®¡ç®Ĺ èĬĤçĤ¹ å¤§å°ı ") ĊĠĠĠ Ġfun Ġtest Compute Size () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġ 2 0 ĊĠĠĠĠĠĠĠ Ġrepeat ( size ) Ġ{ Ġi Ġ-> Ġnode Service . create ( create Request ("/ a / b / c /$ i . txt ", Ġfalse )) Ġ} ĊĠĠĠĠĠĠĠ Ġrepeat ( size ) Ġ{ Ġi Ġ-> Ġnode Service . create ( create Request ("/ a / b / d /$ i . txt ", Ġfalse )) Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpath Size Info Ġ= Ġnode Service . compute Size ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 2 , Ġpath Size Info . sub Node Count ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 0 , Ġpath Size Info . size ) ĊĊĠĠĠĠĠĠĠ Ġval ĠfileSize Info Ġ= Ġnode Service . compute Size ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / 1 . txt ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 , ĠfileSize Info . sub Node Count ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , ĠfileSize Info . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" éĩį åĳ½åĲį çĽ®å½ķ ") ĊĠĠĠ Ġfun Ġtest Rename Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 2 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / 2 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġrename Request Ġ= ĠNode Rename Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfull Path Ġ= Ġ"/ a ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew FullPath Ġ= Ġ"/ aa ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . rename ( rename Request ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / 2 . txt ")) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ aa ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ aa / b ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ aa / b / c ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ aa / b / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ aa / b / c / 2 . txt ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" éĩį åĳ½åĲį ä¸ŃéĹ´ çĽ®å½ķ ") ĊĠĠĠ Ġfun Ġtest Rename Sub Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c ", Ġtrue )) ĊĊĠĠĠĠĠĠĠ Ġval Ġrename Request Ġ= ĠNode Rename Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfull Path Ġ= Ġ"/ a / b / c ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew FullPath Ġ= Ġ"/ a / d / c ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . rename ( rename Request ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c ")) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / d ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / d / c ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" éĩį åĳ½åĲį æĸĩä»¶ ï¼Į éģĩ åĲĮ åĲį æĸĩä»¶ æĬĽ å¼Ĥå¸¸ ") ĊĠĠĠ Ġfun Ġtest Rename Throw () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 2 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / 2 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ aa / b / c / 2 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġrename Request Ġ= ĠNode Rename Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfull Path Ġ= Ġ"/ a ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew FullPath Ġ= Ġ"/ aa ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThrows < ErrorCode Exception > Ġ{ Ġnode Service . rename ( rename Request ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" ç§»åĬ¨ æĸĩä»¶ ï¼Į çĽ®å½ķ Ġ-> Ġä¸į åŃĺåľ¨ çļĦ çĽ®å½ķ ") ĊĠĠĠ Ġfun Ġtest Move Path To NotExist Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / 2 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / e / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / e / 2 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / 1 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a / b ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ ab ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d / e ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d / e / 2 . txt ")) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / c ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / c / d ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / c / d / e ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / c / d / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / c / d / e / 2 . txt ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" ç§»åĬ¨ æĸĩä»¶ ï¼Į çĽ®å½ķ Ġ-> Ġ åŃĺåľ¨ çļĦ çĽ®å½ķ ") ĊĠĠĠ Ġfun Ġtest Move Path To Exist Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / 2 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / e / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / e / 2 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ ab ", Ġtrue )) ĊĊĠĠĠĠĠĠĠ Ġvar Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a / b ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ ab ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d / e ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d / e / 2 . txt ")) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / b ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / b / c ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / b / c / d ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / b / c / d / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / b / c / d / e / 2 . txt ")) ĊĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ data / mkdir / aa . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ data / dir 3 ", Ġtrue )) ĊĊĠĠĠĠĠĠĠ Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ data / mkdir / aa . txt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ data / dir 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ data / dir 3 ", Ġinclude Folder Ġ= Ġfalse , Ġdeep Ġ= Ġfalse ). size Ġ== Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" ç§»åĬ¨ æĸĩä»¶ Ġ-> Ġ åŃĺåľ¨ çļĦ çĽ®å½ķ ") ĊĠĠĠ Ġfun Ġtest Move File To Exist Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ ab ", Ġtrue )) ĊĊĠĠĠĠĠĠĠ Ġval Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a / 1 . txt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ ab ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / 1 . txt ")) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / 1 . txt ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" ç§»åĬ¨ æĸĩä»¶ ï¼Į æĸĩä»¶ Ġ-> Ġä¸į åŃĺåľ¨ çļĦ è·¯å¾Ħ ") ĊĠĠĠ Ġfun Ġtest Move File To NotExist Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / 1 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a / 1 . txt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ ab ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / 1 . txt ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġdest Node Ġ= Ġnode Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab ") ĊĠĠĠĠĠĠĠ ĠassertNotNull ( dest Node ) ĊĠĠĠĠĠĠĠ ĠassertFalse ( dest Node !!. folder ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" ç§»åĬ¨ æĸĩä»¶ ï¼Į æĸĩä»¶ Ġ-> Ġ åŃĺåľ¨ çļĦæĸĩä»¶ ä¸Ķ è¦ĨçĽĸ ") ĊĠĠĠ Ġfun Ġtest Move File To Exist File And Overwrite () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / 1 . txt ", Ġfalse , Ġsize Ġ= Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ ab / a / 1 . txt ", Ġfalse , Ġsize Ġ= Ġ 2 )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ abc / a / 1 . txt ", Ġfalse , Ġsize Ġ= Ġ 2 )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġpath Ġ-> Ġpath ĊĠĠĠĠĠĠĠ Ġvar Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ ab ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverwrite Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġfile Ġ-> Ġfile ĊĠĠĠĠĠĠĠ Ġvar Ġnode Ġ= Ġnode Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / a / 1 . txt ") !! ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġnode . size ) ĊĊĠĠĠĠĠĠĠ Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ ab / a / 1 . txt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ abc / a / 1 . txt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverwrite Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĊĠĠĠĠĠĠĠ Ġnode Ġ= Ġnode Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ abc / a / 1 . txt ") !! ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġnode . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" ç§»åĬ¨ æĸĩä»¶ ï¼Į æĸĩä»¶ Ġ-> Ġ åŃĺåľ¨ çļĦæĸĩä»¶ ä¸Ķ ä¸į è¦ĨçĽĸ ") ĊĠĠĠ Ġfun Ġtest Move Overwrite Throw () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ ab / a / 1 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ ab ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThrows < ErrorCode Exception > Ġ{ Ġnode Service . move ( move Request ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" ç§»åĬ¨ æĸĩä»¶ ï¼Į çĽ®å½ķ Ġ-> Ġ èĩªå·± ") ĊĠĠĠ Ġfun Ġtest Move Path To Self () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ a ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" ç§»åĬ¨ æĸĩä»¶ , Ġ çĽ®å½ķ Ġ-> Ġ çĪ¶ çĽ®å½ķ ") ĊĠĠĠ Ġfun Ġtest Move Path To Parent Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a / b ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ a ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / 1 . txt ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" ç§»åĬ¨ æĸĩä»¶ , Ġ çĽ®å½ķ Ġ-> Ġ æł¹ çĽ®å½ķ ") ĊĠĠĠ Ġfun Ġtest MoveTo RootPath () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a / b ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ b / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" ç§»åĬ¨ æĸĩä»¶ , Ġæĸĩä»¶ Ġ-> Ġ çĪ¶ çĽ®å½ķ ") ĊĠĠĠ Ġfun Ġtest Move File To RootPath () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / 1 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġmove Request Ġ= ĠNode Move Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a / b / 1 . txt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ a / b ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . move ( move Request ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / 1 . txt ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" æĭ · è´Ŀ æĸĩä»¶ , Ġ çĽ®å½ķ Ġ-> Ġä¸į åŃĺåľ¨ çļĦ çĽ®å½ķ ") ĊĠĠĠ Ġfun Ġtest Copy () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / 2 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / e / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / b / c / d / e / 2 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / 1 . txt ", Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġval Ġcopy Request Ġ= ĠNode Copy Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a / b ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ ab ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . copy ( copy Request ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d / e ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ a / b / c / d / e / 2 . txt ")) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / c ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / c / d ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / c / d / e ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / c / d / 1 . txt ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . exist ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ ab / c / d / e / 2 . txt ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" æĭ · è´Ŀ æĸĩä»¶ Ġ-> Ġ åŃĺåľ¨ çļĦ çĽ®å½ķ ") ĊĠĠĠ Ġfun Ġtest Copy File To Exist Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a / 1 . txt ", Ġfalse )) ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ b ", Ġtrue )) ĊĊĠĠĠĠĠĠĠ Ġval Ġcopy Request Ġ= ĠNode Copy Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a / 1 . txt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ b /", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverwrite Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . copy ( copy Request ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ b ") ?. folder Ġ== Ġtrue ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( node Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ b / 1 . txt ") ?. folder Ġ== Ġfalse ) ĊĠĠĠĠĠĠĠ Ġnode Service . list ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/", Ġtrue , Ġdeep Ġ= Ġtrue ). forEach Ġ{ Ġprintln ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" æĭ · è´Ŀ æĸĩä»¶ , Ġ åħĥ æķ°æį® ä¸Ģèµ· æĭ · è´Ŀ ") ĊĠĠĠ Ġfun Ġtest CopyWith Metadata () Ġ{ ĊĠĠĠĠĠĠĠ Ġnode Service . create ( create Request ("/ a ", Ġfalse , Ġmetadata Ġ= Ġmap Of (" key " Ġto Ġ" value "))) ĊĊĠĠĠĠĠĠĠ Ġval Ġcopy Request Ġ= ĠNode Copy Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc ProjectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Repo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc FullPath Ġ= Ġ"/ a ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest FullPath Ġ= Ġ"/ b ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġnode Service . copy ( copy Request ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" value ", Ġnode Service . detail ( UT _ PROJECT _ ID , ĠUT _ REPO _ NAME , Ġ"/ b ") !!. metadata [" key "]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Request ( fullPath : ĠString Ġ= Ġ"/ a / b / c ", Ġfolder : ĠBoolean Ġ= Ġtrue , Ġsize : ĠLong Ġ= Ġ 1 , Ġmetadata : ĠMap < String , ĠString >? Ġ= Ġnull ): ĠNode CreateRequest Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNode CreateRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= ĠUT _ PROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo Name Ġ= ĠUT _ REPO _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Ġ= Ġfolder , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfull Path Ġ= Ġfull Path , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpires Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverwrite Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= Ġsize , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsha 2 5 6 Ġ= Ġ" sha 2 5 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmd 5 Ġ= Ġ" md 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperator Ġ= ĠUT _ USER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Ġ= Ġmetadata ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ