/* - Ċ Ġ* Ġ================= ======= LICENSE _ START ================================ = Ċ Ġ* Ġids - container - manager Ċ Ġ* Ġ%% Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠF ra un ho fer ĠAI SEC Ċ Ġ* Ġ%% Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* ĠĊ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* ĠĊ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ġ================= ======== LICENSE _ END ================================ == Ċ Ġ*/ Ċ package Ġde . fh g . aise c . ids . cm . impl . docker Ċ Ċ import Ġde . fh g . aise c . ids . api . cm . Application Container Ċ import Ġde . fh g . aise c . ids . api . cm . Container Status Ċ import Ġde . fh g . aise c . ids . cm . impl . docker . Docker CM . Companion . is Supported Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Ass ume Ċ import Ġorg . junit . Test Ċ import Ġjava . util .* Ċ Ċ class ĠDocker Cm IT Ġ{ ĊĠĠĠ Ġprivate Ġval Ġw ip es : ĠMutable Set < String > Ġ= ĠHashSet () ĊĠĠĠ Ġ@ After ĊĠĠĠ Ġfun Ġclean Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠRemove Ġcontainers Ġcreated Ġduring Ġtest ĊĠĠĠĠĠĠĠ ĠDocker CM (). let Ġ{ Ġd Ġ-> Ġw ip es . forEach Ġ{ Ġd . w ipe ( it ) Ġ} Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest List () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssume . assume True ( is Supported ) ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠDocker CM () ĊĊĠĠĠĠĠĠĠ Ġ// ĠList Ġrunning Ġcontainers ĊĠĠĠĠĠĠĠ Ġval Ġl Running Ġ= Ġd . list ( true ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( l Running ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠList Ġall Ġcontainers Ġ( also Ġstopped Ġones ) ĊĠĠĠĠĠĠĠ Ġval Ġl All Ġ= Ġd . list ( false ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( l All ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġcannot Ġhave Ġless Ġrunning Ġthan Ġtotal Ġcontainers ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( l All . size Ġ>= Ġl Running . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Pull () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssume . assume True ( is Supported ) ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠDocker CM () ĊĊĠĠĠĠĠĠĠ Ġ// ĠPull Ġthe Ġsmallest Ġpossible Ġimage . ĠBlocks . Ġ( must Ġbe Ġonline ) ĊĠĠĠĠĠĠĠ Ġval Ġapp Ġ= ĠApplication Container () ĊĠĠĠĠĠĠĠ Ġapp . image Ġ= Ġ" t ian on / true " ĊĠĠĠĠĠĠĠ Ġval Ġo Container ID Ġ= Ġd . pull Image ( app ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġexpect Ġa Ġnew Ġcontainer Ġto Ġbe Ġcreated ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( o Container ID . isPresent ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNot Equals ("", Ġo Container ID . get ()) ĊĠĠĠĠĠĠĠ Ġw ip es . add ( o Container ID . get ()) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġexpect Ġthe Ġcontainer Ġto Ġbe Ġin Ġlist () ĊĠĠĠĠĠĠĠ Ġval Ġcontainer Ġ= Ġd . list ( false ). first OrNull Ġ{ Ġit . id Ġ== Ġo Container ID . get () Ġ} ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( container ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( Container Status . CREATED , Ġcontainer ?. status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Version () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssume . assume True ( is Supported ) ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠDocker CM () ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġd . version ĊĠĠĠĠĠĠĠ ĠAssert . assertFalse ( version . isEmpty ()) ĊĠĠĠĠĠĠĠ Ġval Ġregex Ġ= ĠRegex (" .* Ġ\\ ([ 0 - 9 . ]+ (?: .+ )? \\ )") ĊĠĠĠĠĠĠĠ Ġif Ġ(! version . matches ( regex )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAssertionError ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Error : ĠDocker Ġversion Ġhas Ġto Ġmatch Ġregex Ġ'$ regex ', Ġfound Ġ'$ version '") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Start Stop () Ġ{ ĊĠĠĠĠĠĠĠ ĠAssume . assume True ( is Supported ) ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠDocker CM () ĊĊĠĠĠĠĠĠĠ Ġ// ĠPull Ġan Ġimage Ġwe Ġcan Ġactually Ġstart . Ġ( must Ġbe Ġonline ) ĊĠĠĠĠĠĠĠ Ġval Ġapp Ġ= ĠApplication Container () ĊĠĠĠĠĠĠĠ Ġapp . image Ġ= Ġ" nginx " ĊĠĠĠĠĠĠĠ Ġval Ġo Container ID Ġ= Ġd . pull Image ( app ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġexpect Ġa Ġnew Ġcontainer Ġto Ġbe Ġcreated ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( o Container ID . isPresent ) ĊĠĠĠĠĠĠĠ Ġval Ġcontainer ID Ġ= Ġo Container ID . get () ĊĠĠĠĠĠĠĠ Ġw ip es . add ( container ID ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( container ID ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġexpect Ġthe Ġcontainer Ġto Ġbe Ġin Ġlist () ĊĠĠĠĠĠĠĠ Ġval Ġcontainer Ġ= Ġd . list ( false ). first OrNull Ġ{ Ġit . id Ġ== Ġcontainer ID Ġ} ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( container ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( Container Status . CREATED , Ġcontainer ?. status ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠStart Ġcontainer ĊĠĠĠĠĠĠĠ Ġd . start Container ( container ID , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġnow Ġexpect Ġit Ġin Ġlist Ġof Ġrunning Ġcontainers ĊĠĠĠĠĠĠĠ Ġval Ġrunning Container Ġ= Ġd . list ( true ). first OrNull Ġ{ Ġit . id Ġ== Ġcontainer ID Ġ} ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( running Container ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( Container Status . RUNNING , Ġrunning Container ?. status ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠStop Ġcontainer ĊĠĠĠĠĠĠĠ Ġd . stop Container ( container ID ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġexpect Ġit Ġto Ġbe Ġstill Ġin Ġlist Ġof Ġall Ġcontainers ĊĠĠĠĠĠĠĠ Ġval Ġstopped Container Ġ= Ġd . list ( false ). first OrNull Ġ{ Ġit . id Ġ== Ġcontainer ID Ġ} ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( stopped Container ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( Container Status . EXIT ED , Ġstopped Container ?. status ) ĊĠĠĠ Ġ} Ċ }