diff --git a/Directory.Packages.props b/Directory.Packages.props index d6073eab7..9b0d8b74d 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -22,7 +22,8 @@ - + + diff --git a/Tests/Directory.Build.props b/Tests/Directory.Build.props index b913ab435..c0e595d08 100644 --- a/Tests/Directory.Build.props +++ b/Tests/Directory.Build.props @@ -25,6 +25,7 @@ + diff --git a/Tests/Testably.Abstractions.Compression.Tests/Internal/ExecuteTests.cs b/Tests/Testably.Abstractions.Compression.Tests/Internal/ExecuteTests.cs index 36481336b..2465c629c 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/Internal/ExecuteTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/Internal/ExecuteTests.cs @@ -5,7 +5,7 @@ namespace Testably.Abstractions.Compression.Tests.Internal; public sealed class ExecuteTests { [Fact] - public void WhenRealFileSystem_MockFileSystem_WithActionCallback_ShouldExecuteOnMockFileSystem() + public async Task WhenRealFileSystem_MockFileSystem_WithActionCallback_ShouldExecuteOnMockFileSystem() { bool onRealFileSystemExecuted = false; bool onMockFileSystemExecuted = false; @@ -20,12 +20,12 @@ public void WhenRealFileSystem_MockFileSystem_WithActionCallback_ShouldExecuteOn onMockFileSystemExecuted = true; }); - onRealFileSystemExecuted.Should().BeFalse(); - onMockFileSystemExecuted.Should().BeTrue(); + await That(onRealFileSystemExecuted).Should().BeFalse(); + await That(onMockFileSystemExecuted).Should().BeTrue(); } [Fact] - public void WhenRealFileSystem_MockFileSystem_WithFuncCallback_ShouldExecuteOnMockFileSystem() + public async Task WhenRealFileSystem_MockFileSystem_WithFuncCallback_ShouldExecuteOnMockFileSystem() { bool onRealFileSystemExecuted = false; bool onMockFileSystemExecuted = false; @@ -40,12 +40,12 @@ public void WhenRealFileSystem_MockFileSystem_WithFuncCallback_ShouldExecuteOnMo return onMockFileSystemExecuted = true; }); - onRealFileSystemExecuted.Should().BeFalse(); - onMockFileSystemExecuted.Should().BeTrue(); + await That(onRealFileSystemExecuted).Should().BeFalse(); + await That(onMockFileSystemExecuted).Should().BeTrue(); } [Fact] - public void WhenRealFileSystem_RealFileSystem_WithActionCallback_ShouldExecuteOnRealFileSystem() + public async Task WhenRealFileSystem_RealFileSystem_WithActionCallback_ShouldExecuteOnRealFileSystem() { bool onRealFileSystemExecuted = false; bool onMockFileSystemExecuted = false; @@ -60,12 +60,12 @@ public void WhenRealFileSystem_RealFileSystem_WithActionCallback_ShouldExecuteOn onMockFileSystemExecuted = true; }); - onRealFileSystemExecuted.Should().BeTrue(); - onMockFileSystemExecuted.Should().BeFalse(); + await That(onRealFileSystemExecuted).Should().BeTrue(); + await That(onMockFileSystemExecuted).Should().BeFalse(); } [Fact] - public void WhenRealFileSystem_RealFileSystem_WithFuncCallback_ShouldExecuteOnRealFileSystem() + public async Task WhenRealFileSystem_RealFileSystem_WithFuncCallback_ShouldExecuteOnRealFileSystem() { bool onRealFileSystemExecuted = false; bool onMockFileSystemExecuted = false; @@ -80,7 +80,7 @@ public void WhenRealFileSystem_RealFileSystem_WithFuncCallback_ShouldExecuteOnRe return onMockFileSystemExecuted = true; }); - onRealFileSystemExecuted.Should().BeTrue(); - onMockFileSystemExecuted.Should().BeFalse(); + await That(onRealFileSystemExecuted).Should().BeTrue(); + await That(onMockFileSystemExecuted).Should().BeFalse(); } } diff --git a/Tests/Testably.Abstractions.Compression.Tests/Internal/ZipUtilitiesTests.cs b/Tests/Testably.Abstractions.Compression.Tests/Internal/ZipUtilitiesTests.cs index c1e6ed302..cf5b61f6d 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/Internal/ZipUtilitiesTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/Internal/ZipUtilitiesTests.cs @@ -7,33 +7,33 @@ public sealed class ZipUtilitiesTests { [Theory] [AutoData] - public void ExtractRelativeToDirectory_FileWithTrailingSlash_ShouldThrowIOException( + public async Task ExtractRelativeToDirectory_FileWithTrailingSlash_ShouldThrowIOException( byte[] bytes) { MockFileSystem fileSystem = new(); using MemoryStream stream = new(bytes); DummyZipArchiveEntry zipArchiveEntry = new(fileSystem, fullName: "foo/", stream: stream); - Exception? exception = Record.Exception(() => + void Act() { zipArchiveEntry.ExtractRelativeToDirectory("foo", false); - }); + } - exception.Should().BeException( - messageContains: - "Zip entry name ends in directory separator character but contains data"); + await That(Act).Should().Throw() + .WithMessage("*Zip entry name ends in directory separator character but contains data*") + .AsWildcard(); } [Fact] - public void ExtractRelativeToDirectory_WithSubdirectory_ShouldCreateSubdirectory() + public async Task ExtractRelativeToDirectory_WithSubdirectory_ShouldCreateSubdirectory() { MockFileSystem fileSystem = new(); DummyZipArchiveEntry zipArchiveEntry = new(fileSystem, fullName: "foo/"); zipArchiveEntry.ExtractRelativeToDirectory("bar", false); - fileSystem.Directory.Exists("bar").Should().BeTrue(); - fileSystem.Directory.Exists("bar/foo").Should().BeTrue(); + await That(fileSystem).Should().HaveDirectory("bar"); + await That(fileSystem).Should().HaveDirectory("bar/foo"); } private sealed class DummyZipArchiveEntry( @@ -46,17 +46,14 @@ private sealed class DummyZipArchiveEntry( Stream? stream = null) : IZipArchiveEntry { - /// - public string Comment { get; set; } = comment; - - /// - public bool IsEncrypted { get; } = isEncrypted; - #region IZipArchiveEntry Members /// public IZipArchive Archive => archive ?? throw new NotSupportedException(); + /// + public string Comment { get; set; } = comment; + /// public long CompressedLength => stream?.Length ?? 0L; @@ -72,6 +69,9 @@ private sealed class DummyZipArchiveEntry( /// public string FullName { get; } = fullName ?? ""; + /// + public bool IsEncrypted { get; } = isEncrypted; + /// public DateTimeOffset LastWriteTime { get; set; } diff --git a/Tests/Testably.Abstractions.Compression.Tests/TestHelpers/Usings.cs b/Tests/Testably.Abstractions.Compression.Tests/TestHelpers/Usings.cs index a4d755796..f9e855dc4 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/TestHelpers/Usings.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/TestHelpers/Usings.cs @@ -1,7 +1,11 @@ global using AutoFixture.Xunit2; global using FluentAssertions; global using System; +global using System.Threading.Tasks; global using System.IO.Abstractions; global using Testably.Abstractions.TestHelpers; global using Testably.Abstractions.Testing; global using Xunit; +global using aweXpect; +global using aweXpect.Testably; +global using static aweXpect.Expect; diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/ExtensionTests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/ExtensionTests.cs index 362abcb85..c85b818d1 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/ExtensionTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/ExtensionTests.cs @@ -14,7 +14,7 @@ public abstract partial class ExtensionTests [InlineData("2000-01-01T12:14:15")] [InlineData("1980-01-01T00:00:00")] [InlineData("2107-12-31T23:59:59")] - public void CreateEntryFromFile_LastWriteTime_ShouldBeCopiedFromFile( + public async Task CreateEntryFromFile_LastWriteTime_ShouldBeCopiedFromFile( string lastWriteTimeString) { DateTime lastWriteTime = DateTime.Parse(lastWriteTimeString, CultureInfo.InvariantCulture); @@ -29,13 +29,13 @@ public void CreateEntryFromFile_LastWriteTime_ShouldBeCopiedFromFile( using FileSystemStream stream = FileSystem.File.Open("destination.zip", FileMode.Open, FileAccess.ReadWrite); IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Update); - archive.Entries.Count.Should().Be(0); + await That(archive.Entries).Should().BeEmpty(); archive.CreateEntryFromFile("bar/foo.txt", "foo/bar.txt", CompressionLevel.NoCompression); IZipArchiveEntry entry = archive.Entries.Single(); - entry.LastWriteTime.DateTime.Should().Be(lastWriteTime); + await That(entry.LastWriteTime.DateTime).Should().Be(lastWriteTime); } [SkippableTheory] @@ -43,7 +43,7 @@ public void CreateEntryFromFile_LastWriteTime_ShouldBeCopiedFromFile( [InlineData("1979-12-31T00:00:00")] [InlineData("2108-01-01T00:00:00")] [InlineData("2208-01-01T00:00:00")] - public void CreateEntryFromFile_LastWriteTimeOutOfRange_ShouldBeFirstJanuary1980( + public async Task CreateEntryFromFile_LastWriteTimeOutOfRange_ShouldBeFirstJanuary1980( string lastWriteTimeString) { DateTime expectedTime = new(1980, 1, 1, 0, 0, 0); @@ -60,17 +60,17 @@ public void CreateEntryFromFile_LastWriteTimeOutOfRange_ShouldBeFirstJanuary1980 using FileSystemStream stream = FileSystem.File.Open("destination.zip", FileMode.Open, FileAccess.ReadWrite); IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Update); - archive.Entries.Count.Should().Be(0); + await That(archive.Entries).Should().BeEmpty(); archive.CreateEntryFromFile("bar/foo.txt", "foo/bar.txt", CompressionLevel.NoCompression); IZipArchiveEntry entry = archive.Entries.Single(); - entry.LastWriteTime.DateTime.Should().Be(expectedTime); + await That(entry.LastWriteTime.DateTime).Should().Be(expectedTime); } [SkippableFact] - public void CreateEntryFromFile_NullEntryName_ShouldThrowArgumentNullException() + public async Task CreateEntryFromFile_NullEntryName_ShouldThrowArgumentNullException() { FileSystem.Initialize() .WithSubdirectory("foo") @@ -82,19 +82,17 @@ public void CreateEntryFromFile_NullEntryName_ShouldThrowArgumentNullException() using FileSystemStream stream = FileSystem.File.Open("destination.zip", FileMode.Open, FileAccess.ReadWrite); IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Update); - archive.Entries.Count.Should().Be(0); + await That(archive.Entries).Should().BeEmpty(); - Exception? exception = Record.Exception(() => - { - archive.CreateEntryFromFile("bar/foo.txt", null!); - }); + void Act() + => archive.CreateEntryFromFile("bar/foo.txt", null!); - exception.Should().BeOfType() - .Which.ParamName.Should().Be("entryName"); + await That(Act).Should().Throw() + .WithParamName("entryName"); } [SkippableFact] - public void CreateEntryFromFile_NullSourceFileName_ShouldThrowArgumentNullException() + public async Task CreateEntryFromFile_NullSourceFileName_ShouldThrowArgumentNullException() { FileSystem.Initialize() .WithSubdirectory("foo") @@ -106,20 +104,18 @@ public void CreateEntryFromFile_NullSourceFileName_ShouldThrowArgumentNullExcept using FileSystemStream stream = FileSystem.File.Open("destination.zip", FileMode.Open, FileAccess.ReadWrite); IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Update); - archive.Entries.Count.Should().Be(0); + await That(archive.Entries).Should().BeEmpty(); - Exception? exception = Record.Exception(() => - { - archive.CreateEntryFromFile(null!, "foo/bar.txt", + void Act() + => archive.CreateEntryFromFile(null!, "foo/bar.txt", CompressionLevel.NoCompression); - }); - exception.Should().BeOfType() - .Which.ParamName.Should().Be("sourceFileName"); + await That(Act).Should().Throw() + .WithParamName("sourceFileName"); } [SkippableFact] - public void CreateEntryFromFile_ReadOnlyArchive_ShouldThrowNotSupportedException() + public async Task CreateEntryFromFile_ReadOnlyArchive_ShouldThrowNotSupportedException() { FileSystem.Initialize() .WithSubdirectory("foo") @@ -131,18 +127,16 @@ public void CreateEntryFromFile_ReadOnlyArchive_ShouldThrowNotSupportedException using FileSystemStream stream = FileSystem.File.Open("destination.zip", FileMode.Open, FileAccess.ReadWrite); IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(0); + await That(archive.Entries).Should().BeEmpty(); - Exception? exception = Record.Exception(() => - { - archive.CreateEntryFromFile("bar/foo.txt", "foo/bar.txt"); - }); + void Act() + => archive.CreateEntryFromFile("bar/foo.txt", "foo/bar.txt"); - exception.Should().BeOfType(); + await That(Act).Should().Throw(); } [SkippableFact] - public void CreateEntryFromFile_ShouldCreateEntryWithFileContent() + public async Task CreateEntryFromFile_ShouldCreateEntryWithFileContent() { FileSystem.Initialize() .WithSubdirectory("foo") @@ -154,21 +148,21 @@ public void CreateEntryFromFile_ShouldCreateEntryWithFileContent() using FileSystemStream stream = FileSystem.File.Open("destination.zip", FileMode.Open, FileAccess.ReadWrite); IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Update); - archive.Entries.Count.Should().Be(0); + await That(archive.Entries).Should().BeEmpty(); archive.CreateEntryFromFile("bar/foo.txt", "foo/bar.txt", CompressionLevel.NoCompression); IZipArchiveEntry entry = archive.Entries.Single(); - entry.FullName.Should().Be("foo/bar.txt"); + await That(entry.FullName).Should().Be("foo/bar.txt"); entry.ExtractToFile("test.txt"); - FileSystem.File.ReadAllText("test.txt").Should().Be("FooFooFoo"); + await That(FileSystem).Should().HaveFile("test.txt").WithContent("FooFooFoo"); } [SkippableTheory] [AutoData] - public void ExtractToDirectory_DestinationNull_ShouldThrowArgumentNullException( + public async Task ExtractToDirectory_DestinationNull_ShouldThrowArgumentNullException( CompressionLevel compressionLevel) { FileSystem.Initialize() @@ -177,22 +171,22 @@ public void ExtractToDirectory_DestinationNull_ShouldThrowArgumentNullException( FileSystem.ZipFile() .CreateFromDirectory("foo", "destination.zip", compressionLevel, false); - Exception? exception = Record.Exception(() => + void Act() { using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); archive.ExtractToDirectory(null!); - }); + } - exception.Should().BeOfType() - .Which.ParamName.Should().Be("destinationDirectoryName"); + await That(Act).Should().Throw() + .WithParamName("destinationDirectoryName"); } #if FEATURE_COMPRESSION_ADVANCED [SkippableTheory] [AutoData] - public void + public async Task ExtractToDirectory_DestinationNull_WithOverwrite_ShouldThrowArgumentNullException( CompressionLevel compressionLevel) { @@ -202,20 +196,20 @@ public void FileSystem.ZipFile() .CreateFromDirectory("foo", "destination.zip", compressionLevel, false); - Exception? exception = Record.Exception(() => + void Act() { using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); archive.ExtractToDirectory(null!, true); - }); + } - exception.Should().BeOfType(); + await That(Act).Should().Throw(); } #endif [SkippableFact] - public void ExtractToDirectory_ShouldExtractFilesAndDirectories() + public async Task ExtractToDirectory_ShouldExtractFilesAndDirectories() { FileSystem.Initialize() .WithSubdirectory("foo").Initialized(s => s @@ -230,16 +224,13 @@ public void ExtractToDirectory_ShouldExtractFilesAndDirectories() archive.ExtractToDirectory("bar"); - FileSystem.File.ReadAllText("bar/foo.txt") - .Should().Be("FooFooFoo"); - FileSystem.Directory.Exists("bar/bar") - .Should().BeTrue(); - FileSystem.File.Exists("bar/bar.txt") - .Should().BeTrue(); + await That(FileSystem).Should().HaveFile("bar/foo.txt").WithContent("FooFooFoo"); + await That(FileSystem).Should().HaveDirectory("bar/bar"); + await That(FileSystem).Should().HaveFile("bar/bar.txt"); } [SkippableFact] - public void ExtractToDirectory_WithoutOverwrite_ShouldThrowIOException() + public async Task ExtractToDirectory_WithoutOverwrite_ShouldThrowIOException() { FileSystem.Initialize() .WithSubdirectory("foo") @@ -252,21 +243,20 @@ public void ExtractToDirectory_WithoutOverwrite_ShouldThrowIOException() using FileSystemStream stream = FileSystem.File.OpenRead("destination.zip"); IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); - Exception? exception = Record.Exception(() => + void Act() { archive.ExtractToDirectory("bar"); - }); + } - exception.Should().BeOfType() - .Which.Message.Should() - .Contain($"'{FileSystem.Path.GetFullPath("bar/foo.txt")}'"); - FileSystem.File.ReadAllText("bar/foo.txt") - .Should().NotBe("FooFooFoo"); + await That(Act).Should().Throw() + .WithMessage($"*'{FileSystem.Path.GetFullPath("bar/foo.txt")}'*").AsWildcard(); + await That(FileSystem).Should().HaveFile("bar/foo.txt") + .WhichContent(c => c.Should().NotBe("FooFooFoo")); } #if FEATURE_COMPRESSION_ADVANCED [SkippableFact] - public void ExtractToDirectory_WithOverwrite_ShouldOverwriteExistingFile() + public async Task ExtractToDirectory_WithOverwrite_ShouldOverwriteExistingFile() { FileSystem.Initialize() .WithSubdirectory("foo") @@ -281,8 +271,8 @@ public void ExtractToDirectory_WithOverwrite_ShouldOverwriteExistingFile() archive.ExtractToDirectory("bar", true); - FileSystem.File.ReadAllText("bar/foo.txt") - .Should().Be("FooFooFoo"); + await That(FileSystem).Should().HaveFile("bar/foo.txt") + .WithContent("FooFooFoo"); } #endif } diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/Tests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/Tests.cs index da261e773..84b015af3 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/Tests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/Tests.cs @@ -10,7 +10,7 @@ public abstract partial class Tests { #if FEATURE_ZIPFILE_NET7 [SkippableFact] - public void Comment_ShouldBeInitializedEmpty() + public async Task Comment_ShouldBeInitializedEmpty() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -23,13 +23,13 @@ public void Comment_ShouldBeInitializedEmpty() IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); - archive.Comment.Should().Be(""); + await That(archive.Comment).Should().Be(""); } #endif #if FEATURE_ZIPFILE_NET7 [SkippableTheory] [AutoData] - public void Comment_ShouldBeSettable(string comment) + public async Task Comment_ShouldBeSettable(string comment) { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -43,12 +43,12 @@ public void Comment_ShouldBeSettable(string comment) IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); archive.Comment = comment; - archive.Comment.Should().Be(comment); + await That(archive.Comment).Should().Be(comment); } #endif [SkippableFact] - public void Entries_CreateMode_ShouldThrowNotSupportedException() + public async Task Entries_CreateMode_ShouldThrowNotSupportedException() { using FileSystemStream stream = FileSystem.File.Open("destination.zip", FileMode.Create, FileAccess.ReadWrite); @@ -62,7 +62,7 @@ public void Entries_CreateMode_ShouldThrowNotSupportedException() [SkippableTheory] [AutoData] - public void FileSystem_ShouldBeSet( + public async Task FileSystem_ShouldBeSet( CompressionLevel compressionLevel) { FileSystem.Initialize() @@ -78,7 +78,7 @@ public void FileSystem_ShouldBeSet( } [SkippableFact] - public void GetEntry_WhenNameIsNotFound_ShouldReturnNull() + public async Task GetEntry_WhenNameIsNotFound_ShouldReturnNull() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -97,7 +97,7 @@ public void GetEntry_WhenNameIsNotFound_ShouldReturnNull() [SkippableTheory] [AutoData] - public void Mode_ShouldBeSetCorrectly(ZipArchiveMode mode) + public async Task Mode_ShouldBeSetCorrectly(ZipArchiveMode mode) { FileSystem.Initialize() .WithSubdirectory("foo"); diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/ExtensionTests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/ExtensionTests.cs index 96422ff23..74821bd6c 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/ExtensionTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/ExtensionTests.cs @@ -11,7 +11,7 @@ public abstract partial class ExtensionTests where TFileSystem : IFileSystem { [SkippableFact] - public void + public async Task ExtractToFile_AccessLengthOnWritableStream_ShouldThrowInvalidOperationException() { FileSystem.Initialize() @@ -25,17 +25,15 @@ public void IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Update); archive.CreateEntryFromFile("foo.txt", "foo/"); - Exception? exception = Record.Exception(() => - { - archive.ExtractToDirectory("bar"); - }); + void Act() + => archive.ExtractToDirectory("bar"); - exception.Should().BeOfType(); + await That(Act).Should().Throw(); } [SkippableTheory] [AutoData] - public void ExtractToFile_DestinationNull_ShouldThrowArgumentNullException( + public async Task ExtractToFile_DestinationNull_ShouldThrowArgumentNullException( CompressionLevel compressionLevel) { FileSystem.Initialize() @@ -45,21 +43,21 @@ public void ExtractToFile_DestinationNull_ShouldThrowArgumentNullException( FileSystem.ZipFile() .CreateFromDirectory("foo", "destination.zip", compressionLevel, false); - Exception? exception = Record.Exception(() => + void Act() { using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); archive.Entries.Single().ExtractToFile(null!); - }); + } - exception.Should().BeOfType() - .Which.ParamName.Should().Be("destinationFileName"); + await That(Act).Should().Throw() + .WithParamName("destinationFileName"); } [SkippableTheory] [AutoData] - public void + public async Task ExtractToFile_DestinationNull_WithOverwrite_ShouldThrowArgumentNullException( CompressionLevel compressionLevel) { @@ -70,19 +68,19 @@ public void FileSystem.ZipFile() .CreateFromDirectory("foo", "destination.zip", compressionLevel, false); - Exception? exception = Record.Exception(() => + void Act() { using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); archive.Entries.Single().ExtractToFile(null!, true); - }); + } - exception.Should().BeOfType(); + await That(Act).Should().Throw(); } [SkippableFact] - public void ExtractToFile_IncorrectEntryType_ShouldThrowIOException() + public async Task ExtractToFile_IncorrectEntryType_ShouldThrowIOException() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -99,19 +97,17 @@ public void ExtractToFile_IncorrectEntryType_ShouldThrowIOException() using FileSystemStream stream2 = FileSystem.File.OpenRead("destination.zip"); IZipArchive archive2 = FileSystem.ZipArchive().New(stream2, ZipArchiveMode.Read); - Exception? exception = Record.Exception(() => - { - archive2.ExtractToDirectory("bar"); - }); + void Act() + => archive2.ExtractToDirectory("bar"); - exception.Should().BeOfType(); + await That(Act).Should().Throw(); } [SkippableTheory] [InlineData("2000-01-01T12:14:15")] [InlineData("1980-01-01T00:00:00")] [InlineData("2107-12-31T23:59:59")] - public void ExtractToFile_LastWriteTime_ShouldBeCopiedFromFile(string lastWriteTimeString) + public async Task ExtractToFile_LastWriteTime_ShouldBeCopiedFromFile(string lastWriteTimeString) { DateTime lastWriteTime = DateTime.Parse(lastWriteTimeString, CultureInfo.InvariantCulture); FileSystem.Initialize() @@ -132,13 +128,13 @@ public void ExtractToFile_LastWriteTime_ShouldBeCopiedFromFile(string lastWriteT entry.ExtractToFile("bar/bar.txt", true); - FileSystem.File.ReadAllText("bar/bar.txt") - .Should().Be("FooFooFoo"); - FileSystem.FileInfo.New("bar/bar.txt").LastWriteTime.Should().Be(lastWriteTime); + await That(FileSystem).Should().HaveFile("bar/bar.txt") + .WithContent("FooFooFoo").And + .WithLastWriteTime(lastWriteTime); } [SkippableFact] - public void ExtractToFile_WithoutOverwrite_ShouldThrowIOException() + public async Task ExtractToFile_WithoutOverwrite_ShouldThrowIOException() { FileSystem.Initialize() .WithSubdirectory("foo") @@ -152,20 +148,19 @@ public void ExtractToFile_WithoutOverwrite_ShouldThrowIOException() IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); IZipArchiveEntry entry = archive.Entries.Single(); - Exception? exception = Record.Exception(() => + void Act() { entry.ExtractToFile("bar/bar.txt"); - }); + } - exception.Should().BeOfType() - .Which.Message.Should() - .Contain($"'{FileSystem.Path.GetFullPath("bar/bar.txt")}'"); - FileSystem.File.ReadAllText("bar/bar.txt") - .Should().NotBe("FooFooFoo"); + await That(Act).Should().Throw() + .WithMessage($"*'{FileSystem.Path.GetFullPath("bar/bar.txt")}'*").AsWildcard(); + await That(FileSystem).Should().HaveFile("bar/bar.txt") + .WhichContent(f => f.Should().NotBe("FooFooFoo")); } [SkippableFact] - public void ExtractToFile_WithOverwrite_ShouldOverwriteExistingFile() + public async Task ExtractToFile_WithOverwrite_ShouldOverwriteExistingFile() { FileSystem.Initialize() .WithSubdirectory("foo") @@ -181,7 +176,7 @@ public void ExtractToFile_WithOverwrite_ShouldOverwriteExistingFile() entry.ExtractToFile("bar/bar.txt", true); - FileSystem.File.ReadAllText("bar/bar.txt") - .Should().Be("FooFooFoo"); + await That(FileSystem).Should().HaveFile("bar/bar.txt") + .WithContent("FooFooFoo"); } } diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/Tests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/Tests.cs index 888107b51..6af129ac3 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/Tests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/Tests.cs @@ -1,6 +1,7 @@ using System.IO; using System.IO.Compression; using System.Linq; +using Skip = Xunit.Skip; namespace Testably.Abstractions.Compression.Tests.ZipArchiveEntry; @@ -10,7 +11,7 @@ public abstract partial class Tests where TFileSystem : IFileSystem { [SkippableFact] - public void Archive_ShouldBeSetToArchive() + public async Task Archive_ShouldBeSetToArchive() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -25,12 +26,12 @@ public void Archive_ShouldBeSetToArchive() IZipArchiveEntry entry = archive.Entries.Single(); - entry.Archive.Should().Be(archive); + await That(entry.Archive).Should().Be(archive); } #if FEATURE_ZIPFILE_NET7 [SkippableFact] - public void Comment_ShouldBeInitializedEmpty() + public async Task Comment_ShouldBeInitializedEmpty() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -44,14 +45,14 @@ public void Comment_ShouldBeInitializedEmpty() IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); IZipArchiveEntry entry = archive.Entries.Single(); - entry.Comment.Should().Be(""); + await That(entry.Comment).Should().Be(""); } #endif #if FEATURE_ZIPFILE_NET7 [SkippableTheory] [AutoData] - public void Comment_ShouldBeSettable(string comment) + public async Task Comment_ShouldBeSettable(string comment) { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -67,12 +68,12 @@ public void Comment_ShouldBeSettable(string comment) entry.Comment = comment; - entry.Comment.Should().Be(comment); + await That(entry.Comment).Should().Be(comment); } #endif [SkippableFact] - public void CompressedLength_WithNoCompression_ShouldBeFileLength() + public async Task CompressedLength_WithNoCompression_ShouldBeFileLength() { Skip.If(Test.IsNetFramework, "Test is brittle on .NET Framework."); @@ -87,12 +88,13 @@ public void CompressedLength_WithNoCompression_ShouldBeFileLength() IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); - archive.Entries.Single().Length.Should().Be(9); - archive.Entries.Single().CompressedLength.Should().Be(9); + await That(archive.Entries.Single()) + .For(x => x.Length, l => l.Should().Be(9)).And + .For(x => x.CompressedLength, l => l.Should().Be(9)); } [SkippableFact] - public void CompressedLength_WithOptimalCompressionLevel_ShouldBeLessThanFileLength() + public async Task CompressedLength_WithOptimalCompressionLevel_ShouldBeLessThanFileLength() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -105,13 +107,14 @@ public void CompressedLength_WithOptimalCompressionLevel_ShouldBeLessThanFileLen IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); - archive.Entries.Single().Length.Should().Be(9); - archive.Entries.Single().CompressedLength.Should().BeLessThan(9); + await That(archive.Entries.Single()) + .For(x => x.Length, l => l.Should().Be(9)).And + .For(x => x.CompressedLength, l => l.Should().BeLessThan(9)); } #if FEATURE_COMPRESSION_ADVANCED [SkippableFact] - public void Crc32_ShouldBeCalculatedFromTheFileContent() + public async Task Crc32_ShouldBeCalculatedFromTheFileContent() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -128,12 +131,12 @@ public void Crc32_ShouldBeCalculatedFromTheFileContent() IZipArchiveEntry entry1 = archive.Entries[0]; IZipArchiveEntry entry2 = archive.Entries[1]; - entry1.Crc32.Should().NotBe(entry2.Crc32); + await That(entry1.Crc32).Should().NotBe(entry2.Crc32); } #endif [SkippableFact] - public void Delete_ReadMode_ShouldThrowNotSupportedException() + public async Task Delete_ReadMode_ShouldThrowNotSupportedException() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -148,13 +151,13 @@ public void Delete_ReadMode_ShouldThrowNotSupportedException() IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); IZipArchiveEntry entry = archive.Entries.Single(); - Exception? exception = Record.Exception(() => entry.Delete()); + void Act() => entry.Delete(); - exception.Should().BeOfType(); + await That(Act).Should().Throw(); } [SkippableFact] - public void Delete_ShouldRemoveEntryFromArchive() + public async Task Delete_ShouldRemoveEntryFromArchive() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -171,13 +174,13 @@ public void Delete_ShouldRemoveEntryFromArchive() entry.Delete(); - archive.Entries.Should().HaveCount(0); + await That(archive.Entries).Should().BeEmpty(); } #if FEATURE_COMPRESSION_ADVANCED [SkippableTheory] [AutoData] - public void ExternalAttributes_ShouldBeSettable(int externalAttributes) + public async Task ExternalAttributes_ShouldBeSettable(int externalAttributes) { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -195,13 +198,13 @@ public void ExternalAttributes_ShouldBeSettable(int externalAttributes) IZipArchiveEntry entry2 = archive.Entries[1]; entry1.ExternalAttributes = externalAttributes; - entry1.ExternalAttributes.Should().Be(externalAttributes); - entry2.ExternalAttributes.Should().NotBe(externalAttributes); + await That(entry1.ExternalAttributes).Should().Be(externalAttributes); + await That(entry2.ExternalAttributes).Should().NotBe(externalAttributes); } #endif [SkippableFact] - public void FileSystemExtension_ShouldBeSet() + public async Task FileSystemExtension_ShouldBeSet() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -216,11 +219,11 @@ public void FileSystemExtension_ShouldBeSet() IZipArchiveEntry entry = archive.Entries.Single(); - entry.FileSystem.Should().Be(FileSystem); + await That(entry.FileSystem).Should().Be(FileSystem); } [SkippableFact] - public void FullName_ShouldIncludeDirectory() + public async Task FullName_ShouldIncludeDirectory() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -235,13 +238,13 @@ public void FullName_ShouldIncludeDirectory() IZipArchiveEntry entry = archive.Entries.Single(); - entry.FullName.Should().Be("foo/foo.txt"); - entry.Name.Should().Be("foo.txt"); + await That(entry.FullName).Should().Be("foo/foo.txt"); + await That(entry.Name).Should().Be("foo.txt"); } [SkippableTheory] [AutoData] - public void LastWriteTime_ReadOnlyArchive_ShouldThrowNotSupportedException( + public async Task LastWriteTime_ReadOnlyArchive_ShouldThrowNotSupportedException( DateTime lastWriteTime) { FileSystem.Initialize() @@ -257,17 +260,17 @@ public void LastWriteTime_ReadOnlyArchive_ShouldThrowNotSupportedException( IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); IZipArchiveEntry entry1 = archive.Entries[0]; - Exception? exception = Record.Exception(() => + void Act() { entry1.LastWriteTime = new DateTimeOffset(lastWriteTime); - }); + } - exception.Should().BeOfType(); + await That(Act).Should().Throw(); } [SkippableTheory] [AutoData] - public void LastWriteTime_ShouldBeSettable(DateTime lastWriteTime) + public async Task LastWriteTime_ShouldBeSettable(DateTime lastWriteTime) { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -286,12 +289,12 @@ public void LastWriteTime_ShouldBeSettable(DateTime lastWriteTime) IZipArchiveEntry entry2 = archive.Entries[1]; entry1.LastWriteTime = new DateTimeOffset(lastWriteTime); - entry1.LastWriteTime.DateTime.Should().Be(lastWriteTime); - entry2.LastWriteTime.DateTime.Should().NotBe(lastWriteTime); + await That(entry1.LastWriteTime.DateTime).Should().Be(lastWriteTime); + await That(entry2.LastWriteTime.DateTime).Should().NotBe(lastWriteTime); } [SkippableFact] - public void ToString_ShouldBeSetToFileName() + public async Task ToString_ShouldBeSetToFileName() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -308,6 +311,6 @@ public void ToString_ShouldBeSetToFileName() string? result = entry.ToString(); - result.Should().Be("foo.txt"); + await That(result).Should().Be("foo.txt"); } } diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveFactory/Tests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveFactory/Tests.cs index 9c5ce114e..6f99bc01d 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveFactory/Tests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveFactory/Tests.cs @@ -10,7 +10,7 @@ public abstract partial class Tests where TFileSystem : IFileSystem { [SkippableFact] - public void New_ShouldOpenWithReadMode() + public async Task New_ShouldOpenWithReadMode() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -23,12 +23,12 @@ public void New_ShouldOpenWithReadMode() IZipArchive archive = FileSystem.ZipArchive().New(stream); - archive.Mode.Should().Be(ZipArchiveMode.Read); - archive.Entries.Should().HaveCount(1); + await That(archive.Mode).Should().Be(ZipArchiveMode.Read); + await That(archive.Entries).Should().HaveExactly(1).Items(); } [SkippableFact] - public void New_UpdateMode_ReadOnlyStream_ShouldThrowArgumentException() + public async Task New_UpdateMode_ReadOnlyStream_ShouldThrowArgumentException() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -39,17 +39,17 @@ public void New_UpdateMode_ReadOnlyStream_ShouldThrowArgumentException() FileSystemStream stream = FileSystem.File.OpenRead("destination.zip"); - Exception? exception = Record.Exception(() => + void Act() { _ = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Update); - }); - - exception.Should().BeOfType() - .Which.HResult.Should().Be(-2147024809); + } + + await That(Act).Should().Throw() + .WithHResult(-2147024809); } [SkippableFact] - public void New_UpdateMode_ShouldOpenArchive() + public async Task New_UpdateMode_ShouldOpenArchive() { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -63,14 +63,14 @@ public void New_UpdateMode_ShouldOpenArchive() IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Update); - archive.Mode.Should().Be(ZipArchiveMode.Update); - archive.Entries.Should().HaveCount(1); + await That(archive.Mode).Should().Be(ZipArchiveMode.Update); + await That(archive.Entries).Should().HaveExactly(1).Items(); } [SkippableTheory] [InlineData(true)] [InlineData(false)] - public void New_WhenLeaveOpen_ShouldDisposeStreamWhenDisposingArchive(bool leaveOpen) + public async Task New_WhenLeaveOpen_ShouldDisposeStreamWhenDisposingArchive(bool leaveOpen) { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -85,20 +85,14 @@ public void New_WhenLeaveOpen_ShouldDisposeStreamWhenDisposingArchive(bool leave IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Update, leaveOpen); archive.Dispose(); - Exception? exception = Record.Exception(() => stream.ReadByte()); - if (leaveOpen) - { - exception.Should().BeNull(); - } - else - { - exception.Should().BeOfType(); - } + void Act() => stream.ReadByte(); + + await That(Act).Should().Throw().OnlyIf(!leaveOpen); } [SkippableTheory] [MemberData(nameof(EntryNameEncoding))] - public void New_WithEntryNameEncoding_ShouldUseEncoding( + public async Task New_WithEntryNameEncoding_ShouldUseEncoding( string entryName, Encoding encoding, bool encodedCorrectly) { FileSystem.Initialize() @@ -117,11 +111,13 @@ public void New_WithEntryNameEncoding_ShouldUseEncoding( readArchive.Entries.Count.Should().Be(1); if (encodedCorrectly) { - readArchive.Entries.Should().Contain(e => e.Name == entryName); + await That(readArchive.Entries).Should() + .Contain(e => string.Equals(e.Name, entryName, StringComparison.Ordinal)); } else { - readArchive.Entries.Should().NotContain(e => e.Name == entryName); + await That(readArchive.Entries).Should() + .NotContain(e => string.Equals(e.Name, entryName, StringComparison.Ordinal)); } } diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs index 8cb1fa03f..2d0c2b212 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs @@ -14,7 +14,7 @@ public abstract partial class CreateFromDirectoryTests { [SkippableTheory] [AutoData] - public void + public async Task CreateFromDirectory_EmptyDirectory_ShouldBeIncluded( CompressionLevel compressionLevel) { @@ -34,7 +34,7 @@ public void [SkippableTheory] [AutoData] - public void CreateFromDirectory_EmptySource_DoNotIncludeBaseDirectory_ShouldBeEmpty( + public async Task CreateFromDirectory_EmptySource_DoNotIncludeBaseDirectory_ShouldBeEmpty( CompressionLevel compressionLevel) { FileSystem.Initialize() @@ -51,7 +51,7 @@ public void CreateFromDirectory_EmptySource_DoNotIncludeBaseDirectory_ShouldBeEm [SkippableTheory] [AutoData] - public void + public async Task CreateFromDirectory_EmptySource_IncludeBaseDirectory_ShouldPrependDirectoryName( CompressionLevel compressionLevel) { @@ -70,7 +70,7 @@ public void [SkippableTheory] [MemberData(nameof(EntryNameEncoding))] - public void CreateFromDirectory_EntryNameEncoding_ShouldUseEncoding( + public async Task CreateFromDirectory_EntryNameEncoding_ShouldUseEncoding( string entryName, Encoding encoding, bool encodedCorrectly) { FileSystem.Initialize() @@ -97,7 +97,7 @@ public void CreateFromDirectory_EntryNameEncoding_ShouldUseEncoding( [SkippableTheory] [AutoData] - public void CreateFromDirectory_IncludeBaseDirectory_ShouldPrependDirectoryName( + public async Task CreateFromDirectory_IncludeBaseDirectory_ShouldPrependDirectoryName( CompressionLevel compressionLevel) { FileSystem.Initialize() @@ -117,7 +117,7 @@ public void CreateFromDirectory_IncludeBaseDirectory_ShouldPrependDirectoryName( #if FEATURE_COMPRESSION_OVERWRITE [SkippableTheory] [AutoData] - public void CreateFromDirectory_Overwrite_WithEncoding_ShouldOverwriteFile( + public async Task CreateFromDirectory_Overwrite_WithEncoding_ShouldOverwriteFile( string contents, Encoding encoding) { FileSystem.Initialize() @@ -140,7 +140,7 @@ public void CreateFromDirectory_Overwrite_WithEncoding_ShouldOverwriteFile( #endif [SkippableFact] - public void CreateFromDirectory_ShouldZipDirectoryContent() + public async Task CreateFromDirectory_ShouldZipDirectoryContent() { FileSystem.Initialize() .WithSubdirectory("destination") @@ -161,7 +161,7 @@ public void CreateFromDirectory_ShouldZipDirectoryContent() #if FEATURE_COMPRESSION_STREAM [SkippableFact] - public void CreateFromDirectory_WithReadOnlyStream_ShouldThrowArgumentException() + public async Task CreateFromDirectory_WithReadOnlyStream_ShouldThrowArgumentException() { FileSystem.Initialize() .WithFile("target.zip") @@ -186,7 +186,7 @@ public void CreateFromDirectory_WithReadOnlyStream_ShouldThrowArgumentException( #if FEATURE_COMPRESSION_STREAM [SkippableTheory] [AutoData] - public void + public async Task CreateFromDirectory_WithStream_EmptyDirectory_ShouldBeIncluded( CompressionLevel compressionLevel) { @@ -208,7 +208,7 @@ public void #if FEATURE_COMPRESSION_STREAM [SkippableTheory] [AutoData] - public void CreateFromDirectory_WithStream_EmptySource_DoNotIncludeBaseDirectory_ShouldBeEmpty( + public async Task CreateFromDirectory_WithStream_EmptySource_DoNotIncludeBaseDirectory_ShouldBeEmpty( CompressionLevel compressionLevel) { FileSystem.Initialize() @@ -227,7 +227,7 @@ public void CreateFromDirectory_WithStream_EmptySource_DoNotIncludeBaseDirectory #if FEATURE_COMPRESSION_STREAM [SkippableTheory] [AutoData] - public void + public async Task CreateFromDirectory_WithStream_EmptySource_IncludeBaseDirectory_ShouldPrependDirectoryName( CompressionLevel compressionLevel) { @@ -248,7 +248,7 @@ public void #if FEATURE_COMPRESSION_STREAM [SkippableTheory] [MemberData(nameof(EntryNameEncoding))] - public void CreateFromDirectory_WithStream_EntryNameEncoding_ShouldUseEncoding( + public async Task CreateFromDirectory_WithStream_EntryNameEncoding_ShouldUseEncoding( string entryName, Encoding encoding, bool encodedCorrectly) { FileSystem.Initialize() @@ -277,7 +277,7 @@ public void CreateFromDirectory_WithStream_EntryNameEncoding_ShouldUseEncoding( #if FEATURE_COMPRESSION_STREAM [SkippableTheory] [AutoData] - public void CreateFromDirectory_WithStream_IncludeBaseDirectory_ShouldPrependDirectoryName( + public async Task CreateFromDirectory_WithStream_IncludeBaseDirectory_ShouldPrependDirectoryName( CompressionLevel compressionLevel) { FileSystem.Initialize() @@ -297,7 +297,7 @@ public void CreateFromDirectory_WithStream_IncludeBaseDirectory_ShouldPrependDir #if FEATURE_COMPRESSION_STREAM [SkippableFact] - public void + public async Task CreateFromDirectory_WithStream_NotWritable_ShouldThrowArgumentException() { Stream stream = new MemoryStreamMock(canWrite: false); @@ -314,7 +314,7 @@ public void #if FEATURE_COMPRESSION_STREAM [SkippableFact] - public void + public async Task CreateFromDirectory_WithStream_Null_ShouldThrowArgumentNullException() { Stream stream = null!; @@ -332,7 +332,7 @@ public void #if FEATURE_COMPRESSION_STREAM [SkippableTheory] [AutoData] - public void CreateFromDirectory_WithStream_Overwrite_WithEncoding_ShouldOverwriteFile( + public async Task CreateFromDirectory_WithStream_Overwrite_WithEncoding_ShouldOverwriteFile( string contents, Encoding encoding) { FileSystem.Initialize() @@ -357,7 +357,7 @@ public void CreateFromDirectory_WithStream_Overwrite_WithEncoding_ShouldOverwrit #if FEATURE_COMPRESSION_STREAM [SkippableFact] - public void CreateFromDirectory_WithStream_ShouldZipDirectoryContent() + public async Task CreateFromDirectory_WithStream_ShouldZipDirectoryContent() { FileSystem.Initialize() .WithSubdirectory("destination") diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/ExtractToDirectoryTests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/ExtractToDirectoryTests.cs index c2602e3d9..b6754d4c8 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/ExtractToDirectoryTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/ExtractToDirectoryTests.cs @@ -13,7 +13,7 @@ public abstract partial class ExtractToDirectoryTests where TFileSystem : IFileSystem { [SkippableFact] - public void ExtractToDirectory_MissingDestinationDirectory_ShouldCreateDirectory() + public async Task ExtractToDirectory_MissingDestinationDirectory_ShouldCreateDirectory() { FileSystem.Initialize() .WithSubdirectory("foo").Initialized(s => s @@ -31,7 +31,7 @@ public void ExtractToDirectory_MissingDestinationDirectory_ShouldCreateDirectory } [SkippableFact] - public void + public async Task ExtractToDirectory_MissingSourceFileName_ShouldThrowArgumentNullException() { FileSystem.Initialize(); @@ -48,7 +48,7 @@ public void } [SkippableFact] - public void + public async Task ExtractToDirectory_NullAsSourceFileName_ShouldThrowArgumentNullException() { FileSystem.Initialize(); @@ -66,7 +66,7 @@ public void #if FEATURE_COMPRESSION_OVERWRITE [SkippableTheory] [AutoData] - public void ExtractToDirectory_Overwrite_ShouldOverwriteFile( + public async Task ExtractToDirectory_Overwrite_ShouldOverwriteFile( string contents) { FileSystem.Initialize() @@ -91,7 +91,7 @@ public void ExtractToDirectory_Overwrite_ShouldOverwriteFile( #if FEATURE_COMPRESSION_OVERWRITE [SkippableTheory] [AutoData] - public void ExtractToDirectory_WithEncoding_Overwrite_ShouldOverwriteFile( + public async Task ExtractToDirectory_WithEncoding_Overwrite_ShouldOverwriteFile( string contents, Encoding encoding) { @@ -116,7 +116,7 @@ public void ExtractToDirectory_WithEncoding_Overwrite_ShouldOverwriteFile( [SkippableTheory] [AutoData] - public void ExtractToDirectory_WithEncoding_ShouldZipDirectoryContent( + public async Task ExtractToDirectory_WithEncoding_ShouldZipDirectoryContent( Encoding encoding) { FileSystem.Initialize() @@ -138,7 +138,7 @@ public void ExtractToDirectory_WithEncoding_ShouldZipDirectoryContent( [SkippableTheory] [AutoData] - public void ExtractToDirectory_WithoutOverwriteAndExistingFile_ShouldOverwriteFile( + public async Task ExtractToDirectory_WithoutOverwriteAndExistingFile_ShouldOverwriteFile( string contents) { FileSystem.Initialize() @@ -166,7 +166,7 @@ public void ExtractToDirectory_WithoutOverwriteAndExistingFile_ShouldOverwriteFi #if FEATURE_COMPRESSION_STREAM [SkippableFact] - public void ExtractToDirectory_WithStream_MissingDestinationDirectory_ShouldCreateDirectory() + public async Task ExtractToDirectory_WithStream_MissingDestinationDirectory_ShouldCreateDirectory() { FileSystem.Initialize() .WithSubdirectory("foo").Initialized(s => s @@ -187,7 +187,7 @@ public void ExtractToDirectory_WithStream_MissingDestinationDirectory_ShouldCrea #if FEATURE_COMPRESSION_STREAM [SkippableFact] - public void + public async Task ExtractToDirectory_WithStream_NotReadable_ShouldThrowArgumentNullException() { FileSystem.Initialize(); @@ -205,7 +205,7 @@ public void #if FEATURE_COMPRESSION_STREAM [SkippableFact] - public void + public async Task ExtractToDirectory_WithStream_Null_ShouldThrowArgumentNullException() { FileSystem.Initialize(); @@ -224,7 +224,7 @@ public void #if FEATURE_COMPRESSION_STREAM [SkippableTheory] [AutoData] - public void ExtractToDirectory_WithStream_Overwrite_ShouldOverwriteFile( + public async Task ExtractToDirectory_WithStream_Overwrite_ShouldOverwriteFile( string contents) { FileSystem.Initialize() @@ -250,7 +250,7 @@ public void ExtractToDirectory_WithStream_Overwrite_ShouldOverwriteFile( #if FEATURE_COMPRESSION_STREAM [SkippableTheory] [AutoData] - public void ExtractToDirectory_WithStream_WithEncoding_Overwrite_ShouldOverwriteFile( + public async Task ExtractToDirectory_WithStream_WithEncoding_Overwrite_ShouldOverwriteFile( string contents, Encoding encoding) { @@ -277,7 +277,7 @@ public void ExtractToDirectory_WithStream_WithEncoding_Overwrite_ShouldOverwrite #if FEATURE_COMPRESSION_STREAM [SkippableTheory] [AutoData] - public void ExtractToDirectory_WithStream_WithEncoding_ShouldZipDirectoryContent( + public async Task ExtractToDirectory_WithStream_WithEncoding_ShouldZipDirectoryContent( Encoding encoding) { FileSystem.Initialize() @@ -302,7 +302,7 @@ public void ExtractToDirectory_WithStream_WithEncoding_ShouldZipDirectoryContent #if FEATURE_COMPRESSION_STREAM [SkippableTheory] [AutoData] - public void ExtractToDirectory_WithStream_WithoutOverwriteAndExistingFile_ShouldOverwriteFile( + public async Task ExtractToDirectory_WithStream_WithoutOverwriteAndExistingFile_ShouldOverwriteFile( string contents) { FileSystem.Initialize() @@ -333,7 +333,7 @@ public void ExtractToDirectory_WithStream_WithoutOverwriteAndExistingFile_Should #if FEATURE_COMPRESSION_STREAM [SkippableFact] - public void ExtractToDirectory_WithWriteOnlyStream_ShouldThrowArgumentException() + public async Task ExtractToDirectory_WithWriteOnlyStream_ShouldThrowArgumentException() { FileSystem.Initialize() .WithFile("target.zip") diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/OpenTests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/OpenTests.cs index 9f2f05c1c..d3a3024bb 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/OpenTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/OpenTests.cs @@ -8,7 +8,7 @@ public abstract partial class OpenTests where TFileSystem : IFileSystem { [SkippableFact] - public void Open_CreateMode_ShouldInitializeEmptyArchive() + public async Task Open_CreateMode_ShouldInitializeEmptyArchive() { IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Create); @@ -16,7 +16,7 @@ public void Open_CreateMode_ShouldInitializeEmptyArchive() } [SkippableFact] - public void Open_InvalidMode_ShouldThrowArgumentOutOfRangeException() + public async Task Open_InvalidMode_ShouldThrowArgumentOutOfRangeException() { ZipArchiveMode invalidMode = (ZipArchiveMode)(-1); @@ -32,7 +32,7 @@ public void Open_InvalidMode_ShouldThrowArgumentOutOfRangeException() [SkippableTheory] [InlineData(ZipArchiveMode.Read)] [InlineData(ZipArchiveMode.Update)] - public void Open_ShouldOpenExistingArchive(ZipArchiveMode mode) + public async Task Open_ShouldOpenExistingArchive(ZipArchiveMode mode) { FileSystem.Initialize() .WithSubdirectory("foo"); @@ -48,7 +48,7 @@ public void Open_ShouldOpenExistingArchive(ZipArchiveMode mode) } [SkippableFact] - public void OpenRead_ShouldOpenExistingArchiveInReadMode() + public async Task OpenRead_ShouldOpenExistingArchiveInReadMode() { FileSystem.Initialize() .WithSubdirectory("foo"); diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/Tests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/Tests.cs index 0f5c44041..472bc5337 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/Tests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/Tests.cs @@ -6,7 +6,7 @@ public abstract partial class Tests where TFileSystem : IFileSystem { [SkippableFact] - public void FileSystemExtension_ShouldBeSet() + public async Task FileSystemExtension_ShouldBeSet() { IZipFile result = FileSystem.ZipFile();