Class: OpsManagerUiDrivers::Version15::JobAvailabilityZoneMappingHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/ops_manager_ui_drivers/version15/job_availability_zone_mapping_helper.rb

Constant Summary collapse

SINGLETON_AVAILABILITY_ZONE_INPUT_SELECTOR =
"input[name='product[singleton_availability_zone_reference]']"
AVAILABILITY_ZONE_INPUT_SELECTOR =
"input[name='product[availability_zone_references][]']"

Instance Method Summary collapse

Constructor Details

#initialize(product_name:, browser:) ⇒ JobAvailabilityZoneMappingHelper

Returns a new instance of JobAvailabilityZoneMappingHelper.



4
5
6
7
# File 'lib/ops_manager_ui_drivers/version15/job_availability_zone_mapping_helper.rb', line 4

def initialize(product_name:, browser:)
  @product_name = product_name
  @browser      = browser
end

Instance Method Details

#assign_availability_zones!(singleton_availability_zone:, availability_zones:) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/ops_manager_ui_drivers/version15/job_availability_zone_mapping_helper.rb', line 12

def assign_availability_zones!(singleton_availability_zone:, availability_zones:)
  open_form

  browser.all(AVAILABILITY_ZONE_INPUT_SELECTOR).each do |checkbox|
    checkbox.set(false)
  end

  availability_zones.each do |az_name|
    browser.check("#{az_name}")
  end

  browser.choose("#{singleton_availability_zone}")

  save_form
end

#availability_zonesObject



39
40
41
42
43
44
45
# File 'lib/ops_manager_ui_drivers/version15/job_availability_zone_mapping_helper.rb', line 39

def availability_zones
  open_form

  browser.all("#{AVAILABILITY_ZONE_INPUT_SELECTOR}[checked='checked']").map do |checkbox|
    browser.find("label[for='#{checkbox[:id]}']").text
  end
end

#singleton_availability_zoneObject

Raises:

  • (ArgumentError)


28
29
30
31
32
33
34
35
36
37
# File 'lib/ops_manager_ui_drivers/version15/job_availability_zone_mapping_helper.rb', line 28

def singleton_availability_zone
  open_form

  selected_options = browser.all("#{SINGLETON_AVAILABILITY_ZONE_INPUT_SELECTOR}[selected='selected']").map do |radio|
    browser.find("label[for='#{radio[:id]}']").text
  end

  raise ArgumentError, 'availability_zone not selected' if selected_options.empty?
  selected_options.first
end