| 
									
										
										
										
											2015-12-10 17:47:36 +03:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2015-12-15 15:49:23 +03:00
										 |  |  |       @tester_connector.create(id: 'foo', provider: 'ec2') | 
					
						
							|  |  |  |       @tester_connector.create(id: 'bar', provider: 'openstack') | 
					
						
							| 
									
										
										
										
											2015-12-10 17:47:36 +03:00
										 |  |  |     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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-15 15:49:23 +03:00
										 |  |  |   describe '#provider_account', cleanup_after: :all do | 
					
						
							|  |  |  |     before(:all) do | 
					
						
							|  |  |  |       @tester_connector.create(id: 'foo', provider: 'ec2') | 
					
						
							|  |  |  |       @tester_connector.create(id: 'bar', provider: 'openstack') | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it 'returns ec2 provider account' do | 
					
						
							|  |  |  |       acc = @connector.provider_account('ec2', 'foo') | 
					
						
							|  |  |  |       expect(acc).to be_a(Devops::Model::Ec2ProviderAccount) | 
					
						
							|  |  |  |       expect(acc.account_name).to eq 'foo' | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it 'returns openstack provider account' do | 
					
						
							|  |  |  |       acc = @connector.provider_account('openstack', 'bar') | 
					
						
							|  |  |  |       expect(acc).to be_a(Devops::Model::OpenstackProviderAccount) | 
					
						
							|  |  |  |       expect(acc.account_name).to eq 'bar' | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it 'raises error if account is missing' do | 
					
						
							|  |  |  |       expect{@connector.provider_account('ec2', 'missing')}.to raise_error(RecordNotFound) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-10 17:47:36 +03:00
										 |  |  | end |