Skip to content

Commit e656d9f

Browse files
committed
Fix TestBeatmapProvider not ensuring beatmap
1 parent 3edb9da commit e656d9f

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

Difficalcy/Services/TestBeatmapProvider.cs

+11-8
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,30 @@
22
using System.IO;
33
using System.Reflection;
44
using System.Threading.Tasks;
5+
using Microsoft.AspNetCore.Http;
56

67
namespace Difficalcy.Services
78
{
89
public class TestBeatmapProvider(string resourceAssemblyName) : IBeatmapProvider
910
{
1011
public Task EnsureBeatmap(string beatmapId)
1112
{
12-
var resourceName = $"{resourceAssemblyName}.Resources.{beatmapId}";
13-
var info = ResourceAssembly.GetManifestResourceInfo(resourceName);
14-
return Task.FromResult(info != null);
13+
var resourceName = GetResourceName(beatmapId);
14+
_ = ResourceAssembly.GetManifestResourceInfo(resourceName) ?? throw new BadHttpRequestException($"Beatmap not found: {beatmapId}");
15+
return Task.CompletedTask;
1516
}
1617

1718
public Stream GetBeatmapStream(string beatmapId)
19+
{
20+
var resourceName = GetResourceName(beatmapId);
21+
return ResourceAssembly.GetManifestResourceStream(resourceName);
22+
}
23+
24+
private string GetResourceName(string beatmapId)
1825
{
1926
var resourceNamespace = "Testing.Beatmaps";
2027
var resourceName = $"{resourceNamespace}.{beatmapId}.osu";
21-
var fullResourceName = $"{resourceAssemblyName}.Resources.{resourceName}";
22-
var stream = ResourceAssembly.GetManifestResourceStream(fullResourceName);
23-
if (stream == null)
24-
throw new Exception($@"Unable to find resource ""{fullResourceName}"" in assembly ""{resourceAssemblyName}""");
25-
return stream;
28+
return $"{resourceAssemblyName}.Resources.{resourceName}";
2629
}
2730

2831
private Assembly ResourceAssembly

0 commit comments

Comments
 (0)