class Soar::Registry::Staff::Test::Directory::Provider::DynamoDb

Public Class Methods

new(config={}, data_structure={}, data={}) click to toggle source
# File lib/soar/registry/staff/test/directory/provider/dynamo_db.rb, line 14
def initialize(config={}, data_structure={}, data={})
  @config = config
  @identities = data
  @data_structure = data_structure
  @directory = Soar::Registry::Staff::Directory::DynamoDb.new
end

Public Instance Methods

connection_error() click to toggle source
# File lib/soar/registry/staff/test/directory/provider/dynamo_db.rb, line 42
def connection_error
  configuration = @directory.instance_variable_get(:@configuration)
  configuration['endpoint'] = 'missing'
  @directory.instance_variable_set(:@configuration, configuration)
end
create_data_structure() click to toggle source
# File lib/soar/registry/staff/test/directory/provider/dynamo_db.rb, line 21
def create_data_structure
  if not @directory.client.list_tables.table_names.include?(valid_configuration['provider']['config']['table']) 
    @directory.client.create_table(@data_structure)
  end
end
delete_data_structure() click to toggle source
# File lib/soar/registry/staff/test/directory/provider/dynamo_db.rb, line 27
def delete_data_structure
  @directory.client.delete_table({
    table_name: valid_configuration['provider']['config']['table']
  })
end
invalid_configuration(valid_config) click to toggle source
# File lib/soar/registry/staff/test/directory/provider/dynamo_db.rb, line 58
def invalid_configuration(valid_config)
  invalid_config = []
  ['table', 'region', 'endpoint'].each { |index| 
    config = deep_copy(valid_config)
    config['provider']['config'].delete(index)
    invalid_config << config
  }
  return invalid_config
end
load_sample_data() click to toggle source
# File lib/soar/registry/staff/test/directory/provider/dynamo_db.rb, line 33
def load_sample_data
  @identities.each { |identity| 
    @directory.client.put_item({
      table_name: valid_configuration['provider']['config']['table'],
      item: Hashie.symbolize_keys(deep_copy(identity))
    })
  }
end
networking_error() click to toggle source
# File lib/soar/registry/staff/test/directory/provider/dynamo_db.rb, line 48
def networking_error
  configuration = @directory.instance_variable_get(:@configuration)
  configuration['endpoint'] = 'http://missing'
  @directory.instance_variable_set(:@configuration, configuration)
end
valid_configuration?(config) click to toggle source
# File lib/soar/registry/staff/test/directory/provider/dynamo_db.rb, line 54
def valid_configuration?(config)
  @directory.configuration['region'] == config['provider']['config']['region'] and @directory.configuration['endpoint'] == config['provider']['config']['endpoint']
end
valid_credentials?(credentials) click to toggle source
# File lib/soar/registry/staff/test/directory/provider/dynamo_db.rb, line 68
def valid_credentials?(credentials)
  @directory.credentials['access_key_id'] == credentials['username'] and @directory.credentials['secret_access_key'] == credentials['password']
end