blob: 9b304d42f035a264c779db0a6aa47e459f23f55e [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)
@nic = ::Profitbricks::Nic.new(:id => '1234a',
:name => 'test',
:server_id => 'server-id',
:lan_id => 1,
:firewall => {},
:ips => ['127.0.0.1'])
@fwr = ::Profitbricks::FirewallRule.new(:id => '1234a',
:protocol => 'TCP',
:port_range_start => 80,
:port_range_end => 81,
:source_ip => '0.0.0.0')
@fw = ::Profitbricks::Firewall.new(:id => '1234a',
:nic_id => '5678a',
:rules => [@fwr.attributes])
@credentials = MiniTest::Mock.new
@credentials.expect(:user, 'test')
@credentials.expect(:password, 'test')
end
it "must find all firewalls" do
server = MiniTest::Mock.new
server.expect(:nics, [@nic])
@nic.stub(:firewall, @fw) do
::Profitbricks::Server.stub(:all, [server]) do
@driver.backend.firewalls(@credentials)
end
end
end
it "must be deletable" do
::Profitbricks::Firewall.stub(:find, @fw) do
::Profitbricks.stub(:request, true) do
@driver.backend.delete_firewall(@credentials, :id => '!234a')
end
end
end
it "must be able to create firewall rules" do
fw = MiniTest::Mock.new
fw.expect(:add_rules, true, [[@fwr]])
::Profitbricks::FirewallRule.stub(:new, @fwr) do
::Profitbricks::Firewall.stub(:find, fw) do
@driver.backend.create_firewall_rule(@credentials, :addresses => ['127.0.0.1'], :protocol => 'TCP', :port_from => 80, :port_to => 81)
end
end
end
it "must delete a firewall rule" do
fw = MiniTest::Mock.new
fw.expect(:rules, [@fwr])
::Profitbricks::Firewall.stub(:find, fw) do
::Profitbricks.stub(:request, true) do
@driver.backend.delete_firewall_rule(@credentials, :firewall => '4567a', :rule_id => '1234a' )
end
end
end
end