mirror of
https://github.com/ppy/osu.git
synced 2025-01-12 17:43:05 +08:00
Merge pull request #7046 from smoogipoo/fix-replay-button
Fix replay download button not working
This commit is contained in:
commit
ca1f3417a3
73
osu.Game.Tests/Scores/IO/TestScoreEquality.cs
Normal file
73
osu.Game.Tests/Scores/IO/TestScoreEquality.cs
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using NUnit.Framework;
|
||||||
|
using osu.Game.Scoring;
|
||||||
|
|
||||||
|
namespace osu.Game.Tests.Scores.IO
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
public class TestScoreEquality
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void TestNonMatchingByReference()
|
||||||
|
{
|
||||||
|
ScoreInfo score1 = new ScoreInfo();
|
||||||
|
ScoreInfo score2 = new ScoreInfo();
|
||||||
|
|
||||||
|
Assert.That(score1, Is.Not.EqualTo(score2));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestMatchingByReference()
|
||||||
|
{
|
||||||
|
ScoreInfo score = new ScoreInfo();
|
||||||
|
|
||||||
|
Assert.That(score, Is.EqualTo(score));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestNonMatchingByPrimaryKey()
|
||||||
|
{
|
||||||
|
ScoreInfo score1 = new ScoreInfo { ID = 1 };
|
||||||
|
ScoreInfo score2 = new ScoreInfo { ID = 2 };
|
||||||
|
|
||||||
|
Assert.That(score1, Is.Not.EqualTo(score2));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestMatchingByPrimaryKey()
|
||||||
|
{
|
||||||
|
ScoreInfo score1 = new ScoreInfo { ID = 1 };
|
||||||
|
ScoreInfo score2 = new ScoreInfo { ID = 1 };
|
||||||
|
|
||||||
|
Assert.That(score1, Is.EqualTo(score2));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestNonMatchingByHash()
|
||||||
|
{
|
||||||
|
ScoreInfo score1 = new ScoreInfo { Hash = "a" };
|
||||||
|
ScoreInfo score2 = new ScoreInfo { Hash = "b" };
|
||||||
|
|
||||||
|
Assert.That(score1, Is.Not.EqualTo(score2));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestMatchingByHash()
|
||||||
|
{
|
||||||
|
ScoreInfo score1 = new ScoreInfo { Hash = "a" };
|
||||||
|
ScoreInfo score2 = new ScoreInfo { Hash = "a" };
|
||||||
|
|
||||||
|
Assert.That(score1, Is.EqualTo(score2));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestNonMatchingByNull()
|
||||||
|
{
|
||||||
|
ScoreInfo score = new ScoreInfo();
|
||||||
|
|
||||||
|
Assert.That(score, Is.Not.EqualTo(null));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -183,10 +183,21 @@ namespace osu.Game.Scoring
|
|||||||
|
|
||||||
public override string ToString() => $"{User} playing {Beatmap}";
|
public override string ToString() => $"{User} playing {Beatmap}";
|
||||||
|
|
||||||
public bool Equals(ScoreInfo other) =>
|
public bool Equals(ScoreInfo other)
|
||||||
other != null
|
{
|
||||||
&& other.OnlineScoreID == OnlineScoreID
|
if (other == null)
|
||||||
&& other.BeatmapInfoID == BeatmapInfoID
|
return false;
|
||||||
&& other.Hash == Hash;
|
|
||||||
|
if (ID != 0 && other.ID != 0)
|
||||||
|
return ID == other.ID;
|
||||||
|
|
||||||
|
if (OnlineScoreID.HasValue && other.OnlineScoreID.HasValue)
|
||||||
|
return OnlineScoreID == other.OnlineScoreID;
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(Hash) && !string.IsNullOrEmpty(other.Hash))
|
||||||
|
return Hash == other.Hash;
|
||||||
|
|
||||||
|
return ReferenceEquals(this, other);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user