@@ -289,10 +289,11 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
289289 end
290290
291291 it "will process an array of objects" do
292+ FactoryBot . create ( :host )
292293 FactoryBot . create ( :host )
293294 hash = { "hosts" => Host . all }
294295 attrs = { "Array::my_hosts" => hash [ "hosts" ] . collect { |h | "Host::#{ h . id } " } }
295- result_str = "Array%3A%3Amy_hosts=" + hash [ "hosts" ] . collect { |h | "Host%3A%3A#{ h . id } " } . join ( "," )
296+ result_str = "Array%3A%3Amy_hosts=" + hash [ "hosts" ] . collect { |h | "Host%3A%3A#{ h . id } " } . join ( "%1F" ) # After URL encoding the separator "\x1F" is converted to %1F
296297 extras = "MiqServer%3A%3Amiq_server=#{ miq_server_id } "
297298 uri = "/System/Process/AUTOMATION?#{ result_str } &#{ extras } &object_name=AUTOMATION"
298299 expect ( MiqAeEngine . create_automation_object ( "AUTOMATION" , attrs ) ) . to eq ( uri )
@@ -374,26 +375,28 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
374375 end
375376
376377 it "with an array of Vms" do
377- hash = { "vms" => Vm . all }
378- result_str = "Array::vms=#{ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm::#{ v . id } " } . join ( "\x1F " ) } "
379- result_arr = hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm::#{ v . id } " } . join ( "\x1F " )
380- result = MiqAeEngine . create_automation_attributes ( hash )
378+ result_arr = [ ]
379+ 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 ) }
382+ result = MiqAeEngine . create_automation_attributes ( hash )
381383 expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
382- expect ( result [ "Array:: vms" ] ) . to eq ( result_arr )
384+ expect ( result [ "vms" ] ) . to eq ( result_arr )
383385 end
384386
385387 it "with an array containing a single Vm" do
386- hash = { "vms" => [ Vm . first ] }
387- result_str = "Array::vms=#{ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm::#{ v . id } " } . join ( "\x1F " ) } "
388- result_arr = hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm::#{ v . id } " } . join ( "\x1F " )
389- result = MiqAeEngine . create_automation_attributes ( hash )
388+ result_arr = [ ]
389+ 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 ) }
392+ result = MiqAeEngine . create_automation_attributes ( hash )
390393 expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
391- expect ( result [ "Array:: vms" ] ) . to eq ( result_arr )
394+ expect ( result [ "vms" ] ) . to eq ( result_arr )
392395 end
393396
394397 it "with an empty array" do
395398 result = MiqAeEngine . create_automation_attributes ( "vms" => [ ] )
396- expect ( result [ "Array:: vms" ] ) . to eq ( "" )
399+ expect ( result [ "vms" ] ) . to eq ( [ ] )
397400 end
398401
399402 it "with a hash containing a single Vm" do
@@ -405,24 +408,27 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
405408 end
406409
407410 it "with an array of Hosts" do
411+ result_arr = [ ]
408412 hash = { "hosts" => Host . all }
409- result_str = "Array:: hosts=#{ hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " } . join ( "\x1F " ) } "
410- result_arr = hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " } . join ( " \x1F " )
411- result = MiqAeEngine . create_automation_attributes ( hash )
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 ) }
415+ result = MiqAeEngine . create_automation_attributes ( hash )
412416 expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( result_str )
413- expect ( result [ "Array:: hosts" ] ) . to eq ( result_arr )
417+ expect ( result [ "hosts" ] ) . to eq ( result_arr )
414418 end
415419
416420 it "with multiple arrays" do
421+ vm_result_arr = [ ]
422+ host_result_arr = [ ]
417423 hash = { "vms" => Vm . all }
418- vm_result_str = "Array:: vms=#{ hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm:: #{ v . id } " } . join ( "\x1F " ) } "
419- vm_result_arr = hash [ "vms" ] . collect { |v | "ManageIQ::Providers::Vmware::InfraManager::Vm:: #{ v . id } " } . join ( " \x1F " )
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 ) }
420426 hash [ "hosts" ] = Host . all
421- host_result_str = "Array:: hosts=#{ hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " } . join ( "\x1F " ) } "
422- host_result_arr = hash [ "hosts" ] . collect { |h | "Host:: #{ h . id } " } . join ( " \x1F " )
423- result = MiqAeEngine . create_automation_attributes ( hash )
424- expect ( result [ "Array:: vms" ] ) . to eq ( vm_result_arr )
425- expect ( result [ "Array:: hosts" ] ) . to eq ( host_result_arr )
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 ) }
429+ result = MiqAeEngine . create_automation_attributes ( hash )
430+ expect ( result [ "vms" ] ) . to eq ( vm_result_arr )
431+ expect ( result [ "hosts" ] ) . to eq ( host_result_arr )
426432 result_str = MiqAeEngine . create_automation_attributes_string ( hash )
427433 expect ( result_str ) . to include ( vm_result_str )
428434 expect ( result_str ) . to include ( host_result_str )
@@ -431,16 +437,16 @@ def call_automate(obj_type, obj_id, open_url_task_id = nil)
431437 it "with invalid object references" do
432438 hash = { "vms" => [ "bogus::12" ] }
433439 result = MiqAeEngine . create_automation_attributes ( hash )
434- expect ( result [ "Array:: vms" ] ) . to eq ( "bogus::12" )
435- expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( "Array:: vms=bogus::12" )
440+ expect ( result [ "vms" ] ) . to eq ( [ "bogus::12" ] )
441+ expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( "vms=bogus::12" )
436442 end
437443
438444 it "with garbage values" do
439445 hash = { "vms" => [ "bogus::12,garbage::moreso,notevenclose" ] }
440- bogus_arr = "bogus::12,garbage::moreso,notevenclose"
446+ bogus_arr = [ "bogus::12,garbage::moreso,notevenclose" ]
441447 result = MiqAeEngine . create_automation_attributes ( hash )
442- expect ( result [ "Array:: vms" ] ) . to eq ( bogus_arr )
443- expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( "Array:: vms=bogus::12,garbage::moreso,notevenclose" )
448+ expect ( result [ "vms" ] ) . to eq ( bogus_arr )
449+ expect ( MiqAeEngine . create_automation_attributes_string ( hash ) ) . to eq ( "vms=bogus::12,garbage::moreso,notevenclose" )
444450 end
445451
446452 it "with a string value" do
0 commit comments