start writing provider_accounts_connector specs

This commit is contained in:
Anton Chuchkalov 2015-12-10 18:47:36 +04:00
parent 3616162b75
commit 062aebe5f2
6 changed files with 52 additions and 5 deletions

View File

@ -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

View File

@ -1,5 +1,5 @@
module Connectors
class ProviderAccounts < Base
class ProviderAccount < Base
include Helpers::InsertCommand,
Helpers::DeleteCommand

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,6 @@
require_relative 'base'
module TesterConnector
class ProviderAccount < Base
end
end