mirror of
https://github.com/osukey/osukey.git
synced 2025-08-06 16:13:57 +09:00
Add test coverage of ruleset being marked unavailable if methods are throwing
This commit is contained in:
@ -60,15 +60,40 @@ namespace osu.Game.Tests.Database
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestRulesetThrowingOnMethods()
|
||||||
|
{
|
||||||
|
RunTestWithRealm((realm, storage) =>
|
||||||
|
{
|
||||||
|
LoadTestRuleset.Version = Ruleset.CURRENT_RULESET_API_VERSION;
|
||||||
|
LoadTestRuleset.HasImplementations = false;
|
||||||
|
|
||||||
|
var ruleset = new LoadTestRuleset();
|
||||||
|
string rulesetShortName = ruleset.RulesetInfo.ShortName;
|
||||||
|
|
||||||
|
realm.Write(r => r.Add(new RulesetInfo(rulesetShortName, ruleset.RulesetInfo.Name, ruleset.RulesetInfo.InstantiationInfo, ruleset.RulesetInfo.OnlineID)
|
||||||
|
{
|
||||||
|
Available = true,
|
||||||
|
}));
|
||||||
|
|
||||||
|
Assert.That(realm.Run(r => r.Find<RulesetInfo>(rulesetShortName).Available), Is.True);
|
||||||
|
|
||||||
|
// Availability is updated on construction of a RealmRulesetStore
|
||||||
|
var _ = new RealmRulesetStore(realm, storage);
|
||||||
|
|
||||||
|
Assert.That(realm.Run(r => r.Find<RulesetInfo>(rulesetShortName).Available), Is.False);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestOutdatedRulesetNotAvailable()
|
public void TestOutdatedRulesetNotAvailable()
|
||||||
{
|
{
|
||||||
RunTestWithRealm((realm, storage) =>
|
RunTestWithRealm((realm, storage) =>
|
||||||
{
|
{
|
||||||
OutdatedRuleset.Version = "2021.101.0";
|
LoadTestRuleset.Version = "2021.101.0";
|
||||||
OutdatedRuleset.HasImplementations = true;
|
LoadTestRuleset.HasImplementations = true;
|
||||||
|
|
||||||
var ruleset = new OutdatedRuleset();
|
var ruleset = new LoadTestRuleset();
|
||||||
string rulesetShortName = ruleset.RulesetInfo.ShortName;
|
string rulesetShortName = ruleset.RulesetInfo.ShortName;
|
||||||
|
|
||||||
realm.Write(r => r.Add(new RulesetInfo(rulesetShortName, ruleset.RulesetInfo.Name, ruleset.RulesetInfo.InstantiationInfo, ruleset.RulesetInfo.OnlineID)
|
realm.Write(r => r.Add(new RulesetInfo(rulesetShortName, ruleset.RulesetInfo.Name, ruleset.RulesetInfo.InstantiationInfo, ruleset.RulesetInfo.OnlineID)
|
||||||
@ -84,14 +109,14 @@ namespace osu.Game.Tests.Database
|
|||||||
Assert.That(realm.Run(r => r.Find<RulesetInfo>(rulesetShortName).Available), Is.False);
|
Assert.That(realm.Run(r => r.Find<RulesetInfo>(rulesetShortName).Available), Is.False);
|
||||||
|
|
||||||
// Simulate the ruleset getting updated
|
// Simulate the ruleset getting updated
|
||||||
OutdatedRuleset.Version = Ruleset.CURRENT_RULESET_API_VERSION;
|
LoadTestRuleset.Version = Ruleset.CURRENT_RULESET_API_VERSION;
|
||||||
var __ = new RealmRulesetStore(realm, storage);
|
var __ = new RealmRulesetStore(realm, storage);
|
||||||
|
|
||||||
Assert.That(realm.Run(r => r.Find<RulesetInfo>(rulesetShortName).Available), Is.True);
|
Assert.That(realm.Run(r => r.Find<RulesetInfo>(rulesetShortName).Available), Is.True);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private class OutdatedRuleset : Ruleset
|
private class LoadTestRuleset : Ruleset
|
||||||
{
|
{
|
||||||
public override string RulesetAPIVersionSupported => Version;
|
public override string RulesetAPIVersionSupported => Version;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user