blob: f40052bbddbebe0d4fe12f93cb52c7f33c35b39e [file] [log] [blame]
require 'rubygems'
require 'require_relative' if RUBY_VERSION < '1.9'
require_relative 'common.rb'
describe 'Profitbricks data conversions' do
before do
Deltacloud::Drivers::Profitbricks::ProfitbricksDriver.send(:public, *Deltacloud::Drivers::Profitbricks::ProfitbricksDriver.private_instance_methods)
@driver = Deltacloud::new(:profitbricks, credentials)
@dc = ::Profitbricks::DataCenter.new(:id => '1234a',
:name => 'test',
:region => 'EUROPE')
@lb = ::Profitbricks::LoadBalancer.new(:id => '5678a',
:name => 'test',
:creation_time => Time.now,
:data_center_id => '1234a',
:ip => '127.0.0.1')
@server = ::Profitbricks::Server.new(:id => '1234a',
:data_center_id => 'data-center-id',
:name => 'server',
:virtual_machine_state => 'INPROCESS',
:private_ips => nil,
:public_ips => ['127.0.0.1'],
:provisioning_state => 'AVAILABLE',
:connected_storages => {:id => 'storage'})
@credentials = MiniTest::Mock.new
@credentials.expect(:user, 'test')
@credentials.expect(:password, 'test')
end
it "must find a load balancer" do
::Profitbricks::LoadBalancer.stub(:find, @lb) do
::Profitbricks::DataCenter.stub(:find, @dc) do
@driver.backend.load_balancer(@credentials, :id => '1234a')
end
end
end
it "must find all load balancer" do
datacenter = MiniTest::Mock.new
datacenter.expect(:id, '1234a')
datacenter.expect(:name, 'test')
datacenter.expect(:load_balancers, [@lb])
datacenter.expect(:region, 'EUROPE')
::Profitbricks::DataCenter.stub(:all, [datacenter]) do
@driver.backend.load_balancers(@credentials)
end
end
it "must create a load balancer" do
::Profitbricks::LoadBalancer.stub(:create, @lb) do
@driver.backend.stub(:load_balancer, true) do
@driver.backend.create_load_balancer(@credentials, :name => 'test')
end
end
end
it "must register an instance" do
lb = MiniTest::Mock.new
lb.expect(:register_servers, true, [[@server]])
::Profitbricks::LoadBalancer.stub(:find, lb) do
::Profitbricks::Server.stub(:find, @server) do
@driver.backend.stub(:load_balancer, true) do
@driver.backend.lb_register_instance(@credentials)
end
end
end
end
it "must unregister an instance" do
lb = MiniTest::Mock.new
lb.expect(:deregister_servers, true, [[@server]])
::Profitbricks::LoadBalancer.stub(:find, lb) do
::Profitbricks::Server.stub(:find, @server) do
@driver.backend.stub(:load_balancer, true) do
@driver.backend.lb_unregister_instance(@credentials)
end
end
end
end
it "must be deletable" do
::Profitbricks::LoadBalancer.stub(:find, @lb) do
::Profitbricks.stub(:request, :true) do
@driver.backend.destroy_load_balancer(@credentials, '1234a')
end
end
end
end