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
|
def add_account provider
|
||||||
account = ::Provider::ProviderFactory.get_accounts_factory(provider).create_account(parser.account)
|
account = ::Provider::ProviderFactory.get_accounts_factory(provider).create_account(parser.account)
|
||||||
account.validate_fields!
|
account.validate_fields!
|
||||||
Devops::Db.connector.provider_accounts_insert(account)
|
Devops::Db.connector.provider_account_insert(account)
|
||||||
::Provider::ProviderFactory.add_account(provider, account)
|
::Provider::ProviderFactory.add_account(provider, account)
|
||||||
account.to_hash
|
account.to_hash
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete_account name, provider
|
def delete_account name, provider
|
||||||
account = Devops::Db.connector.provider_account(provider, name)
|
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)
|
::Provider::ProviderFactory.delete_account(provider, account)
|
||||||
account.to_hash
|
account.to_hash
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
module Connectors
|
module Connectors
|
||||||
class ProviderAccounts < Base
|
class ProviderAccount < Base
|
||||||
|
|
||||||
include Helpers::InsertCommand,
|
include Helpers::InsertCommand,
|
||||||
Helpers::DeleteCommand
|
Helpers::DeleteCommand
|
||||||
@ -61,6 +61,12 @@ module Devops
|
|||||||
}
|
}
|
||||||
end
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -33,7 +33,7 @@ class MongoConnector
|
|||||||
[:keys, :key, :key_insert, :key_delete] => :keys_connector,
|
[:keys, :key, :key_insert, :key_delete] => :keys_connector,
|
||||||
[:save_report, :report, :reports, :set_report_status, :set_report_server_data, :add_report_subreports] => :reports_connector,
|
[:save_report, :report, :reports, :set_report_status, :set_report_server_data, :add_report_subreports] => :reports_connector,
|
||||||
[:insert_statistic, :search_statistic] => :statistics_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)
|
def initialize(db, host, port=27017, user=nil, password=nil)
|
||||||
@ -48,7 +48,7 @@ class MongoConnector
|
|||||||
private
|
private
|
||||||
|
|
||||||
def provider_accounts_connector
|
def provider_accounts_connector
|
||||||
@provider_accounts_connector ||= Connectors::ProviderAccounts.new(@db)
|
@provider_accounts_connector ||= Connectors::ProviderAccount.new(@db)
|
||||||
end
|
end
|
||||||
|
|
||||||
def images_connector
|
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