@@ -309,9 +309,8 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
309309
310310 it "will process an array of objects with a server and user" do
311311 extras = "MiqServer%3A%3Amiq_server=12"
312- FactoryBot . create ( :small_environment )
313- attrs = { "MiqServer::miq_server" => "12" , "array::tag" => "Classification::1,Classification::2" }
314- result_str = "array%3A%3Atag=Classification%3A%3A1%2CClassification%3A%3A2"
312+ attrs = { "MiqServer::miq_server" => "12" , "Array::tags" => [ "Classification::1,Classification::2" ] }
313+ result_str = "TagArray%3A%3Atags=Classification%3A%3A1%2CClassification%3A%3A2"
315314 uri = "/System/Process/AUTOMATION?#{ extras } &#{ result_str } &object_name=AUTOMATION"
316315 expect ( MiqAeEngine . create_automation_object ( "AUTOMATION" , attrs ) ) . to eq ( uri )
317316 end
@@ -375,20 +374,22 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
375374 end
376375
377376 it "with an array of Vms" do
378- result_arr = [ ]
379377 hash = { "vms" => Vm . all }
380- result_str = "vms=#{ hash [ "vms" ] . collect { |v | v . id . to_s } . join ( "=" ) } "
381- hash [ "vms" ] . collect { |v | result_arr . push ( v . id . to_s ) }
378+ result_str = "vms=#{ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm::#{ v . id } " } . join ( "=" ) } "
382379 result = MiqAeEngine . create_automation_attributes ( hash )
380+ result_arr = if hash [ "vms" ] . length == 1
381+ "ManageIQ::Providers::Vmware::InfraManager::Vm::#{ hash [ "vms" ] [ 0 ] . id } "
382+ else
383+ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm::#{ v . id } " }
384+ end
383385 expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
384386 expect ( result [ "vms" ] ) . to eq ( result_arr )
385387 end
386388
387389 it "with an array containing a single Vm" do
388- result_arr = [ ]
389390 hash = { "vms" => [ Vm . first ] }
390- result_str = "vms=#{ hash [ "vms" ] . collect { |v | v . id . to_s } . join ( "=" ) } "
391- hash [ "vms" ] . collect { | v | result_arr . push ( v . id . to_s ) }
391+ result_str = "vms=#{ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm:: #{ v . id } " } . join ( "=" ) } "
392+ result_arr = [ "ManageIQ::Providers::Vmware::InfraManager::Vm:: #{ hash [ "vms" ] [ 0 ] . id } " ]
392393 result = MiqAeEngine . create_automation_attributes ( hash )
393394 expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
394395 expect ( result [ "vms" ] ) . to eq ( result_arr )
@@ -408,24 +409,21 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
408409 end
409410
410411 it "with an array of Hosts" do
411- result_arr = [ ]
412412 hash = { "hosts" => Host . all }
413- result_str = "hosts=#{ hash [ "hosts" ] . collect { |h | h . id . to_s } . join ( "=" ) } "
414- hash [ "hosts" ] . collect { |h | result_arr . push ( h . id . to_s ) }
413+ result_str = "hosts=#{ hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " } . join ( "=" ) } "
414+ result_arr = hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " }
415415 result = MiqAeEngine . create_automation_attributes ( hash )
416416 expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
417417 expect ( result [ "hosts" ] ) . to eq ( result_arr )
418418 end
419419
420420 it "with multiple arrays" do
421- vm_result_arr = [ ]
422- host_result_arr = [ ]
423421 hash = { "vms" => Vm . all }
424- vm_result_str = "vms=#{ hash [ "vms" ] . collect { |v | v . id . to_s } . join ( "=" ) } "
425- hash [ "vms" ] . collect { |v | vm_result_arr . push ( v . id . to_s ) }
422+ vm_result_str = "vms=#{ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm:: #{ v . id } " } . join ( "=" ) } "
423+ vm_result_arr = hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm:: #{ v . id } " }
426424 hash [ "hosts" ] = Host . all
427- host_result_str = "hosts=#{ hash [ "hosts" ] . collect { |h | h . id . to_s } . join ( "=" ) } "
428- hash [ "hosts" ] . collect { |h | host_result_arr . push ( h . id . to_s ) }
425+ host_result_str = "hosts=#{ hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " } . join ( "=" ) } "
426+ host_result_arr = hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " }
429427 result = MiqAeEngine . create_automation_attributes ( hash )
430428 expect ( result [ "vms" ] ) . to eq ( vm_result_arr )
431429 expect ( result [ "hosts" ] ) . to eq ( host_result_arr )
@@ -434,6 +432,22 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
434432 expect ( result_str ) . to include ( host_result_str )
435433 end
436434
435+ it "with an array of Tags" do
436+ FactoryBot . create ( :classification )
437+ FactoryBot . create ( :classification )
438+ FactoryBot . create ( :classification )
439+ hash = { "tags" => Classification . all }
440+ result_str = "tags=#{ hash [ "tags" ] . collect { |h | "Classification::#{ h . id } " } . join ( "=" ) } "
441+ result_arr = if hash [ "tags" ] . length == 1
442+ "Classification::#{ hash [ "tags" ] [ 0 ] . id } "
443+ else
444+ hash [ "tags" ] . collect { |h | "Classification::#{ h . id } " }
445+ end
446+ result = MiqAeEngine . create_automation_attributes ( hash )
447+ expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
448+ expect ( result [ "tags" ] ) . to eq ( result_arr )
449+ end
450+
437451 it "with invalid object references" do
438452 hash = { "vms" => [ "bogus::12" ] }
439453 result = MiqAeEngine . create_automation_attributes ( hash )
@@ -789,6 +803,28 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
789803 my_objects_array . each { |o | o . kind_of? ( MiqAeMethodService ::MiqAeServiceModelBase ) }
790804 end
791805
806+ it "processes tags array arguments properly" do
807+ tag1 = FactoryBot . create ( :classification )
808+ tag2 = FactoryBot . create ( :classification )
809+ tag3 = FactoryBot . create ( :classification )
810+
811+ EvmSpecHelper . import_yaml_model ( File . join ( model_data_dir , "miq_ae_engine_spec5" ) , domain )
812+ ws = MiqAeEngine . instantiate ( "/EVM/AUTOMATE/test1?TagArray::my_objects=Classification::#{ tag1 . id } \x1F Classification::#{ tag2 . id } \x1F Classification::#{ tag3 . id } " , user )
813+ my_objects_array = ws . root ( "my_objects" )
814+ expect ( my_objects_array . length ) . to eq ( 3 )
815+ my_objects_array . each { |o | o . kind_of? ( MiqAeMethodService ::MiqAeServiceModelBase ) }
816+ end
817+
818+ it "processes tags array with a single value arguments properly" do
819+ tag1 = FactoryBot . create ( :classification )
820+
821+ EvmSpecHelper . import_yaml_model ( File . join ( model_data_dir , "miq_ae_engine_spec5" ) , domain )
822+ ws = MiqAeEngine . instantiate ( "/EVM/AUTOMATE/test1?TagArray::my_objects=Classification::#{ tag1 . id } " , user )
823+ my_objects_array = ws . root ( "my_objects" )
824+ expect ( my_objects_array . length ) . to eq ( 1 )
825+ my_objects_array . each { |o | o . kind_of? ( MiqAeMethodService ::MiqAeServiceModelBase ) }
826+ end
827+
792828 it "processes an empty array properly" do
793829 EvmSpecHelper . import_yaml_model ( File . join ( model_data_dir , "miq_ae_engine_spec6" ) , domain )
794830 ws = MiqAeEngine . instantiate ( "/EVM/AUTOMATE/test1?Array::my_objects=" , user )
0 commit comments