diff --git a/FFMpegCore.Test/FFMpegArgumentProcessorTest.cs b/FFMpegCore.Test/FFMpegArgumentProcessorTest.cs index bb7071d8..289234f4 100644 --- a/FFMpegCore.Test/FFMpegArgumentProcessorTest.cs +++ b/FFMpegCore.Test/FFMpegArgumentProcessorTest.cs @@ -1,6 +1,9 @@ using System.Reflection; using FFMpegCore.Arguments; +using FFMpegCore.Exceptions; +using FFMpegCore.Helpers; using FluentAssertions; +using Instances.Exceptions; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace FFMpegCore.Test @@ -99,5 +102,12 @@ public void Audible_Aax_Test() var arg = new AudibleEncryptionKeyArgument("62689101"); arg.Text.Should().Be($"-activation_bytes 62689101"); } + + [TestMethod] + public void Throws_FFMpegException_when_ffmpeg_not_found() + { + var exception = Assert.ThrowsException(() => FFMpegHelper.VerifyFFMpegExists(new FFOptions { BinaryFolder = "./folder/that/does/not/exist" })); + Assert.IsInstanceOfType(exception.InnerException); + } } } diff --git a/FFMpegCore/Helpers/FFMpegHelper.cs b/FFMpegCore/Helpers/FFMpegHelper.cs index 3fb03eb8..0d64cb83 100644 --- a/FFMpegCore/Helpers/FFMpegHelper.cs +++ b/FFMpegCore/Helpers/FFMpegHelper.cs @@ -42,8 +42,16 @@ public static void VerifyFFMpegExists(FFOptions ffMpegOptions) return; } - var result = Instance.Finish(GlobalFFOptions.GetFFMpegBinaryPath(ffMpegOptions), "-version"); - _ffmpegVerified = result.ExitCode == 0; + try + { + var result = Instance.Finish(GlobalFFOptions.GetFFMpegBinaryPath(ffMpegOptions), "-version"); + _ffmpegVerified = result.ExitCode == 0; + } + catch (Exception e) + { + throw new FFMpegException(FFMpegExceptionType.Operation, "ffmpeg was not found on your system", e); + } + if (!_ffmpegVerified) { throw new FFMpegException(FFMpegExceptionType.Operation, "ffmpeg was not found on your system");