/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠNu ĠEcho ĠInc Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ package Ġcom . n ue cho . mut agen . cli . commands . config . import Ċ Ċ import Ġcom . genes ys lab . platform . application blocks . com . objects . Cfg Physical Switch Ċ import Ġcom . genes ys lab . platform . application blocks . com . objects . Cfg Script Ċ import Ġcom . genes ys lab . platform . application blocks . com . objects . Cfg Tenant Ċ import Ġcom . genes ys lab . platform . configuration . protocol . types . Cfg Switch Type . CF GF uj its u Ċ import Ġcom . n ue cho . mut agen . cli . Console Ċ import Ġcom . n ue cho . mut agen . cli . commands . config . Config Mocks Ċ import Ġcom . n ue cho . mut agen . cli . commands . config . ValidationException Ċ import Ġcom . n ue cho . mut agen . cli . commands . config . export . Export Format Ċ import Ġcom . n ue cho . mut agen . cli . commands . config . import . operation . Import Operation Ċ import Ġcom . n ue cho . mut agen . cli . models . configuration . Configuration Ċ import Ġcom . n ue cho . mut agen . cli . models . configuration . Physical Switch Ċ import Ġcom . n ue cho . mut agen . cli . models . configuration . Script Ċ import Ġcom . n ue cho . mut agen . cli . models . configuration . reference . Tenant Reference Ċ import Ġcom . n ue cho . mut agen . cli . services . Service Mocks Ċ import Ġcom . n ue cho . mut agen . cli . to ShortName Ċ import Ġio . mock k . Runs Ċ import Ġio . mock k . every Ċ import Ġio . mock k . just Ċ import Ġio . mock k . object Mock k Ċ import Ġio . mock k . use Ċ import Ġio . mock k . verify Ċ import Ġorg . hamcrest . Matcher Assert . assertThat Ċ import Ġorg . hamcrest . Matchers .` is ` Ċ import Ġorg . junit . jupiter . api . Assertions . assert Throws Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ class ĠImport Command Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` missing Ġconfiguration Ġobject Ġdependencies Ġshould Ġabort Ġthe Ġimport `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= ĠConfiguration ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ__ metadata __ Ġ= ĠConfig Mocks . mock Metadata ( Export Format . JSON ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscripts Ġ= ĠlistOf ( Script ( tenant Ġ= ĠTenant Reference (" tenant "), Ġname Ġ= Ġ" script 1 ", Ġtype Ġ= Ġ" voice File ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphysical Sw itches Ġ= ĠlistOf ( Physical Switch (" phys Switch ", Ġtype Ġ= Ġ" n ort el Mer id ian ")) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠService Mocks . mock Conf Service () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġservice . retrieve Object ( Cfg Tenant :: class . java , Ġany ()) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġservice . retrieve Object ( Cfg Script :: class . java , Ġany ()) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġservice . retrieve Object ( Cfg Physical Switch :: class . java , Ġany ()) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ ĠassertThrows ( ValidationException :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImport . import Configuration ( configuration , Ġservice , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` missing Ġmandatory Ġproperties Ġin Ġnew Ġconfiguration Ġobjects Ġshould Ġbe Ġdetected Ġand Ġabort Ġthe Ġimport `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= ĠConfiguration ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ__ metadata __ Ġ= ĠConfig Mocks . mock Metadata ( Export Format . JSON ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphysical Sw itches Ġ= ĠlistOf ( Physical Switch (" phys Switch ")) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠService Mocks . mock Conf Service () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġservice . retrieve Object ( Cfg Physical Switch :: class . java , Ġany ()) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ ĠassertThrows ( ValidationException :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImport . import Configuration ( configuration , Ġservice , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` import Configuration Ġshould Ġprint Ġplan Ġand Ġask Ġfor Ġconfirmation Ġbefore Ġapplying `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Import Confirmation ( false , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` import Configuration Ġshould Ġnot Ġimport Ġanything Ġif Ġthe Ġplan Ġis Ġnot Ġaccepted `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Import Confirmation ( false , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` import Configuration Ġshould Ġimport Ġwithout Ġconfirmation Ġin Ġauto - confirm Ġmode `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Import Confirmation ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtest Import Confirmation ( auto Confirm : ĠBoolean , Ġaccept Import : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= ĠConfiguration ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ__ metadata __ Ġ= ĠConfig Mocks . mock Metadata ( Export Format . JSON ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphysical Sw itches Ġ= ĠlistOf ( Physical Switch (" phys Switch ", Ġtype Ġ= ĠCF GF uj its u . to ShortName ())) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠService Mocks . mock Conf Service () ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġservice . retrieve Object ( Cfg Physical Switch :: class . java , Ġany ()) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠ Ġobject Mock k ( Console ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĠConsole . confirm () Ġ} Ġreturns Ġaccept Import ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Mock k ( Import Operation . Companion ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ ĠImport Operation . save ( any ()) Ġ} Ġjust ĠRuns ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠImport . import Configuration ( configuration , Ġservice , Ġauto Confirm ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( result , Ġ` is `( accept Import )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġif Ġ( auto Confirm ) Ġ 0 Ġelse Ġ 1 ) Ġ{ ĠConsole . confirm () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġif Ġ( accept Import ) Ġ 1 Ġelse Ġ 0 ) Ġ{ ĠImport Operation . save ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ