diff --git a/FFMpegCore.Test/FFMpegArgumentProcessorTest.cs b/FFMpegCore.Test/FFMpegArgumentProcessorTest.cs
index 7607b04..1820b9b 100644
--- a/FFMpegCore.Test/FFMpegArgumentProcessorTest.cs
+++ b/FFMpegCore.Test/FFMpegArgumentProcessorTest.cs
@@ -1,20 +1,10 @@
-using System.Reflection;
-using FFMpegCore.Arguments;
-using FluentAssertions;
+using FFMpegCore.Arguments;
namespace FFMpegCore.Test;
[TestClass]
public class FFMpegArgumentProcessorTest
{
- [TestCleanup]
- public void TestInitialize()
-
- {
- // After testing reset global configuration to null, to be not wrong for other test relying on configuration
- typeof(GlobalFFOptions).GetField("_current", BindingFlags.NonPublic | BindingFlags.Static)!.SetValue(GlobalFFOptions.Current, null);
- }
-
private static FFMpegArgumentProcessor CreateArgumentProcessor()
{
return FFMpegArguments
@@ -26,11 +16,20 @@ public class FFMpegArgumentProcessorTest
public void Processor_GlobalOptions_GetUsed()
{
var globalWorkingDir = "Whatever";
- GlobalFFOptions.Configure(new FFOptions { WorkingDirectory = globalWorkingDir });
-
var processor = CreateArgumentProcessor();
- var options2 = processor.GetConfiguredOptions(null);
- options2.WorkingDirectory.Should().Be(globalWorkingDir);
+
+ try
+ {
+ GlobalFFOptions.Configure(new FFOptions { WorkingDirectory = globalWorkingDir });
+
+ var options = processor.GetConfiguredOptions(null);
+
+ Assert.AreEqual(globalWorkingDir, options.WorkingDirectory);
+ }
+ finally
+ {
+ GlobalFFOptions.Configure(new FFOptions());
+ }
}
[TestMethod]
@@ -42,63 +41,81 @@ public class FFMpegArgumentProcessorTest
processor.Configure(options => options.WorkingDirectory = sessionWorkingDir);
var options = processor.GetConfiguredOptions(null);
- options.WorkingDirectory.Should().Be(sessionWorkingDir);
+ Assert.AreEqual(sessionWorkingDir, options.WorkingDirectory);
}
[TestMethod]
public void Processor_Options_CanBeOverridden_And_Configured()
{
var globalConfig = "Whatever";
- GlobalFFOptions.Configure(new FFOptions { WorkingDirectory = globalConfig, TemporaryFilesFolder = globalConfig, BinaryFolder = globalConfig });
- var processor = CreateArgumentProcessor();
+ try
+ {
+ var processor = CreateArgumentProcessor();
- var sessionTempDir = "./CurrentRunWorkingDir";
- processor.Configure(options => options.TemporaryFilesFolder = sessionTempDir);
+ var sessionTempDir = "./CurrentRunWorkingDir";
+ processor.Configure(options => options.TemporaryFilesFolder = sessionTempDir);
- var overrideOptions = new FFOptions { WorkingDirectory = "override" };
- var options = processor.GetConfiguredOptions(overrideOptions);
+ var overrideOptions = new FFOptions { WorkingDirectory = "override" };
- options.Should().BeEquivalentTo(overrideOptions);
- options.TemporaryFilesFolder.Should().BeEquivalentTo(sessionTempDir);
- options.BinaryFolder.Should().NotBeEquivalentTo(globalConfig);
+ GlobalFFOptions.Configure(new FFOptions { WorkingDirectory = globalConfig, TemporaryFilesFolder = globalConfig, BinaryFolder = globalConfig });
+ var options = processor.GetConfiguredOptions(overrideOptions);
+
+ Assert.AreEqual(options.WorkingDirectory, overrideOptions.WorkingDirectory);
+ Assert.AreEqual(options.TemporaryFilesFolder, overrideOptions.TemporaryFilesFolder);
+ Assert.AreEqual(options.BinaryFolder, overrideOptions.BinaryFolder);
+
+ Assert.AreEqual(sessionTempDir, options.TemporaryFilesFolder);
+ Assert.AreNotEqual(globalConfig, options.BinaryFolder);
+ }
+ finally
+ {
+ GlobalFFOptions.Configure(new FFOptions());
+ }
}
[TestMethod]
public void Options_Global_And_Session_Options_Can_Differ()
{
var globalWorkingDir = "Whatever";
- GlobalFFOptions.Configure(new FFOptions { WorkingDirectory = globalWorkingDir });
- var processor1 = CreateArgumentProcessor();
- var sessionWorkingDir = "./CurrentRunWorkingDir";
- processor1.Configure(options => options.WorkingDirectory = sessionWorkingDir);
- var options1 = processor1.GetConfiguredOptions(null);
- options1.WorkingDirectory.Should().Be(sessionWorkingDir);
+ try
+ {
+ var processor1 = CreateArgumentProcessor();
+ var sessionWorkingDir = "./CurrentRunWorkingDir";
+ processor1.Configure(options => options.WorkingDirectory = sessionWorkingDir);
+ var options1 = processor1.GetConfiguredOptions(null);
+ Assert.AreEqual(sessionWorkingDir, options1.WorkingDirectory);
- var processor2 = CreateArgumentProcessor();
- var options2 = processor2.GetConfiguredOptions(null);
- options2.WorkingDirectory.Should().Be(globalWorkingDir);
+ var processor2 = CreateArgumentProcessor();
+ GlobalFFOptions.Configure(new FFOptions { WorkingDirectory = globalWorkingDir });
+ var options2 = processor2.GetConfiguredOptions(null);
+ Assert.AreEqual(globalWorkingDir, options2.WorkingDirectory);
+ }
+ finally
+ {
+ GlobalFFOptions.Configure(new FFOptions());
+ }
}
[TestMethod]
public void Concat_Escape()
{
- var arg = new DemuxConcatArgument(new[] { @"Heaven's River\05 - Investigation.m4b" });
- arg.Values.Should().BeEquivalentTo(@"file 'Heaven'\''s River\05 - Investigation.m4b'");
+ var arg = new DemuxConcatArgument([@"Heaven's River\05 - Investigation.m4b"]);
+ CollectionAssert.AreEquivalent(new[] { @"file 'Heaven'\''s River\05 - Investigation.m4b'" }, arg.Values.ToArray());
}
[TestMethod]
public void Audible_Aaxc_Test()
{
var arg = new AudibleEncryptionKeyArgument("123", "456");
- arg.Text.Should().Be("-audible_key 123 -audible_iv 456");
+ Assert.AreEqual("-audible_key 123 -audible_iv 456", arg.Text);
}
[TestMethod]
public void Audible_Aax_Test()
{
var arg = new AudibleEncryptionKeyArgument("62689101");
- arg.Text.Should().Be("-activation_bytes 62689101");
+ Assert.AreEqual("-activation_bytes 62689101", arg.Text);
}
}
diff --git a/FFMpegCore.Test/FFMpegCore.Test.csproj b/FFMpegCore.Test/FFMpegCore.Test.csproj
index cc839aa..a4061ed 100644
--- a/FFMpegCore.Test/FFMpegCore.Test.csproj
+++ b/FFMpegCore.Test/FFMpegCore.Test.csproj
@@ -12,7 +12,6 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/FFMpegCore.Test/FFProbeTests.cs b/FFMpegCore.Test/FFProbeTests.cs
index 049fc2e..a702eed 100644
--- a/FFMpegCore.Test/FFProbeTests.cs
+++ b/FFMpegCore.Test/FFProbeTests.cs
@@ -5,6 +5,8 @@ namespace FFMpegCore.Test;
[TestClass]
public class FFProbeTests
{
+ public TestContext TestContext { get; set; }
+
[TestMethod]
public async Task Audio_FromStream_Duration()
{
@@ -97,7 +99,8 @@ public class FFProbeTests
[Ignore("Consistently fails on GitHub Workflow ubuntu agents")]
public async Task Uri_Duration()
{
- var fileAnalysis = await FFProbe.AnalyseAsync(new Uri("https://github.com/rosenbjerg/FFMpegCore/raw/master/FFMpegCore.Test/Resources/input_3sec.webm"), cancellationToken: TestContext.CancellationToken);
+ var fileAnalysis = await FFProbe.AnalyseAsync(new Uri("https://github.com/rosenbjerg/FFMpegCore/raw/master/FFMpegCore.Test/Resources/input_3sec.webm"),
+ cancellationToken: TestContext.CancellationToken);
Assert.IsNotNull(fileAnalysis);
}
@@ -282,6 +285,4 @@ public class FFProbeTests
var info = FFProbe.Analyse(TestResources.Mp4Video, customArguments: "-headers \"Hello: World\"");
Assert.AreEqual(3, info.Duration.Seconds);
}
-
- public TestContext TestContext { get; set; }
}
diff --git a/FFMpegCore.Test/VideoTest.cs b/FFMpegCore.Test/VideoTest.cs
index dadb26e..9bcca7c 100644
--- a/FFMpegCore.Test/VideoTest.cs
+++ b/FFMpegCore.Test/VideoTest.cs
@@ -19,6 +19,8 @@ public class VideoTest
{
private const int BaseTimeoutMilliseconds = 15_000;
+ public TestContext TestContext { get; set; }
+
[TestMethod]
[Timeout(BaseTimeoutMilliseconds, CooperativeCancellation = true)]
public void Video_ToOGV()
@@ -1072,6 +1074,4 @@ public class VideoTest
Assert.AreEqual("h264", outputInfo.PrimaryVideoStream.CodecName);
Assert.AreEqual("aac", outputInfo.PrimaryAudioStream!.CodecName);
}
-
- public TestContext TestContext { get; set; }
}