mirror of
https://github.com/ppy/osu.git
synced 2025-03-05 11:43:01 +08:00
Handle score submission request in submission test scene
Was previously not handled at all, therefore displaying request failures in the test log output. While that was mostly a red herring and shouldn't have caused any actual *test* failures, it is still better to handle this explicitly in a realistic manner.
This commit is contained in:
parent
a9e4a0fd61
commit
84765b99b3
@ -57,7 +57,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestNoSubmissionOnResultsWithNoToken()
|
public void TestNoSubmissionOnResultsWithNoToken()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(false);
|
prepareTestAPI(false);
|
||||||
|
|
||||||
createPlayerTest();
|
createPlayerTest();
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestSubmissionOnResults()
|
public void TestSubmissionOnResults()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(true);
|
prepareTestAPI(true);
|
||||||
|
|
||||||
createPlayerTest();
|
createPlayerTest();
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestSubmissionForDifferentRuleset()
|
public void TestSubmissionForDifferentRuleset()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(true);
|
prepareTestAPI(true);
|
||||||
|
|
||||||
createPlayerTest(createRuleset: () => new TaikoRuleset());
|
createPlayerTest(createRuleset: () => new TaikoRuleset());
|
||||||
|
|
||||||
@ -116,7 +116,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestSubmissionForConvertedBeatmap()
|
public void TestSubmissionForConvertedBeatmap()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(true);
|
prepareTestAPI(true);
|
||||||
|
|
||||||
createPlayerTest(createRuleset: () => new ManiaRuleset(), createBeatmap: _ => createTestBeatmap(new OsuRuleset().RulesetInfo));
|
createPlayerTest(createRuleset: () => new ManiaRuleset(), createBeatmap: _ => createTestBeatmap(new OsuRuleset().RulesetInfo));
|
||||||
|
|
||||||
@ -136,7 +136,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestNoSubmissionOnExitWithNoToken()
|
public void TestNoSubmissionOnExitWithNoToken()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(false);
|
prepareTestAPI(false);
|
||||||
|
|
||||||
createPlayerTest();
|
createPlayerTest();
|
||||||
|
|
||||||
@ -153,7 +153,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestNoSubmissionOnEmptyFail()
|
public void TestNoSubmissionOnEmptyFail()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(true);
|
prepareTestAPI(true);
|
||||||
|
|
||||||
createPlayerTest(true);
|
createPlayerTest(true);
|
||||||
|
|
||||||
@ -168,7 +168,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestSubmissionOnFail()
|
public void TestSubmissionOnFail()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(true);
|
prepareTestAPI(true);
|
||||||
|
|
||||||
createPlayerTest(true);
|
createPlayerTest(true);
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestNoSubmissionOnEmptyExit()
|
public void TestNoSubmissionOnEmptyExit()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(true);
|
prepareTestAPI(true);
|
||||||
|
|
||||||
createPlayerTest();
|
createPlayerTest();
|
||||||
|
|
||||||
@ -198,7 +198,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestSubmissionOnExit()
|
public void TestSubmissionOnExit()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(true);
|
prepareTestAPI(true);
|
||||||
|
|
||||||
createPlayerTest();
|
createPlayerTest();
|
||||||
|
|
||||||
@ -213,7 +213,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestSubmissionOnExitDuringImport()
|
public void TestSubmissionOnExitDuringImport()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(true);
|
prepareTestAPI(true);
|
||||||
|
|
||||||
createPlayerTest();
|
createPlayerTest();
|
||||||
AddStep("block imports", () => Player.AllowImportCompletion.Wait());
|
AddStep("block imports", () => Player.AllowImportCompletion.Wait());
|
||||||
@ -232,7 +232,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[Test]
|
[Test]
|
||||||
public void TestNoSubmissionOnLocalBeatmap()
|
public void TestNoSubmissionOnLocalBeatmap()
|
||||||
{
|
{
|
||||||
prepareTokenResponse(true);
|
prepareTestAPI(true);
|
||||||
|
|
||||||
createPlayerTest(false, r =>
|
createPlayerTest(false, r =>
|
||||||
{
|
{
|
||||||
@ -253,7 +253,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
[TestCase(10)]
|
[TestCase(10)]
|
||||||
public void TestNoSubmissionOnCustomRuleset(int? rulesetId)
|
public void TestNoSubmissionOnCustomRuleset(int? rulesetId)
|
||||||
{
|
{
|
||||||
prepareTokenResponse(true);
|
prepareTestAPI(true);
|
||||||
|
|
||||||
createPlayerTest(false, createRuleset: () => new OsuRuleset { RulesetInfo = { OnlineID = rulesetId ?? -1 } });
|
createPlayerTest(false, createRuleset: () => new OsuRuleset { RulesetInfo = { OnlineID = rulesetId ?? -1 } });
|
||||||
|
|
||||||
@ -275,7 +275,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void prepareTokenResponse(bool validToken)
|
private void prepareTestAPI(bool validToken)
|
||||||
{
|
{
|
||||||
AddStep("Prepare test API", () =>
|
AddStep("Prepare test API", () =>
|
||||||
{
|
{
|
||||||
@ -289,6 +289,31 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
else
|
else
|
||||||
tokenRequest.TriggerFailure(new APIException("something went wrong!", null));
|
tokenRequest.TriggerFailure(new APIException("something went wrong!", null));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
case SubmitSoloScoreRequest submissionRequest:
|
||||||
|
if (validToken)
|
||||||
|
{
|
||||||
|
var requestScore = submissionRequest.Score;
|
||||||
|
|
||||||
|
submissionRequest.TriggerSuccess(new MultiplayerScore
|
||||||
|
{
|
||||||
|
ID = 1234,
|
||||||
|
User = dummyAPI.LocalUser.Value,
|
||||||
|
Rank = requestScore.Rank,
|
||||||
|
TotalScore = requestScore.TotalScore,
|
||||||
|
Accuracy = requestScore.Accuracy,
|
||||||
|
MaxCombo = requestScore.MaxCombo,
|
||||||
|
Mods = requestScore.Mods,
|
||||||
|
Statistics = requestScore.Statistics,
|
||||||
|
Passed = requestScore.Passed,
|
||||||
|
EndedAt = DateTimeOffset.Now,
|
||||||
|
Position = 1
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -12,17 +12,17 @@ namespace osu.Game.Online.Solo
|
|||||||
{
|
{
|
||||||
public class SubmitSoloScoreRequest : APIRequest<MultiplayerScore>
|
public class SubmitSoloScoreRequest : APIRequest<MultiplayerScore>
|
||||||
{
|
{
|
||||||
|
public readonly SubmittableScore Score;
|
||||||
|
|
||||||
private readonly long scoreId;
|
private readonly long scoreId;
|
||||||
|
|
||||||
private readonly int beatmapId;
|
private readonly int beatmapId;
|
||||||
|
|
||||||
private readonly SubmittableScore score;
|
|
||||||
|
|
||||||
public SubmitSoloScoreRequest(int beatmapId, long scoreId, ScoreInfo scoreInfo)
|
public SubmitSoloScoreRequest(int beatmapId, long scoreId, ScoreInfo scoreInfo)
|
||||||
{
|
{
|
||||||
this.beatmapId = beatmapId;
|
this.beatmapId = beatmapId;
|
||||||
this.scoreId = scoreId;
|
this.scoreId = scoreId;
|
||||||
score = new SubmittableScore(scoreInfo);
|
Score = new SubmittableScore(scoreInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override WebRequest CreateWebRequest()
|
protected override WebRequest CreateWebRequest()
|
||||||
@ -33,7 +33,7 @@ namespace osu.Game.Online.Solo
|
|||||||
req.Method = HttpMethod.Put;
|
req.Method = HttpMethod.Put;
|
||||||
req.Timeout = 30000;
|
req.Timeout = 30000;
|
||||||
|
|
||||||
req.AddRaw(JsonConvert.SerializeObject(score, new JsonSerializerSettings
|
req.AddRaw(JsonConvert.SerializeObject(Score, new JsonSerializerSettings
|
||||||
{
|
{
|
||||||
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
|
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
|
||||||
}));
|
}));
|
||||||
|
Loading…
Reference in New Issue
Block a user