blizzard-community-api 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|