diff options
Diffstat (limited to 'spec/lib/object_storage')
-rw-r--r-- | spec/lib/object_storage/config_spec.rb | 41 | ||||
-rw-r--r-- | spec/lib/object_storage/direct_upload_spec.rb | 22 |
2 files changed, 54 insertions, 9 deletions
diff --git a/spec/lib/object_storage/config_spec.rb b/spec/lib/object_storage/config_spec.rb index a48b5100065..0ead2a1d269 100644 --- a/spec/lib/object_storage/config_spec.rb +++ b/spec/lib/object_storage/config_spec.rb @@ -2,6 +2,7 @@ require 'fast_spec_helper' require 'rspec-parameterized' +require 'fog/core' RSpec.describe ObjectStorage::Config do using RSpec::Parameterized::TableSyntax @@ -35,6 +36,46 @@ RSpec.describe ObjectStorage::Config do subject { described_class.new(raw_config.as_json) } + describe '#load_provider' do + before do + subject.load_provider + end + + context 'with AWS' do + it 'registers AWS as a provider' do + expect(Fog.providers.keys).to include(:aws) + end + end + + context 'with Google' do + let(:credentials) do + { + provider: 'Google', + google_storage_access_key_id: 'GOOGLE_ACCESS_KEY_ID', + google_storage_secret_access_key: 'GOOGLE_SECRET_ACCESS_KEY' + } + end + + it 'registers Google as a provider' do + expect(Fog.providers.keys).to include(:google) + end + end + + context 'with Azure' do + let(:credentials) do + { + provider: 'AzureRM', + azure_storage_account_name: 'azuretest', + azure_storage_access_key: 'ABCD1234' + } + end + + it 'registers AzureRM as a provider' do + expect(Fog.providers.keys).to include(:azurerm) + end + end + end + describe '#credentials' do it { expect(subject.credentials).to eq(credentials) } end diff --git a/spec/lib/object_storage/direct_upload_spec.rb b/spec/lib/object_storage/direct_upload_spec.rb index b11926aeb49..932d579c3cc 100644 --- a/spec/lib/object_storage/direct_upload_spec.rb +++ b/spec/lib/object_storage/direct_upload_spec.rb @@ -211,7 +211,7 @@ RSpec.describe ObjectStorage::DirectUpload do expect(subject[:UseWorkhorseClient]).to be true expect(subject[:RemoteTempObjectID]).to eq(object_name) expect(subject[:ObjectStorage][:Provider]).to eq('AzureRM') - expect(subject[:ObjectStorage][:GoCloudConfig]).to eq({ URL: "azblob://#{bucket_name}" }) + expect(subject[:ObjectStorage][:GoCloudConfig]).to eq({ URL: gocloud_url }) end end @@ -395,20 +395,24 @@ RSpec.describe ObjectStorage::DirectUpload do } end + let(:has_length) { false } + let(:storage_domain) { nil } let(:storage_url) { 'https://azuretest.blob.core.windows.net' } + let(:gocloud_url) { "azblob://#{bucket_name}" } - context 'when length is known' do - let(:has_length) { true } + it_behaves_like 'a valid AzureRM upload' + it_behaves_like 'a valid upload without multipart data' - it_behaves_like 'a valid AzureRM upload' - it_behaves_like 'a valid upload without multipart data' - end + context 'when a custom storage domain is used' do + let(:storage_domain) { 'blob.core.chinacloudapi.cn' } + let(:storage_url) { "https://azuretest.#{storage_domain}" } + let(:gocloud_url) { "azblob://#{bucket_name}?domain=#{storage_domain}" } - context 'when length is unknown' do - let(:has_length) { false } + before do + credentials[:azure_storage_domain] = storage_domain + end it_behaves_like 'a valid AzureRM upload' - it_behaves_like 'a valid upload without multipart data' end end end |