Skip to content

Commit

Permalink
[rackspace|identity] Correctly populate model from request data.
Browse files Browse the repository at this point in the history
Previously, the model was being incorrectly loaded from request data. As a
result, the username and apiKey properties were always nil. This fixes parsing
and improves the tests to catch this type of bug in the future.
  • Loading branch information
Brad Gignac committed Jan 29, 2013
1 parent ec79849 commit f9c5773
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 7 deletions.
5 changes: 3 additions & 2 deletions lib/fog/rackspace/models/identity/credentials.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,15 @@ def all

def get(id)
requires :user
data = retrieve_credentials.find{ |credential| credential['id'] == id }
data = retrieve_credentials.find { |credential| credential['apiKey'] == id }
data && new(data)
end

private

def retrieve_credentials
data = service.list_credentials(user.identity).body['credentials']
raw_credentials = service.list_credentials(user.identity).body['credentials']
raw_credentials.map { |c| c['RAX-KSKEY:apiKeyCredentials'] }
end
end
end
Expand Down
19 changes: 14 additions & 5 deletions tests/rackspace/models/identity/credentials_tests.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,21 @@
service = Fog::Rackspace::Identity.new
user = service.users.all.first

tests("#all").succeeds do
user.credentials.all
tests('success') do
tests("#all").succeeds do
credentials = user.credentials.all
credentials.all? { |c| c.username && c.apiKey }
end

tests("#get").succeeds do
list_credential = user.credentials.all.first

credential = user.credentials.get(list_credential.identity)
credential.username && credential.apiKey
end
end

tests("#get").succeeds do
credential = user.credentials.all.first
user.credentials.get(credential.identity)
tests("failure").returns(nil) do
user.credentials.get('i am a credential that does not exist')
end
end

0 comments on commit f9c5773

Please sign in to comment.