mirror of https://github.com/ppy/osu
Add test coverage for beatmap confusion scenarios
This commit is contained in:
parent
7bc571dd51
commit
80b14f1aae
|
@ -193,5 +193,110 @@ public void TestNoAvailableSources([Values] bool preferOnlineFetch)
|
||||||
|
|
||||||
Assert.That(beatmap.OnlineID, Is.EqualTo(123456));
|
Assert.That(beatmap.OnlineID, Is.EqualTo(123456));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestReturnedMetadataHasDifferentOnlineID([Values] bool preferOnlineFetch)
|
||||||
|
{
|
||||||
|
var lookupResult = new OnlineBeatmapMetadata { BeatmapID = 654321, BeatmapStatus = BeatmapOnlineStatus.Ranked };
|
||||||
|
|
||||||
|
var targetMock = preferOnlineFetch ? apiMetadataSourceMock : localCachedMetadataSourceMock;
|
||||||
|
targetMock.Setup(src => src.Available).Returns(true);
|
||||||
|
targetMock.Setup(src => src.TryLookup(It.IsAny<BeatmapInfo>(), out lookupResult))
|
||||||
|
.Returns(true);
|
||||||
|
|
||||||
|
var beatmap = new BeatmapInfo { OnlineID = 123456 };
|
||||||
|
var beatmapSet = new BeatmapSetInfo(beatmap.Yield());
|
||||||
|
beatmap.BeatmapSet = beatmapSet;
|
||||||
|
|
||||||
|
metadataLookup.Update(beatmapSet, preferOnlineFetch);
|
||||||
|
|
||||||
|
Assert.That(beatmap.Status, Is.EqualTo(BeatmapOnlineStatus.None));
|
||||||
|
Assert.That(beatmap.OnlineID, Is.EqualTo(-1));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestMetadataLookupForBeatmapWithoutPopulatedIDAndCorrectHash([Values] bool preferOnlineFetch)
|
||||||
|
{
|
||||||
|
var lookupResult = new OnlineBeatmapMetadata
|
||||||
|
{
|
||||||
|
BeatmapID = 654321,
|
||||||
|
BeatmapStatus = BeatmapOnlineStatus.Ranked,
|
||||||
|
MD5Hash = @"deadbeef",
|
||||||
|
};
|
||||||
|
|
||||||
|
var targetMock = preferOnlineFetch ? apiMetadataSourceMock : localCachedMetadataSourceMock;
|
||||||
|
targetMock.Setup(src => src.Available).Returns(true);
|
||||||
|
targetMock.Setup(src => src.TryLookup(It.IsAny<BeatmapInfo>(), out lookupResult))
|
||||||
|
.Returns(true);
|
||||||
|
|
||||||
|
var beatmap = new BeatmapInfo
|
||||||
|
{
|
||||||
|
MD5Hash = @"deadbeef"
|
||||||
|
};
|
||||||
|
var beatmapSet = new BeatmapSetInfo(beatmap.Yield());
|
||||||
|
beatmap.BeatmapSet = beatmapSet;
|
||||||
|
|
||||||
|
metadataLookup.Update(beatmapSet, preferOnlineFetch);
|
||||||
|
|
||||||
|
Assert.That(beatmap.Status, Is.EqualTo(BeatmapOnlineStatus.Ranked));
|
||||||
|
Assert.That(beatmap.OnlineID, Is.EqualTo(654321));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestMetadataLookupForBeatmapWithoutPopulatedIDAndIncorrectHash([Values] bool preferOnlineFetch)
|
||||||
|
{
|
||||||
|
var lookupResult = new OnlineBeatmapMetadata
|
||||||
|
{
|
||||||
|
BeatmapID = 654321,
|
||||||
|
BeatmapStatus = BeatmapOnlineStatus.Ranked,
|
||||||
|
MD5Hash = @"cafebabe",
|
||||||
|
};
|
||||||
|
|
||||||
|
var targetMock = preferOnlineFetch ? apiMetadataSourceMock : localCachedMetadataSourceMock;
|
||||||
|
targetMock.Setup(src => src.Available).Returns(true);
|
||||||
|
targetMock.Setup(src => src.TryLookup(It.IsAny<BeatmapInfo>(), out lookupResult))
|
||||||
|
.Returns(true);
|
||||||
|
|
||||||
|
var beatmap = new BeatmapInfo
|
||||||
|
{
|
||||||
|
MD5Hash = @"deadbeef"
|
||||||
|
};
|
||||||
|
var beatmapSet = new BeatmapSetInfo(beatmap.Yield());
|
||||||
|
beatmap.BeatmapSet = beatmapSet;
|
||||||
|
|
||||||
|
metadataLookup.Update(beatmapSet, preferOnlineFetch);
|
||||||
|
|
||||||
|
Assert.That(beatmap.Status, Is.EqualTo(BeatmapOnlineStatus.None));
|
||||||
|
Assert.That(beatmap.OnlineID, Is.EqualTo(-1));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestReturnedMetadataHasDifferentHash([Values] bool preferOnlineFetch)
|
||||||
|
{
|
||||||
|
var lookupResult = new OnlineBeatmapMetadata
|
||||||
|
{
|
||||||
|
BeatmapID = 654321,
|
||||||
|
BeatmapStatus = BeatmapOnlineStatus.Ranked,
|
||||||
|
MD5Hash = @"deadbeef"
|
||||||
|
};
|
||||||
|
|
||||||
|
var targetMock = preferOnlineFetch ? apiMetadataSourceMock : localCachedMetadataSourceMock;
|
||||||
|
targetMock.Setup(src => src.Available).Returns(true);
|
||||||
|
targetMock.Setup(src => src.TryLookup(It.IsAny<BeatmapInfo>(), out lookupResult))
|
||||||
|
.Returns(true);
|
||||||
|
|
||||||
|
var beatmap = new BeatmapInfo
|
||||||
|
{
|
||||||
|
OnlineID = 654321,
|
||||||
|
MD5Hash = @"cafebabe",
|
||||||
|
};
|
||||||
|
var beatmapSet = new BeatmapSetInfo(beatmap.Yield());
|
||||||
|
beatmap.BeatmapSet = beatmapSet;
|
||||||
|
|
||||||
|
metadataLookup.Update(beatmapSet, preferOnlineFetch);
|
||||||
|
|
||||||
|
Assert.That(beatmap.Status, Is.EqualTo(BeatmapOnlineStatus.None));
|
||||||
|
Assert.That(beatmap.OnlineID, Is.EqualTo(654321));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue