package Ġthe od ol ite . execution . operator Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġio . fabric 8 . kubernetes . api . model . ConfigMap Builder Ċ import Ġio . fabric 8 . kubernetes . api . model . Pod Ċ import Ġio . fabric 8 . kubernetes . api . model . Pod Builder Ċ import Ġio . fabric 8 . kubernetes . api . model . Pod List Builder Ċ import Ġio . fabric 8 . kubernetes . api . model . apps . Deployment Builder Ċ import Ġio . fabric 8 . kubernetes . client . server . mock . Kubernetes Server Ċ import Ġio . fabric 8 . kubernetes . client . server . mock . OutputStream Message Ċ import Ġio . fabric 8 . kubernetes . client . utils . Utils Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġthe od ol ite . benchmark .* Ċ import Ġthe od ol ite . model . crd . Benchmark State Ċ Ċ internal Ġclass ĠBenchmark State Checker Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġserver Ġ= ĠKubernetes Server ( false , Ġfalse ) ĊĠĠĠ Ġprivate Ġval Ġserver Crud Ġ= ĠKubernetes Server ( false , Ġtrue ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġchecker : ĠBenchmark State Checker ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġchecker Crud : ĠBenchmark State Checker ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġserver . before () ĊĠĠĠĠĠĠĠ Ġserver Crud . before () ĊĠĠĠĠĠĠĠ Ġval Ġoperator Ġ= ĠThe od ol ite Operator () ĊĠĠĠĠĠĠĠ Ġchecker Ġ= ĠBenchmark State Checker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Ġ= Ġserver . client , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbenchmark CR D Client Ġ= Ġoperator . get Benchmark Client ( server . client ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbenchmark State Handler Ġ= Ġoperator . get Benchmark State Handler ( server . client ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġchecker Crud Ġ= ĠBenchmark State Checker ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Ġ= Ġserver Crud . client , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbenchmark CR D Client Ġ= Ġoperator . get Benchmark Client ( server Crud . client ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbenchmark State Handler Ġ= Ġoperator . get Benchmark State Handler ( server Crud . client ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpod : ĠPod Ġ= ĠPod Builder (). with New Metadata () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Name (" pod 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Resource Version (" 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Labels < String , ĠString >( map Of (" app " Ġto Ġ" pod ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Namespace (" test "). and () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġready : ĠPod Ġ= Ġcreate Ready From ( pod , Ġ" True ") ĊĊĠĠĠĠĠĠĠ Ġval Ġpod List Ġ= ĠPod List Builder (). build () ĊĠĠĠĠĠĠĠ Ġpod List . items . add ( 0 , Ġready ) ĊĊĊĠĠĠĠĠĠĠ Ġserver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ api / v 1 / namespaces / test / pods ? label Selector =${ Utils . to Url Encoded (" app = pod 1 ") }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn ( 2 0 0 , Ġpod List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. always () ĊĊĠĠĠĠĠĠĠ Ġserver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ api / v 1 / namespaces / test / pods ? label Selector =${ Utils . to Url Encoded (" app = pod 0 ") }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn ( 2 0 0 , Ġempty Map < String , ĠString >()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. always () ĊĊĊĠĠĠĠĠĠĠ Ġserver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ api / v 1 / namespaces / test / pods / pod 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn ( 2 0 0 , Ġready ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. always () ĊĊĠĠĠĠĠĠĠ Ġserver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. expect () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Path ("/ api / v 1 / namespaces / test / pods / pod 1 / exec ? command = ls & stdout = true & stderr = true ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. and Upgrade To WebSocket () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. open ( OutputStream Message (" Test - Output ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. done () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. always () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġserver . after () ĊĠĠĠĠĠĠĠ Ġserver Crud . after () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCop ied Ġfrom Ġfabric 8 ĠKubernetes ĠClient Ġrepository ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpod ĊĠĠĠĠ Ġ* Ġ@ param Ġstatus ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate Ready From ( pod : ĠPod , Ġstatus : ĠString ): ĠPod Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPod Builder ( pod ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with New Status () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add New Condition () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Type (" Ready ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Status ( status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Condition () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end Status () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Action Selector ( label : ĠPair < String , ĠString >): ĠAction Selector Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpod Selector Ġ= ĠPod Selector () ĊĠĠĠĠĠĠĠ Ġval Ġaction Selector Ġ= ĠAction Selector () ĊĠĠĠĠĠĠĠ Ġaction Selector . pod Ġ= Ġpod Selector ĊĊĠĠĠĠĠĠĠ Ġ// Ġpod Ġwith Ġmatching Ġlabels Ġare Ġdeployed ĊĠĠĠĠĠĠĠ Ġpod Selector . match Labels Ġ= Ġmutable Map Of ( label ) ĊĠĠĠĠĠĠĠ Ġreturn Ġaction Selector ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate And Deploy Config map Resource Set (): ĠResource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġcreate Ġtest Ġdeployment ĊĠĠĠĠĠĠĠ Ġval Ġresource Builder Ġ= ĠDeployment Builder () ĊĠĠĠĠĠĠĠ Ġresource Builder . with New Spec (). end Spec () ĊĠĠĠĠĠĠĠ Ġresource Builder . with New Metadata (). end Metadata () ĊĠĠĠĠĠĠĠ Ġval Ġresource Ġ= Ġresource Builder . build () ĊĠĠĠĠĠĠĠ Ġresource . metadata . name Ġ= Ġ" test - deployment " ĊĠĠĠĠĠĠĠ Ġresource . metadata . labels Ġ= Ġmutable Map Of (" app " Ġto Ġ" pod 1 ") ĊĠĠĠĠĠĠĠ Ġval Ġresource String Ġ= ĠGson (). toJson ( resource ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġcreate Ġand Ġdeploy Ġconfig map ĊĠĠĠĠĠĠĠ Ġval Ġconfig Map 1 Ġ= ĠConfig Map Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with New Metadata (). with Name (" test - config map "). end Metadata () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Data (" test - resource . yaml ", resource String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġserver Crud . client . config Maps (). create Or Replace ( config Map 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġcreate Ġconfig map Ġresource Ġset ĊĠĠĠĠĠĠĠ Ġval Ġresource Set Ġ= ĠConfig Map Resource Set () ĊĠĠĠĠĠĠĠ Ġresource Set . name Ġ= Ġ" test - config map " ĊĊĠĠĠĠĠĠĠ Ġ// Ġcreate ĠResource Sets List ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠResource Sets () ĊĠĠĠĠĠĠĠ Ġset . config Map Ġ= Ġresource Set ĊĠĠĠĠĠĠĠ Ġreturn Ġset ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck If Resource Is Deploy ed () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġpod Ġwith Ġmatching Ġlabels Ġare Ġdeployed ĊĠĠĠĠĠĠĠ ĠassertTrue ( checker . check If Resource Is Deploy ed ( getAction Selector (" app " Ġto Ġ" pod 1 "))) ĊĊĠĠĠĠĠĠĠ Ġ// Ġno Ġpod Ġwith Ġmatching Ġlabels Ġare Ġdeployed ĊĠĠĠĠĠĠĠ ĠassertFalse ( checker . check If Resource Is Deploy ed ( getAction Selector (" app " Ġto Ġ" pod 0 "))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck If Resource Is Infrastructure () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresource Sets Ġ= ĠlistOf ( create And Deploy Config map Resource Set ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( checker Crud . check If Resource Is Infrastructure ( resource Sets , Ġget Action Selector (" app " Ġto Ġ" pod 1 "))) ĊĠĠĠĠĠĠĠ ĠassertFalse ( checker Crud . check If Resource Is Infrastructure ( resource Sets , Ġget Action Selector (" app " Ġto Ġ" pod 0 "))) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Resources () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbenchmark Ġ= ĠBenchmark CR Dummy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" test - benchmark " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbenchmark . get CR (). spec . set Client ( server Crud . client ) ĊĠĠĠĠĠĠĠ Ġval Ġresource Set Ġ= ĠResources () ĊĠĠĠĠĠĠĠ Ġresource Set . resources Ġ= ĠlistOf ( create And Deploy Config map Resource Set ()) ĊĠĠĠĠĠĠĠ Ġbenchmark . get CR (). spec . infrastructure Ġ= Ġresource Set ĊĠĠĠĠĠĠĠ Ġbenchmark . get CR (). spec . load Generator Ġ= Ġresource Set ĊĠĠĠĠĠĠĠ Ġbenchmark . get CR (). spec . sut Ġ= Ġresource Set ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Benchmark State . READY , checker Crud . check Resources ( benchmark . get CR (). spec )) ĊĠĠĠ Ġ} Ċ }