diff --git a/Directory.Packages.props b/Directory.Packages.props index 041d09437..2904c112f 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -43,11 +43,11 @@ - + - - - + + + diff --git a/Tests/Helpers/Testably.Abstractions.TestHelpers/AssertionHelpers.cs b/Tests/Helpers/Testably.Abstractions.TestHelpers/AssertionHelpers.cs index 7bbfc59ab..57f234a74 100644 --- a/Tests/Helpers/Testably.Abstractions.TestHelpers/AssertionHelpers.cs +++ b/Tests/Helpers/Testably.Abstractions.TestHelpers/AssertionHelpers.cs @@ -1,11 +1,10 @@ -#if NET8_0_OR_GREATER -using System.Diagnostics.CodeAnalysis; -#endif -using aweXpect.Core; +using aweXpect.Core; using aweXpect.Core.Constraints; +using aweXpect.Core.Extending; using aweXpect.Core.Sources; using aweXpect.Delegates; using aweXpect.Formatting; +using aweXpect.Results; using System; using System.IO; using System.Text; @@ -15,16 +14,49 @@ namespace Testably.Abstractions.TestHelpers; public static class AssertionHelpers { + /// + /// Adds the to the only when the + /// is . + /// + public static AndOrResult AndIf( + this AndOrResult result, + bool condition, + Func expectations) + where TSelf : AndOrResult + { + if (condition) + { + expectations(result.And); + } + + return result; + } + + /// + public static ThatDelegateThrows AndIf( + this ThatDelegateThrows result, + bool condition, + Func, Expectation> expectations) + where TException : Exception? + { + if (condition) + { + expectations(result); + } + + return result; + } + /// /// Verifies that the throws either a or /// a with their corresponding HResult values. /// public static ThatDelegateThrows ThrowsAFileOrDirectoryNotFoundException( - this ThatDelegate @delegate) + this ThatDelegate.WithoutValue @delegate) { ThrowsOption? throwOptions = new(); return new ThatDelegateThrows( - @delegate.ExpectationBuilder.AddConstraint((it, grammars) + @delegate.Get().ExpectationBuilder.AddConstraint((it, grammars) => new DelegateIsNotNullWithinTimeoutConstraint(it, grammars, throwOptions)) .ForWhich(d => d.Exception) .AddConstraint((it, grammars) @@ -88,14 +120,7 @@ public override void AppendResult(StringBuilder stringBuilder, string? indentati public override ConstraintResult Negate() => this; -#if NET8_0_OR_GREATER - public override bool TryGetValue([NotNullWhen(true)] out TValue? value) - where TValue : default -#else - #pragma warning disable CS8765 - public override bool TryGetValue(out TValue? value) where TValue : default - #pragma warning restore CS8765 -#endif + public override bool TryGetStoredValue(out TValue? value) where TValue : default { value = default; return false; @@ -184,14 +209,7 @@ public override ConstraintResult Negate() return this; } -#if NET8_0_OR_GREATER - public override bool TryGetValue([NotNullWhen(true)] out TValue? value) - where TValue : default -#else - #pragma warning disable CS8765 - public override bool TryGetValue(out TValue? value) where TValue : default - #pragma warning restore CS8765 -#endif + public override bool TryGetStoredValue(out TValue? value) where TValue : default { if (_actual is TValue typedValue) { diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/Tests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/Tests.cs index 494769850..c6edbd74c 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/Tests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipArchiveEntry/Tests.cs @@ -87,8 +87,8 @@ public async Task CompressedLength_WithNoCompression_ShouldBeFileLength() IZipArchive archive = FileSystem.ZipArchive.New(stream, ZipArchiveMode.Read); await That(archive.Entries.Single()) - .For(x => x.Length, l => l.IsEqualTo(9)).And - .For(x => x.CompressedLength, l => l.IsEqualTo(9)); + .Whose(x => x.Length, l => l.IsEqualTo(9)).And + .Whose(x => x.CompressedLength, l => l.IsEqualTo(9)); } [Test] @@ -106,8 +106,8 @@ public async Task CompressedLength_WithOptimalCompressionLevel_ShouldBeLessThanF IZipArchive archive = FileSystem.ZipArchive.New(stream, ZipArchiveMode.Read); await That(archive.Entries.Single()) - .For(x => x.Length, l => l.IsEqualTo(9)).And - .For(x => x.CompressedLength, l => l.IsLessThan(9)); + .Whose(x => x.Length, l => l.IsEqualTo(9)).And + .Whose(x => x.CompressedLength, l => l.IsLessThan(9)); } #if FEATURE_COMPRESSION_ADVANCED diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryAsyncTests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryAsyncTests.cs index 9b137b2fa..a264c47f0 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryAsyncTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryAsyncTests.cs @@ -30,7 +30,7 @@ await FileSystem.ZipFile FileSystem.ZipFile.Open("destination.zip", ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("bar/")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("bar/")); } [Test] @@ -68,7 +68,7 @@ await FileSystem.ZipFile FileSystem.ZipFile.Open("destination.zip", ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("foo/")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("foo/")); } [Test] @@ -115,7 +115,7 @@ await FileSystem.ZipFile FileSystem.ZipFile.Open("destination.zip", ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("foo/test.txt")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("foo/test.txt")); } [Test] @@ -138,7 +138,7 @@ await FileSystem.ZipFile.CreateFromDirectoryAsync("foo", "destination.zip", .Open("destination.zip", ZipArchiveMode.Read, encoding); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("test.txt")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("test.txt")); } [Test] @@ -199,7 +199,7 @@ await FileSystem.ZipFile using IZipArchive archive = FileSystem.ZipArchive.New(stream, ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("bar/")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("bar/")); } [Test] @@ -238,7 +238,7 @@ await FileSystem.ZipFile using IZipArchive archive = FileSystem.ZipArchive.New(stream, ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("foo/")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("foo/")); } [Test] @@ -286,7 +286,7 @@ await FileSystem.ZipFile using IZipArchive archive = FileSystem.ZipArchive.New(stream, ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("foo/test.txt")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("foo/test.txt")); } [Test] @@ -343,7 +343,7 @@ await FileSystem.ZipFile.CreateFromDirectoryAsync("foo", stream, FileSystem.ZipArchive.New(stream, ZipArchiveMode.Read, true, encoding); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("test.txt")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("test.txt")); } [Test] diff --git a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs index 0bacd1f83..31243a07e 100644 --- a/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs +++ b/Tests/Testably.Abstractions.Compression.Tests/ZipFile/CreateFromDirectoryTests.cs @@ -28,7 +28,7 @@ public async Task FileSystem.ZipFile.Open("destination.zip", ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("bar/")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("bar/")); } [Test] @@ -64,7 +64,7 @@ public async Task FileSystem.ZipFile.Open("destination.zip", ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("foo/")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("foo/")); } [Test] @@ -110,7 +110,7 @@ public async Task CreateFromDirectory_IncludeBaseDirectory_ShouldPrependDirector FileSystem.ZipFile.Open("destination.zip", ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("foo/test.txt")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("foo/test.txt")); } #if FEATURE_COMPRESSION_OVERWRITE @@ -134,7 +134,7 @@ public async Task CreateFromDirectory_Overwrite_WithEncoding_ShouldOverwriteFile .Open("destination.zip", ZipArchiveMode.Read, encoding); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("test.txt")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("test.txt")); } #endif @@ -197,7 +197,7 @@ public async Task using IZipArchive archive = FileSystem.ZipArchive.New(stream, ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("bar/")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("bar/")); } #endif @@ -238,7 +238,7 @@ public async Task using IZipArchive archive = FileSystem.ZipArchive.New(stream, ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("foo/")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("foo/")); } #endif @@ -289,7 +289,7 @@ public async Task using IZipArchive archive = FileSystem.ZipArchive.New(stream, ZipArchiveMode.Read); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("foo/test.txt")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("foo/test.txt")); } #endif @@ -351,7 +351,7 @@ public async Task CreateFromDirectory_WithStream_Overwrite_WithEncoding_ShouldOv FileSystem.ZipArchive.New(stream, ZipArchiveMode.Read, true, encoding); await That(archive.Entries).HasSingle() - .Which.For(x => x.FullName, f => f.IsEqualTo("test.txt")); + .Which.Whose(x => x.FullName, f => f.IsEqualTo("test.txt")); } #endif diff --git a/Tests/Testably.Abstractions.Testing.Tests/FileSystem/DirectoryMockTests.cs b/Tests/Testably.Abstractions.Testing.Tests/FileSystem/DirectoryMockTests.cs index 63140d62c..3e3883815 100644 --- a/Tests/Testably.Abstractions.Testing.Tests/FileSystem/DirectoryMockTests.cs +++ b/Tests/Testably.Abstractions.Testing.Tests/FileSystem/DirectoryMockTests.cs @@ -21,7 +21,7 @@ void Act() => _ = fileSystem.Directory.EnumerateDirectories(path); await That(Act).Throws() - .WithMessageContaining($"'{sut.FullName}'").And + .WithMessage().Containing($"'{sut.FullName}'").And .WithHResult(-2147024891); } @@ -42,7 +42,7 @@ void Act() => _ = fileSystem.Directory.EnumerateFiles(path); await That(Act).Throws() - .WithMessageContaining($"'{sut.FullName}'").And + .WithMessage().Containing($"'{sut.FullName}'").And .WithHResult(-2147024891); } @@ -63,7 +63,7 @@ void Act() => _ = fileSystem.Directory.EnumerateFileSystemEntries(path); await That(Act).Throws() - .WithMessageContaining($"'{sut.FullName}'").And + .WithMessage().Containing($"'{sut.FullName}'").And .WithHResult(-2147024891); } } diff --git a/Tests/Testably.Abstractions.Testing.Tests/RandomProviderTests.cs b/Tests/Testably.Abstractions.Testing.Tests/RandomProviderTests.cs index 7649408ac..87e352bc7 100644 --- a/Tests/Testably.Abstractions.Testing.Tests/RandomProviderTests.cs +++ b/Tests/Testably.Abstractions.Testing.Tests/RandomProviderTests.cs @@ -19,7 +19,7 @@ public async Task Default_ShouldReturnRandomGuid() results.Add(randomProvider.GetGuid()); } - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } [Test] @@ -34,7 +34,7 @@ public async Task Default_ShouldReturnRandomNumbers() results.Add(randomProvider.GetRandom(i).Next()); } - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } [Test] @@ -178,7 +178,7 @@ public async Task GenerateRandom_Next_WithoutGenerator_ShouldReturnRandomValues( results.Add(random.Next()); } - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } [Test] @@ -241,7 +241,7 @@ public async Task GenerateRandom_NextBytes_Span_WithoutGenerator_ShouldReturnRan results.Add(buffer); } - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #endif @@ -288,7 +288,7 @@ public async Task GenerateRandom_NextBytes_WithoutGenerator_ShouldReturnRandomVa results.Add(buffer); } - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } [Test] @@ -349,7 +349,7 @@ public async Task GenerateRandom_NextDouble_WithoutGenerator_ShouldReturnRandomV results.Add(random.NextDouble()); } - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #if FEATURE_RANDOM_ADVANCED @@ -455,7 +455,7 @@ public async Task GenerateRandom_NextInt64_WithoutGenerator_ShouldReturnRandomVa results.Add(random.NextInt64()); } - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #endif @@ -495,7 +495,7 @@ public async Task GenerateRandom_NextSingle_WithoutGenerator_ShouldReturnRandomV results.Add(random.NextSingle()); } - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #endif diff --git a/Tests/Testably.Abstractions.Testing.Tests/TimeProviderFactoryTests.cs b/Tests/Testably.Abstractions.Testing.Tests/TimeProviderFactoryTests.cs index cfd99d30d..bd4322d36 100644 --- a/Tests/Testably.Abstractions.Testing.Tests/TimeProviderFactoryTests.cs +++ b/Tests/Testably.Abstractions.Testing.Tests/TimeProviderFactoryTests.cs @@ -92,7 +92,7 @@ public async Task Random_ShouldReturnRandomDateTime() results.Add(TimeProviderFactory.Random().Create(_ => { }).Read()); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } [Test] diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/CreateSymbolicLinkTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/CreateSymbolicLinkTests.cs index b0ff775d7..b5111bdae 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/CreateSymbolicLinkTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/CreateSymbolicLinkTests.cs @@ -35,13 +35,13 @@ void Act() if (Test.RunsOnWindows) { await That(Act).Throws() - .WithMessageContaining($"'{path}'").And + .WithMessage().Containing($"'{path}'").And .WithHResult(-2147024713); } else { await That(Act).Throws() - .WithMessageContaining($"'{path}'").And + .WithMessage().Containing($"'{path}'").And .WithHResult(17); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/DeleteTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/DeleteTests.cs index 0c720ad5b..e20f3063d 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/DeleteTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/DeleteTests.cs @@ -22,7 +22,7 @@ void Act() if (Test.RunsOnLinux) { await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024893); } else @@ -58,7 +58,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024893); } @@ -96,7 +96,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024893); } @@ -146,7 +146,7 @@ void Act() if (Test.RunsOnWindows) { await That(Act).Throws() - .WithMessageContaining($"{filename}'").And + .WithMessage().Containing($"{filename}'").And .WithHResult(-2147024864); await That(FileSystem.File.Exists(filePath)).IsTrue(); } @@ -300,10 +300,9 @@ void Act() } await That(Act).Throws() - .WithHResult(Test.DependsOnOS(windows: -2147024751, macOS: 66, linux: 39)).And - .WithMessageContaining(!Test.RunsOnWindows || Test.IsNetFramework - ? null - : $"'{FileSystem.Path.Combine(BasePath, path)}'"); + .WithHResult(Test.DependsOnOS(windows: -2147024751, macOS: 66, linux: 39)) + .AndIf(Test.RunsOnWindows && !Test.IsNetFramework, + x => x.WithMessage().Containing($"'{FileSystem.Path.Combine(BasePath, path)}'")); await That(FileSystem.Directory.Exists(path)).IsTrue(); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateDirectoriesTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateDirectoriesTests.cs index a2da64803..0f389ffd3 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateDirectoriesTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateDirectoriesTests.cs @@ -36,7 +36,7 @@ void Act() => _ = FileSystem.Directory.EnumerateDirectories(path).ToList(); await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024893); await That(FileSystem.Directory.Exists(path)).IsFalse(); } @@ -53,7 +53,7 @@ void Act() => _ = FileSystem.Directory.EnumerateDirectories(path); await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024893); await That(FileSystem.Directory.Exists(path)).IsFalse(); } @@ -326,7 +326,7 @@ void Act() else { await That(Act).Throws() - .WithMessageContaining(@"Access to the path 'C:\Windows\System32\").And + .WithMessage().Containing(@"Access to the path 'C:\Windows\System32\").And .WithHResult(-2147024891); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateFileSystemInfosTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateFileSystemInfosTests.cs index 63243c45f..6f17085e3 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateFileSystemInfosTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateFileSystemInfosTests.cs @@ -23,7 +23,7 @@ void Act() => _ = FileSystem.Directory.EnumerateFileSystemEntries(path).ToList(); await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024893); await That(FileSystem.Directory.Exists(path)).IsFalse(); } @@ -40,7 +40,7 @@ void Act() => _ = FileSystem.Directory.EnumerateFileSystemEntries(path); await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024893); await That(FileSystem.Directory.Exists(path)).IsFalse(); } @@ -185,10 +185,9 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithMessageContaining( - // The searchPattern is not included in .NET Framework - Test.IsNetFramework ? null : $"'{searchPattern}'"); + .WithHResult(-2147024809) + // The searchPattern is not included in .NET Framework + .AndIf(!Test.IsNetFramework, x => x.WithMessage().Containing($"'{searchPattern}'")); } [Test] diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateFilesTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateFilesTests.cs index 55a559cbe..4e61d7830 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateFilesTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/EnumerateFilesTests.cs @@ -20,7 +20,7 @@ void Act() => _ = FileSystem.Directory.EnumerateFiles(path).ToList(); await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024893); await That(FileSystem.Directory.Exists(path)).IsFalse(); } @@ -37,7 +37,7 @@ void Act() => _ = FileSystem.Directory.EnumerateFiles(path); await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024893); await That(FileSystem.Directory.Exists(path)).IsFalse(); } @@ -356,10 +356,9 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithMessageContaining( - // The searchPattern is not included in .NET Framework - Test.IsNetFramework ? null : $"'{searchPattern}'"); + .WithHResult(-2147024809) + // The searchPattern is not included in .NET Framework + .AndIf(!Test.IsNetFramework, x => x.WithMessage().Containing($"'{searchPattern}'")); } [Test] diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/ExceptionTests.cs index 2bb688d93..2b2a3208d 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/ExceptionTests.cs @@ -80,8 +80,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -100,7 +100,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -121,8 +121,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has whitespace parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetDirectoriesTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetDirectoriesTests.cs index 24a1e0a67..22f0a041e 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetDirectoriesTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetDirectoriesTests.cs @@ -19,7 +19,7 @@ void Act() => FileSystem.Directory.GetDirectories(path); await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024893); await That(FileSystem.Directory.Exists(path)).IsFalse(); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetFileSystemInfosTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetFileSystemInfosTests.cs index fee47c067..00ead8290 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetFileSystemInfosTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetFileSystemInfosTests.cs @@ -23,7 +23,7 @@ void Act() => FileSystem.Directory.GetFileSystemEntries(path); await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'.").And + .WithMessage().Containing($"'{expectedPath}'.").And .WithHResult(-2147024893); await That(FileSystem.Directory.Exists(path)).IsFalse(); } @@ -151,10 +151,9 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithMessageContaining( - // The searchPattern is not included in .NET Framework - Test.IsNetFramework ? null : $"'{searchPattern}'"); + .WithHResult(-2147024809) + // The searchPattern is not included in .NET Framework + .AndIf(!Test.IsNetFramework, x => x.WithMessage().Containing($"'{searchPattern}'")); } [Test] diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetFilesTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetFilesTests.cs index 2146e58b8..764c83e3d 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetFilesTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/GetFilesTests.cs @@ -23,7 +23,7 @@ void Act() => FileSystem.Directory.GetFiles(path); await That(Act).Throws() - .WithMessageContaining(expectedPath).And + .WithMessage().Containing(expectedPath).And .WithHResult(-2147024893); await That(FileSystem.Directory.Exists(path)).IsFalse(); } @@ -230,10 +230,9 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithMessageContaining( - // The searchPattern is not included in .NET Framework - Test.IsNetFramework ? null : $"'{searchPattern}'"); + .WithHResult(-2147024809) + // The searchPattern is not included in .NET Framework + .AndIf(!Test.IsNetFramework, x => x.WithMessage().Containing($"'{searchPattern}'")); } [Test] diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/MoveTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/MoveTests.cs index c66eb2d80..904e594e5 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/MoveTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/MoveTests.cs @@ -262,7 +262,7 @@ public async Task Move_WithReadOnlyFile_ShouldMoveDirectoryWithContent( await That(destinationDirectory.GetFiles(initialized[1].Name)).HasSingle(); await That(destinationDirectory.GetDirectories(initialized[2].Name)).HasSingle(); await That(destinationDirectory.GetFiles(initialized[3].Name, SearchOption.AllDirectories)) - .HasSingle().Which.For(x => x.Attributes, a => a.HasFlag(FileAttributes.ReadOnly)); + .HasSingle().Which.Whose(x => x.Attributes, a => a.HasFlag(FileAttributes.ReadOnly)); await That( destinationDirectory.GetDirectories(initialized[4].Name, SearchOption.AllDirectories)) diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/ResolveLinkTargetTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/ResolveLinkTargetTests.cs index 83ea21d5c..31cb204a3 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/ResolveLinkTargetTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/ResolveLinkTargetTests.cs @@ -109,7 +109,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{previousPath}'").And + .WithMessage().Containing($"'{previousPath}'").And .WithHResult(Test.RunsOnWindows ? -2147022975 : -2146232800); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/Tests.Times.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/Tests.Times.cs index 891212e13..8c55590bd 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Directory/Tests.Times.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Directory/Tests.Times.cs @@ -170,13 +170,13 @@ void Act() if (Test.RunsOnWindows || (Test.IsNet8OrGreater && !Test.RunsOnMac)) { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } else { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024893); } } @@ -231,13 +231,13 @@ void Act() if (Test.RunsOnWindows || (Test.IsNet8OrGreater && !Test.RunsOnMac)) { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } else { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024893); } } @@ -292,13 +292,13 @@ void Act() if (Test.RunsOnWindows || Test.IsNet8OrGreater) { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } else { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024893); } } @@ -347,13 +347,13 @@ void Act() if (Test.RunsOnWindows || Test.IsNet8OrGreater) { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } else { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024893); } } @@ -402,13 +402,13 @@ void Act() if (Test.RunsOnWindows || Test.IsNet8OrGreater) { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } else { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024893); } } @@ -457,13 +457,13 @@ void Act() if (Test.RunsOnWindows || Test.IsNet8OrGreater) { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } else { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024893); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/CreateAsSymbolicLinkTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/CreateAsSymbolicLinkTests.cs index 95c45ea66..6210a6246 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/CreateAsSymbolicLinkTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/CreateAsSymbolicLinkTests.cs @@ -33,7 +33,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{path}'").And + .WithMessage().Containing($"'{path}'").And .WithHResult(Test.RunsOnWindows ? -2147024713 : 17); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/DeleteTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/DeleteTests.cs index bd3fce734..68886a8c9 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/DeleteTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/DeleteTests.cs @@ -18,7 +18,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{sut.FullName}'").And + .WithMessage().Containing($"'{sut.FullName}'").And .WithHResult(-2147024893); } @@ -66,7 +66,7 @@ void Act() if (Test.RunsOnWindows) { await That(Act).Throws() - .WithMessageContaining($"{filename}'").And + .WithMessage().Containing($"{filename}'").And .WithHResult(-2147024864); await That(FileSystem.File.Exists(filePath)).IsTrue(); } @@ -133,12 +133,10 @@ void Act() } await That(Act).Throws() - .WithHResult(Test.DependsOnOS(windows: -2147024751, macOS: 66, linux: 39)).And - .WithMessageContaining( - // Path information only included in exception message on Windows and not in .NET Framework - !Test.RunsOnWindows || Test.IsNetFramework - ? null - : $"'{sut.FullName}'"); + .WithHResult(Test.DependsOnOS(windows: -2147024751, macOS: 66, linux: 39)) + // Path information only included in exception message on Windows and not in .NET Framework + .AndIf(Test.RunsOnWindows && !Test.IsNetFramework, + x => x.WithMessage().Containing($"'{sut.FullName}'")); await That(sut.Exists).IsTrue(); await That(FileSystem.Directory.Exists(sut.FullName)).IsTrue(); diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/ExceptionTests.cs index 2809f56a7..183c6c215 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/ExceptionTests.cs @@ -76,8 +76,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -94,7 +94,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/MoveToTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/MoveToTests.cs index e4a634cf7..6efcbbeb4 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/MoveToTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/MoveToTests.cs @@ -163,7 +163,7 @@ public async Task MoveTo_WithReadOnlyFile_ShouldMoveDirectoryWithContent( await That(destinationDirectory.GetFiles(initialized[1].Name)).HasSingle(); await That(destinationDirectory.GetDirectories(initialized[2].Name)).HasSingle(); await That(destinationDirectory.GetFiles(initialized[3].Name, SearchOption.AllDirectories)) - .HasSingle().Which.For(x => x.Attributes, it => it.HasFlag(FileAttributes.ReadOnly)); + .HasSingle().Which.Whose(x => x.Attributes, it => it.HasFlag(FileAttributes.ReadOnly)); await That( destinationDirectory.GetDirectories(initialized[4].Name, SearchOption.AllDirectories)) diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/ResolveLinkTargetTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/ResolveLinkTargetTests.cs index 0bc2b83e3..6804133c3 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/ResolveLinkTargetTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfo/ResolveLinkTargetTests.cs @@ -45,7 +45,7 @@ void Act() await That(Act).Throws() .WithHResult(Test.RunsOnWindows ? -2147022975 : -2146232800).And - .WithMessageContaining($"'{directoryInfo.FullName}'"); + .WithMessage().Containing($"'{directoryInfo.FullName}'"); } [Test] diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfoFactory/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfoFactory/ExceptionTests.cs index 37a62fe88..2c1808b1e 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfoFactory/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfoFactory/ExceptionTests.cs @@ -62,8 +62,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -80,7 +80,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -99,8 +99,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has whitespace parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfoFactory/Tests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfoFactory/Tests.cs index 305ba6e58..386e3417d 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfoFactory/Tests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/DirectoryInfoFactory/Tests.cs @@ -19,7 +19,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining(expectedMessage).And + .WithMessage().Containing(expectedMessage).And #if !NETFRAMEWORK .WithParamName(nameof(path)).And #endif diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/DriveInfoFactory/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/DriveInfoFactory/ExceptionTests.cs index a190a52ec..27cce6eef 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/DriveInfoFactory/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/DriveInfoFactory/ExceptionTests.cs @@ -44,8 +44,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -62,7 +62,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/DriveInfoFactory/Tests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/DriveInfoFactory/Tests.cs index df5b476c0..9b25b51ac 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/DriveInfoFactory/Tests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/DriveInfoFactory/Tests.cs @@ -34,7 +34,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{path}'").And + .WithMessage().Containing($"'{path}'").And .WithHResult(-2147024893); } @@ -55,7 +55,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{path}'").And + .WithMessage().Containing($"'{path}'").And .WithHResult(-2147024893); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/CopyTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/CopyTests.cs index cbd706224..0cd189e22 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/CopyTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/CopyTests.cs @@ -124,7 +124,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining( + .WithMessage().Containing( "The filename, directory name, or volume label syntax is incorrect").And .WithHResult(-2147024773); } @@ -335,10 +335,9 @@ void Act() } await That(Act).Throws() - .WithMessageContaining(Test.IsNetFramework - ? null - : $"'{FileSystem.Path.GetFullPath(source)}'").And - .WithHResult(-2147024893); + .WithHResult(-2147024893) + .AndIf(!Test.IsNetFramework, + x => x.WithMessage().Containing($"'{FileSystem.Path.GetFullPath(source)}'")); await That(FileSystem.File.Exists(destinationName)).IsFalse(); } @@ -356,7 +355,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining(Test.IsNetFramework + .WithMessage().Containing(Test.IsNetFramework ? $"'{sourceName}'" : $"'{FileSystem.Path.GetFullPath(sourceName)}'").And .WithHResult(-2147024891); @@ -391,7 +390,7 @@ void Act() } else { - await That(Act).ThrowsException(); + await That(Act).Throws(); await That(FileSystem.File.Exists(sourceName)).IsTrue(); await That(FileSystem.File.Exists(destinationName)).IsFalse(); } @@ -409,10 +408,9 @@ void Act() } await That(Act).Throws() - .WithMessageContaining(Test.IsNetFramework - ? null - : $"'{FileSystem.Path.GetFullPath(sourceName)}'").And - .WithHResult(-2147024894); + .WithHResult(-2147024894) + .AndIf(!Test.IsNetFramework, + x => x.WithMessage().Containing($"'{FileSystem.Path.GetFullPath(sourceName)}'")); await That(FileSystem.File.Exists(destinationName)).IsFalse(); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/CreateSymbolicLinkTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/CreateSymbolicLinkTests.cs index 75c8ba419..ed0d06ad7 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/CreateSymbolicLinkTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/CreateSymbolicLinkTests.cs @@ -33,7 +33,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{path}'").And + .WithMessage().Containing($"'{path}'").And .WithHResult(Test.RunsOnWindows ? -2147024713 : 17); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/DeleteTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/DeleteTests.cs index 490f0eeec..34c832a46 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/DeleteTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/DeleteTests.cs @@ -47,7 +47,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{expectedPath}'").And + .WithMessage().Containing($"'{expectedPath}'").And .WithHResult(-2147024891); } @@ -70,7 +70,7 @@ void Act() if (Test.RunsOnWindows) { await That(Act).Throws() - .WithMessageContaining($"{filename}'").And + .WithMessage().Containing($"{filename}'").And .WithHResult(-2147024864); await That(FileSystem.File.Exists(filename)).IsTrue(); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/ExceptionTests.cs index 5c642347b..fc33cc5cf 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/ExceptionTests.cs @@ -84,8 +84,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -104,7 +104,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -124,8 +124,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has whitespace parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/MoveTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/MoveTests.cs index 41f7733a5..583f96f6d 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/MoveTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/MoveTests.cs @@ -169,7 +169,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(sourcePath)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(sourcePath)}'").And .WithHResult(-2147024894); await That(FileSystem.File.Exists(destinationName)).IsFalse(); } @@ -228,7 +228,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(sourceName)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(sourceName)}'").And .WithHResult(-2147024894); } @@ -244,7 +244,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(sourceName)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(sourceName)}'").And .WithHResult(-2147024894); await That(FileSystem.File.Exists(destinationName)).IsFalse(); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenReadTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenReadTests.cs index f180dc1d2..b1f3a8e12 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenReadTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenReadTests.cs @@ -15,7 +15,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenTests.cs index 1fbe3e241..3b3e014a0 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenTests.cs @@ -18,7 +18,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(Test.RunsOnWindows ? -2147024816 : 17); } @@ -33,7 +33,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenTextTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenTextTests.cs index 4a373ed5e..24e1cb116 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenTextTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/OpenTextTests.cs @@ -16,7 +16,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllBytesAsyncTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllBytesAsyncTests.cs index bfd357d18..68628860b 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllBytesAsyncTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllBytesAsyncTests.cs @@ -31,7 +31,7 @@ async Task Act() => await FileSystem.File.ReadAllBytesAsync(path, CancellationToken); await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllLinesAsyncTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllLinesAsyncTests.cs index 2f2237bee..a069fa785 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllLinesAsyncTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllLinesAsyncTests.cs @@ -48,7 +48,7 @@ async Task Act() => await FileSystem.File.ReadAllLinesAsync(path, CancellationToken); await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllLinesTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllLinesTests.cs index 546cf2f6e..9965c53e5 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllLinesTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllLinesTests.cs @@ -28,7 +28,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllTextAsyncTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllTextAsyncTests.cs index bb227217b..275879e8a 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllTextAsyncTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllTextAsyncTests.cs @@ -47,7 +47,7 @@ async Task Act() => await FileSystem.File.ReadAllTextAsync(path, CancellationToken); await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllTextTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllTextTests.cs index fd630f03a..abe3fa35e 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllTextTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadAllTextTests.cs @@ -145,6 +145,6 @@ void Act() FileSystem.File.ReadAllText(path.Substring(0, 3) + "*" + path.Substring(8)); } - await That(Act).ThrowsException(); + await That(Act).Throws(); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadLinesAsyncTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadLinesAsyncTests.cs index d9dbac1ee..57dd78c95 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadLinesAsyncTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadLinesAsyncTests.cs @@ -67,7 +67,7 @@ async Task Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadLinesTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadLinesTests.cs index 106aabf03..3b0e03ee1 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadLinesTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/ReadLinesTests.cs @@ -29,7 +29,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/ResolveLinkTargetTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/ResolveLinkTargetTests.cs index be22aa2ff..5219bba0a 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/ResolveLinkTargetTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/ResolveLinkTargetTests.cs @@ -130,7 +130,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{previousPath}'").And + .WithMessage().Containing($"'{previousPath}'").And .WithHResult(Test.RunsOnWindows ? -2147022975 : -2146232800); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/File/WriteAllTextTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/File/WriteAllTextTests.cs index 8623018cd..541b3e054 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/File/WriteAllTextTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/File/WriteAllTextTests.cs @@ -21,7 +21,7 @@ void Act() await That(Act).Throws() .WithHResult(-2147024893).And - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(fullPath)}'"); + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(fullPath)}'"); } [Test] @@ -223,7 +223,7 @@ void Act() await That(Act).Throws() .WithHResult(-2147024893).And - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(fullPath)}'"); + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(fullPath)}'"); } [Test] diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CopyToTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CopyToTests.cs index cbeaed3d2..ff7b57881 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CopyToTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CopyToTests.cs @@ -229,7 +229,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(sourceName)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(sourceName)}'").And .WithHResult(-2147024891); await That(FileSystem.Directory.Exists(sourceName)).IsTrue(); await That(FileSystem.File.Exists(destinationName)).IsFalse(); @@ -282,10 +282,9 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024894).And - .WithMessageContaining(Test.IsNetFramework - ? null - : $"'{FileSystem.Path.GetFullPath(sourceName)}'"); + .WithHResult(-2147024894) + .AndIf(!Test.IsNetFramework, + x => x.WithMessage().Containing($"'{FileSystem.Path.GetFullPath(sourceName)}'")); await That(FileSystem.File.Exists(destinationName)).IsFalse(); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CreateAsSymbolicLinkTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CreateAsSymbolicLinkTests.cs index 76d877b1c..1899a3666 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CreateAsSymbolicLinkTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/CreateAsSymbolicLinkTests.cs @@ -47,7 +47,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{path}'").And + .WithMessage().Containing($"'{path}'").And .WithHResult(Test.RunsOnWindows ? -2147024713 : 17); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/DeleteTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/DeleteTests.cs index 570b5f82f..7c7f5b936 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/DeleteTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/DeleteTests.cs @@ -100,7 +100,7 @@ void Act() if (Test.RunsOnWindows) { await That(Act).Throws() - .WithMessageContaining($"{filename}'").And + .WithMessage().Containing($"{filename}'").And .WithHResult(-2147024864); await That(FileSystem.File.Exists(filename)).IsTrue(); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/ExceptionTests.cs index 311c89af0..c07025547 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/ExceptionTests.cs @@ -75,8 +75,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -92,7 +92,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/LengthTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/LengthTests.cs index e8c9314db..beb3b9628 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/LengthTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/LengthTests.cs @@ -20,7 +20,7 @@ void Act() await That(Act).Throws() .WithHResult(-2147024894).And - .WithMessageContaining(Test.IsNetFramework + .WithMessage().Containing(Test.IsNetFramework ? $"'{path}'" : $"'{FileSystem.Path.GetFullPath(path)}'"); } @@ -38,7 +38,7 @@ void Act() await That(Act).Throws() .WithHResult(-2147024894).And - .WithMessageContaining(Test.IsNetFramework + .WithMessage().Containing(Test.IsNetFramework ? $"'{path}'" : $"'{FileSystem.Path.GetFullPath(path)}'"); } @@ -57,7 +57,7 @@ void Act() await That(Act).Throws() .WithHResult(-2147024894).And - .WithMessageContaining(Test.IsNetFramework + .WithMessage().Containing(Test.IsNetFramework ? $"'{path}'" : $"'{FileSystem.Path.GetFullPath(path)}'"); } @@ -121,7 +121,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining(Test.IsNetFramework + .WithMessage().Containing(Test.IsNetFramework ? $"'{path}'" : $"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); @@ -134,7 +134,7 @@ void Act2() } await That(Act2).Throws() - .WithMessageContaining(Test.IsNetFramework + .WithMessage().Containing(Test.IsNetFramework ? $"'{path}'" : $"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/MoveToTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/MoveToTests.cs index 011ee087c..7a0127a12 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/MoveToTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/MoveToTests.cs @@ -82,10 +82,9 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024894).And - .WithMessageContaining(Test.IsNetFramework - ? null - : $"'{FileSystem.Path.GetFullPath(sourceName)}'"); + .WithHResult(-2147024894) + .AndIf(!Test.IsNetFramework, + x => x.WithMessage().Containing($"'{FileSystem.Path.GetFullPath(sourceName)}'")); await That(FileSystem.File.Exists(sourceName)).IsFalse(); } @@ -296,10 +295,9 @@ void Act() } await That(Act).Throws() - .WithMessageContaining(Test.IsNetFramework - ? null - : $"'{FileSystem.Path.GetFullPath(sourceName)}'").And - .WithHResult(-2147024894); + .WithHResult(-2147024894) + .AndIf(!Test.IsNetFramework, + x => x.WithMessage().Containing($"'{FileSystem.Path.GetFullPath(sourceName)}'")); await That(FileSystem.File.Exists(destinationName)).IsFalse(); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenReadTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenReadTests.cs index d42aec651..a6ac91698 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenReadTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenReadTests.cs @@ -17,7 +17,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenTests.cs index 98e6b4a2e..16a03782c 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenTests.cs @@ -126,7 +126,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(Test.RunsOnWindows ? -2147024816 : 17); } @@ -144,7 +144,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenTextTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenTextTests.cs index 19221eefc..f96772bef 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenTextTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/OpenTextTests.cs @@ -18,7 +18,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/ResolveLinkTargetTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/ResolveLinkTargetTests.cs index 8b9655593..6279a13de 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/ResolveLinkTargetTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfo/ResolveLinkTargetTests.cs @@ -49,7 +49,7 @@ void Act() await That(Act).Throws() .WithHResult(Test.RunsOnWindows ? -2147022975 : -2146232800).And - .WithMessageContaining($"'{fileInfo.FullName}'"); + .WithMessage().Containing($"'{fileInfo.FullName}'"); } [Test] diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfoFactory/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfoFactory/ExceptionTests.cs index 1cb742a3b..83252e42c 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileInfoFactory/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileInfoFactory/ExceptionTests.cs @@ -62,8 +62,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -80,7 +80,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -99,8 +99,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has whitespace parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileStream/FileAccessTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileStream/FileAccessTests.cs index 97da69f63..d4978e0fd 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileStream/FileAccessTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileStream/FileAccessTests.cs @@ -38,7 +38,7 @@ void Act() if (Test.RunsOnWindows) { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024864) .Because( $"Access {access1}, Share {share1} of file 1 is incompatible with Access {access2}, Share {share2} of file 2"); @@ -174,7 +174,7 @@ void Act() if (Test.RunsOnWindows) { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024864); } else diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileStreamFactory/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileStreamFactory/ExceptionTests.cs index f8c586db1..72209f02a 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileStreamFactory/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileStreamFactory/ExceptionTests.cs @@ -76,8 +76,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -94,7 +94,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -113,8 +113,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has whitespace parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileStreamFactory/Tests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileStreamFactory/Tests.cs index 5a82ef9b5..e8fd28ed1 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileStreamFactory/Tests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileStreamFactory/Tests.cs @@ -16,9 +16,9 @@ void Act() } await That(Act).Throws() - .WithMessageContaining(nameof(FileMode.Append)).And - .WithHResult(-2147024809).And - .WithParamName(Test.IsNetFramework ? null : "access"); + .WithMessage().Containing(nameof(FileMode.Append)).And + .WithHResult(-2147024809) + .AndIf(!Test.IsNetFramework, x => x.WithParamName("access")); } [Test] @@ -46,7 +46,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(Test.RunsOnWindows ? -2147024816 : 17); } @@ -79,9 +79,9 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(Test.IsNetFramework ? null : "access").And - .Which.For(x => x.Message, + .WithHResult(-2147024809) + .AndIf(!Test.IsNetFramework, x => x.WithParamName("access")).And + .Which.Whose(x => x.Message, it => it.Contains(mode.ToString()).And.Contains(access.ToString())); } @@ -97,7 +97,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } @@ -112,7 +112,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024894); } @@ -158,13 +158,13 @@ void Act() if (Test.RunsOnWindows) { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(-2147024891); } else { await That(Act).Throws() - .WithMessageContaining($"'{FileSystem.Path.GetFullPath(path)}'").And + .WithMessage().Containing($"'{FileSystem.Path.GetFullPath(path)}'").And .WithHResult(17); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/CreateAsSymbolicLinkTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/CreateAsSymbolicLinkTests.cs index 37c4b8b5e..d655fa38f 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/CreateAsSymbolicLinkTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/CreateAsSymbolicLinkTests.cs @@ -35,7 +35,7 @@ void Act() } await That(Act).Throws() - .WithMessageContaining($"'{path}'").And + .WithMessage().Containing($"'{path}'").And .WithHResult(Test.RunsOnWindows ? -2147024713 : 17); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/ExceptionTests.cs index cb844f58e..b40ccb631 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/ExceptionTests.cs @@ -28,8 +28,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because($"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -45,7 +45,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because($"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/ResolveLinkTargetTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/ResolveLinkTargetTests.cs index 117673d63..94f6b7447 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/ResolveLinkTargetTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/ResolveLinkTargetTests.cs @@ -93,7 +93,7 @@ void Act() await That(Act).Throws() .WithHResult(Test.RunsOnWindows ? -2147022975 : -2146232800).And - .WithMessageContaining($"'{fileInfo.FullName}'"); + .WithMessage().Containing($"'{fileInfo.FullName}'"); } [Test] diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.Unix.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.Unix.cs index 34a2b8005..905d989eb 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.Unix.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.Unix.cs @@ -77,11 +77,11 @@ await That(createdMs.Wait(includeSubdirectories ? ExpectSuccess : ExpectTimeout, await That(createdBag.TryTake(out FileSystemEventArgs? createdEvent)).IsTrue(); await That(createdEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(insideTarget)); + .Whose(x => x.FullPath, it => it.IsEqualTo(insideTarget)); } } @@ -165,24 +165,24 @@ await That(renamedMs.Wait(isRenamed ? ExpectSuccess : ExpectTimeout, Cancellatio await That(renamedBag.TryTake(out RenamedEventArgs? renamedEvent)).IsTrue(); await That(renamedEvent!) - .For(x => x.Name, it => it.IsEqualTo(expectedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(nestedTarget)) + .Whose(x => x.FullPath, it => it.IsEqualTo(nestedTarget)) .And - .For(x => x.OldName, it => it.IsEqualTo(targetName)) + .Whose(x => x.OldName, it => it.IsEqualTo(targetName)) .And - .For(x => x.OldFullPath, it => it.IsEqualTo(insideTarget)); + .Whose(x => x.OldFullPath, it => it.IsEqualTo(insideTarget)); } else { await That(deletedBag.TryTake(out FileSystemEventArgs? createdEvent)).IsTrue(); await That(createdEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Deleted)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Deleted)) .And - .For(x => x.Name, it => it.IsEqualTo(targetName)) + .Whose(x => x.Name, it => it.IsEqualTo(targetName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(insideTarget)); + .Whose(x => x.FullPath, it => it.IsEqualTo(insideTarget)); } } @@ -271,11 +271,11 @@ await That(renamedMs.Wait(includeSubdirectories ? ExpectSuccess : ExpectTimeout, await That(createdBag.TryTake(out FileSystemEventArgs? createdEvent)).IsTrue(); await That(createdEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(target)); + .Whose(x => x.FullPath, it => it.IsEqualTo(target)); } await ThatIsSingleOrEmpty(renamedBag, !includeSubdirectories); @@ -285,13 +285,13 @@ await That(createdEvent!) await That(renamedBag.TryTake(out RenamedEventArgs? renamedEvent)).IsTrue(); await That(renamedEvent!) - .For(x => x.Name, it => it.IsEqualTo(expectedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(target)) + .Whose(x => x.FullPath, it => it.IsEqualTo(target)) .And - .For(x => x.OldName, it => it.IsEqualTo(expectedOldName)) + .Whose(x => x.OldName, it => it.IsEqualTo(expectedOldName)) .And - .For(x => x.OldFullPath, it => it.IsEqualTo(source)); + .Whose(x => x.OldFullPath, it => it.IsEqualTo(source)); } } @@ -377,11 +377,11 @@ await That(renamedMs.Wait(includeSubdirectories ? ExpectSuccess : ExpectTimeout, await That(createdBag.TryTake(out FileSystemEventArgs? createdEvent)).IsTrue(); await That(createdEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(target)); + .Whose(x => x.FullPath, it => it.IsEqualTo(target)); } if (includeSubdirectories) @@ -389,13 +389,13 @@ await That(createdEvent!) await That(renamedBag.TryTake(out RenamedEventArgs? renamedEvent)).IsTrue(); await That(renamedEvent!) - .For(x => x.Name, it => it.IsEqualTo(expectedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(target)) + .Whose(x => x.FullPath, it => it.IsEqualTo(target)) .And - .For(x => x.OldName, it => it.IsEqualTo(expectedOldName)) + .Whose(x => x.OldName, it => it.IsEqualTo(expectedOldName)) .And - .For(x => x.OldFullPath, it => it.IsEqualTo(source)); + .Whose(x => x.OldFullPath, it => it.IsEqualTo(source)); } } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.Windows.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.Windows.cs index cc555a7a8..9fe6ecf58 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.Windows.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.Windows.cs @@ -72,11 +72,11 @@ await That(createdMs.Wait(includeSubdirectories ? ExpectSuccess : ExpectTimeout, await That(createdBag.TryTake(out FileSystemEventArgs? createdEvent)).IsTrue(); await That(createdEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(insideTarget)); + .Whose(x => x.FullPath, it => it.IsEqualTo(insideTarget)); } } @@ -145,11 +145,11 @@ await That(createdMs.Wait(includeSubdirectories ? ExpectSuccess : ExpectTimeout, await That(deletedBag.TryTake(out FileSystemEventArgs? deletedEvent)).IsTrue(); await That(deletedEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Deleted)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Deleted)) .And - .For(x => x.Name, it => it.IsEqualTo(targetName)) + .Whose(x => x.Name, it => it.IsEqualTo(targetName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(insideTarget)); + .Whose(x => x.FullPath, it => it.IsEqualTo(insideTarget)); await ThatIsSingleOrEmpty(createdBag, !includeSubdirectories); @@ -158,11 +158,11 @@ await That(deletedEvent!) await That(createdBag.TryTake(out FileSystemEventArgs? createdEvent)).IsTrue(); await That(createdEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedCreatedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedCreatedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(nestedTarget)); + .Whose(x => x.FullPath, it => it.IsEqualTo(nestedTarget)); } } @@ -245,11 +245,11 @@ await That(deletedMs.Wait(includeSubdirectories ? ExpectSuccess : ExpectTimeout, await That(createdBag.TryTake(out FileSystemEventArgs? createdEvent)).IsTrue(); await That(createdEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedCreatedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedCreatedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(target)); + .Whose(x => x.FullPath, it => it.IsEqualTo(target)); } if (includeSubdirectories) @@ -257,11 +257,11 @@ await That(createdEvent!) await That(deletedBag.TryTake(out FileSystemEventArgs? deletedEvent)).IsTrue(); await That(deletedEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Deleted)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Deleted)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedDeletedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedDeletedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(source)); + .Whose(x => x.FullPath, it => it.IsEqualTo(source)); } } @@ -349,11 +349,11 @@ await That(deletedMs.Wait(includeSubdirectories ? ExpectSuccess : ExpectTimeout, await That(createdBag.TryTake(out FileSystemEventArgs? createdEvent)).IsTrue(); await That(createdEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedCreatedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedCreatedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(target)); + .Whose(x => x.FullPath, it => it.IsEqualTo(target)); } if (includeSubdirectories) @@ -361,11 +361,11 @@ await That(createdEvent!) await That(deletedBag.TryTake(out FileSystemEventArgs? deletedEvent)).IsTrue(); await That(deletedEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Deleted)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Deleted)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedDeletedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedDeletedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(source)); + .Whose(x => x.FullPath, it => it.IsEqualTo(source)); } } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.cs index e59679be2..4024bcc43 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/MoveTests.cs @@ -55,11 +55,11 @@ out ConcurrentBag createdBag await That(renamedMs.Wait(ExpectTimeout, CancellationToken)).IsFalse(); await That(createdBag).HasSingle().Which - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Created)) .And - .For(x => x.Name, it => it.IsEqualTo(targetName)) + .Whose(x => x.Name, it => it.IsEqualTo(targetName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(insideTarget)); + .Whose(x => x.FullPath, it => it.IsEqualTo(insideTarget)); } [Test] @@ -134,11 +134,11 @@ await That(deletedMs.Wait(shouldInvokeDeleted ? ExpectSuccess : ExpectTimeout, C await That(deletedBag.TryTake(out FileSystemEventArgs? deletedEvent)).IsTrue(); await That(deletedEvent!) - .For(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Deleted)) + .Whose(x => x.ChangeType, it => it.IsEqualTo(WatcherChangeTypes.Deleted)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedDeletedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedDeletedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(insideTarget)); + .Whose(x => x.FullPath, it => it.IsEqualTo(insideTarget)); } } @@ -218,13 +218,13 @@ await That(renamedMs.Wait(shouldInvokeRenamed ? ExpectSuccess : ExpectTimeout, C await That(renamedBag.TryTake(out RenamedEventArgs? renamedEvent)).IsTrue(); await That(renamedEvent!) - .For(x => x.OldName, it => it.IsEqualTo(expectedOldName)) + .Whose(x => x.OldName, it => it.IsEqualTo(expectedOldName)) .And - .For(x => x.Name, it => it.IsEqualTo(expectedName)) + .Whose(x => x.Name, it => it.IsEqualTo(expectedName)) .And - .For(x => x.FullPath, it => it.IsEqualTo(insideTarget2)) + .Whose(x => x.FullPath, it => it.IsEqualTo(insideTarget2)) .And - .For(x => x.OldFullPath, it => it.IsEqualTo(insideTarget)); + .Whose(x => x.OldFullPath, it => it.IsEqualTo(insideTarget)); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/PathTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/PathTests.cs index 789cda693..ee119eb42 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/PathTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcher/PathTests.cs @@ -48,7 +48,7 @@ void Act() await That(Act).Throws() .WithHResult(-2147024809).And - .WithMessageContaining(path); + .WithMessage().Containing(path); } [Test] @@ -64,7 +64,7 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(Test.IsNetFramework ? null : "Path"); + .WithHResult(-2147024809) + .AndIf(!Test.IsNetFramework, x => x.WithParamName("Path")); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcherFactory/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcherFactory/ExceptionTests.cs index 8c957db1a..3757ac1ca 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcherFactory/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileSystemWatcherFactory/ExceptionTests.cs @@ -66,8 +66,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -84,7 +84,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -103,8 +103,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has whitespace parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileVersionInfoFactory/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileVersionInfoFactory/ExceptionTests.cs index be482806b..218799bf2 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileVersionInfoFactory/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileVersionInfoFactory/ExceptionTests.cs @@ -35,8 +35,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -53,7 +53,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -72,8 +72,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has whitespace parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/FileVersionInfoFactory/Tests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/FileVersionInfoFactory/Tests.cs index e2568438d..cfded2708 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/FileVersionInfoFactory/Tests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/FileVersionInfoFactory/Tests.cs @@ -36,7 +36,7 @@ void Act() => FileSystem.FileVersionInfo.GetVersionInfo(path); await That(Act).Throws() - .WithMessageContaining(FileSystem.Path.GetFullPath(path)).And + .WithMessage().Containing(FileSystem.Path.GetFullPath(path)).And .WithHResult(-2147024894); } } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Path/ExceptionTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Path/ExceptionTests.cs index b66b6716a..264a61bd1 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Path/ExceptionTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Path/ExceptionTests.cs @@ -31,8 +31,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has empty parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -49,7 +49,7 @@ void Act() } await That(Act).Throws() - .WithParamName(ignoreParamCheck ? null : paramName) + .AndIf(!ignoreParamCheck, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has `null` parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } @@ -68,8 +68,8 @@ void Act() } await That(Act).Throws() - .WithHResult(-2147024809).And - .WithParamName(ignoreParamCheck || Test.IsNetFramework ? null : paramName) + .WithHResult(-2147024809) + .AndIf(!ignoreParamCheck && !Test.IsNetFramework, x => x.WithParamName(paramName)) .Because( $"\n{callback}\n has whitespace parameter for '{paramName}' (ignored: {ignoreParamCheck})"); } diff --git a/Tests/Testably.Abstractions.Tests/FileSystem/Path/GetRandomFileNameTests.cs b/Tests/Testably.Abstractions.Tests/FileSystem/Path/GetRandomFileNameTests.cs index 9e150941d..d1ebd49dd 100644 --- a/Tests/Testably.Abstractions.Tests/FileSystem/Path/GetRandomFileNameTests.cs +++ b/Tests/Testably.Abstractions.Tests/FileSystem/Path/GetRandomFileNameTests.cs @@ -35,6 +35,6 @@ public async Task GetRandomFileName_ShouldReturnRandomStrings() results.Add(FileSystem.Path.GetRandomFileName()); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } } diff --git a/Tests/Testably.Abstractions.Tests/RandomSystem/GuidTests.cs b/Tests/Testably.Abstractions.Tests/RandomSystem/GuidTests.cs index 652161fd5..9d6672487 100644 --- a/Tests/Testably.Abstractions.Tests/RandomSystem/GuidTests.cs +++ b/Tests/Testably.Abstractions.Tests/RandomSystem/GuidTests.cs @@ -23,7 +23,7 @@ public async Task CreateVersion7_ShouldBeThreadSafeAndReturnUniqueItems() results.Add(RandomSystem.Guid.CreateVersion7()); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #endif @@ -38,7 +38,7 @@ public async Task CreateVersion7_WithOffset_ShouldBeThreadSafeAndReturnUniqueIte results.Add(RandomSystem.Guid.CreateVersion7(DateTimeOffset.UtcNow)); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #endif [Test] @@ -57,7 +57,7 @@ public async Task NewGuid_ShouldBeThreadSafeAndReturnUniqueItems() results.Add(RandomSystem.Guid.NewGuid()); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #if FEATURE_GUID_PARSE diff --git a/Tests/Testably.Abstractions.Tests/RandomSystem/RandomFactoryTests.cs b/Tests/Testably.Abstractions.Tests/RandomSystem/RandomFactoryTests.cs index 8d113d727..5c8b55bee 100644 --- a/Tests/Testably.Abstractions.Tests/RandomSystem/RandomFactoryTests.cs +++ b/Tests/Testably.Abstractions.Tests/RandomSystem/RandomFactoryTests.cs @@ -16,7 +16,7 @@ public async Task New_Next_ShouldReturnDifferentValues() results.Add(RandomSystem.Random.New().Next()); } - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } [Test] @@ -43,7 +43,7 @@ public async Task New_Shared_ShouldReturnDifferentValues() results.Add(RandomSystem.Random.Shared.Next()); } - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } [Test] diff --git a/Tests/Testably.Abstractions.Tests/RandomSystem/RandomTests.cs b/Tests/Testably.Abstractions.Tests/RandomSystem/RandomTests.cs index b347964a3..4cc5d213c 100644 --- a/Tests/Testably.Abstractions.Tests/RandomSystem/RandomTests.cs +++ b/Tests/Testably.Abstractions.Tests/RandomSystem/RandomTests.cs @@ -282,7 +282,7 @@ public async Task Next_ShouldBeThreadSafe() results.Add(RandomSystem.Random.Shared.Next()); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } [Test] @@ -297,7 +297,7 @@ public async Task NextBytes_ShouldBeThreadSafe() results.Add(bytes); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #if FEATURE_SPAN @@ -313,7 +313,7 @@ public async Task NextBytes_Span_ShouldBeThreadSafe() results.Add(bytes.ToArray()); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #endif @@ -327,7 +327,7 @@ public async Task NextDouble_ShouldBeThreadSafe() results.Add(RandomSystem.Random.Shared.NextDouble()); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #if FEATURE_RANDOM_ADVANCED @@ -374,7 +374,7 @@ public async Task NextInt64_ShouldBeThreadSafe() results.Add(RandomSystem.Random.Shared.NextInt64()); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #endif @@ -389,7 +389,7 @@ public async Task NextSingle_ShouldBeThreadSafe() results.Add(RandomSystem.Random.Shared.NextSingle()); }); - await That(results).AreAllUnique(); + await That(results).All().AreUnique(); } #endif @@ -417,7 +417,7 @@ public async Task Shuffle_Array_ShouldShuffleItemsInPlace() RandomSystem.Random.Shared.Shuffle(values); - await That(values).AreAllUnique(); + await That(values).All().AreUnique(); await That(values).DoesNotContain(originalValues); await That(values.Order()).Contains(originalValues); } @@ -434,7 +434,7 @@ public async Task Shuffle_Span_ShouldShuffleItemsInPlace() RandomSystem.Random.Shared.Shuffle(values); int[] result = values.ToArray(); - await That(result).AreAllUnique(); + await That(result).All().AreUnique(); await That(result).DoesNotContain(originalValues); await That(result.Order()).Contains(originalValues); } diff --git a/Tests/Testably.Abstractions.Tests/TimeSystem/TimerTests.cs b/Tests/Testably.Abstractions.Tests/TimeSystem/TimerTests.cs index dce3e0476..19d5e4027 100644 --- a/Tests/Testably.Abstractions.Tests/TimeSystem/TimerTests.cs +++ b/Tests/Testably.Abstractions.Tests/TimeSystem/TimerTests.cs @@ -172,6 +172,7 @@ public async Task Change_WithInt_ShouldResetTimer() using ManualResetEventSlim ms1 = new(); using ManualResetEventSlim ms2 = new(); using ManualResetEventSlim ms3 = new(); + bool ms2TimedOut = false; #pragma warning disable MA0147 // Avoid async void method for delegate // ReSharper disable once AsyncVoidLambda using (ITimer timer1 = TimeSystem.Timer.New(async _ => @@ -185,8 +186,10 @@ public async Task Change_WithInt_ShouldResetTimer() ms1.Set(); triggerTimes.Add((int)diff); // ReSharper disable once AccessToDisposedClosure - await That(ms2.Wait(ExpectSuccess, CancellationToken)) - .IsTrue(); + if (!ms2.Wait(ExpectSuccess, CancellationToken)) + { + ms2TimedOut = true; + } if (triggerTimes.Count > 3) { // ReSharper disable once CancellationToken @@ -223,6 +226,9 @@ await That(ms3.Wait(ExpectSuccess * TimerMultiplier, CancellationToken)).IsTrue(); } + await That(ms2TimedOut).IsFalse() + .Because("the timer callback should not time out while waiting for the second timer"); + if (triggerTimes[0] < 30 * TimerMultiplier) { triggerTimes.RemoveAt(0); @@ -247,6 +253,7 @@ public async Task Change_WithLong_ShouldResetTimer() using ManualResetEventSlim ms1 = new(); using ManualResetEventSlim ms2 = new(); using ManualResetEventSlim ms3 = new(); + bool ms2TimedOut = false; #pragma warning disable MA0147 // Avoid async void method for delegate // ReSharper disable once AsyncVoidLambda using (ITimer timer1 = TimeSystem.Timer.New(async _ => @@ -260,8 +267,10 @@ public async Task Change_WithLong_ShouldResetTimer() ms1.Set(); triggerTimes.Add((int)diff); // ReSharper disable once AccessToDisposedClosure - await That(ms2.Wait(ExpectSuccess, CancellationToken)) - .IsTrue(); + if (!ms2.Wait(ExpectSuccess, CancellationToken)) + { + ms2TimedOut = true; + } if (triggerTimes.Count > 3) { // ReSharper disable once AccessToDisposedClosure @@ -297,6 +306,9 @@ await That(ms2.Wait(ExpectSuccess, CancellationToken)) await That(ms3.Wait(ExpectSuccess, CancellationToken)).IsTrue(); } + await That(ms2TimedOut).IsFalse() + .Because("the timer callback should not time out while waiting for the second timer"); + if (triggerTimes[0] < 30 * TimerMultiplier) { triggerTimes.RemoveAt(0); @@ -321,6 +333,7 @@ public async Task Change_WithTimeSpan_ShouldResetTimer() using ManualResetEventSlim ms1 = new(); using ManualResetEventSlim ms2 = new(); using ManualResetEventSlim ms3 = new(); + bool ms2TimedOut = false; #pragma warning disable MA0147 // Avoid async void method for delegate // ReSharper disable once AsyncVoidLambda using (ITimer timer1 = TimeSystem.Timer.New(async _ => @@ -334,8 +347,10 @@ public async Task Change_WithTimeSpan_ShouldResetTimer() ms1.Set(); triggerTimes.Add((int)diff); // ReSharper disable once AccessToDisposedClosure - await That(ms2.Wait(ExpectSuccess, CancellationToken)) - .IsTrue(); + if (!ms2.Wait(ExpectSuccess, CancellationToken)) + { + ms2TimedOut = true; + } if (triggerTimes.Count > 3) { // ReSharper disable once AccessToDisposedClosure @@ -374,6 +389,9 @@ await That(ms2.Wait(ExpectSuccess, CancellationToken)) await That(ms3.Wait(ExpectSuccess, CancellationToken)).IsTrue(); } + await That(ms2TimedOut).IsFalse() + .Because("the timer callback should not time out while waiting for the second timer"); + if (triggerTimes[0] < 30 * TimerMultiplier) { triggerTimes.RemoveAt(0);