package Ġcom . alibaba . dc m . tool Ċ Ċ import Ġio . kot est . assertions . fail Ċ import Ġio . kot est . core . spec . style . Annotation Spec Ċ import Ġio . kot est . core . test . config . TestCase Config Ċ import Ġio . kot est . engine . spec . temp file Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġorg . apache . commons . lang 3 . System Utils Ċ import Ġorg . apache . maven . artifact . version ing . Comparable Version Ċ import Ġjava . io . File Ċ import Ġjava . net . Inet Address Ċ Ċ /** Ċ Ġ* Ġhttps :// kot est . io / docs / framework / testing - styles . html # annotation - spec Ċ Ġ* Ċ Ġ* Ġ@ author ĠJ erry ĠLee Ġ( old rat lee Ġat Ġg mail Ġdot Ġcom ) Ċ Ġ*/ Ċ class ĠD cm Tool Tests Ġ: ĠAnnotation Spec () Ġ{ ĊĊĠĠĠ Ġ// ĠIgnore Ġ" attach Ġto Ġcurrent ĠVM " Ġtest Ġfor Ġj dk Ġ 9 +, Ġsince Ġjava Ġ 9 + Ġdoes Ġnot Ġsupport ĊĠĠĠ Ġ// ĠĠĠĠ Ġ" java . io . IOException : ĠCan Ġnot Ġattach Ġto Ġcurrent ĠVM " ĊĠĠĠ Ġ@ Suppress (" Over riding Deprecated Member ") ĊĠĠĠ Ġoverride Ġfun Ġdefault TestCase Config (): ĠTestCase Config Ġ= ĊĠĠĠĠĠĠĠ ĠTestCase Config ( enabled Ġ= ĠSystem Utils . IS _ JAVA _ 1 _ 8 ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġagent FilePath : ĠString ĊĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġfun Ġprepare Agent FilePath () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" work Ġdir : Ġ${ File (" "). absolute Path }") ĊĊĠĠĠĠĠĠĠ Ġagent FilePath Ġ= Ġfind Agent File From Lib Project () Ġ?: Ġfind Agent File From Maven Local () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfail (" Not Ġfound Ġagent Ġfile ") ĊĊĠĠĠĠĠĠĠ Ġprintln (" Found Ġagent Ġfile : Ġ$ agent FilePath ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠoutputFile Ġ= Ġtempfile (" dc m - output -", Ġ". log ") ĊĠĠĠĠĠĠĠ ĠoutputFile . length () ĠshouldBe Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġval Ġoutput FilePath Ġ= ĠoutputFile . canonical Path ĊĠĠĠĠĠĠĠ Ġprintln (" Prepared Ġoutput Ġfile : Ġ$ output FilePath ") ĊĊĠĠĠĠĠĠĠ ĠSystem . setProperty ( D cm Tool . D CM _ TOOLS _ TMP _ FILE _ KEY , Ġoutput FilePath ) ĊĠĠĠĠĠĠĠ ĠSystem . setProperty ( D cm Tool . D CM _ TOOLS _ AGENT _ JAR _ KEY , Ġagent FilePath ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ main _ get Policy () Ġ{ ĊĠĠĠĠĠĠĠ ĠD cm Tool . main ( array Of ("- p ", ĠD cm Tool . pid (), Ġ" get Policy ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest _ main _ set () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġip Ġ= Ġ" 1 . 1 . 2 . 2 " ĊĠĠĠĠĠĠĠ Ġval Ġhost Ġ= Ġ" bing . com " ĊĊĠĠĠĠĠĠĠ ĠD cm Tool . main ( array Of ("- p ", ĠD cm Tool . pid (), Ġ" set ", Ġhost , Ġip )) ĊĠĠĠĠĠĠĠ ĠInet Address . get ByName ( host ). host Address ĠshouldBe Ġip ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Agent File From Lib Project (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd cm Lib Project Dir : ĠFile Ġ= ĠlistOf (" library ", Ġ"../ library ", Ġ"../../ library ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠFile ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . exists () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġval Ġtarget Dir Ġ= ĠFile ( dc m Lib Project Dir , Ġ" target ") ĊĠĠĠĠĠĠĠ Ġif Ġ(! target Dir . exists ()) Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġprintln (" Found Ġtarget Ġdir : Ġ${ target Dir . canonical Path }") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtarget Dir . walk () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . extension Ġ== Ġ" jar " Ġ&& Ġis Agent Jar ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . canonical Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfind Agent File From Maven Local (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhome : ĠString Ġ= ĠSystem . getProperty (" user . home ") ĊĠĠĠĠĠĠĠ Ġval Ġm 2 D cm Lib Dependency Dir Ġ= ĠFile ("$ home /. m 2 / repository / com / alibaba / dns - cache - manip ulator ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġm 2 D cm Lib Dependency Dir . walk () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . extension Ġ== Ġ" jar " Ġ&& Ġis Agent Jar ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . canonical Path Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. max With OrNull ( Comparator . comp aring Ġ{ ĠComparable Version ( it . trim To Version ()) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġis Agent Jar ( file : ĠFile ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠfileName : ĠString Ġ= Ġfile . name ĊĠĠĠĠĠĠĠ Ġif Ġ(! fileName . startsWith (" dns - cache - manip ulator - ")) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ! fileName . trim To Version (). remove Suffix ("- SNAPSHOT "). contains ("- ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠString . trim To Version () Ġ= Ġsubstring After Last ('/') ĊĠĠĠĠĠĠĠ Ġ. remove Prefix (" dns - cache - manip ulator - "). remove Suffix (". jar ") Ċ } Ċ