start writing provider_accounts_connector specs
This commit is contained in:
parent
3616162b75
commit
062aebe5f2
@ -27,14 +27,14 @@ module Devops
|
||||
def add_account provider
|
||||
account = ::Provider::ProviderFactory.get_accounts_factory(provider).create_account(parser.account)
|
||||
account.validate_fields!
|
||||
Devops::Db.connector.provider_accounts_insert(account)
|
||||
Devops::Db.connector.provider_account_insert(account)
|
||||
::Provider::ProviderFactory.add_account(provider, account)
|
||||
account.to_hash
|
||||
end
|
||||
|
||||
def delete_account name, provider
|
||||
account = Devops::Db.connector.provider_account(provider, name)
|
||||
Devops::Db.connector.provider_accounts_delete(name)
|
||||
Devops::Db.connector.provider_account_delete(name)
|
||||
::Provider::ProviderFactory.delete_account(provider, account)
|
||||
account.to_hash
|
||||
end
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
module Connectors
|
||||
class ProviderAccounts < Base
|
||||
class ProviderAccount < Base
|
||||
|
||||
include Helpers::InsertCommand,
|
||||
Helpers::DeleteCommand
|
||||
@ -61,6 +61,12 @@ module Devops
|
||||
}
|
||||
end
|
||||
|
||||
# absent of "id" attribute can cause some inconviniences.
|
||||
# for example, we have "record.id" call in InsertCommand
|
||||
def id
|
||||
account_name
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -33,7 +33,7 @@ class MongoConnector
|
||||
[:keys, :key, :key_insert, :key_delete] => :keys_connector,
|
||||
[:save_report, :report, :reports, :set_report_status, :set_report_server_data, :add_report_subreports] => :reports_connector,
|
||||
[:insert_statistic, :search_statistic] => :statistics_connector,
|
||||
[:provider_accounts, :provider_accounts_insert, :provider_accounts_delete, :provider_account] => :provider_accounts_connector
|
||||
[:provider_accounts, :provider_account_insert, :provider_account_delete, :provider_account] => :provider_accounts_connector
|
||||
)
|
||||
|
||||
def initialize(db, host, port=27017, user=nil, password=nil)
|
||||
@ -48,7 +48,7 @@ class MongoConnector
|
||||
private
|
||||
|
||||
def provider_accounts_connector
|
||||
@provider_accounts_connector ||= Connectors::ProviderAccounts.new(@db)
|
||||
@provider_accounts_connector ||= Connectors::ProviderAccount.new(@db)
|
||||
end
|
||||
|
||||
def images_connector
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
require 'db/mongo/models/provider_accounts/ec2_provider_account'
|
||||
require 'db/mongo/models/provider_accounts/openstack_provider_account'
|
||||
require 'db/mongo/connectors/provider_account'
|
||||
require 'spec/connectors/tester_connector/provider_account'
|
||||
|
||||
RSpec.describe Connectors::ProviderAccount, type: :connector do
|
||||
set_tester_connector TesterConnector::ProviderAccount
|
||||
|
||||
include_examples 'mongo connector', {
|
||||
model_name: :provider_account,
|
||||
factory_name: :ec2_provider_account,
|
||||
only: [:insert, :delete],
|
||||
field_to_update: :description
|
||||
}
|
||||
|
||||
describe '#provider_accounts', cleanup_after: :all do
|
||||
before(:all) do
|
||||
@tester_connector.create(account_name: 'foo', provider: 'ec2')
|
||||
@tester_connector.create(account_name: 'bar', provider: 'openstack')
|
||||
end
|
||||
|
||||
it 'returns array of Ec2ProviderAccount if @provider is ec2' do
|
||||
expect(
|
||||
@connector.provider_accounts('ec2')
|
||||
).to be_an_array_of(Devops::Model::Ec2ProviderAccount).and have_size(1)
|
||||
end
|
||||
|
||||
it 'returns array of Ec2ProviderAccount if @provider is openstack' do
|
||||
expect(
|
||||
@connector.provider_accounts('openstack')
|
||||
).to be_an_array_of(Devops::Model::OpenstackProviderAccount).and have_size(1)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@ -0,0 +1,6 @@
|
||||
require_relative 'base'
|
||||
|
||||
module TesterConnector
|
||||
class ProviderAccount < Base
|
||||
end
|
||||
end
|
||||
Loading…
Reference in New Issue
Block a user