Sha256: fdaf95335ca5f1d16462967e1b3dc615c53b11c61b2b68c1be7b639319fadfe3

Contents?: true

Size: 1.91 KB

Versions: 7

Compression:

Stored size: 1.91 KB

Contents

require 'ostruct'

Shindo.tests('Fog::Compute[:vsphere] | get_network request', ['vsphere']) do
  compute = Fog::Compute[:vsphere]

  class DistributedVirtualPortgroup
    attr_accessor :name, :dvs_name, :key

    def initialize(attrs)
      @name = attrs.fetch(:name)
      @dvs_name = attrs.fetch(:dvs_name)
      @key = attrs.fetch(:key)
    end

    def config
      OpenStruct.new(distributedVirtualSwitch: OpenStruct.new(name: dvs_name))
    end
  end

  fake_networks = [OpenStruct.new(name: 'non-dvs'),
                   DistributedVirtualPortgroup.new(name: 'web1', dvs_name: 'dvs5', key: '4001'),
                   DistributedVirtualPortgroup.new(name: 'web1', dvs_name: 'dvs11', key: '4001'),
                   DistributedVirtualPortgroup.new(name: 'other', dvs_name: 'other', key: '4001')]

  tests('#choose_finder should') do
    test('choose the network based on network name and dvs name') do
      finder = compute.send(:choose_finder, 'web1', 'dvs11')
      found_network = fake_networks.find { |n| finder.call(n) }
      found_network.name == 'web1' && found_network.dvs_name == 'dvs11'
    end
    test('choose the network based on network name and any dvs') do
      finder = compute.send(:choose_finder, 'web1', :dvs)
      found_network = fake_networks.find { |n| finder.call(n) }
      found_network.name == 'web1' && found_network.dvs_name == 'dvs5'
    end
    test('choose the network based on network name only') do
      finder = compute.send(:choose_finder, 'other', nil)
      found_network = fake_networks.find { |n| finder.call(n) }
      found_network.name == 'other' && found_network.dvs_name == 'other'
    end
    test('choose the network based on network name only for non-dvs') do
      finder = compute.send(:choose_finder, 'non-dvs', nil)
      found_network = fake_networks.find { |n| finder.call(n) }
      found_network.name == 'non-dvs' && found_network.class.name.to_s == 'OpenStruct'
    end
  end
end

Version data entries

7 entries across 5 versions & 2 rubygems

Version Path
fog-vsphere-2.5.0 tests/requests/compute/get_network_tests.rb
fog-vsphere-2.4.0 tests/requests/compute/get_network_tests.rb
fog-vsphere-2.3.0 tests/requests/compute/get_network_tests.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.3.0/gems/fog-vsphere-2.2.0/tests/requests/compute/get_network_tests.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.4.0/gems/fog-vsphere-2.2.0/tests/requests/compute/get_network_tests.rb
vagrant-packet-0.1.1 vendor/bundle/ruby/2.5.0/gems/fog-vsphere-2.2.0/tests/requests/compute/get_network_tests.rb
fog-vsphere-2.2.0 tests/requests/compute/get_network_tests.rb