Commit Graph

386 Commits

Author SHA1 Message Date
Thor77 b9aaccb487
Raise UserServiceError instead of StandardError 2019-06-17 13:48:49 +02:00
Thor77 a9cee1d651
Add routes for bets controller 2019-06-17 13:48:49 +02:00
Thor77 2f0127897e
Add UserService 2019-06-17 13:48:49 +02:00
Thor77 f3431e8442
Add bet model
* has_many relations in all belonging models
* specs for relations in existing models
* association specs for bet model
2019-06-17 13:48:49 +02:00
Thor77 7e2567a8cf
Merge pull request #60 from turniere/ticket/TURNIERE-252
Assign unique number to each group
2019-06-17 13:47:00 +02:00
Daniel Schädler db70e33882 Assign number to each group 2019-06-17 13:37:06 +02:00
Daniel Schädler c2056df1ba Remove accidental focus: true 2019-06-17 13:37:06 +02:00
Thor77 39d564be58
Merge pull request #59 from turniere/ticket/TURNIERE-251
Implement Group GET Endpoint
2019-06-17 13:27:08 +02:00
Daniel Schädler a74030a7ef Implement GroupsController 2019-06-16 13:22:15 +02:00
Thor77 b8116e9614
Merge pull request #57 from turniere/ticket/TURNIERE-250
Correctly raise exceptions in mock
2019-06-14 19:09:19 +02:00
Daniel Schädler fc96b8f788 Correctly raise exceptions in mock 2019-06-14 15:53:12 +02:00
Daniel Schädler 33c7ce9695
Merge pull request #55 from turniere/ticket/TURNIERE-234
Implement variables relevant for group stage to playoff transition
2019-06-13 22:52:34 +02:00
Daniel Schädler 41194ee181 Test group_stage state being assigned correctly 2019-06-13 16:13:06 +02:00
Daniel Schädler bb1b8798d8 DRY out group_stage_service_spec 2019-06-13 16:09:38 +02:00
Daniel Schädler 63db00b9ff Actually test if correct field gets set in error response 2019-06-13 13:28:34 +02:00
Daniel Schädler c8f69ccb16 Dry out tests for unacceptable playoff_teams_amount 2019-06-13 13:21:24 +02:00
Daniel Schädler 07f5388f6d Add Tests for TournamentService 2019-06-13 13:21:24 +02:00
Daniel Schädler 2e336262aa Add state to stage
This state is required to stop the group stage and trigger playoff
generation, it is (for now) irrelevant for anything other than that.
2019-06-13 13:21:24 +02:00
Daniel Schädler 4f64afd5fe Assign values to playoff transition relevant variables in factory 2019-06-13 13:21:24 +02:00
Daniel Schädler 5004dec39a Change playoff transition relevant attributes of tournament on update
They are only updated when playoff_teams_amount changed alone
2019-06-13 13:21:24 +02:00
Daniel Schädler e936fd40b2 Convert integer parameters to actual integers
Apparently rails thinks this is the way to do it.
2019-06-13 13:21:24 +02:00
Daniel Schädler 3e04584e9f Test changing group_stage transition relevant parameters 2019-06-13 13:21:24 +02:00
Daniel Schädler b408d1dd37 Ignore validity of matching params if only playoff_teams_amount changed
If only playoff_teams_amount changed, the other two will be overwritten
anyways.
2019-06-13 13:21:24 +02:00
Daniel Schädler 6a060651a4 Validate update parameters
playoff_teams_amount, instant_finalists_amount and
intermediate_round_participants_amount need to make sense together
2019-06-13 13:21:24 +02:00
Daniel Schädler 36bdfbae28 Add default for playoff_teams_amount to tournament factory 2019-06-13 13:21:24 +02:00
Daniel Schädler f04c11427a Assign default values on Group Stage creation
default values are assigned to instant_finalists_amount and
intermediate_round_participants_amount depending on playoff_teams_amount and group amount
2019-06-13 13:21:24 +02:00
Daniel Schädler 4d5d7bc812 Only allow positive powers of two for playoff_teams_amount 2019-06-13 13:21:24 +02:00
Daniel Schädler f5b610703c Add two new parameters to tournament
instant_finalists_amount is the amount of teams that instantly are in
the finals after the group stage ends.

intermediate_round_participants_amount is the amount of teams that have
a chance to advance after group stage but must play a relegation game to
actually do so.

Both of these values need to match, so that
instant_finalists_amount + (intermediate_round_participants_amount / 2)
is a power of 2. Or to be more precise, the power of two that is saved
in playoff_teams_amount of the tournament.
2019-06-13 13:21:24 +02:00
Daniel Schädler d8a9b27ab3 Add test type to all interactor tests 2019-06-13 13:21:24 +02:00
Thor77 42ee77d0ee
Merge pull request #48 from turniere/ticket/TURNIERE-226
Fix Playoff Matches ending without a winner
2019-06-05 17:56:49 +02:00
Daniel Schädler 5d47ae5426 Fix two typos 2019-06-05 17:05:58 +02:00
Daniel Schädler 9c9a856265 Test returning unprocessable entity when error occurs in match population 2019-06-05 17:05:58 +02:00
Daniel Schädler 41b8bdce77 Test unprocessable entity response on a match that is not ready
Unprocessable entity is returned when you try to start a match that is
not ready yet.
2019-06-05 17:05:58 +02:00
Daniel Schädler d03ceeffa4 Test returning unprocessable entity response
We now test sending a senseless state and also what happens when the
match.update method fails for some reason.
2019-06-05 17:05:58 +02:00
Daniel Schädler c1b2b72ca3 Simplify controller code
Matches update now gets rolled back via a Transaction
2019-06-05 17:05:58 +02:00
Daniel Schädler ab33ec157d Split test methods for failed stopping of matches 2019-06-05 17:05:58 +02:00
Daniel Schädler 68535b89fc Prevent matches from being stopped without a winner in playoffs 2019-06-05 17:05:58 +02:00
Daniel Schädler 2b7d0edf74 Correct state of empty_prepared_playoff_match factory 2019-06-05 17:05:58 +02:00
Daniel Schädler b9d4c77db0
Merge pull request #52 from turniere/ticket/TURNIERE-199
Add field to tournament containing playoff_teams_amount
2019-06-05 17:05:25 +02:00
Daniel Schädler bd2af09339 Add field to tournament containing playoff_teams_amount
This field represents how many teams advance into playoff stage after
the group stage has ended.
2019-06-05 16:46:06 +02:00
Daniel Schädler fc13634769
Merge pull request #50 from turniere/ticket/TURNIERE-216
Implement Group Score Update on match_score points change
2019-06-05 10:24:19 +02:00
Daniel Schädler 15e344fa2e Test returning unprocessable entity when match_score update fails 2019-06-05 10:13:26 +02:00
Daniel Schädler 24ce5b7a62 Test update_group_scores method 2019-06-05 09:49:22 +02:00
Daniel Schädler 258e1ceb1c Rename groups to prepared_groups
This is done because prepared_groups only represents hashes of groups
that still need to be generated rather then actual group objects.
2019-06-05 09:49:22 +02:00
Daniel Schädler c9cdb835a0 Remove unused Variable stage 2019-06-05 09:49:22 +02:00
Daniel Schädler ceea95c3d3 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-05 09:49:21 +02:00
Daniel Schädler 60f12430af Dry out code with shared_examples 2019-06-05 09:49:21 +02:00
Daniel Schädler b51513661f Overwrite owner of tournament manually 2019-06-05 09:49:21 +02:00
Daniel Schädler d9c901615e Test if match_score point change triggers group score calculation 2019-06-05 09:49:21 +02:00
Daniel Schädler f97c8e501c Remove unnecessary :group_stage_only tournament 2019-06-05 09:49:21 +02:00