From 7f95400f466beafe6fa94c002cfd6ed8dc3f4f94 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 12 Oct 2021 10:57:54 +0900 Subject: [PATCH] Add proper stream disposal to tests --- .../Editing/Checks/CheckAudioInVideoTest.cs | 29 +++++++------ .../Checks/CheckTooShortAudioFilesTest.cs | 41 ++++++++++++------- 2 files changed, 42 insertions(+), 28 deletions(-) diff --git a/osu.Game.Tests/Editing/Checks/CheckAudioInVideoTest.cs b/osu.Game.Tests/Editing/Checks/CheckAudioInVideoTest.cs index 04baf7d854..f3a4f10210 100644 --- a/osu.Game.Tests/Editing/Checks/CheckAudioInVideoTest.cs +++ b/osu.Game.Tests/Editing/Checks/CheckAudioInVideoTest.cs @@ -49,25 +49,32 @@ namespace osu.Game.Tests.Editing.Checks [Test] public void TestRegularVideoFile() { - Assert.IsEmpty(check.Run(getContext("Videos/test-video.mp4"))); + using (var resourceStream = TestResources.OpenResource("Videos/test-video.mp4")) + Assert.IsEmpty(check.Run(getContext(resourceStream))); } [Test] public void TestVideoFileWithAudio() { - var issues = check.Run(getContext("Videos/test-video-with-audio.mp4")).ToList(); + using (var resourceStream = TestResources.OpenResource("Videos/test-video-with-audio.mp4")) + { + var issues = check.Run(getContext(resourceStream)).ToList(); - Assert.That(issues, Has.Count.EqualTo(1)); - Assert.That(issues.Single().Template is CheckAudioInVideo.IssueTemplateHasAudioTrack); + Assert.That(issues, Has.Count.EqualTo(1)); + Assert.That(issues.Single().Template is CheckAudioInVideo.IssueTemplateHasAudioTrack); + } } [Test] public void TestVideoFileWithTrackButNoAudio() { - var issues = check.Run(getContext("Videos/test-video-with-track-but-no-audio.mp4")).ToList(); + using (var resourceStream = TestResources.OpenResource("Videos/test-video-with-track-but-no-audio.mp4")) + { + var issues = check.Run(getContext(resourceStream)).ToList(); - Assert.That(issues, Has.Count.EqualTo(1)); - Assert.That(issues.Single().Template is CheckAudioInVideo.IssueTemplateHasAudioTrack); + Assert.That(issues, Has.Count.EqualTo(1)); + Assert.That(issues.Single().Template is CheckAudioInVideo.IssueTemplateHasAudioTrack); + } } [Test] @@ -75,18 +82,14 @@ namespace osu.Game.Tests.Editing.Checks { beatmap.BeatmapInfo.BeatmapSet.Files.Clear(); - var issues = check.Run(getContext("Videos/missing.mp4", allowMissing: true)).ToList(); + var issues = check.Run(getContext(null)).ToList(); Assert.That(issues, Has.Count.EqualTo(1)); Assert.That(issues.Single().Template is CheckAudioInVideo.IssueTemplateMissingFile); } - private BeatmapVerifierContext getContext(string resourceName, bool allowMissing = false) + private BeatmapVerifierContext getContext(Stream resourceStream) { - Stream resourceStream = string.IsNullOrEmpty(resourceName) ? null : TestResources.OpenResource(resourceName); - if (!allowMissing && resourceStream == null) - throw new FileNotFoundException($"The requested test resource \"{resourceName}\" does not exist."); - var storyboard = new Storyboard(); var layer = storyboard.GetLayer("Video"); layer.Add(new StoryboardVideo("abc123.mp4", 0)); diff --git a/osu.Game.Tests/Editing/Checks/CheckTooShortAudioFilesTest.cs b/osu.Game.Tests/Editing/Checks/CheckTooShortAudioFilesTest.cs index e978af5e49..9b090591bc 100644 --- a/osu.Game.Tests/Editing/Checks/CheckTooShortAudioFilesTest.cs +++ b/osu.Game.Tests/Editing/Checks/CheckTooShortAudioFilesTest.cs @@ -68,46 +68,57 @@ namespace osu.Game.Tests.Editing.Checks [Test] public void TestRegularAudioFile() { - Assert.IsEmpty(check.Run(getContext("Samples/test-sample.mp3"))); + using (var resourceStream = TestResources.OpenResource("Samples/test-sample.mp3")) + { + Assert.IsEmpty(check.Run(getContext(resourceStream))); + } } [Test] public void TestBlankAudioFile() { - // This is a 0 ms duration audio file, commonly used to silence sliderslides/ticks, and so should be fine. - Assert.IsEmpty(check.Run(getContext("Samples/blank.wav"))); + using (var resourceStream = TestResources.OpenResource("Samples/blank.wav")) + { + // This is a 0 ms duration audio file, commonly used to silence sliderslides/ticks, and so should be fine. + Assert.IsEmpty(check.Run(getContext(resourceStream))); + } } [Test] public void TestTooShortAudioFile() { - var issues = check.Run(getContext("Samples/test-sample-cut.mp3")).ToList(); + using (var resourceStream = TestResources.OpenResource("Samples/test-sample-cut.mp3")) + { + var issues = check.Run(getContext(resourceStream)).ToList(); - Assert.That(issues, Has.Count.EqualTo(1)); - Assert.That(issues.Single().Template is CheckTooShortAudioFiles.IssueTemplateTooShort); + Assert.That(issues, Has.Count.EqualTo(1)); + Assert.That(issues.Single().Template is CheckTooShortAudioFiles.IssueTemplateTooShort); + } } [Test] public void TestMissingAudioFile() { - Assert.IsEmpty(check.Run(getContext("Samples/missing.mp3", allowMissing: true))); + using (var resourceStream = TestResources.OpenResource("Samples/missing.mp3")) + { + Assert.IsEmpty(check.Run(getContext(resourceStream, allowMissing: true))); + } } [Test] public void TestCorruptAudioFile() { - var issues = check.Run(getContext("Samples/corrupt.wav")).ToList(); + using (var resourceStream = TestResources.OpenResource("Samples/corrupt.wav")) + { + var issues = check.Run(getContext(resourceStream)).ToList(); - Assert.That(issues, Has.Count.EqualTo(1)); - Assert.That(issues.Single().Template is CheckTooShortAudioFiles.IssueTemplateBadFormat); + Assert.That(issues, Has.Count.EqualTo(1)); + Assert.That(issues.Single().Template is CheckTooShortAudioFiles.IssueTemplateBadFormat); + } } - private BeatmapVerifierContext getContext(string resourceName, bool allowMissing = false) + private BeatmapVerifierContext getContext(Stream resourceStream, bool allowMissing = false) { - Stream resourceStream = string.IsNullOrEmpty(resourceName) ? null : TestResources.OpenResource(resourceName); - if (!allowMissing && resourceStream == null) - throw new FileNotFoundException($"The requested test resource \"{resourceName}\" does not exist."); - var mockWorkingBeatmap = new Mock(beatmap, null, null); mockWorkingBeatmap.Setup(w => w.GetStream(It.IsAny())).Returns(resourceStream);