Commit Graph

102 Commits

Author SHA1 Message Date
Dan Balasescu
494955aff1 Resolve inspection issues 2022-04-14 13:11:11 +09:00
Dean Herbert
e4ef540b5b Fix intermittent failures on TestBeatmapDownloadingFlow due to slow realm refresh 2022-03-10 20:33:14 +09:00
Dean Herbert
0267aed846 Change ToMod to return an UnknownMod rather than throw if a mod isn't available
As seen by this kind of crash, having the `.ToMod` method throw can be
very problematic and also hidden (as it is used inside of models in
places where exceptions are not expected to occur).

Given there are tens of usages of this method, returning a placeholder
mod seems like a better idea than outright throwing.

```
 An unhandled has occurred.
 System.InvalidOperationException:
There is no mod in the ruleset (osu) matching the acronym AS.
 at osu.Game.Online.API.APIMod.ToMod(Ruleset ruleset) in /Users/dean/Projects/osu/osu.Game/Online/API/APIMod.cs:line 54
 at osu.Game.Scoring.ScoreInfo.<get_Mods>b__117_0(APIMod m) in /Users/dean/Projects/osu/osu.Game/Scoring/ScoreInfo.cs:line 193
 at System.Linq.Enumerable.SelectArrayIterator`2.ToArray()
 at osu.Game.Scoring.ScoreInfo.get_Mods() in /Users/dean/Projects/osu/osu.Game/Scoring/ScoreInfo.cs:line 193
 at osu.Game.Screens.Select.Leaderboards.BeatmapLeaderboard.<>c.<subscribeToLocalScores>b__40_2(ScoreInfo s) in /Users/dean/Projects/osu/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs:line 199
 at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
 at osu.Game.Database.RealmObjectExtensions.Detach[T](IEnumerable`1 items) in /Users/dean/Projects/osu/osu.Game/Database/RealmObjectExtensions.cs:line 180
 at osu.Game.Screens.Select.Leaderboards.BeatmapLeaderboard.<>c__DisplayClass40_0.<subscribeToLocalScores>g__localScoresChanged|1(IRealmCollection`1 sender, ChangeSet changes, Exception exception) in /Users/dean/Projects/osu/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs:line
209
 at Realms.RealmCollectionBase`1.Realms.INotifiable<Realms.NotifiableObjectHandleBase.CollectionChangeSet>.NotifyCallbacks(Nullable`1 changes, Nullable`1 exception)
 at Realms.NotifiableObjectHandleBase.NotifyObjectChanged(IntPtr managedHandle, IntPtr changes, IntPtr exception)
```
2022-03-09 17:57:55 +09:00
Dean Herbert
9a347af5c7 Add test coverage of SubmittableScore serialisation to (roughly) match spec 2022-03-08 17:58:52 +09:00
Dan Balasescu
3a03833912
Merge pull request #16890 from peppy/beatmap-decoder-ruleset-store
Fix `LegacyBeatmapDecoder` not populating correct rulesets
2022-02-25 19:03:43 +09:00
Dan Balasescu
328166f0d5 Add failing test 2022-02-24 17:01:04 +09:00
Dean Herbert
631c23ea3a Merge branch 'master' into beatmap-decoder-ruleset-store 2022-02-18 16:52:33 +09:00
Dean Herbert
0138f22c8d Update existing usages to point to RealmRulesetStore 2022-02-16 17:13:54 +09:00
Dan Balasescu
bdc3b76df0 Remove beatmap bindable from PlaylistItem 2022-02-15 23:50:08 +09:00
Dan Balasescu
94a974e1c9 Make OnlinePlayBeatmapAvailabilityTracker look up the online beatmap 2022-02-15 23:41:50 +09:00
Dan Balasescu
efeba30b9f Remove ruleset and mod bindables from PlaylistItem 2022-02-15 16:28:15 +09:00
Dan Balasescu
9c2d57d707 Add failing test 2022-02-08 19:36:16 +09:00
Bartłomiej Dach
3674ed15ce
Remove unused game host parameter
No longer used since eeccf836ec.
2022-02-01 21:53:21 +01:00
Bartłomiej Dach
75101b1105
Remove unused ruleset ctor params from test beatmap model managers
No longer used since 00e3af3366.
2022-02-01 21:49:41 +01:00
Dean Herbert
cd71ec0edd Remove ILive<> interface (and use abstract Live<> instead) 2022-01-26 13:38:56 +09:00
Dean Herbert
778d2a71b4 Remove Task from the inner-most Import method in RealmArchiveModelImporter
One of my pending work items for post-realm merge.

The lowest-level import task is no longer asynchronous, as we don't want
it to span multiple threads to allow easier interaction with realm.
Removing the `Task` spec simplifies a heap of usages.

Individual usages should decide whether they want to run the import
asynchronously, by either using an alternative override or spooling up a
thread themselves.
2022-01-25 15:30:29 +09:00
Dean Herbert
3e5c9e8436 Fix cases of Access instead of Realm 2022-01-25 12:58:15 +09:00
Dean Herbert
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
Dean Herbert
114c9e8c1f Update all usages of CreateContext to use either Run or Write 2022-01-21 17:27:08 +09:00
Dean Herbert
4f8d29c1c0 Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-13 18:25:09 +09:00
Joseph Madamba
b245ffefc1 Merge remote-tracking branch 'upstream/master' into fix-remaining-identifier-names 2022-01-12 15:05:07 -08:00
Dean Herbert
ca7e11057c Use better method to ensure online availability tracker is in a clean state 2022-01-12 17:49:10 +09:00
Dean Herbert
de076678fe Fix some remaining test failures 2022-01-12 17:00:16 +09:00
Dean Herbert
31a3161189 Make tests compile again 2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
Dean Herbert
89d6ffa7f3 Use RealmContextFactory instead of EF 2022-01-12 16:39:36 +09:00
Dean Herbert
6a671b0a52 Remove unnecessary assigns of BeatmapSetInfo.Metadata 2022-01-12 16:39:36 +09:00
Dean Herbert
37673f4cf8 Update sets of BeatmapSet.Metadata to instead create a Beatmap 2022-01-12 16:39:36 +09:00
Dean Herbert
031a40af6a Replace usages of Wait with WaitSafely 2022-01-04 11:51:41 +09:00
Joseph Madamba
c22a07d9fc Bump identifier typo inspection and fix remaining identifier names 2021-12-28 11:26:42 -08:00
Joseph Madamba
98524d60a4 Fix clear identifier typos 2021-12-27 20:26:28 -08:00
Dan Balasescu
2cea39a92a
Merge pull request #16083 from peppy/fix-online-availability-after-reimport
Fix `OnlinePlayBeatmapAvailabilityTracker` failng after modified reimport of existing beatmap
2021-12-15 08:31:02 +09:00
tbrose
a831744f05 Merge remote-tracking branch 'origin/chat-mention-fix' into chat-mention-fix 2021-12-14 16:24:05 +01:00
tbrose
8e79fac389 Fixes code quality check failed 2021-12-14 16:23:51 +01:00
Dean Herbert
3bc2de4889 Add failing test coverage of modified beatmap import breaking online availability state 2021-12-14 19:11:23 +09:00
Dan Balasescu
51b6b9d857
Merge branch 'master' into chat-mention-fix 2021-12-14 11:49:57 +09:00
Dean Herbert
9e9341597d Remove unused using statement 2021-12-13 17:59:04 +09:00
Dean Herbert
309290a3c9 Use new method in more places that can benefit from it 2021-12-13 16:56:43 +09:00
tbrose
be86ca582c Adds test cases for at-sign and colon adjacent to the username 2021-12-07 02:34:35 +01:00
tbrose
0a8c4f4cec Adds test cases for usernames with special characters 2021-12-07 01:55:45 +01:00
tbrose
f02e44d552 Fixes not matching coding style 2021-12-07 01:38:48 +01:00
tbrose
0a6c221de4 Adds tests for checkContainsUsername function of MessageNotifier component 2021-12-06 22:07:47 +01:00
Dean Herbert
eeccf836ec Remove unnecessary GameHost parameter 2021-11-25 17:42:41 +09:00
Dean Herbert
716543b5b3 Move beatmap download logic out of BeatmapManager 2021-11-25 17:29:41 +09:00
Dean Herbert
cb093e1e01 Remove reundant self-sets of metadata 2021-11-24 15:08:04 +09:00
Dean Herbert
44c34ca7b2 Revert changes causing BeatmapSet.Metadata to be expectedly null in some tests 2021-11-24 14:52:08 +09:00
Dean Herbert
8c60f37508 Fix cases of dynamically assigning Beatmaps to BeatmapSetInfo using list assignment 2021-11-24 13:27:37 +09:00
Dean Herbert
62d670a3ca Update DifficultyCalculator to take an IWorkingBeatmap 2021-11-15 19:16:48 +09:00
Dean Herbert
692e846acd Rename BeatmapSetInfo.OnlineBeatmapSetID to OnlineID to match interface 2021-11-12 17:52:44 +09:00
Bartłomiej Dach
a1b55d6490
Add failing test case 2021-11-09 13:34:36 +01:00