Sha256: c574fd1b4e380b0639d4c9ddedcc80e3d67cf8292929135ddc6d24746002b2b4

Contents?: true

Size: 1.11 KB

Versions: 17

Compression:

Stored size: 1.11 KB

Contents

require 'multi_json'
require 'engineyard-cloud-client/rest_client_ext'
require 'engineyard-cloud-client/test'
require 'engineyard-cloud-client/test/fake_awsm'

module EY::CloudClient::Test
  class Scenario
    def self.[](name)
      scenarios[name] or raise "Scenario #{name.inspect} not found in:\n\t#{scenarios.keys.join("\n\t")}"
    end

    def self.scenarios
      @scenarios ||= load_scenarios
    end

    def self.load_scenarios
      response = ::RestClient.get(EY::CloudClient::Test::FakeAwsm.uri.sub(/\/?$/,'/scenarios'))
      data = MultiJson.load(response)
      data['scenarios'].inject({}) do |hsh, scenario|
        hsh[scenario['name']] = new(scenario)
        hsh
      end
    end

    attr_reader :email, :password, :api_token

    def initialize(options)
      @name      = options['name']
      @email     = options['email']
      @password  = options['password']
      @api_token = options['api_token']
    end

    def cloud_client
      EY::CloudClient.new(:endpoint => EY::CloudClient::Test::FakeAwsm.uri, :token => @api_token)
    end

    def inspect
      "#<Test::Scenario name:#@name>"
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
engineyard-cloud-client-2.1.1 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-2.1.0 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.16 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-2.0.1 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-2.0.0 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.15 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.14 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.13 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.12 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.11 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.10 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.9 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.8 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.7 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.6 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.5 lib/engineyard-cloud-client/test/scenario.rb
engineyard-cloud-client-1.0.4 lib/engineyard-cloud-client/test/scenario.rb