infostrada 0.1.26 → 0.1.27
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.rspec +2 -0
- data/.rubocop.yml +2 -0
- data/.travis.yml +6 -0
- data/README.md +2 -0
- data/infostrada.gemspec +4 -1
- data/lib/infostrada.rb +6 -12
- data/lib/infostrada/call_refresh.rb +2 -1
- data/lib/infostrada/competition.rb +2 -1
- data/lib/infostrada/core_ext/hash.rb +14 -0
- data/lib/infostrada/core_ext/string.rb +19 -2
- data/lib/infostrada/match.rb +2 -2
- data/lib/infostrada/match_event.rb +1 -1
- data/lib/infostrada/mock.rb +76 -0
- data/lib/infostrada/nation.rb +2 -2
- data/lib/infostrada/person_info.rb +12 -12
- data/lib/infostrada/phase.rb +11 -13
- data/lib/infostrada/player.rb +11 -11
- data/lib/infostrada/squad.rb +3 -6
- data/lib/infostrada/team.rb +4 -4
- data/lib/infostrada/team_info.rb +1 -1
- data/lib/infostrada/team_request.rb +2 -5
- data/lib/infostrada/version.rb +1 -1
- data/spec/base_request_spec.rb +19 -0
- data/spec/competition_spec.rb +67 -0
- data/spec/edition_request_spec.rb +20 -0
- data/spec/edition_spec.rb +111 -0
- data/spec/endpoint_spec.rb +62 -0
- data/spec/formatter_spec.rb +12 -0
- data/spec/helpers/json_helper.rb +41 -0
- data/spec/json/competition.json +55 -0
- data/spec/json/edition.json +61 -0
- data/spec/json/edition_request.json +242 -0
- data/spec/json/endpoint.json +46 -0
- data/spec/json/match.json +945 -0
- data/spec/json/match_event.json +187 -0
- data/spec/json/match_event_list.json +411 -0
- data/spec/json/nation.json +302 -0
- data/spec/json/person_info.json +52 -0
- data/spec/json/phase.json +158 -0
- data/spec/json/player.json +93 -0
- data/spec/json/referee.json +184 -0
- data/spec/json/sample_responses/all_editions.json +243 -0
- data/spec/json/sample_responses/competition_edition_league_21594_serie_a.json +4 -0
- data/spec/json/sample_responses/competition_match_days_league_21594_serie_a.json +473 -0
- data/spec/json/sample_responses/competition_match_list_league_21594_serie_a.json +25465 -0
- data/spec/json/sample_responses/competition_phases_cup_21204_capital_one_cup.json +138 -0
- data/spec/json/sample_responses/competition_phases_league_21594_serie_a.json +24 -0
- data/spec/json/sample_responses/competition_table_phase_114165_serie_a_2015.json +585 -0
- data/spec/json/sample_responses/competition_teams_league_21594.json +165 -0
- data/spec/json/sample_responses/get_api_call_refresh_module.json +65 -0
- data/spec/json/sample_responses/match_events_1788734_real_atletico_final_champions.json +7960 -0
- data/spec/json/sample_responses/match_info_1788734_real_atletico_final_champions.json +96 -0
- data/spec/json/sample_responses/match_info_upcoming_1968820_serie_a.json +96 -0
- data/spec/json/sample_responses/person_info_611005_bale.json +55 -0
- data/spec/json/sample_responses/squad_100163_on_edition_21590.json +1355 -0
- data/spec/json/sample_responses/team_info_100163.json +28 -0
- data/spec/json/sample_responses/template_dummy_response.json +4 -0
- data/spec/json/squad.json +514 -0
- data/spec/json/team.json +10 -0
- data/spec/json/team_info.json +25 -0
- data/spec/json/team_request.json +68 -0
- data/spec/match_event_list_spec.rb +21 -0
- data/spec/match_event_spec.rb +159 -0
- data/spec/match_spec.rb +430 -0
- data/spec/nation_spec.rb +179 -0
- data/spec/person_info_spec.rb +69 -0
- data/spec/phase_spec.rb +183 -0
- data/spec/player_spec.rb +112 -0
- data/spec/referee_spec.rb +71 -0
- data/spec/spec_helper.rb +117 -0
- data/spec/squad_spec.rb +25 -0
- data/spec/team_info_spec.rb +77 -0
- data/spec/team_request_spec.rb +24 -0
- data/spec/team_spec.rb +76 -0
- metadata +213 -43
data/spec/nation_spec.rb
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Infostrada::Nation do
|
4
|
+
let(:home_team) { JSONHelper::Nation.get(:home_team) }
|
5
|
+
let(:away_team) { JSONHelper::Nation.get(:away_team) }
|
6
|
+
let(:referee) { JSONHelper::Nation.get(:referee) }
|
7
|
+
let(:team) { JSONHelper::Nation.get(:team) }
|
8
|
+
let(:competition) { JSONHelper::Nation.get(:competition) }
|
9
|
+
let(:nation) { Infostrada::Nation }
|
10
|
+
|
11
|
+
describe '#initialize' do
|
12
|
+
context 'home team nation' do
|
13
|
+
let(:home_team_nation) { nation.new(home_team, 'home_team') }
|
14
|
+
|
15
|
+
it 'has id' do
|
16
|
+
expect(home_team_nation.id).to eq(2235)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'has name' do
|
20
|
+
expect(home_team_nation.name).to eq('Brazil')
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'has short name' do
|
24
|
+
expect(home_team_nation.short_name).to eq('BRA')
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'away team nation' do
|
29
|
+
let(:away_team_nation) { nation.new(away_team, 'away_team') }
|
30
|
+
|
31
|
+
it 'has id' do
|
32
|
+
expect(away_team_nation.id).to eq(2236)
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'has name' do
|
36
|
+
expect(away_team_nation.name).to eq('Argentina')
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'has short name' do
|
40
|
+
expect(away_team_nation.short_name).to eq('AR')
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context 'referee nation' do
|
45
|
+
let(:referee_nation) { nation.new(referee, 'referee') }
|
46
|
+
|
47
|
+
it 'has id' do
|
48
|
+
expect(referee_nation.id).to eq(0)
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'has name' do
|
52
|
+
expect(referee_nation.name).to eq('Portugal')
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'has short name' do
|
56
|
+
expect(referee_nation.short_name).to eq('PT')
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'team nation' do
|
61
|
+
let(:team_nation) { nation.new(team, 'team') }
|
62
|
+
|
63
|
+
it 'has id' do
|
64
|
+
expect(team_nation.id).to eq(2235)
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'has name' do
|
68
|
+
expect(team_nation.name).to eq('Brazil')
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'has short name' do
|
72
|
+
expect(team_nation.short_name).to eq('BRA')
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context 'competition nation' do
|
77
|
+
let(:competition_nation) { nation.new(competition, 'competition') }
|
78
|
+
|
79
|
+
it 'has id' do
|
80
|
+
expect(competition_nation.id).to eq(2101)
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'has name' do
|
84
|
+
expect(competition_nation.name).to eq('Europe')
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'has short name' do
|
88
|
+
expect(competition_nation.short_name).to eq('EUR')
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe '.from_json' do
|
94
|
+
context 'home team nation' do
|
95
|
+
let(:home_team_nation_json) { nation.new(home_team, 'home_team').as_json }
|
96
|
+
let(:home_from_json) { nation.from_json(home_team_nation_json, 'home_team') }
|
97
|
+
|
98
|
+
it 'has id' do
|
99
|
+
expect(home_from_json.id).to eq(2235)
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'has name' do
|
103
|
+
expect(home_from_json.name).to eq('Brazil')
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'has short name' do
|
107
|
+
expect(home_from_json.short_name).to eq('BRA')
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
context 'away team nation' do
|
112
|
+
let(:away_team_nation_json) { nation.new(away_team, 'away_team').as_json }
|
113
|
+
let(:away_from_json) { nation.from_json(away_team_nation_json, 'away_team') }
|
114
|
+
|
115
|
+
it 'has id' do
|
116
|
+
expect(away_from_json.id).to eq(2236)
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'has name' do
|
120
|
+
expect(away_from_json.name).to eq('Argentina')
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'has short name' do
|
124
|
+
expect(away_from_json.short_name).to eq('AR')
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
context 'referee nation' do
|
129
|
+
let(:referee_nation_json) { nation.new(referee, 'referee').as_json }
|
130
|
+
let(:referee_from_json) { nation.from_json(referee_nation_json, 'referee') }
|
131
|
+
|
132
|
+
it 'has id' do
|
133
|
+
expect(referee_from_json.id).to eq(0)
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'has name' do
|
137
|
+
expect(referee_from_json.name).to eq('Portugal')
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'has short name' do
|
141
|
+
expect(referee_from_json.short_name).to eq('PT')
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
context 'team nation' do
|
146
|
+
let(:team_nation_json) { nation.new(team, 'team').as_json }
|
147
|
+
let(:team_from_json) { nation.from_json(team_nation_json, 'team') }
|
148
|
+
|
149
|
+
it 'has id' do
|
150
|
+
expect(team_from_json.id).to eq(2235)
|
151
|
+
end
|
152
|
+
|
153
|
+
it 'has name' do
|
154
|
+
expect(team_from_json.name).to eq('Brazil')
|
155
|
+
end
|
156
|
+
|
157
|
+
it 'has short name' do
|
158
|
+
expect(team_from_json.short_name).to eq('BRA')
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
context 'competition nation' do
|
163
|
+
let(:competition_nation_json) { nation.new(competition, 'competition').as_json }
|
164
|
+
let(:competition_from_json) { nation.from_json(competition_nation_json, 'competition') }
|
165
|
+
|
166
|
+
it 'has id' do
|
167
|
+
expect(competition_from_json.id).to eq(2101)
|
168
|
+
end
|
169
|
+
|
170
|
+
it 'has name' do
|
171
|
+
expect(competition_from_json.name).to eq('Europe')
|
172
|
+
end
|
173
|
+
|
174
|
+
it 'has short name' do
|
175
|
+
expect(competition_from_json.short_name).to eq('EUR')
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Infostrada::PersonInfo do
|
4
|
+
let(:default) { JSONHelper::PersonInfo.get(:default) }
|
5
|
+
let(:person_id) { 611_005 }
|
6
|
+
let(:person_info) { Infostrada::PersonInfo }
|
7
|
+
|
8
|
+
let(:path) { 'GetPersonInfo' }
|
9
|
+
let(:uri) { "#{@base_url}/#{path}?#{@default_params}&&personid=#{person_id}" }
|
10
|
+
|
11
|
+
# [default] - infostrada returns an array
|
12
|
+
before do
|
13
|
+
stub_request(:get, uri)
|
14
|
+
.to_return(status: 200, body: [default].to_json)
|
15
|
+
end
|
16
|
+
|
17
|
+
describe '.where' do
|
18
|
+
it 'returns new person info' do
|
19
|
+
result = person_info.where(person_id: person_id)
|
20
|
+
|
21
|
+
expect(result).not_to be_nil
|
22
|
+
expect(result).to be_kind_of(person_info)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '#initialize' do
|
27
|
+
let(:default_person) { person_info.new(person_id, default) }
|
28
|
+
|
29
|
+
it 'has id' do
|
30
|
+
expect(default_person.id).to eq(person_id)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'has first name' do
|
34
|
+
expect(default_person.first_name).to eq(default['c_FirstName'])
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'has last name' do
|
38
|
+
expect(default_person.last_name).to eq(default['c_LastName'])
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'has public name' do
|
42
|
+
expect(default_person.public_name).to eq(default['c_PublicName'])
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'has nickname' do
|
46
|
+
expect(default_person.nickname).to eq(default['c_Nickname'])
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'has birthdate' do
|
50
|
+
expect(default_person.birthdate).not_to be_nil
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'has height' do
|
54
|
+
expect(default_person.height).to eq(default['n_Height'])
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'has weight' do
|
58
|
+
expect(default_person.weight).to eq(default['n_Weight'])
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'has birth city' do
|
62
|
+
expect(default_person.birth_city).to eq(default['c_BirthCity'])
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'has birth country' do
|
66
|
+
expect(default_person.birth_country).to eq(default['c_BirthCountry'])
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/spec/phase_spec.rb
ADDED
@@ -0,0 +1,183 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Infostrada::Competition do
|
4
|
+
let(:default) { JSONHelper::Phase.get(:default).first }
|
5
|
+
let(:list) { JSONHelper::Phase.get(:list) }
|
6
|
+
let(:phase) { Infostrada::Phase }
|
7
|
+
let(:default_phase) { phase.new(default.clone) }
|
8
|
+
let(:serialized) { default_phase.as_json }
|
9
|
+
let(:edition_id) { 1 }
|
10
|
+
let(:uri) do
|
11
|
+
"#{@base_url}/GetPhaseList?#{@default_params}&&editionid=#{edition_id}"
|
12
|
+
end
|
13
|
+
|
14
|
+
before do
|
15
|
+
stub_request(:get, uri)
|
16
|
+
.to_return(status: 200, body: list.to_json)
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '.where' do
|
20
|
+
it 'returns a list of phases' do
|
21
|
+
phases = phase.where(edition_id: edition_id)
|
22
|
+
expect(phases.count).to eq(list.count)
|
23
|
+
expect(phases.first).to be_a(phase)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe '#initialize' do
|
28
|
+
let(:p) { phase.new(default.clone) }
|
29
|
+
|
30
|
+
it 'has id' do
|
31
|
+
expect(p.id).to eq(default['n_PhaseID'])
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'has name' do
|
35
|
+
expect(p.name).to eq(default['c_Phase'])
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'has level' do
|
39
|
+
expect(p.level).to eq(default['n_PhaseLevel'])
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'has short_name' do
|
43
|
+
expect(p.short_name).to eq(default['c_PhaseShort'])
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'has phase1_id' do
|
47
|
+
expect(p.phase1_id).to eq(default['n_Phase1ID'])
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'has phase1_name' do
|
51
|
+
expect(p.phase1_name).to eq(default['c_Phase1'])
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'has phase2_id' do
|
55
|
+
expect(p.phase2_id).to eq(default['n_Phase2ID'])
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'has phase2_name' do
|
59
|
+
expect(p.phase2_name).to eq(default['c_Phase2'])
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'has phase3_id' do
|
63
|
+
expect(p.phase3_id).to eq(default['n_Phase3ID'])
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'has phase3_name' do
|
67
|
+
expect(p.phase3_name).to eq(default['c_Phase3'])
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'has has_table' do
|
71
|
+
expect(p.has_table).to eq(default['b_Table'])
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'has current' do
|
75
|
+
expect(p.current).to eq(default['b_Current'])
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'has currents' do
|
79
|
+
expect(p.currents).to eq(default['b_Currents'])
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'has start date' do
|
83
|
+
date = Date.parse(default['n_DateStart'].to_s)
|
84
|
+
expect(p.start_date).to eq(date)
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'has end date' do
|
88
|
+
date = Date.parse(default['n_DateEnd'].to_s)
|
89
|
+
expect(p.end_date).to eq(date)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe '.from_json' do
|
94
|
+
let(:from_json) { phase.from_json(serialized) }
|
95
|
+
|
96
|
+
it 'has id' do
|
97
|
+
expect(from_json.id).to eq(default_phase.id)
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'has name' do
|
101
|
+
expect(from_json.name).to eq(default_phase.name)
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'has level' do
|
105
|
+
expect(from_json.level).to eq(default_phase.level)
|
106
|
+
end
|
107
|
+
|
108
|
+
it 'has short_name' do
|
109
|
+
expect(from_json.short_name).to eq(default_phase.short_name)
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'has phase1_id' do
|
113
|
+
expect(from_json.phase1_id).to eq(default_phase.phase1_id)
|
114
|
+
end
|
115
|
+
|
116
|
+
it 'has phase1_name' do
|
117
|
+
expect(from_json.phase1_name).to eq(default_phase.phase1_name)
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'has phase2_id' do
|
121
|
+
expect(from_json.phase2_id).to eq(default_phase.phase2_id)
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'has phase2_name' do
|
125
|
+
expect(from_json.phase2_name).to eq(default_phase.phase2_name)
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'has phase3_id' do
|
129
|
+
expect(from_json.phase3_id).to eq(default_phase.phase3_id)
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'has phase3_name' do
|
133
|
+
expect(from_json.phase3_name).to eq(default_phase.phase3_name)
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'has has_table' do
|
137
|
+
expect(from_json.has_table).to eq(default_phase.has_table)
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'has current' do
|
141
|
+
expect(from_json.current).to eq(default_phase.current)
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'has currents' do
|
145
|
+
expect(from_json.currents).to eq(default_phase.currents)
|
146
|
+
end
|
147
|
+
|
148
|
+
it 'has start date' do
|
149
|
+
expect(from_json.start_date).to eq(default_phase.start_date)
|
150
|
+
end
|
151
|
+
|
152
|
+
it 'has end date' do
|
153
|
+
expect(from_json.end_date).to eq(default_phase.end_date)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
module NullTable
|
158
|
+
class Infostrada::Table
|
159
|
+
class << self
|
160
|
+
attr_accessor :phase_id
|
161
|
+
|
162
|
+
def where(options = {})
|
163
|
+
@phase_id = options.delete(:phase_id)
|
164
|
+
true
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
# Only way to get the nulltable table scope
|
171
|
+
Mock = Struct.new(:phase_id) do
|
172
|
+
include NullTable
|
173
|
+
end
|
174
|
+
|
175
|
+
describe '#table' do
|
176
|
+
it 'calls Table where' do
|
177
|
+
phase.send(:include, NullTable)
|
178
|
+
dphase = phase.new(default.clone)
|
179
|
+
expect(dphase.table).to be(true)
|
180
|
+
expect(Mock::Infostrada::Table.phase_id).to be(default_phase.id)
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
data/spec/player_spec.rb
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Infostrada::Player do
|
4
|
+
let(:default) { JSONHelper::Player.get(:default) }
|
5
|
+
let(:goalkeeper) { JSONHelper::Player.get(:goalkeeper) }
|
6
|
+
let(:player) { Infostrada::Player }
|
7
|
+
let(:p) { player.new(default) }
|
8
|
+
|
9
|
+
describe '#initialize' do
|
10
|
+
it 'has person_id' do
|
11
|
+
expect(p.person_id).to eq(default['n_PersonID'])
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'has name' do
|
15
|
+
expect(p.name).to eq(default['c_Person'])
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'has short_name' do
|
19
|
+
expect(p.short_name).to eq(default['c_PersonShort'])
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'has birthdate' do
|
23
|
+
expect(p.birthdate).not_to be_nil
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'has function' do
|
27
|
+
expect(p.function).to eq(default['c_Function'])
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'has function_type' do
|
31
|
+
expect(p.function_type).to eq(default['n_FunctionType'])
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'has shirt_number' do
|
35
|
+
expect(p.shirt_number).to eq(default['n_ShirtNr'])
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'has contract_starts_at' do
|
39
|
+
expect(p.contract_starts_at).not_to be_nil
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'has contract_ends_at' do
|
43
|
+
expect(p.contract_ends_at).not_to be_nil
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'has nation' do
|
47
|
+
expect(p.nation).not_to be_nil
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'calls set_season_stats' do
|
51
|
+
called = false
|
52
|
+
expect_any_instance_of(player).to receive(:set_season_stats) do
|
53
|
+
called = true
|
54
|
+
end
|
55
|
+
player.new(default.clone)
|
56
|
+
|
57
|
+
expect(called).to be(true)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe '#set_season_stats' do
|
62
|
+
context 'season stats hash' do
|
63
|
+
it 'has matches' do
|
64
|
+
expect(p.season_stats[:matches]).to eq(default['n_Matches'])
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'has matches_start' do
|
68
|
+
expect(p.season_stats[:matches_start]).to eq(default['n_MatchesStart'])
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'has matches_out' do
|
72
|
+
expect(p.season_stats[:matches_out]).to eq(default['n_MatchesOut'])
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'has matches_in' do
|
76
|
+
expect(p.season_stats[:matches_in]).to eq(default['n_MatchesIn'])
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'has minutes_played' do
|
80
|
+
expect(p.season_stats[:minutes_played]).to eq(default['n_MinutesPlayed'])
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'has goals' do
|
84
|
+
expect(p.season_stats[:goals]).to eq(default['n_Goals'])
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'has own_goals' do
|
88
|
+
expect(p.season_stats[:own_goals]).to eq(default['n_OwnGoals'])
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'has assists' do
|
92
|
+
expect(p.season_stats[:assists]).to eq(default['n_Assists'])
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'has cards_yellow' do
|
96
|
+
expect(p.season_stats[:cards_yellow]).to eq(default['n_CardsYellow'])
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'has cards_red' do
|
100
|
+
expect(p.season_stats[:cards_red]).to eq(default['n_CardsRed'])
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'has cards_red_direct' do
|
104
|
+
expect(p.season_stats[:cards_red_direct]).to eq(default['n_CardsRedDirect'])
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'has cards_red_from_yellow' do
|
108
|
+
expect(p.season_stats[:cards_red_from_yellow]).to eq(default['n_CardsRed2Yellow'])
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|