blizzard-community-api 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +15 -0
- data/Gemfile.lock +33 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +40 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/lib/api_enums.rb +65 -0
- data/lib/api_request.rb +133 -0
- data/lib/api_requestor.rb +5 -0
- data/lib/arena_team_request.rb +23 -0
- data/lib/authorized_api_request.rb +62 -0
- data/lib/blizzard-community-api.rb +101 -0
- data/lib/character_classes_request.rb +11 -0
- data/lib/character_profile_request.rb +33 -0
- data/lib/character_races_request.rb +11 -0
- data/lib/configuration.rb +67 -0
- data/lib/current_auctions_request.rb +21 -0
- data/lib/guild_perks_request.rb +11 -0
- data/lib/guild_profile_request.rb +33 -0
- data/lib/guild_rewards_request.rb +11 -0
- data/lib/item_classes_request.rb +11 -0
- data/lib/item_request.rb +21 -0
- data/lib/realm_status_request.rb +28 -0
- data/spec/api_request_spec.rb +99 -0
- data/spec/api_spec.rb +84 -0
- data/spec/arena_team_request_spec.rb +46 -0
- data/spec/authorized_api_request_spec.rb +78 -0
- data/spec/authorized_spec.rb +89 -0
- data/spec/character_classes_request_spec.rb +38 -0
- data/spec/character_profile_request_spec.rb +92 -0
- data/spec/character_races_spec.rb +38 -0
- data/spec/current_auctions_request_spec.rb +41 -0
- data/spec/guild_perks_request_spec.rb +33 -0
- data/spec/guild_profile_request_spec.rb +59 -0
- data/spec/guild_rewards_request_spec.rb +54 -0
- data/spec/item_classes_request_spec.rb +36 -0
- data/spec/item_request_spec.rb +74 -0
- data/spec/realm_status_request_spec.rb +57 -0
- data/spec/rspec_helper.rb +8 -0
- data/spec/rspec_matchers.rb +18 -0
- metadata +92 -0
data/spec/api_spec.rb
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
require "rspec_helper"
|
2
|
+
require "../lib/blizzard-community-api"
|
3
|
+
|
4
|
+
include WOW
|
5
|
+
|
6
|
+
describe API do
|
7
|
+
describe "::get_character_profile" do
|
8
|
+
it "should invoke a CharacterProfileRequest and return a response Hash", :live => true do
|
9
|
+
response = API.get_character_profile("Aven","Draenor")
|
10
|
+
response.should(be_a(Hash))
|
11
|
+
response["name"].should(be == "Aven")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
describe "::get_guild_profile" do
|
15
|
+
it "should invoke a GuildProfileRequest and return a response Hash", :live => true do
|
16
|
+
response = API.get_guild_profile("Little Urban Elites","Draenor")
|
17
|
+
response.should(be_a(Hash))
|
18
|
+
response["name"].should(be == "Little Urban Elites")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
describe "::get_arena_team" do
|
22
|
+
it "should invoke a ArenaTeamRequest and return a response Hash", :live => true do
|
23
|
+
response = API.get_arena_team("Draenor","3v3","Super Squishy")
|
24
|
+
response.should(be_a(Hash))
|
25
|
+
response["name"].should(be == "Super Squishy")
|
26
|
+
end
|
27
|
+
end
|
28
|
+
describe "::get_character_classes" do
|
29
|
+
it "should invoke a CharacterClassesRequest and return a response Hash", :live => true do
|
30
|
+
response = API.get_character_classes()
|
31
|
+
response.should(be_a(Hash))
|
32
|
+
response["classes"].should(be_a(Array))
|
33
|
+
end
|
34
|
+
end
|
35
|
+
describe "::get_character_races" do
|
36
|
+
it "should invoke a CharacterRacesRequest and return a response Hash", :live => true do
|
37
|
+
response = API.get_character_races()
|
38
|
+
response.should(be_a(Hash))
|
39
|
+
response["races"].should(be_a(Array))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
describe "::get_current_auctions" do
|
43
|
+
it "should invoke a CurrentAuctionsRequest and return a response Hash", :live => true do
|
44
|
+
response = API.get_current_auctions("Draenor")
|
45
|
+
response.should(be_a(Hash))
|
46
|
+
response["files"].should(be_a(Array))
|
47
|
+
end
|
48
|
+
end
|
49
|
+
describe "::get_guild_perks" do
|
50
|
+
it "should invoke a GuildPerksRequest and return a response Hash", :live => true do
|
51
|
+
response = API.get_guild_perks()
|
52
|
+
response.should(be_a(Hash))
|
53
|
+
response["perks"].should(be_a(Array))
|
54
|
+
end
|
55
|
+
end
|
56
|
+
describe "::get_guild_rewards" do
|
57
|
+
it "should invoke a GuildRewardsRequest and return a response Hash", :live => true do
|
58
|
+
response = API.get_guild_rewards()
|
59
|
+
response.should(be_a(Hash))
|
60
|
+
response["rewards"].should(be_a(Array))
|
61
|
+
end
|
62
|
+
end
|
63
|
+
describe "::get_item_classes" do
|
64
|
+
it "should invoke a ItemClassesRequest and return a response Hash", :live => true do
|
65
|
+
response = API.get_item_classes()
|
66
|
+
response.should(be_a(Hash))
|
67
|
+
response["classes"].should(be_a(Array))
|
68
|
+
end
|
69
|
+
end
|
70
|
+
describe "::get_item" do
|
71
|
+
it "should invoke a ItemRequest and return a response Hash", :live => true do
|
72
|
+
response = API.get_item(78473)
|
73
|
+
response.should(be_a(Hash))
|
74
|
+
response["id"].should(be == 78473)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
describe "::get_realm_status" do
|
78
|
+
it "should invoke a RealmStatusRequest and return a response Hash", :live => true do
|
79
|
+
response = API.get_realm_status()
|
80
|
+
response.should(be_a(Hash))
|
81
|
+
response["realms"].should(be_a(Array))
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require "rspec_helper"
|
2
|
+
require "../lib/arena_team_request"
|
3
|
+
|
4
|
+
include WOW
|
5
|
+
|
6
|
+
describe ArenaTeamRequest do
|
7
|
+
describe "::new" do
|
8
|
+
it "should create a new ArenaTeamRequest if valid" do
|
9
|
+
request = ArenaTeamRequest.new("Draenor","3v3","Super Squishy")
|
10
|
+
request.should be_instance_of(ArenaTeamRequest)
|
11
|
+
request.realm.should(be == "Draenor")
|
12
|
+
request.team_size.should(be == "3v3")
|
13
|
+
request.team_name.should(be == "Super Squishy")
|
14
|
+
end
|
15
|
+
it "should require a non-empty string for realm, team_size and team_name" do
|
16
|
+
lambda{ArenaTeamRequest.new(nil,"3v3","Super Squishy")}.should raise_error(SyntaxError)
|
17
|
+
lambda{ArenaTeamRequest.new("","3v3","Super Squishy")}.should raise_error(SyntaxError)
|
18
|
+
lambda{ArenaTeamRequest.new(3,"3v3","Super Squishy")}.should raise_error(SyntaxError)
|
19
|
+
lambda{ArenaTeamRequest.new("Draenor",nil,"Super Squishy")}.should raise_error(SyntaxError)
|
20
|
+
lambda{ArenaTeamRequest.new("Draenor","","Super Squishy")}.should raise_error(SyntaxError)
|
21
|
+
lambda{ArenaTeamRequest.new("Draenor",3,"Super Squishy")}.should raise_error(SyntaxError)
|
22
|
+
lambda{ArenaTeamRequest.new("Draenor","3v3",nil)}.should raise_error(SyntaxError)
|
23
|
+
lambda{ArenaTeamRequest.new("Draenor","3v3","")}.should raise_error(SyntaxError)
|
24
|
+
lambda{ArenaTeamRequest.new("Draenor","3v3",3)}.should raise_error(SyntaxError)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
describe "#query" do
|
28
|
+
it "should be empty" do
|
29
|
+
request = ArenaTeamRequest.new("Draenor","3v3","Super Squishy")
|
30
|
+
request.query.should == {}
|
31
|
+
end
|
32
|
+
end
|
33
|
+
describe "#uri" do
|
34
|
+
it "should be created dynamically" do
|
35
|
+
request = ArenaTeamRequest.new("Draenor","3v3","Super Squishy")
|
36
|
+
request.uri.should == URI.parse("http://us.battle.net/api/wow/arena/Draenor/3v3/Super%20Squishy")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
describe "#invoke" do
|
40
|
+
it "should return a valid character record", :live => true do
|
41
|
+
request = ArenaTeamRequest.new("Draenor","3v3","Super Squishy")
|
42
|
+
response = request.invoke
|
43
|
+
response.should(be_a(Hash))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require "rspec_helper"
|
2
|
+
require "../lib/authorized_api_request"
|
3
|
+
|
4
|
+
include WOW
|
5
|
+
|
6
|
+
describe AuthorizedApiRequest do
|
7
|
+
describe "#scheme" do
|
8
|
+
it "should be https" do
|
9
|
+
api_request = ApiRequest.new()
|
10
|
+
authorized_request = AuthorizedApiRequest.new(api_request, "public_key", "private_key")
|
11
|
+
authorized_request.scheme.should == "https"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
describe "#uri" do
|
15
|
+
it "should update scheme to https" do
|
16
|
+
api_request = ApiRequest.new()
|
17
|
+
authorized_request = AuthorizedApiRequest.new(api_request, "public_key", "private_key")
|
18
|
+
authorized_request.uri.should(be == URI.parse("#{authorized_request.scheme}://#{API_HOST_NAMES[authorized_request.locale]}#{API_ROOT_PATH}"))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
describe "#locale" do
|
22
|
+
it "should inherit the value from api_request" do
|
23
|
+
api_request = ApiRequest.new()
|
24
|
+
authorized_request = AuthorizedApiRequest.new(api_request, "public_key", "private_key")
|
25
|
+
authorized_request.locale.should(be(api_request.locale))
|
26
|
+
end
|
27
|
+
end
|
28
|
+
describe "#hostname" do
|
29
|
+
it "should inherit the value from api_request" do
|
30
|
+
api_request = ApiRequest.new()
|
31
|
+
authorized_request = AuthorizedApiRequest.new(api_request, "public_key", "private_key")
|
32
|
+
authorized_request.hostname.should(be(api_request.hostname))
|
33
|
+
end
|
34
|
+
end
|
35
|
+
describe "#path" do
|
36
|
+
it "should inherit the value from api_request" do
|
37
|
+
api_request = ApiRequest.new()
|
38
|
+
authorized_request = AuthorizedApiRequest.new(api_request, "public_key", "private_key")
|
39
|
+
authorized_request.path.should(be(api_request.path))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
describe "#query" do
|
43
|
+
it "should inherit the value from api_request" do
|
44
|
+
api_request = ApiRequest.new()
|
45
|
+
authorized_request = AuthorizedApiRequest.new(api_request, "public_key", "private_key")
|
46
|
+
authorized_request.query.should(be == api_request.query)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
describe "#last_modified" do
|
50
|
+
it "should inherit the value from api_request" do
|
51
|
+
api_request = ApiRequest.new()
|
52
|
+
authorized_request = AuthorizedApiRequest.new(api_request, "public_key", "private_key")
|
53
|
+
authorized_request.last_modified.should(be(api_request.last_modified))
|
54
|
+
end
|
55
|
+
end
|
56
|
+
describe "#headers" do
|
57
|
+
it "should contain default headers" do
|
58
|
+
api_request = ApiRequest.new()
|
59
|
+
authorized_request = AuthorizedApiRequest.new(api_request, "public_key", "private_key")
|
60
|
+
authorized_request.headers["Authorization"].should_not(be_nil)
|
61
|
+
authorized_request.headers["Authorization"][0...16].should(be == "BNET public_key:")
|
62
|
+
authorized_request.headers["Authorization"].length.should(be(45))
|
63
|
+
authorized_request.headers["Date"].should_not(be_nil)
|
64
|
+
DateTime.parse(authorized_request.headers["Date"]).should < DateTime.now
|
65
|
+
authorized_request.headers["If-Modified-Since"].should_not(be_nil)
|
66
|
+
DateTime.parse(authorized_request.headers["If-Modified-Since"]).to_time.should == Time.at(0).utc
|
67
|
+
end
|
68
|
+
end
|
69
|
+
describe "#invoke" do
|
70
|
+
it "should return a valid response", :live => true do
|
71
|
+
require "../lib/character_profile_request"
|
72
|
+
api_request = CharacterProfileRequest.new("Aven","Draenor")
|
73
|
+
authorized_request = AuthorizedApiRequest.new(api_request, "--DONT-CHECK-IN-YOUR-KEYS--", "--DONT-CHECK-IN-YOUR-KEYS--")
|
74
|
+
response = authorized_request.invoke
|
75
|
+
response.should(be_a(Hash))
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require "rspec_helper"
|
2
|
+
require "../lib/blizzard-community-api"
|
3
|
+
|
4
|
+
include WOW
|
5
|
+
|
6
|
+
describe API::Authorized do
|
7
|
+
before(:all) do
|
8
|
+
Configuration.public_key = "--DONT-CHECK-IN-KEYS--"
|
9
|
+
Configuration.private_key = "--DONT-CHECK-IN-KEYS--"
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "::get_character_profile" do
|
13
|
+
it "should invoke a CharacterProfileRequest and return a response Hash", :live => true do
|
14
|
+
response = API::Authorized.get_character_profile("Aven","Draenor")
|
15
|
+
response.should(be_a(Hash))
|
16
|
+
response["name"].should(be == "Aven")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
describe "::get_guild_profile" do
|
20
|
+
it "should invoke a GuildProfileRequest and return a response Hash", :live => true do
|
21
|
+
response = API::Authorized.get_guild_profile("Little Urban Elites","Draenor")
|
22
|
+
response.should(be_a(Hash))
|
23
|
+
response["name"].should(be == "Little Urban Elites")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
describe "::get_arena_team" do
|
27
|
+
it "should invoke a ArenaTeamRequest and return a response Hash", :live => true do
|
28
|
+
response = API.get_arena_team("Draenor","3v3","Super Squishy")
|
29
|
+
response.should(be_a(Hash))
|
30
|
+
response["name"].should(be == "Super Squishy")
|
31
|
+
end
|
32
|
+
end
|
33
|
+
describe "::get_character_classes" do
|
34
|
+
it "should invoke a CharacterClassesRequest and return a response Hash", :live => true do
|
35
|
+
response = API::Authorized.get_character_classes()
|
36
|
+
response.should(be_a(Hash))
|
37
|
+
response["classes"].should(be_a(Array))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
describe "::get_character_races" do
|
41
|
+
it "should invoke a CharacterRacesRequest and return a response Hash", :live => true do
|
42
|
+
response = API::Authorized.get_character_races()
|
43
|
+
response.should(be_a(Hash))
|
44
|
+
response["races"].should(be_a(Array))
|
45
|
+
end
|
46
|
+
end
|
47
|
+
describe "::get_current_auctions" do
|
48
|
+
it "should invoke a CurrentAuctionsRequest and return a response Hash", :live => true do
|
49
|
+
response = API::Authorized.get_current_auctions("Draenor")
|
50
|
+
response.should(be_a(Hash))
|
51
|
+
response["files"].should(be_a(Array))
|
52
|
+
end
|
53
|
+
end
|
54
|
+
describe "::get_guild_perks" do
|
55
|
+
it "should invoke a GuildPerksRequest and return a response Hash", :live => true do
|
56
|
+
response = API::Authorized.get_guild_perks()
|
57
|
+
response.should(be_a(Hash))
|
58
|
+
response["perks"].should(be_a(Array))
|
59
|
+
end
|
60
|
+
end
|
61
|
+
describe "::get_guild_rewards" do
|
62
|
+
it "should invoke a GuildRewardsRequest and return a response Hash", :live => true do
|
63
|
+
response = API::Authorized.get_guild_rewards()
|
64
|
+
response.should(be_a(Hash))
|
65
|
+
response["rewards"].should(be_a(Array))
|
66
|
+
end
|
67
|
+
end
|
68
|
+
describe "::get_item_classes" do
|
69
|
+
it "should invoke a ItemClassesRequest and return a response Hash", :live => true do
|
70
|
+
response = API::Authorized.get_item_classes()
|
71
|
+
response.should(be_a(Hash))
|
72
|
+
response["classes"].should(be_a(Array))
|
73
|
+
end
|
74
|
+
end
|
75
|
+
describe "::get_item" do
|
76
|
+
it "should invoke a ItemRequest and return a response Hash", :live => true do
|
77
|
+
response = API::Authorized.get_item(78473)
|
78
|
+
response.should(be_a(Hash))
|
79
|
+
response["id"].should(be == 78473)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
describe "::get_realm_status" do
|
83
|
+
it "should invoke a RealmStatusRequest and return a response Hash", :live => true do
|
84
|
+
response = API::Authorized.get_realm_status()
|
85
|
+
response.should(be_a(Hash))
|
86
|
+
response["realms"].should(be_a(Array))
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require "rspec_helper"
|
2
|
+
require "../lib/character_classes_request"
|
3
|
+
|
4
|
+
include WOW
|
5
|
+
|
6
|
+
describe CharacterClassesRequest do
|
7
|
+
describe "::new" do
|
8
|
+
it "should create a new CharacterClassesRequest if valid" do
|
9
|
+
request = CharacterClassesRequest.new()
|
10
|
+
request.should be_instance_of(CharacterClassesRequest)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
describe "#query" do
|
14
|
+
it "should be empty" do
|
15
|
+
request = CharacterClassesRequest.new()
|
16
|
+
request.query.should(be == {})
|
17
|
+
end
|
18
|
+
end
|
19
|
+
describe "#uri" do
|
20
|
+
it "should be created dynamically" do
|
21
|
+
request = CharacterClassesRequest.new()
|
22
|
+
request.uri.should == URI.parse("http://us.battle.net/api/wow/data/character/classes")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
describe "#invoke" do
|
26
|
+
it "should return a valid item record", :live => true do
|
27
|
+
request = CharacterClassesRequest.new()
|
28
|
+
response = request.invoke
|
29
|
+
response.should(be_a(Hash))
|
30
|
+
response["classes"].should(be_a(Array))
|
31
|
+
response["classes"][0].should(be_a(Hash))
|
32
|
+
response["classes"][0]["id"].should(be_a(Integer))
|
33
|
+
response["classes"][0]["mask"].should(be_a(Integer))
|
34
|
+
response["classes"][0]["powerType"].should(be_a(String))
|
35
|
+
response["classes"][0]["name"].should(be_a(String))
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
require "rspec_helper"
|
2
|
+
require "../lib/character_profile_request"
|
3
|
+
|
4
|
+
include WOW
|
5
|
+
|
6
|
+
describe CharacterProfileRequest do
|
7
|
+
describe "::new" do
|
8
|
+
it "should create a new CharacterProfileRequest if valid" do
|
9
|
+
request = CharacterProfileRequest.new("Aven","Draenor",:fields => [:stats, :talents])
|
10
|
+
request.should be_instance_of(CharacterProfileRequest)
|
11
|
+
request.name.should == "Aven"
|
12
|
+
request.realm.should == "Draenor"
|
13
|
+
request.fields.should == [:stats, :talents]
|
14
|
+
end
|
15
|
+
it "should require a non-empty string for name and realm" do
|
16
|
+
lambda{CharacterProfileRequest.new("", "realm")}.should raise_error(SyntaxError)
|
17
|
+
lambda{CharacterProfileRequest.new(nil, "realm")}.should raise_error(SyntaxError)
|
18
|
+
lambda{CharacterProfileRequest.new("name", "")}.should raise_error(SyntaxError)
|
19
|
+
lambda{CharacterProfileRequest.new("name", nil)}.should raise_error(SyntaxError)
|
20
|
+
lambda{CharacterProfileRequest.new(5, "")}.should raise_error(SyntaxError)
|
21
|
+
end
|
22
|
+
it "should require an array of fields if fields are supplied" do
|
23
|
+
lambda{CharacterProfileRequest.new("Aven","Draenor",:fields => :stats)}.should raise_error(SyntaxError)
|
24
|
+
lambda{CharacterProfileRequest.new("Aven","Draenor",:fields => { :stats => false, :talents => true })}.should raise_error(SyntaxError)
|
25
|
+
CharacterProfileRequest.new("Aven","Dreanor",:fields => nil).should be_instance_of(CharacterProfileRequest)
|
26
|
+
CharacterProfileRequest.new("Aven","Dreanor").should be_instance_of(CharacterProfileRequest)
|
27
|
+
end
|
28
|
+
it "should return additional information if fields collection contains token", :live => true do
|
29
|
+
request = CharacterProfileRequest.new("Aven","Draenor",:fields => [ :guild, :stats, :talents, :items, :reputation, :titles, :professions, :appearance, :companions, :mounts, :pets, :achievements, :progression, :pvp, :quests ])
|
30
|
+
response = request.invoke
|
31
|
+
response.should(be_a(Hash))
|
32
|
+
response["guild"].should(be_a(Hash))
|
33
|
+
response["stats"].should(be_a(Hash))
|
34
|
+
response["talents"].should(be_a(Array))
|
35
|
+
response["items"].should(be_a(Hash))
|
36
|
+
response["reputation"].should(be_a(Array))
|
37
|
+
response["titles"].should(be_a(Array))
|
38
|
+
response["professions"].should(be_a(Hash))
|
39
|
+
response["appearance"].should(be_a(Hash))
|
40
|
+
response["companions"].should(be_a(Array))
|
41
|
+
response["mounts"].should(be_a(Array))
|
42
|
+
response["pets"].should(be_a(Array))
|
43
|
+
response["achievements"].should(be_a(Hash))
|
44
|
+
response["progression"].should(be_a(Hash))
|
45
|
+
response["pvp"].should(be_a(Hash))
|
46
|
+
response["quests"].should(be_a(Array))
|
47
|
+
end
|
48
|
+
end
|
49
|
+
describe "#query" do
|
50
|
+
it "should be created dynamically" do
|
51
|
+
request = CharacterProfileRequest.new("Aven","Draenor",:fields => [:stats, :talents])
|
52
|
+
request.query.should == {"fields" => [ :stats, :talents ]}
|
53
|
+
end
|
54
|
+
end
|
55
|
+
describe "#uri" do
|
56
|
+
it "should be created dynamically" do
|
57
|
+
request = CharacterProfileRequest.new("Aven","Draenor",:fields => [:stats, :talents])
|
58
|
+
request.uri.should == URI.parse("http://us.battle.net/api/wow/character/Draenor/Aven?fields=stats,talents")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
describe "#invoke" do
|
62
|
+
it "should return a valid character record", :live => true do
|
63
|
+
request = CharacterProfileRequest.new("Aven","Draenor")
|
64
|
+
response = request.invoke
|
65
|
+
response.should(be_a(Hash))
|
66
|
+
response["realm"].should(be_a(String))
|
67
|
+
response["name"].should(be_a(String))
|
68
|
+
response["level"].should(be_a(Integer))
|
69
|
+
response["lastModified"].should(be_a(Numeric))
|
70
|
+
response["thumbnail"].should(be_a(String))
|
71
|
+
response["race"].should(be_a(Integer))
|
72
|
+
response["achievementPoints"].should(be_a(Integer))
|
73
|
+
response["gender"].should(be_a(Integer))
|
74
|
+
response["class"].should(be_a(Integer))
|
75
|
+
response["guild"].should(be_nil)
|
76
|
+
response["stats"].should(be_nil)
|
77
|
+
response["talents"].should(be_nil)
|
78
|
+
response["items"].should(be_nil)
|
79
|
+
response["reputation"].should(be_nil)
|
80
|
+
response["titles"].should(be_nil)
|
81
|
+
response["professions"].should(be_nil)
|
82
|
+
response["appearance"].should(be_nil)
|
83
|
+
response["companions"].should(be_nil)
|
84
|
+
response["mounts"].should(be_nil)
|
85
|
+
response["pets"].should(be_nil)
|
86
|
+
response["achievements"].should(be_nil)
|
87
|
+
response["progression"].should(be_nil)
|
88
|
+
response["pvp"].should(be_nil)
|
89
|
+
response["quests"].should(be_nil)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require "rspec_helper"
|
2
|
+
require "../lib/character_races_request"
|
3
|
+
|
4
|
+
include WOW
|
5
|
+
|
6
|
+
describe CharacterRacesRequest do
|
7
|
+
describe "::new" do
|
8
|
+
it "should create a new CharacterRacesRequest if valid" do
|
9
|
+
request = CharacterRacesRequest.new()
|
10
|
+
request.should be_instance_of(CharacterRacesRequest)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
describe "#query" do
|
14
|
+
it "should be empty" do
|
15
|
+
request = CharacterRacesRequest.new()
|
16
|
+
request.query.should(be == {})
|
17
|
+
end
|
18
|
+
end
|
19
|
+
describe "#uri" do
|
20
|
+
it "should be created dynamically" do
|
21
|
+
request = CharacterRacesRequest.new()
|
22
|
+
request.uri.should == URI.parse("http://us.battle.net/api/wow/data/character/races")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
describe "#invoke" do
|
26
|
+
it "should return a valid item record", :live => true do
|
27
|
+
request = CharacterRacesRequest.new()
|
28
|
+
response = request.invoke
|
29
|
+
response.should(be_a(Hash))
|
30
|
+
response["races"].should(be_a(Array))
|
31
|
+
response["races"][0].should(be_a(Hash))
|
32
|
+
response["races"][0]["id"].should(be_a(Integer))
|
33
|
+
response["races"][0]["mask"].should(be_a(Integer))
|
34
|
+
response["races"][0]["side"].should(be_a(String))
|
35
|
+
response["races"][0]["name"].should(be_a(String))
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|