starcraft2 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fixtures/cassettes/ladders_999000.yml +1053 -0
- data/lib/starcraft2/character.rb +7 -1
- data/lib/starcraft2/client.rb +33 -19
- data/lib/starcraft2/loader.rb +4 -0
- data/lib/starcraft2/profile.rb +5 -1
- data/lib/starcraft2/profile/achievement_item.rb +3 -3
- data/lib/starcraft2/profile/achievements.rb +2 -2
- data/lib/starcraft2/profile/campaign.rb +2 -2
- data/lib/starcraft2/profile/career.rb +2 -2
- data/lib/starcraft2/profile/detailed_season.rb +17 -0
- data/lib/starcraft2/profile/ladder.rb +17 -0
- data/lib/starcraft2/profile/ladders.rb +11 -0
- data/lib/starcraft2/profile/match.rb +1 -1
- data/lib/starcraft2/profile/non_rank.rb +18 -0
- data/lib/starcraft2/profile/points.rb +1 -1
- data/lib/starcraft2/profile/season.rb +1 -1
- data/lib/starcraft2/profile/stats.rb +2 -2
- data/spec/starcraft2/achievement_spec.rb +42 -45
- data/spec/starcraft2/character_spec.rb +37 -19
- data/spec/starcraft2/client_spec.rb +2 -4
- data/spec/starcraft2/icon_spec.rb +7 -22
- data/spec/starcraft2/member_spec.rb +24 -54
- data/spec/starcraft2/profile/achievement_item_spec.rb +48 -0
- data/spec/starcraft2/profile/achievements_spec.rb +36 -27
- data/spec/starcraft2/profile/campaign_spec.rb +8 -7
- data/spec/starcraft2/profile/career_spec.rb +30 -47
- data/spec/starcraft2/profile/detailed_season_spec.rb +98 -0
- data/spec/starcraft2/profile/ladder_spec.rb +63 -0
- data/spec/starcraft2/profile/ladders_spec.rb +197 -0
- data/spec/starcraft2/profile/match_spec.rb +41 -22
- data/spec/starcraft2/profile/non_rank_spec.rb +48 -0
- data/spec/starcraft2/profile/points_spec.rb +22 -0
- data/spec/starcraft2/profile/rewards_spec.rb +17 -11
- data/spec/starcraft2/profile/season_spec.rb +33 -23
- data/spec/starcraft2/profile/stats_spec.rb +49 -0
- data/spec/starcraft2/profile/swarm_levels_spec.rb +29 -16
- data/spec/starcraft2/profile/swarm_race_spec.rb +25 -0
- data/spec/starcraft2/profile_spec.rb +80 -73
- data/spec/starcraft2/reward_spec.rb +22 -31
- data/spec/starcraft2/utils_spec.rb +30 -0
- data/starcraft2.gemspec +1 -1
- metadata +15 -2
@@ -1,31 +1,41 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Starcraft2::Profile::Season do
|
4
|
-
|
4
|
+
describe '.initialize' do
|
5
|
+
let(:season) { Starcraft2::Profile::Season.new(@options) }
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
before do
|
8
|
+
@options = {
|
9
|
+
'seasonId' => 11,
|
10
|
+
'totalGamesThisSeason' => 252,
|
11
|
+
'stats' => [{'type' => '1v1', 'wins' => 129, 'games' => 102}, {'type' => '2v2', 'wins' => 21, 'games' => 9}]
|
12
|
+
}
|
13
|
+
end
|
9
14
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
15
|
+
it 'should store attributes as underscored' do
|
16
|
+
season.season_id.should == 11
|
17
|
+
season.total_games_this_season.should == 252
|
14
18
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
+
season.stats.class.should == Array
|
20
|
+
season.stats.each do |s|
|
21
|
+
s.class.should == Starcraft2::Profile::Stats
|
22
|
+
end
|
23
|
+
|
24
|
+
s1 = season.stats.first
|
25
|
+
s1.type.should == '1v1'
|
26
|
+
s1.wins.should == 129
|
27
|
+
s1.games.should == 102
|
28
|
+
|
29
|
+
s2 = season.stats.last
|
30
|
+
s2.type.should == '2v2'
|
31
|
+
s2.wins.should == 21
|
32
|
+
s2.games.should == 9
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should use Stracraft2::Utils.load to populate the model' do
|
36
|
+
Starcraft2::Utils.should_receive(:load).with(anything, @options, {}, {:stats => Starcraft2::Profile::Stats})
|
19
37
|
|
20
|
-
|
21
|
-
|
22
|
-
season.stats.class.should == Array
|
23
|
-
season.stats.first.class.should == Starcraft2::Profile::Stats
|
24
|
-
season.stats.first.type.should == '1v1'
|
25
|
-
season.stats.first.wins.should == 129
|
26
|
-
season.stats.first.games.should == 102
|
27
|
-
season.stats.last.type.should == '2v2'
|
28
|
-
season.stats.last.wins.should == 21
|
29
|
-
season.stats.last.games.should == 9
|
38
|
+
season
|
39
|
+
end
|
30
40
|
end
|
31
|
-
end
|
41
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Starcraft2::Profile::Stats do
|
4
|
+
describe '.initialize' do
|
5
|
+
let(:stats) { Starcraft2::Profile::Stats.new(@options) }
|
6
|
+
|
7
|
+
before do
|
8
|
+
@options = {'type' => 'foo', 'wins' => 5, 'games' => 40}
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should store attributes as underscored' do
|
12
|
+
stats.type.should == 'foo'
|
13
|
+
stats.wins.should == 5
|
14
|
+
stats.games.should == 40
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should use Stracraft2::Utils.load to populate the model' do
|
18
|
+
Starcraft2::Utils.should_receive(:load).with(anything, @options)
|
19
|
+
|
20
|
+
stats
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#build' do
|
25
|
+
let(:stats_array) { Starcraft2::Profile::Stats.build(@items) }
|
26
|
+
|
27
|
+
before do
|
28
|
+
@items = [
|
29
|
+
{'type' => 'foo'},
|
30
|
+
{'type' => 'bar'}
|
31
|
+
]
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should build multiple stats objects' do
|
35
|
+
stats_array.class.should == Array
|
36
|
+
stats_array.each do |s|
|
37
|
+
s.class.should == Starcraft2::Profile::Stats
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should build items using new' do
|
42
|
+
@items.each do |i|
|
43
|
+
Starcraft2::Profile::Stats.should_receive(:new).with(i)
|
44
|
+
end
|
45
|
+
|
46
|
+
stats_array
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -1,40 +1,53 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Starcraft2::Profile::SwarmLevels do
|
4
|
-
|
4
|
+
describe '.initialize' do
|
5
|
+
let(:swarm_levels) { Starcraft2::Profile::SwarmLevels.new(@options) }
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
before do
|
8
|
+
@options = {
|
9
|
+
'level' => 10,
|
10
|
+
'terran' => {
|
11
|
+
'level' => 9,
|
12
|
+
'totalLevelXP' => 150000,
|
13
|
+
'currentLevelXP' => 8826
|
14
|
+
},
|
15
|
+
'zerg' => {
|
16
|
+
'level' => 9,
|
17
|
+
'totalLevelXP' => 150000,
|
18
|
+
'currentLevelXP' => 8826
|
19
|
+
},
|
20
|
+
'protoss' => {
|
21
|
+
'level' => 9,
|
22
|
+
'totalLevelXP' => 150000,
|
23
|
+
'current_level_XP' => 8826
|
24
|
+
}
|
25
|
+
}
|
26
|
+
end
|
9
27
|
|
10
|
-
|
11
|
-
it 'should store the level' do
|
12
|
-
@options = {:level => 10}
|
28
|
+
it 'should store attributes as underscored' do
|
13
29
|
swarm_levels.level.should == 10
|
14
|
-
end
|
15
30
|
|
16
|
-
it 'should store terran info' do
|
17
|
-
@options = {:terran => {:level => 9, :total_level_XP => 150000, :current_level_XP => 8826}}
|
18
31
|
swarm_levels.terran.class.should == Starcraft2::Profile::SwarmRace
|
19
32
|
swarm_levels.terran.level.should == 9
|
20
33
|
swarm_levels.terran.total_level_xp.should == 150000
|
21
34
|
swarm_levels.terran.current_level_xp.should == 8826
|
22
|
-
end
|
23
35
|
|
24
|
-
it 'should store zerg info' do
|
25
|
-
@options = {:zerg => {:level => 9, :total_level_XP => 150000, :current_level_XP => 8826}}
|
26
36
|
swarm_levels.zerg.class.should == Starcraft2::Profile::SwarmRace
|
27
37
|
swarm_levels.zerg.level.should == 9
|
28
38
|
swarm_levels.zerg.total_level_xp.should == 150000
|
29
39
|
swarm_levels.zerg.current_level_xp.should == 8826
|
30
|
-
end
|
31
40
|
|
32
|
-
it 'should store protoss info' do
|
33
|
-
@options = {:protoss => {:level => 9, :total_level_XP => 150000, :current_level_XP => 8826}}
|
34
41
|
swarm_levels.protoss.class.should == Starcraft2::Profile::SwarmRace
|
35
42
|
swarm_levels.protoss.level.should == 9
|
36
43
|
swarm_levels.protoss.total_level_xp.should == 150000
|
37
44
|
swarm_levels.protoss.current_level_xp.should == 8826
|
38
45
|
end
|
46
|
+
|
47
|
+
it 'should use Stracraft2::Utils.load to populate the model' do
|
48
|
+
Starcraft2::Utils.should_receive(:load).with(anything, @options, {:terran => Starcraft2::Profile::SwarmRace, :zerg => Starcraft2::Profile::SwarmRace, :protoss => Starcraft2::Profile::SwarmRace})
|
49
|
+
|
50
|
+
swarm_levels
|
51
|
+
end
|
39
52
|
end
|
40
53
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Starcraft2::Profile::SwarmRace do
|
4
|
+
describe '.initialize' do
|
5
|
+
let(:swarm_race) { Starcraft2::Profile::SwarmRace.new(@options) }
|
6
|
+
|
7
|
+
before do
|
8
|
+
@options = {
|
9
|
+
'level' => 5, 'totalLevelXP' => 5000, 'currentLevelXP' => 2
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should store attributes as underscored' do
|
14
|
+
swarm_race.level.should == 5
|
15
|
+
swarm_race.total_level_xp.should == 5000
|
16
|
+
swarm_race.current_level_xp.should == 2
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should use Stracraft2::Utils.load to populate the model' do
|
20
|
+
Starcraft2::Utils.should_receive(:load).with(anything, @options)
|
21
|
+
|
22
|
+
swarm_race
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -23,33 +23,21 @@ describe Starcraft2::Profile do
|
|
23
23
|
@options = {}
|
24
24
|
end
|
25
25
|
|
26
|
-
it 'should store the
|
27
|
-
@options = {
|
28
|
-
|
29
|
-
|
26
|
+
it 'should store the attributes as underscored' do
|
27
|
+
@options = {
|
28
|
+
'id' => 12345,
|
29
|
+
'realm' => 1,
|
30
|
+
'displayName' => 'steve',
|
31
|
+
'clanName' => 'clan',
|
32
|
+
'clanTag' => 'tag',
|
33
|
+
'profilePath' => '/profile/example'
|
34
|
+
}
|
30
35
|
|
31
|
-
|
32
|
-
@options = {:realm => 1}
|
36
|
+
profile.id.should == 12345
|
33
37
|
profile.realm.should == 1
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'should store the display_name' do
|
37
|
-
@options = {:display_name => 'steve'}
|
38
38
|
profile.display_name.should == 'steve'
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'should store the clan_name' do
|
42
|
-
@options = {:clan_name => 'clan'}
|
43
39
|
profile.clan_name.should == 'clan'
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'should store the clan_tag' do
|
47
|
-
@options = {:clan_tag => 'tag'}
|
48
40
|
profile.clan_tag.should == 'tag'
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'should store the profile_path' do
|
52
|
-
@options = {:profile_path => '/profile/example'}
|
53
41
|
profile.profile_path.should == '/profile/example'
|
54
42
|
end
|
55
43
|
|
@@ -63,18 +51,18 @@ describe Starcraft2::Profile do
|
|
63
51
|
profile.portrait.url.should == 'https://example.com'
|
64
52
|
end
|
65
53
|
|
66
|
-
it 'should store the career' do
|
54
|
+
it 'should store the career attributes as underscored' do
|
67
55
|
@options = {
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
56
|
+
'career' => {
|
57
|
+
'primaryRace' => 'TERRAN',
|
58
|
+
'league' => 'KAPPA',
|
59
|
+
'terranWins' => 1,
|
60
|
+
'protossWins' => 268,
|
61
|
+
'zergWins' => 7,
|
62
|
+
'highest1v1Rank' => 'MASTER',
|
63
|
+
'highestTeamRank' => 'MASTER',
|
64
|
+
'seasonTotalGames' => 399,
|
65
|
+
'careerTotalGames' => 1531
|
78
66
|
}
|
79
67
|
}
|
80
68
|
profile.career.primary_race.should == 'TERRAN'
|
@@ -88,24 +76,24 @@ describe Starcraft2::Profile do
|
|
88
76
|
profile.career.career_total_games.should == 1531
|
89
77
|
end
|
90
78
|
|
91
|
-
it 'should store the swarm_levels' do
|
79
|
+
it 'should store the swarm_levels as underscored' do
|
92
80
|
@options = {
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
81
|
+
'swarmLevels' => {
|
82
|
+
'level' => 45,
|
83
|
+
'terran' => {
|
84
|
+
'level' => 9,
|
85
|
+
'totalLevelXP' => 150000,
|
86
|
+
'currentLevelXP' => 8826
|
99
87
|
},
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
88
|
+
'zerg' => {
|
89
|
+
'level' => 6,
|
90
|
+
'totalLevelXP' => 150000,
|
91
|
+
'currentLevelXP' => 1231
|
104
92
|
},
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
93
|
+
'protoss' => {
|
94
|
+
'level' => 30,
|
95
|
+
'totalLevelXP' => 150000,
|
96
|
+
'currentLevelXP' => 8826
|
109
97
|
}
|
110
98
|
}
|
111
99
|
}
|
@@ -133,35 +121,39 @@ describe Starcraft2::Profile do
|
|
133
121
|
end
|
134
122
|
|
135
123
|
it 'should store the campaign' do
|
136
|
-
@options = {:campaign => {
|
124
|
+
@options = {:campaign => {'wol' => 'BRUTAL', 'hots' => 'BRUTAL'}}
|
137
125
|
profile.campaign.wol.should == 'BRUTAL'
|
138
126
|
profile.campaign.hots.should == 'BRUTAL'
|
139
127
|
end
|
140
128
|
|
141
|
-
it 'should store the season' do
|
129
|
+
it 'should store the season as underscored' do
|
142
130
|
@options = {
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
131
|
+
'season' => {
|
132
|
+
'seasonId' => 14,
|
133
|
+
'totalGamesThisSeason' => 399,
|
134
|
+
'stats' => [
|
147
135
|
{
|
148
|
-
|
149
|
-
|
150
|
-
|
136
|
+
'type' => '1v1',
|
137
|
+
'wins' => 254,
|
138
|
+
'games' => 357
|
151
139
|
}, {
|
152
|
-
|
153
|
-
|
154
|
-
|
140
|
+
'type' => '2v2',
|
141
|
+
'wins' => 27,
|
142
|
+
'games' => 39
|
155
143
|
}
|
156
144
|
]
|
157
145
|
}}
|
146
|
+
profile.season.class.should == Starcraft2::Profile::Season
|
147
|
+
profile.season.season_id.should == 14
|
148
|
+
profile.season.stats.class.should == Array
|
149
|
+
profile.season.stats.first.class.should == Starcraft2::Profile::Stats
|
158
150
|
end
|
159
151
|
|
160
152
|
it 'should store the rewards' do
|
161
153
|
@options = {
|
162
|
-
|
163
|
-
|
164
|
-
|
154
|
+
'rewards' => {
|
155
|
+
'selected' => [18730036, 2009110693, 2359737029, 4189275055],
|
156
|
+
'earned' => [144654643, 171155159, 199895074, 234481452, 367294557, 531423509, 533048170, 637508413]
|
165
157
|
}
|
166
158
|
}
|
167
159
|
profile.rewards.selected.should == [18730036, 2009110693, 2359737029, 4189275055]
|
@@ -170,10 +162,10 @@ describe Starcraft2::Profile do
|
|
170
162
|
|
171
163
|
it 'should store the achievements' do
|
172
164
|
@options = {
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
165
|
+
'achievements' => {
|
166
|
+
'points' => {
|
167
|
+
'totalPoints' => 3375,
|
168
|
+
'categoryPoints' => {
|
177
169
|
'4325382' => 0,
|
178
170
|
'4325380' => 390,
|
179
171
|
'4325408' => 90,
|
@@ -182,17 +174,21 @@ describe Starcraft2::Profile do
|
|
182
174
|
'4325377' => 600
|
183
175
|
}
|
184
176
|
},
|
185
|
-
|
177
|
+
'achievements' => [
|
186
178
|
{
|
187
|
-
|
188
|
-
|
179
|
+
'achievementId' => 91475320766493,
|
180
|
+
'completionDate' => 1375779974
|
189
181
|
}, {
|
190
|
-
|
191
|
-
|
182
|
+
'achievementId' => 91475035553809,
|
183
|
+
'completionDate' => 1371117026
|
192
184
|
}
|
193
185
|
]
|
194
186
|
}
|
195
187
|
}
|
188
|
+
profile.achievements.class.should == Starcraft2::Profile::Achievements
|
189
|
+
profile.achievements.points.class.should == Starcraft2::Profile::Points
|
190
|
+
profile.achievements.achievements.class.should == Array
|
191
|
+
profile.achievements.achievements.first.class.should == Starcraft2::Profile::AchievementItem
|
196
192
|
end
|
197
193
|
end
|
198
194
|
|
@@ -200,7 +196,7 @@ describe Starcraft2::Profile do
|
|
200
196
|
let(:client) { Starcraft2::Client.new() }
|
201
197
|
|
202
198
|
it 'should return a list of matches' do
|
203
|
-
VCR.use_cassette(
|
199
|
+
VCR.use_cassette('matches_999000') do
|
204
200
|
matches = client.profile(:character_name => 'DayNine', :id => 999000, :realm => 1).matches
|
205
201
|
matches.class.should == Array
|
206
202
|
matches.first.class.should == Starcraft2::Profile::Match
|
@@ -212,4 +208,15 @@ describe Starcraft2::Profile do
|
|
212
208
|
end
|
213
209
|
end
|
214
210
|
end
|
211
|
+
|
212
|
+
describe '.ladders' do
|
213
|
+
it 'should return a profiles ladder information' do
|
214
|
+
VCR.use_cassette('ladders_999000') do
|
215
|
+
ladders = client.profile(:character_name => 'DayNine', :id => 999000, :realm => 1).ladders
|
216
|
+
ladders.class.should == Starcraft2::Profile::Ladders
|
217
|
+
ladders.current_season.first.class.should == Starcraft2::Profile::DetailedSeason
|
218
|
+
ladders.current_season.first.ladder.first.ladder_name.should == 'Shuttle Tango'
|
219
|
+
end
|
220
|
+
end
|
221
|
+
end
|
215
222
|
end
|
@@ -16,53 +16,44 @@ describe Starcraft2::Reward do
|
|
16
16
|
r.class.should == Starcraft2::Reward
|
17
17
|
end
|
18
18
|
end
|
19
|
+
|
20
|
+
it 'should import the first reward' do
|
21
|
+
reward = rewards.first
|
22
|
+
|
23
|
+
reward.title.should == 'Kachinsky'
|
24
|
+
reward.id.should == 2951153716
|
25
|
+
reward.icon.x.should == 0
|
26
|
+
reward.icon.y.should == 0
|
27
|
+
reward.icon.w.should == 90
|
28
|
+
reward.icon.h.should == 90
|
29
|
+
reward.icon.offset.should == 0
|
30
|
+
reward.icon.url.should == 'http://media.blizzard.com/sc2/portraits/0-90.jpg'
|
31
|
+
reward.achievement_id.should == 0
|
32
|
+
end
|
19
33
|
end
|
20
34
|
|
21
35
|
describe '.initialize' do
|
22
36
|
let(:reward) { Starcraft2::Reward.new(@options) }
|
23
37
|
|
24
38
|
before do
|
25
|
-
@options = {
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
@reward.title.should == 'Kachinsky'
|
34
|
-
@reward.id.should == 2951153716
|
35
|
-
@reward.icon.x.should == 0
|
36
|
-
@reward.icon.y.should == 0
|
37
|
-
@reward.icon.w.should == 90
|
38
|
-
@reward.icon.h.should == 90
|
39
|
-
@reward.icon.offset.should == 0
|
40
|
-
@reward.icon.url.should == 'http://media.blizzard.com/sc2/portraits/0-90.jpg'
|
41
|
-
@reward.achievement_id.should == 0
|
39
|
+
@options = {
|
40
|
+
'title' => 'Test Title',
|
41
|
+
'id' => 3,
|
42
|
+
'icon' => {'x' => 1, 'y' => 2, 'w' => 3, 'h' => 4, 'offset' => 0, 'url' => 'https://example.com'},
|
43
|
+
'achievement_id' => 5
|
44
|
+
}
|
42
45
|
end
|
43
46
|
|
44
|
-
it 'should store
|
45
|
-
@options = {:title => 'Test Title'}
|
47
|
+
it 'should store attributes as underscored' do
|
46
48
|
reward.title.should == 'Test Title'
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'should store the id' do
|
50
|
-
@options = {:id => 3}
|
51
49
|
reward.id.should == 3
|
52
|
-
|
53
|
-
|
54
|
-
it 'should store the icon data' do
|
55
|
-
@options = {:icon => {'x' => 1, 'y' => 2, 'w' => 3, 'h' => 4, 'offset' => 0, 'url' => 'https://example.com'}}
|
50
|
+
reward.icon.class.should == Starcraft2::Icon
|
56
51
|
reward.icon.x.should == 1
|
57
52
|
reward.icon.y.should == 2
|
58
53
|
reward.icon.w.should == 3
|
59
54
|
reward.icon.h.should == 4
|
60
55
|
reward.icon.offset.should == 0
|
61
56
|
reward.icon.url.should == 'https://example.com'
|
62
|
-
end
|
63
|
-
|
64
|
-
it 'should store the achievement id' do
|
65
|
-
@options = {:achievement_id => 5}
|
66
57
|
reward.achievement_id.should == 5
|
67
58
|
end
|
68
59
|
end
|