mirror of
https://github.com/ppy/osu.git
synced 2024-12-13 08:32:57 +08:00
Fix replay download button not working
This commit is contained in:
parent
8a6b2e681a
commit
aadbbb1af3
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 bool Equals(ScoreInfo other) =>
|
||||
other != null
|
||||
&& other.OnlineScoreID == OnlineScoreID
|
||||
&& other.BeatmapInfoID == BeatmapInfoID
|
||||
&& other.Hash == Hash;
|
||||
public bool Equals(ScoreInfo other)
|
||||
{
|
||||
if (other == null)
|
||||
return false;
|
||||
|
||||
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