1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 23:23:04 +08:00

Merge pull request #8828 from peppy/fix-empty-version-brackets-string

Fix beatmap string output having empty brackets when pieces are missing
This commit is contained in:
Dan Balasescu 2020-04-22 10:20:28 +09:00 committed by GitHub
commit 8ebe50c779
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 72 additions and 2 deletions

View File

@ -0,0 +1,61 @@
// 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.Beatmaps;
using osu.Game.Users;
namespace osu.Game.Tests.Beatmaps
{
[TestFixture]
public class ToStringFormattingTest
{
[Test]
public void TestArtistTitle()
{
var beatmap = new BeatmapInfo
{
Metadata = new BeatmapMetadata
{
Artist = "artist",
Title = "title"
}
};
Assert.That(beatmap.ToString(), Is.EqualTo("artist - title"));
}
[Test]
public void TestArtistTitleCreator()
{
var beatmap = new BeatmapInfo
{
Metadata = new BeatmapMetadata
{
Artist = "artist",
Title = "title",
Author = new User { Username = "creator" }
}
};
Assert.That(beatmap.ToString(), Is.EqualTo("artist - title (creator)"));
}
[Test]
public void TestArtistTitleCreatorDifficulty()
{
var beatmap = new BeatmapInfo
{
Metadata = new BeatmapMetadata
{
Artist = "artist",
Title = "title",
Author = new User { Username = "creator" }
},
Version = "difficulty"
};
Assert.That(beatmap.ToString(), Is.EqualTo("artist - title (creator) [difficulty]"));
}
}
}

View File

@ -149,7 +149,12 @@ namespace osu.Game.Beatmaps
} }
} }
public override string ToString() => $"{Metadata} [{Version}]".Trim(); public override string ToString()
{
string version = string.IsNullOrEmpty(Version) ? string.Empty : $"[{Version}]";
return $"{Metadata} {version}".Trim();
}
public bool Equals(BeatmapInfo other) public bool Equals(BeatmapInfo other)
{ {

View File

@ -53,7 +53,11 @@ namespace osu.Game.Beatmaps
public string AudioFile { get; set; } public string AudioFile { get; set; }
public string BackgroundFile { get; set; } public string BackgroundFile { get; set; }
public override string ToString() => $"{Artist} - {Title} ({Author})"; public override string ToString()
{
string author = Author == null ? string.Empty : $"({Author})";
return $"{Artist} - {Title} {author}".Trim();
}
[JsonIgnore] [JsonIgnore]
public string[] SearchableTerms => new[] public string[] SearchableTerms => new[]