From 08679798de5317e36afa507450992a55ac89a4ea Mon Sep 17 00:00:00 2001 From: Valentin Date: Mon, 16 Dec 2024 20:44:37 +0100 Subject: [PATCH] Remove FluentAssertions from compression tests --- .../TestHelpers/Usings.cs | 1 - ...ably.Abstractions.Compression.Tests.csproj | 1 - .../ZipArchive/Tests.cs | 17 +-- .../ZipArchiveFactory/Tests.cs | 8 +- .../ZipFile/CreateFromDirectoryTests.cs | 97 +++++++------- .../ZipFile/ExtractToDirectoryTests.cs | 123 ++++++++---------- .../ZipFile/OpenTests.cs | 18 +-- .../ZipFile/Tests.cs | 2 +- 8 files changed, 124 insertions(+), 143 deletions(-) diff --git a/Tests/Testably.Abstractions.Compression.Tests/TestHelpers/Usings.cs b/Tests/Testably.Abstractions.Compression.Tests/TestHelpers/Usings.cs index f9e855dc4..77260483c 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/TestHelpers/Usings.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/TestHelpers/Usings.cs @@ -1,5 +1,4 @@ global using AutoFixture.Xunit2; -global using FluentAssertions; global using System; global using System.Threading.Tasks; global using System.IO.Abstractions; diff --git a/Tests/Testably.Abstractions.Compression.Tests/Testably.Abstractions.Compression.Tests.csproj b/Tests/Testably.Abstractions.Compression.Tests/Testably.Abstractions.Compression.Tests.csproj index 354a76635..2fcc4e1be 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/Testably.Abstractions.Compression.Tests.csproj +++ b/Tests/Testably.Abstractions.Compression.Tests/Testably.Abstractions.Compression.Tests.csproj @@ -13,7 +13,6 @@ - diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/Tests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/Tests.cs index 84b015af3..55a649eac 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/Tests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipArchive/Tests.cs @@ -1,4 +1,5 @@ -using System.IO; +using System.Collections.ObjectModel; +using System.IO; using System.IO.Compression; namespace Testably.Abstractions.Compression.Tests.ZipArchive; @@ -55,9 +56,9 @@ public async Task Entries_CreateMode_ShouldThrowNotSupportedException() IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Create); - Exception? exception = Record.Exception(() => archive.Entries); + ReadOnlyCollection Act() => archive.Entries; - exception.Should().BeOfType(); + await That(Act).Should().Throw(); } [SkippableTheory] @@ -74,7 +75,7 @@ public async Task FileSystem_ShouldBeSet( using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); - archive.FileSystem.Should().Be(FileSystem); + await That(archive.FileSystem).Should().Be(FileSystem); } [SkippableFact] @@ -90,9 +91,9 @@ public async Task GetEntry_WhenNameIsNotFound_ShouldReturnNull() using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); - archive.GetEntry("bar.txt").Should().BeNull(); - archive.GetEntry("foo.txt").Should().BeNull(); - archive.GetEntry("foo/foo.txt").Should().NotBeNull(); + await That(archive.GetEntry("bar.txt")).Should().BeNull(); + await That(archive.GetEntry("foo.txt")).Should().BeNull(); + await That(archive.GetEntry("foo/foo.txt")).Should().NotBeNull(); } [SkippableTheory] @@ -108,6 +109,6 @@ public async Task Mode_ShouldBeSetCorrectly(ZipArchiveMode mode) using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", mode); - archive.Mode.Should().Be(mode); + await That(archive.Mode).Should().Be(mode); } } diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveFactory/Tests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveFactory/Tests.cs index 6f99bc01d..904a9cc02 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveFactory/Tests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveFactory/Tests.cs @@ -108,16 +108,14 @@ public async Task New_WithEntryNameEncoding_ShouldUseEncoding( using IZipArchive readArchive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); - readArchive.Entries.Count.Should().Be(1); + var singleEntry = await That(readArchive.Entries).Should().HaveSingle(); if (encodedCorrectly) { - await That(readArchive.Entries).Should() - .Contain(e => string.Equals(e.Name, entryName, StringComparison.Ordinal)); + await That(singleEntry.Name).Should().Be(entryName); } else { - await That(readArchive.Entries).Should() - .NotContain(e => string.Equals(e.Name, entryName, StringComparison.Ordinal)); + await That(singleEntry.Name).Should().NotBe(entryName); } } diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs index 2d0c2b212..ff24ad7da 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs @@ -1,4 +1,5 @@ -using System.IO.Compression; +using FluentAssertions; +using System.IO.Compression; using System.Text; #if FEATURE_COMPRESSION_STREAM using System.IO; @@ -28,8 +29,8 @@ public async Task using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(1); - archive.Entries.Should().Contain(e => e.FullName.Equals("bar/")); + await That(archive.Entries).Should().HaveSingle() + .Which.For(x => x.FullName, f => f.Should().Be("bar/")); } [SkippableTheory] @@ -46,7 +47,7 @@ public async Task CreateFromDirectory_EmptySource_DoNotIncludeBaseDirectory_Shou using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(0); + await That(archive.Entries).Should().BeEmpty(); } [SkippableTheory] @@ -64,8 +65,8 @@ public async Task using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(1); - archive.Entries.Should().Contain(e => e.FullName.Equals("foo/")); + await That(archive.Entries).Should().HaveSingle() + .Which.For(x => x.FullName, f => f.Should().Be("foo/")); } [SkippableTheory] @@ -84,14 +85,14 @@ public async Task CreateFromDirectory_EntryNameEncoding_ShouldUseEncoding( using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(1); + var singleEntry = await That(archive.Entries).Should().HaveSingle(); if (encodedCorrectly) { - archive.Entries.Should().Contain(e => e.Name == entryName); + await That(singleEntry.Name).Should().Be(entryName); } else { - archive.Entries.Should().NotContain(e => e.Name == entryName); + await That(singleEntry.Name).Should().NotBe(entryName); } } @@ -110,8 +111,8 @@ public async Task CreateFromDirectory_IncludeBaseDirectory_ShouldPrependDirector using IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(1); - archive.Entries.Should().Contain(e => e.FullName.Equals("foo/test.txt")); + await That(archive.Entries).Should().HaveSingle() + .Which.For(x => x.FullName, f => f.Should().Be("foo/test.txt")); } #if FEATURE_COMPRESSION_OVERWRITE @@ -134,8 +135,8 @@ public async Task CreateFromDirectory_Overwrite_WithEncoding_ShouldOverwriteFile IZipArchive archive = FileSystem.ZipFile() .Open("destination.zip", ZipArchiveMode.Read, encoding); - archive.Entries.Count.Should().Be(1); - archive.Entries.Should().Contain(e => e.FullName.Equals("test.txt")); + await That(archive.Entries).Should().HaveSingle() + .Which.For(x => x.FullName, f => f.Should().Be("test.txt")); } #endif @@ -152,11 +153,9 @@ public async Task CreateFromDirectory_ShouldZipDirectoryContent() FileSystem.ZipFile().ExtractToDirectory("destination.zip", "destination"); - FileSystem.File.Exists("destination/bar/test.txt") - .Should().BeTrue(); - FileSystem.File.ReadAllBytes("destination/bar/test.txt") - .Should().BeEquivalentTo( - FileSystem.File.ReadAllBytes("foo/bar/test.txt")); + await That(FileSystem).Should().HaveFile("destination/bar/test.txt"); + await That(FileSystem.File.ReadAllBytes("destination/bar/test.txt")) + .Should().Be(FileSystem.File.ReadAllBytes("foo/bar/test.txt")); } #if FEATURE_COMPRESSION_STREAM @@ -170,16 +169,16 @@ public async Task CreateFromDirectory_WithReadOnlyStream_ShouldThrowArgumentExce using FileSystemStream stream = FileSystem.FileStream.New( "target.zip", FileMode.Open, FileAccess.Read); - Exception? exception = Record.Exception(() => + void Act() { // ReSharper disable once AccessToDisposedClosure FileSystem.ZipFile().CreateFromDirectory("foo", stream); - }); + } - exception.Should().BeException( - paramName: "destination", - hResult: -2147024809, - messageContains: "stream is unwritable"); + await That(Act).Should().Throw() + .WithParamName("destination").And + .WithHResult(-2147024809).And + .WithMessage("*stream is unwritable*").AsWildcard(); } #endif @@ -200,8 +199,8 @@ public async Task using IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(1); - archive.Entries.Should().Contain(e => e.FullName.Equals("bar/")); + await That(archive.Entries).Should().HaveSingle() + .Which.For(x => x.FullName, f => f.Should().Be("bar/")); } #endif @@ -220,7 +219,7 @@ public async Task CreateFromDirectory_WithStream_EmptySource_DoNotIncludeBaseDir using IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(0); + await That(archive.Entries).Should().BeEmpty(); } #endif @@ -240,8 +239,8 @@ public async Task using IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(1); - archive.Entries.Should().Contain(e => e.FullName.Equals("foo/")); + await That(archive.Entries).Should().HaveSingle() + .Which.For(x => x.FullName, f => f.Should().Be("foo/")); } #endif @@ -262,14 +261,14 @@ public async Task CreateFromDirectory_WithStream_EntryNameEncoding_ShouldUseEnco using IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(1); + var singleEntry = await That(archive.Entries).Should().HaveSingle(); if (encodedCorrectly) { - archive.Entries.Should().Contain(e => e.Name == entryName); + await That(singleEntry.Name).Should().Be(entryName); } else { - archive.Entries.Should().NotContain(e => e.Name == entryName); + await That(singleEntry.Name).Should().NotBe(entryName); } } #endif @@ -290,8 +289,8 @@ public async Task CreateFromDirectory_WithStream_IncludeBaseDirectory_ShouldPrep using IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read); - archive.Entries.Count.Should().Be(1); - archive.Entries.Should().Contain(e => e.FullName.Equals("foo/test.txt")); + await That(archive.Entries).Should().HaveSingle() + .Which.For(x => x.FullName, f => f.Should().Be("foo/test.txt")); } #endif @@ -302,13 +301,15 @@ public async Task { Stream stream = new MemoryStreamMock(canWrite: false); - Exception? exception = Record.Exception(() => + void Act() { FileSystem.ZipFile().CreateFromDirectory("foo", stream); - }); + } - exception.Should().BeException("The stream is unwritable", - paramName: "destination", hResult: -2147024809); + await That(Act).Should().Throw() + .WithMessage("The stream is unwritable").And + .WithParamName("destination").And + .WithHResult(-2147024809); } #endif @@ -319,13 +320,13 @@ public async Task { Stream stream = null!; - Exception? exception = Record.Exception(() => + void Act() { FileSystem.ZipFile().CreateFromDirectory("foo", stream); - }); + } - exception.Should().BeOfType() - .Which.ParamName.Should().Be("destination"); + await That(Act).Should().Throw() + .WithParamName("destination"); } #endif @@ -350,8 +351,8 @@ public async Task CreateFromDirectory_WithStream_Overwrite_WithEncoding_ShouldOv IZipArchive archive = FileSystem.ZipArchive().New(stream, ZipArchiveMode.Read, true, encoding); - archive.Entries.Count.Should().Be(1); - archive.Entries.Should().Contain(e => e.FullName.Equals("test.txt")); + await That(archive.Entries).Should().HaveSingle() + .Which.For(x => x.FullName, f => f.Should().Be("test.txt")); } #endif @@ -370,11 +371,9 @@ public async Task CreateFromDirectory_WithStream_ShouldZipDirectoryContent() FileSystem.ZipFile().ExtractToDirectory(stream, "destination"); - FileSystem.File.Exists("destination/bar/test.txt") - .Should().BeTrue(); - FileSystem.File.ReadAllBytes("destination/bar/test.txt") - .Should().BeEquivalentTo( - FileSystem.File.ReadAllBytes("foo/bar/test.txt")); + await That(FileSystem).Should().HaveFile("destination/bar/test.txt"); + await That(FileSystem.File.ReadAllBytes("destination/bar/test.txt")) + .Should().Be(FileSystem.File.ReadAllBytes("foo/bar/test.txt")); } #endif diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/ExtractToDirectoryTests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/ExtractToDirectoryTests.cs index b6754d4c8..1d331e21c 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/ExtractToDirectoryTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/ExtractToDirectoryTests.cs @@ -23,11 +23,9 @@ public async Task ExtractToDirectory_MissingDestinationDirectory_ShouldCreateDir FileSystem.ZipFile().ExtractToDirectory("destination.zip", "bar"); - FileSystem.File.Exists("bar/test.txt") - .Should().BeTrue(); - FileSystem.File.ReadAllBytes("bar/test.txt") - .Should().BeEquivalentTo( - FileSystem.File.ReadAllBytes("foo/test.txt")); + await That(FileSystem).Should().HaveFile("bar/test.txt"); + await That(FileSystem.File.ReadAllBytes("bar/test.txt")) + .Should().Be(FileSystem.File.ReadAllBytes("foo/test.txt")); } [SkippableFact] @@ -37,14 +35,13 @@ public async Task FileSystem.Initialize(); string sourceArchiveFileName = "destination.zip"; - Exception? exception = Record.Exception(() => + void Act() { FileSystem.ZipFile().ExtractToDirectory(sourceArchiveFileName, "bar"); - }); + } - exception.Should().BeOfType() - .Which.Message.Should() - .Contain($"'{FileSystem.Path.GetFullPath(sourceArchiveFileName)}"); + await That(Act).Should().Throw() + .WithMessage($"*'{FileSystem.Path.GetFullPath(sourceArchiveFileName)}*").AsWildcard(); } [SkippableFact] @@ -54,13 +51,13 @@ public async Task FileSystem.Initialize(); string sourceArchiveFileName = null!; - Exception? exception = Record.Exception(() => + void Act() { FileSystem.ZipFile().ExtractToDirectory(sourceArchiveFileName, "bar"); - }); + } - exception.Should().BeOfType() - .Which.ParamName.Should().Be("sourceArchiveFileName"); + await That(Act).Should().Throw() + .WithParamName("sourceArchiveFileName"); } #if FEATURE_COMPRESSION_OVERWRITE @@ -81,10 +78,8 @@ public async Task ExtractToDirectory_Overwrite_ShouldOverwriteFile( FileSystem.ZipFile().ExtractToDirectory("destination.zip", "bar", true); - FileSystem.File.Exists(FileSystem.Path.Combine("bar", "test.txt")) - .Should().BeTrue(); - FileSystem.File.ReadAllText(FileSystem.Path.Combine("bar", "test.txt")) - .Should().Be(contents); + await That(FileSystem).Should().HaveFile(FileSystem.Path.Combine("bar", "test.txt")) + .WithContent(contents); } #endif @@ -107,10 +102,8 @@ public async Task ExtractToDirectory_WithEncoding_Overwrite_ShouldOverwriteFile( FileSystem.ZipFile().ExtractToDirectory("destination.zip", "bar", encoding, true); - FileSystem.File.Exists(FileSystem.Path.Combine("bar", "test.txt")) - .Should().BeTrue(); - FileSystem.File.ReadAllText(FileSystem.Path.Combine("bar", "test.txt")) - .Should().Be(contents); + await That(FileSystem).Should().HaveFile(FileSystem.Path.Combine("bar", "test.txt")) + .WithContent(contents); } #endif @@ -129,11 +122,9 @@ public async Task ExtractToDirectory_WithEncoding_ShouldZipDirectoryContent( FileSystem.ZipFile().ExtractToDirectory("destination.zip", "bar", encoding); - FileSystem.File.Exists(FileSystem.Path.Combine("bar", "test.txt")) - .Should().BeTrue(); - FileSystem.File.ReadAllBytes(FileSystem.Path.Combine("bar", "test.txt")) - .Should().BeEquivalentTo( - FileSystem.File.ReadAllBytes(FileSystem.Path.Combine("foo", "test.txt"))); + await That(FileSystem).Should().HaveFile(FileSystem.Path.Combine("bar", "test.txt")); + await That(FileSystem.File.ReadAllBytes(FileSystem.Path.Combine("bar", "test.txt"))) + .Should().Be(FileSystem.File.ReadAllBytes(FileSystem.Path.Combine("foo", "test.txt"))); } [SkippableTheory] @@ -153,14 +144,14 @@ public async Task ExtractToDirectory_WithoutOverwriteAndExistingFile_ShouldOverw FileSystem.ZipFile().CreateFromDirectory("foo", "destination.zip"); - Exception? exception = Record.Exception(() => + void Act() { FileSystem.ZipFile().ExtractToDirectory("destination.zip", "bar"); - }); + } - exception.Should().BeOfType() - .Which.Message.Should().Contain($"'{destinationPath}'"); - FileSystem.File.ReadAllText(destinationPath) + await That(Act).Should().Throw() + .WithMessage($"*'{destinationPath}'*").AsWildcard(); + await That(FileSystem.File.ReadAllText(destinationPath)) .Should().NotBe(contents); } @@ -177,11 +168,9 @@ public async Task ExtractToDirectory_WithStream_MissingDestinationDirectory_Shou FileSystem.ZipFile().ExtractToDirectory(stream, "bar"); - FileSystem.File.Exists("bar/test.txt") - .Should().BeTrue(); - FileSystem.File.ReadAllBytes("bar/test.txt") - .Should().BeEquivalentTo( - FileSystem.File.ReadAllBytes("foo/test.txt")); + await That(FileSystem).Should().HaveFile("bar/test.txt"); + await That(FileSystem.File.ReadAllBytes("bar/test.txt")) + .Should().Be(FileSystem.File.ReadAllBytes("foo/test.txt")); } #endif @@ -193,13 +182,15 @@ public async Task FileSystem.Initialize(); Stream source = new MemoryStreamMock(canRead: false); - Exception? exception = Record.Exception(() => + void Act() { FileSystem.ZipFile().ExtractToDirectory(source, "bar"); - }); + } - exception.Should().BeException( - "The stream is unreadable", paramName: "source", hResult: -2147024809); + await That(Act).Should().Throw() + .WithMessage("The stream is unreadable").And + .WithParamName("source").And + .WithHResult(-2147024809); } #endif @@ -211,13 +202,13 @@ public async Task FileSystem.Initialize(); Stream source = null!; - Exception? exception = Record.Exception(() => + void Act() { FileSystem.ZipFile().ExtractToDirectory(source, "bar"); - }); + } - exception.Should().BeOfType() - .Which.ParamName.Should().Be("source"); + await That(Act).Should().Throw() + .WithParamName("source"); } #endif @@ -240,10 +231,8 @@ public async Task ExtractToDirectory_WithStream_Overwrite_ShouldOverwriteFile( FileSystem.ZipFile().ExtractToDirectory(stream, "bar", true); - FileSystem.File.Exists(FileSystem.Path.Combine("bar", "test.txt")) - .Should().BeTrue(); - FileSystem.File.ReadAllText(FileSystem.Path.Combine("bar", "test.txt")) - .Should().Be(contents); + await That(FileSystem).Should().HaveFile(FileSystem.Path.Combine("bar", "test.txt")) + .WithContent(contents); } #endif @@ -267,10 +256,8 @@ public async Task ExtractToDirectory_WithStream_WithEncoding_Overwrite_ShouldOve FileSystem.ZipFile().ExtractToDirectory(stream, "bar", encoding, true); - FileSystem.File.Exists(FileSystem.Path.Combine("bar", "test.txt")) - .Should().BeTrue(); - FileSystem.File.ReadAllText(FileSystem.Path.Combine("bar", "test.txt")) - .Should().Be(contents); + await That(FileSystem).Should().HaveFile(FileSystem.Path.Combine("bar", "test.txt")) + .WithContent(contents); } #endif @@ -291,11 +278,9 @@ public async Task ExtractToDirectory_WithStream_WithEncoding_ShouldZipDirectoryC FileSystem.ZipFile().ExtractToDirectory(stream, "bar", encoding); - FileSystem.File.Exists(FileSystem.Path.Combine("bar", "test.txt")) - .Should().BeTrue(); - FileSystem.File.ReadAllBytes(FileSystem.Path.Combine("bar", "test.txt")) - .Should().BeEquivalentTo( - FileSystem.File.ReadAllBytes(FileSystem.Path.Combine("foo", "test.txt"))); + await That(FileSystem).Should().HaveFile(FileSystem.Path.Combine("bar", "test.txt")); + await That(FileSystem.File.ReadAllBytes(FileSystem.Path.Combine("bar", "test.txt"))) + .Should().Be(FileSystem.File.ReadAllBytes(FileSystem.Path.Combine("foo", "test.txt"))); } #endif @@ -318,15 +303,15 @@ public async Task ExtractToDirectory_WithStream_WithoutOverwriteAndExistingFile_ FileSystem.ZipFile().CreateFromDirectory("foo", stream); - Exception? exception = Record.Exception(() => + void Act() { // ReSharper disable once AccessToDisposedClosure FileSystem.ZipFile().ExtractToDirectory(stream, "bar"); - }); + } - exception.Should().BeOfType() - .Which.Message.Should().Contain($"'{destinationPath}'"); - FileSystem.File.ReadAllText(destinationPath) + await That(Act).Should().Throw() + .WithMessage($"*'{destinationPath}'*").AsWildcard(); + await That(FileSystem.File.ReadAllText(destinationPath)) .Should().NotBe(contents); } #endif @@ -344,16 +329,16 @@ public async Task ExtractToDirectory_WithWriteOnlyStream_ShouldThrowArgumentExce FileSystem.ZipFile().CreateFromDirectory("foo", stream); - Exception? exception = Record.Exception(() => + void Act() { // ReSharper disable once AccessToDisposedClosure FileSystem.ZipFile().ExtractToDirectory(stream, "bar"); - }); + } - exception.Should().BeException( - paramName: "source", - hResult: -2147024809, - messageContains: "stream is unreadable"); + await That(Act).Should().Throw() + .WithParamName("source").And + .WithHResult(-2147024809).And + .WithMessage("*stream is unreadable*").AsWildcard(); } #endif } diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/OpenTests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/OpenTests.cs index d3a3024bb..174e93913 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/OpenTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/OpenTests.cs @@ -12,7 +12,7 @@ public async Task Open_CreateMode_ShouldInitializeEmptyArchive() { IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", ZipArchiveMode.Create); - archive.Mode.Should().Be(ZipArchiveMode.Create); + await That(archive.Mode).Should().Be(ZipArchiveMode.Create); } [SkippableFact] @@ -20,13 +20,13 @@ public async Task Open_InvalidMode_ShouldThrowArgumentOutOfRangeException() { ZipArchiveMode invalidMode = (ZipArchiveMode)(-1); - Exception? exception = Record.Exception(() => + void Act() { FileSystem.ZipFile().Open("destination.zip", invalidMode); - }); + } - exception.Should().BeOfType() - .Which.ParamName.Should().Be("mode"); + await That(Act).Should().Throw() + .WithParamName("mode"); } [SkippableTheory] @@ -43,8 +43,8 @@ public async Task Open_ShouldOpenExistingArchive(ZipArchiveMode mode) IZipArchive archive = FileSystem.ZipFile().Open("destination.zip", mode); - archive.Mode.Should().Be(mode); - archive.Entries.Should().HaveCount(1); + await That(archive.Mode).Should().Be(mode); + await That(archive.Entries).Should().HaveExactly(1).Items(); } [SkippableFact] @@ -59,7 +59,7 @@ public async Task OpenRead_ShouldOpenExistingArchiveInReadMode() IZipArchive archive = FileSystem.ZipFile().OpenRead("destination.zip"); - 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(); } } diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/Tests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/Tests.cs index 472bc5337..10533afc4 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/Tests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/Tests.cs @@ -10,6 +10,6 @@ public async Task FileSystemExtension_ShouldBeSet() { IZipFile result = FileSystem.ZipFile(); - result.FileSystem.Should().Be(FileSystem); + await That(result.FileSystem).Should().Be(FileSystem); } }