blob: 543c55322589facd6e2e547df3c3ff5f1832a362 [file] [log] [blame]
require 'rubygems'
require 'require_relative' if RUBY_VERSION < '1.9'
require_relative 'common.rb'
describe 'Profitbricks storage volumes' do
before do
Deltacloud::Drivers::Profitbricks::ProfitbricksDriver.send(:public, *Deltacloud::Drivers::Profitbricks::ProfitbricksDriver.private_instance_methods)
@driver = Deltacloud::new(:profitbricks, credentials)
@storage = ::Profitbricks::Storage.new(:id => '1234a',
:name => 'test',
:provisioning_state => 'INPROCESS',
:size => 20,
:data_center_id => '4321',
:creation_time => Time.now,
:server_ids => ['5678'],
:mount_image => {:id => '5678a'})
@credentials = MiniTest::Mock.new
@credentials.expect(:user, 'test')
@credentials.expect(:password, 'test')
end
describe "finding and creating storage volumnes" do
it "must find all storage volumnes" do
datacenter = MiniTest::Mock.new
datacenter.expect(:storages, [@storage])
::Profitbricks::DataCenter.stub(:all, [datacenter]) do
@driver.backend.storage_volumes(@credentials)
end
end
it "must find a storage by id" do
::Profitbricks::Storage.stub(:find, @storage) do
@driver.backend.storage_volumes(@credentials, :id => '1234a')
end
end
it "must create a storage volume" do
::Profitbricks::Storage.stub(:create, @storage) do
@driver.backend.create_storage_volume(@credentials, :capacity => 10, :name => 'test')
end
end
it "must destroy a storage volume" do
::Profitbricks::Storage.stub(:find, @storage) do
::Profitbricks.stub(:request, true) do
@driver.backend.destroy_storage_volume(@credentials)
end
end
end
it "must attach a storage volume" do
storage = MiniTest::Mock.new
storage.expect(:connect, true, [{:server_id => '567a'}])
::Profitbricks::Storage.stub(:find, storage) do
@driver.backend.attach_storage_volume(@credentials, :id => '1234a', :instance_id => '567a')
end
end
it "must detach a storage volume" do
storage = MiniTest::Mock.new
storage.expect(:disconnect, true, [{:server_id => '567a'}])
::Profitbricks::Storage.stub(:find, storage) do
@driver.backend.detach_storage_volume(@credentials, :id => '1234a', :instance_id => '567a')
end
end
end
end