Commit Graph

133 Commits

Author SHA1 Message Date
Daniel Schädler b1ff7d2e96 Move scope of tournament creation in match_score controller test
This fixes the problem we had with the update of the match score
returning :forbidden because the @owner variable was not set properly.

Also names of the tests should now be easier to read.
2019-06-04 15:09:21 +02:00
Daniel Schädler 71976ba550 Dry out code with shared_examples 2019-06-04 15:09:21 +02:00
Daniel Schädler f2a18ec08e Overwrite owner of tournament manually 2019-06-04 15:09:21 +02:00
Daniel Schädler 23d167e04d Test if match_score point change triggers group score calculation 2019-06-04 15:09:21 +02:00
Daniel Schädler 79b4008082 Remove unnecessary :group_stage_only tournament 2019-06-04 15:09:21 +02:00
Daniel Schädler 8a95f24211 Make Match Factory configurable for group_stage and group factory 2019-06-04 15:09:21 +02:00
Daniel Schädler 133cbffc71 Add group_scores to groups factory, one for every team 2019-06-04 15:09:21 +02:00
Daniel Schädler 5809a062a6 Add GroupScore objects for every team to the group stage 2019-06-04 15:09:21 +02:00
Daniel Schädler 3cad50776f Update group_scores on match_score change if match is a group match 2019-06-04 15:09:21 +02:00
Daniel Schädler b94bb9cdcd Add method to check if match_score is part of a group match 2019-06-04 15:09:21 +02:00
Daniel Schädler 5406f393d3 Correctly handle matches that are not started yet 2019-06-04 15:09:21 +02:00
Daniel Schädler 6d7cdbc317 Implement Methods returning points of teams per match
These methods return group_points scored_points and received_points
respectively when given a team that is present in the match
They return 0 when given a team that isn't contesting in that match
2019-06-04 15:09:21 +02:00
Daniel Schädler 990361a25b Fix comparison that got lost in refactoring 2019-05-27 13:25:14 +02:00
Daniel Schädler a710addde7 Create :stage_tournaments with realistic match positions 2019-05-26 22:03:22 +02:00
Daniel Schädler 537cccfa9e Force save match_scores 2019-05-26 20:15:59 +02:00
Daniel Schädler 6f44823bc6 Change match state of match below 2019-05-26 20:15:59 +02:00
Daniel Schädler 8dd1f0b07c Rearrange Test Code 2019-05-26 20:15:59 +02:00
Daniel Schädler 9f92ca7e5b Move stopping of matches test 2019-05-26 20:15:59 +02:00
Daniel Schädler d61b3b2b63 Fix factory name for stageless tournament 2019-05-26 20:15:59 +02:00
Daniel Schädler 21c79665e1 Check if .winner returns a Team
This is done to prevent Test from succeeding if both
.winner and .teams return nil
2019-05-26 20:15:59 +02:00
Daniel Schädler 74b345dce4 Fix factory name for stage tournament 2019-05-26 20:15:59 +02:00
Daniel Schädler 5457d50277 Simplify code finding the tournament
Co-Authored-By: Thor77 <thor77@thor77.org>
2019-05-26 20:15:59 +02:00
Daniel Schädler 0337b6fad8 Save match_scores after editing them in tests 2019-05-26 20:15:59 +02:00
Daniel Schädler d0d38a7972 Test populate_match_below Interactor 2019-05-26 20:15:58 +02:00
Daniel Schädler e0ef39cc4b Test populate_match_below method 2019-05-26 20:15:58 +02:00
Daniel Schädler d2f5d3594e Test performance optimization
In general this generates less unnecessary faker data
2019-05-26 20:15:16 +02:00
Daniel Schädler bc055843d9 Test stopping of Matches 2019-05-26 20:14:13 +02:00
Daniel Schädler 2f77d2d25b Add winner method to match 2019-05-26 20:14:13 +02:00
Daniel Schädler 280b0c1dec Change status of Match to only represent being finished
The winner will be a attribute of the Match instead of something
that is written in its status.
2019-05-26 20:14:13 +02:00
Daniel Schädler 8388af20f0 Generalize tournament save interactor
It now is responsible for saving all ApplicationRecord objects to the
database. This will reduce code duplication one we have other objects
that need to be saved. (As we will soon need to save individual matches)
2019-05-26 20:14:13 +02:00
Daniel Schädler 51056d340c Save the whole stage instead of the single matches 2019-05-22 09:25:07 +02:00
Daniel Schädler b36e3c4251 Delegate owner of team to tournament again 2019-05-22 09:25:07 +02:00
Daniel Schädler 27709f0136 This change will basically solve climate change as it saves all
the computing power in the whole world.
2019-05-22 09:25:07 +02:00
Thor77 b5377db1f3 Reformat indention 2019-05-22 09:25:07 +02:00
Daniel Schädler d548eee245 Change .map to .each 2019-05-22 09:25:07 +02:00
Daniel Schädler dcb19461be Add group_stage_only_tournament factory 2019-05-22 09:25:07 +02:00
Daniel Schädler 03d7369a1c Remove link between team.owner and tournament 2019-05-22 09:25:07 +02:00
Daniel Schädler f73820f2f2 Reduce standart amount of teams within a tournament to 8 2019-05-22 09:25:07 +02:00
Daniel Schädler 3f4c6336c2 Add dummy_stage_tournament 2019-05-22 09:25:07 +02:00
Daniel Schädler c55b45bdc1 Add position to all matches 2019-05-22 09:25:07 +02:00
Daniel Schädler 80b14900d0 Makes match_type configurable instead of only setting its state 2019-05-22 09:25:07 +02:00
Daniel Schädler b9afa956ce Add empty_prepared_playoff_match 2019-05-22 09:25:07 +02:00
Thor77 42d9b0957f Save match position 2019-05-22 09:25:07 +02:00
Daniel Schädler 8a70d5f333 For stage tournament, first stage has running matches 2019-05-22 09:25:07 +02:00
Daniel Schädler cb82ca44d8 Put running playoff matches in a playoff stage (only on first level) 2019-05-22 09:25:07 +02:00
Daniel Schädler 7afb5ae552 Create realistic number of Matches
When match_count is -1 the number of matches generated is automatically
2 ^ stage.level -> This is the amount of stages present in a "real"
tournament stage. When supplying a positive number, it generates that
many matches like before.

This also now adds the position to the match list after creating them
2019-05-22 09:25:07 +02:00
Daniel Schädler 55f1656328 Manually create the list of stages to assign stage levels correctly 2019-05-22 09:25:07 +02:00
Daniel Schädler 6d66328dc8 Move group_stage tournament into stage tournament 2019-05-22 09:25:07 +02:00
Daniel Schädler 8026e66d9b Add :undecided_group_match and :decided_playoff_match 2019-05-22 09:25:07 +02:00
Thor77 39fc9f1630
Use factories instead of creating models manually 2019-05-16 20:53:05 +02:00