Add winner method to match

This commit is contained in:
Daniel Schädler 2019-05-09 09:09:54 +02:00
parent 280b0c1dec
commit 2f77d2d25b
3 changed files with 31 additions and 3 deletions

View File

@ -19,13 +19,20 @@ class Match < ApplicationRecord
stage ? stage.owner : group.owner
end
private
def winner
return nil unless finished?
return nil if match_scores.first.points == match_scores.second.points
def stage_xor_group
errors.add(:stage_xor_group, 'Stage and Group missing or both present') unless stage.present? ^ group.present?
match_scores.max_by(&:points).team
end
def group_match?
group.present?
end
private
def stage_xor_group
errors.add(:stage_xor_group, 'Stage and Group missing or both present') unless stage.present? ^ group.present?
end
end

View File

@ -70,4 +70,11 @@ class PlayoffStageService
stage_count.to_int
end
end
def self.populate_match_below(match)
current_stage = match.stage
next_stage = match.stage.tournament.stages.
puts
end
end

View File

@ -43,6 +43,20 @@ RSpec.describe Match, type: :model do
end
end
context '#winner' do
it 'returns a winner Team for a decided match' do
decided_playoff_match = create(:decided_playoff_match)
winning_team_match_score = decided_playoff_match.match_scores.first
winning_team_match_score.points = 9999
winning_team = winning_team_match_score.team
expect(decided_playoff_match.winner).to be winning_team
end
it 'returns nil for an undecided match' do
expect(create(:undecided_group_match).winner).to be(nil)
end
end
context '#teams' do
before do
@playoff_match = create(:running_playoff_match)