Sha256: 06560d60743c94960c3f330fe693b4048f015bd7d00fd783a951d6667ca74cfd

Contents?: true

Size: 773 Bytes

Versions: 5

Compression:

Stored size: 773 Bytes

Contents

require 'test_plugin_helper'

describe ProxyLoadBalancer do
  let(:load_balancer) { ProxyLoadBalancer.new }

  before do
    ProxyAPI::ForemanDynflow::DynflowProxy.any_instance.stubs(:tasks_count).returns(0)
  end

  it 'load balances' do
    count = 3
    ProxyAPI::ForemanDynflow::DynflowProxy.any_instance.expects(:tasks_count).raises.then.times(count - 1).returns(0)
    proxies = FactoryGirl.create_list(:smart_proxy, count, :ssh)

    available = proxies.reduce([]) do |found, _|
      found << load_balancer.next(proxies)
    end

    available.count.must_equal count
    available.uniq.count.must_equal count - 1
    load_balancer.offline.count.must_equal 1
  end

  it 'returns nil for if no proxy is available' do
    load_balancer.next([]).must_be_nil
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
foreman_remote_execution-1.1.1 test/unit/proxy_load_balancer_test.rb
foreman_remote_execution-1.1.0 test/unit/proxy_load_balancer_test.rb
foreman_remote_execution-1.0.0 test/unit/proxy_load_balancer_test.rb
foreman_remote_execution-0.3.2 test/unit/proxy_load_balancer_test.rb
foreman_remote_execution-0.3.1 test/unit/proxy_load_balancer_test.rb