Add CheckGCPProjectBillingService

This commit is contained in:
Matija Čupić 2017-12-16 01:44:36 +01:00
parent 84d8ca1171
commit 87f01506cb
No known key found for this signature in database
GPG key ID: 4BAF84FFACD2E5DE
2 changed files with 38 additions and 0 deletions

View file

@ -0,0 +1,8 @@
class CheckGCPProjectBillingService
def execute(token)
client = GoogleApi::CloudPlatform::Client.new(token, nil)
client.projects_list.any? do |project|
client.projects_get_billing_info(project.name).billingEnabled
end
end
end

View file

@ -0,0 +1,30 @@
require 'spec_helper'
describe CheckGCPProjectBillingService do
let(:service) { described_class.new }
describe '#execute' do
before do
expect_any_instance_of(GoogleApi::CloudPlatform::Client)
.to receive(:projects_list).and_return([double(name: 'project_name')])
expect_any_instance_of(GoogleApi::CloudPlatform::Client)
.to receive_message_chain(:projects_get_billing_info, :billingEnabled)
.and_return(project_billing_enabled)
end
subject { service.execute('bogustoken') }
context 'google account has a billing enabled gcp project' do
let(:project_billing_enabled) { true }
it { is_expected.to eq(true) }
end
context 'google account does not have a billing enabled gcp project' do
let(:project_billing_enabled) { false }
it { is_expected.to eq(false) }
end
end
end