From 1b2fe3d47fdff7d85bdf9cb90e68d568ae91a1a9 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sun, 21 Jan 2024 11:45:46 +1100 Subject: [PATCH 1/4] #30 Project is now multi framework compiled Generation of nuget is also performed --- Faker.sln | 96 +- UpgradeLog.htm | Bin 29060 -> 0 bytes packages/NUnit.3.13.2/.signature.p7s | Bin 9476 -> 0 bytes packages/NUnit.3.13.2/CHANGES.md | 1855 -- packages/NUnit.3.13.2/LICENSE.txt | 20 - packages/NUnit.3.13.2/NOTICES.txt | 5 - packages/NUnit.3.13.2/NUnit.3.13.2.nupkg | Bin 1292603 -> 0 bytes packages/NUnit.3.13.2/build/NUnit.props | 7 - packages/NUnit.3.13.2/icon.png | Bin 16371 -> 0 bytes .../lib/net35/nunit.framework.dll | Bin 489472 -> 0 bytes .../lib/net35/nunit.framework.xml | 21818 ---------------- .../lib/net40/nunit.framework.dll | Bin 482816 -> 0 bytes .../lib/net40/nunit.framework.xml | 21286 --------------- .../lib/net45/nunit.framework.dll | Bin 482816 -> 0 bytes .../lib/net45/nunit.framework.xml | 21233 --------------- .../lib/netstandard2.0/nunit.framework.dll | Bin 480768 -> 0 bytes .../lib/netstandard2.0/nunit.framework.xml | 21198 --------------- src/Faker.Net.4.5/Faker.Net.4.5.csproj | 192 - src/Faker.Net.4.6/Faker.Net.4.6.csproj | 192 - src/Faker.Net.4.7/Faker.Net.4.7.csproj | 192 - src/Faker.Net.4.8/Faker.Net.4.8.csproj | 183 - src/Faker.Net.5.0/Faker.Net.5.0.csproj | 72 - src/Faker.Net.6.0/Faker.Net.6.0.csproj | 72 - .../Faker.Net.Core.3.0.csproj | 72 - src/Faker.Net.Core.3.1/AssemblyInfo.cs | 3 - .../Faker - Backup.Net.Core.3.1.csproj | 75 - .../Faker.Net.Core.3.1.csproj | 71 - .../Faker.Net.Standard.2.0.csproj | 70 - .../Faker.Net.Standard.2.1.csproj | 70 - src/Faker/Faker.csproj | 227 +- src/Faker/Properties/AssemblyInfo.cs | 22 - src/Faker/Properties/SharedAssemblyInfo.cs | 5 - .../Faker.Tests.Net.4.8.csproj | 111 - .../Properties/AssemblyInfo.cs | 18 - tests/Faker.Tests.Net.4.8/packages.config | 4 - .../Faker.Tests.Net.5.0.csproj | 48 - .../Faker.Tests.Net.6.0.csproj | 49 - .../Faker.Tests.Net.6.02.csproj | 25 - .../Faker.Tests.Net.Standard.2.1.csproj | 41 - tests/Faker.Tests/Faker.Tests.csproj | 127 +- tests/Faker.Tests/Properties/AssemblyInfo.cs | 36 - tests/Faker.Tests/packages.config | 4 - 42 files changed, 98 insertions(+), 89401 deletions(-) delete mode 100644 UpgradeLog.htm delete mode 100644 packages/NUnit.3.13.2/.signature.p7s delete mode 100644 packages/NUnit.3.13.2/CHANGES.md delete mode 100644 packages/NUnit.3.13.2/LICENSE.txt delete mode 100644 packages/NUnit.3.13.2/NOTICES.txt delete mode 100644 packages/NUnit.3.13.2/NUnit.3.13.2.nupkg delete mode 100644 packages/NUnit.3.13.2/build/NUnit.props delete mode 100644 packages/NUnit.3.13.2/icon.png delete mode 100644 packages/NUnit.3.13.2/lib/net35/nunit.framework.dll delete mode 100644 packages/NUnit.3.13.2/lib/net35/nunit.framework.xml delete mode 100644 packages/NUnit.3.13.2/lib/net40/nunit.framework.dll delete mode 100644 packages/NUnit.3.13.2/lib/net40/nunit.framework.xml delete mode 100644 packages/NUnit.3.13.2/lib/net45/nunit.framework.dll delete mode 100644 packages/NUnit.3.13.2/lib/net45/nunit.framework.xml delete mode 100644 packages/NUnit.3.13.2/lib/netstandard2.0/nunit.framework.dll delete mode 100644 packages/NUnit.3.13.2/lib/netstandard2.0/nunit.framework.xml delete mode 100644 src/Faker.Net.4.5/Faker.Net.4.5.csproj delete mode 100644 src/Faker.Net.4.6/Faker.Net.4.6.csproj delete mode 100644 src/Faker.Net.4.7/Faker.Net.4.7.csproj delete mode 100644 src/Faker.Net.4.8/Faker.Net.4.8.csproj delete mode 100644 src/Faker.Net.5.0/Faker.Net.5.0.csproj delete mode 100644 src/Faker.Net.6.0/Faker.Net.6.0.csproj delete mode 100644 src/Faker.Net.Core.3.0/Faker.Net.Core.3.0.csproj delete mode 100644 src/Faker.Net.Core.3.1/AssemblyInfo.cs delete mode 100644 src/Faker.Net.Core.3.1/Faker - Backup.Net.Core.3.1.csproj delete mode 100644 src/Faker.Net.Core.3.1/Faker.Net.Core.3.1.csproj delete mode 100644 src/Faker.Net.Standard.2.0/Faker.Net.Standard.2.0.csproj delete mode 100644 src/Faker.Net.Standard.2.1/Faker.Net.Standard.2.1.csproj delete mode 100644 src/Faker/Properties/AssemblyInfo.cs delete mode 100644 src/Faker/Properties/SharedAssemblyInfo.cs delete mode 100644 tests/Faker.Tests.Net.4.8/Faker.Tests.Net.4.8.csproj delete mode 100644 tests/Faker.Tests.Net.4.8/Properties/AssemblyInfo.cs delete mode 100644 tests/Faker.Tests.Net.4.8/packages.config delete mode 100644 tests/Faker.Tests.Net.5.0/Faker.Tests.Net.5.0.csproj delete mode 100644 tests/Faker.Tests.Net.6.0/Faker.Tests.Net.6.0.csproj delete mode 100644 tests/Faker.Tests.Net.6.02/Faker.Tests.Net.6.02.csproj delete mode 100644 tests/Faker.Tests.Net.Standard.2.1/Faker.Tests.Net.Standard.2.1.csproj delete mode 100644 tests/Faker.Tests/Properties/AssemblyInfo.cs delete mode 100644 tests/Faker.Tests/packages.config diff --git a/Faker.sln b/Faker.sln index 8aa43be..4855634 100644 --- a/Faker.sln +++ b/Faker.sln @@ -3,44 +3,16 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.32014.148 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{190F9160-395D-4CEF-BEEE-805099D7E2E0}" - ProjectSection(SolutionItems) = preProject - src\Faker\Properties\AssemblyInfo.cs = src\Faker\Properties\AssemblyInfo.cs - src\Faker\Properties\SharedAssemblyInfo.cs = src\Faker\Properties\SharedAssemblyInfo.cs - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Faker.Net.4.5", "src\Faker.Net.4.5\Faker.Net.4.5.csproj", "{977F04DE-CEDD-47DF-A574-0D9FD88BDDDB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Faker.Net.4.6", "src\Faker.Net.4.6\Faker.Net.4.6.csproj", "{2DB90FE5-C60B-4E1E-A584-FE6F8323F18D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Faker.Net.4.7", "src\Faker.Net.4.7\Faker.Net.4.7.csproj", "{D6531C7D-3B24-4B65-A185-E50EC851D102}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Faker.Net.4.8", "src\Faker.Net.4.8\Faker.Net.4.8.csproj", "{2D24F94E-41CD-4A14-A9A7-A4F456368BA7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Faker.Net.Standard.2.0", "src\Faker.Net.Standard.2.0\Faker.Net.Standard.2.0.csproj", "{4C7B9A9D-8F68-4779-B535-7637DDC57544}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Faker.Net.Standard.2.1", "src\Faker.Net.Standard.2.1\Faker.Net.Standard.2.1.csproj", "{EC576E6A-6CBE-46F1-AC3A-56C49A086AE2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Faker.Net.Core.3.0", "src\Faker.Net.Core.3.0\Faker.Net.Core.3.0.csproj", "{ADECCEFC-6C23-4039-9D93-8CC299E8C2C7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Faker.Net.Core.3.1", "src\Faker.Net.Core.3.1\Faker.Net.Core.3.1.csproj", "{1FD27AE3-457D-40E6-8B5A-144A71671346}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{E206613A-09A6-4EAF-A643-E67D8ACA71DA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Faker.Tests.Net.4.8", "tests\Faker.Tests.Net.4.8\Faker.Tests.Net.4.8.csproj", "{829BDFF1-A65E-456B-B55E-1D1B7043D939}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nuGet", "nuGet", "{513FC2C7-5B17-43BC-BAFD-4FC820800E33}" ProjectSection(SolutionItems) = preProject Faker.Net.nuspec = Faker.Net.nuspec EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Faker.Net.5.0", "src\Faker.Net.5.0\Faker.Net.5.0.csproj", "{B67E47FB-0064-4705-84C7-D8E6F8241CC2}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Faker.Tests.Net.5.0", "tests\Faker.Tests.Net.5.0\Faker.Tests.Net.5.0.csproj", "{5E0FC59C-B443-4946-99FD-5EFC5DCFB149}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Faker.Net.6.0", "src\Faker.Net.6.0\Faker.Net.6.0.csproj", "{3E35619D-412B-4176-82A9-265227111FF6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Faker", "src\Faker\Faker.csproj", "{598D73F1-9EBD-494A-A244-7AA4E7FB7591}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Faker.Tests.Net.6.0", "tests\Faker.Tests.Net.6.0\Faker.Tests.Net.6.0.csproj", "{53C739F7-F6AC-4100-A9C1-DC57D054DF70}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Faker.Tests", "tests\Faker.Tests\Faker.Tests.csproj", "{23996BF0-3124-4BA1-805C-85E2B6580CB5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -48,66 +20,20 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {977F04DE-CEDD-47DF-A574-0D9FD88BDDDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {977F04DE-CEDD-47DF-A574-0D9FD88BDDDB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {977F04DE-CEDD-47DF-A574-0D9FD88BDDDB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {977F04DE-CEDD-47DF-A574-0D9FD88BDDDB}.Release|Any CPU.Build.0 = Release|Any CPU - {2DB90FE5-C60B-4E1E-A584-FE6F8323F18D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2DB90FE5-C60B-4E1E-A584-FE6F8323F18D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2DB90FE5-C60B-4E1E-A584-FE6F8323F18D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2DB90FE5-C60B-4E1E-A584-FE6F8323F18D}.Release|Any CPU.Build.0 = Release|Any CPU - {D6531C7D-3B24-4B65-A185-E50EC851D102}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D6531C7D-3B24-4B65-A185-E50EC851D102}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D6531C7D-3B24-4B65-A185-E50EC851D102}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D6531C7D-3B24-4B65-A185-E50EC851D102}.Release|Any CPU.Build.0 = Release|Any CPU - {2D24F94E-41CD-4A14-A9A7-A4F456368BA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2D24F94E-41CD-4A14-A9A7-A4F456368BA7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2D24F94E-41CD-4A14-A9A7-A4F456368BA7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2D24F94E-41CD-4A14-A9A7-A4F456368BA7}.Release|Any CPU.Build.0 = Release|Any CPU - {4C7B9A9D-8F68-4779-B535-7637DDC57544}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4C7B9A9D-8F68-4779-B535-7637DDC57544}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4C7B9A9D-8F68-4779-B535-7637DDC57544}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4C7B9A9D-8F68-4779-B535-7637DDC57544}.Release|Any CPU.Build.0 = Release|Any CPU - {EC576E6A-6CBE-46F1-AC3A-56C49A086AE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC576E6A-6CBE-46F1-AC3A-56C49A086AE2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC576E6A-6CBE-46F1-AC3A-56C49A086AE2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC576E6A-6CBE-46F1-AC3A-56C49A086AE2}.Release|Any CPU.Build.0 = Release|Any CPU - {ADECCEFC-6C23-4039-9D93-8CC299E8C2C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {ADECCEFC-6C23-4039-9D93-8CC299E8C2C7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {ADECCEFC-6C23-4039-9D93-8CC299E8C2C7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {ADECCEFC-6C23-4039-9D93-8CC299E8C2C7}.Release|Any CPU.Build.0 = Release|Any CPU - {1FD27AE3-457D-40E6-8B5A-144A71671346}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1FD27AE3-457D-40E6-8B5A-144A71671346}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1FD27AE3-457D-40E6-8B5A-144A71671346}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1FD27AE3-457D-40E6-8B5A-144A71671346}.Release|Any CPU.Build.0 = Release|Any CPU - {829BDFF1-A65E-456B-B55E-1D1B7043D939}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {829BDFF1-A65E-456B-B55E-1D1B7043D939}.Debug|Any CPU.Build.0 = Debug|Any CPU - {829BDFF1-A65E-456B-B55E-1D1B7043D939}.Release|Any CPU.ActiveCfg = Release|Any CPU - {829BDFF1-A65E-456B-B55E-1D1B7043D939}.Release|Any CPU.Build.0 = Release|Any CPU - {B67E47FB-0064-4705-84C7-D8E6F8241CC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B67E47FB-0064-4705-84C7-D8E6F8241CC2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B67E47FB-0064-4705-84C7-D8E6F8241CC2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B67E47FB-0064-4705-84C7-D8E6F8241CC2}.Release|Any CPU.Build.0 = Release|Any CPU - {5E0FC59C-B443-4946-99FD-5EFC5DCFB149}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5E0FC59C-B443-4946-99FD-5EFC5DCFB149}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5E0FC59C-B443-4946-99FD-5EFC5DCFB149}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5E0FC59C-B443-4946-99FD-5EFC5DCFB149}.Release|Any CPU.Build.0 = Release|Any CPU - {3E35619D-412B-4176-82A9-265227111FF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3E35619D-412B-4176-82A9-265227111FF6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3E35619D-412B-4176-82A9-265227111FF6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3E35619D-412B-4176-82A9-265227111FF6}.Release|Any CPU.Build.0 = Release|Any CPU - {53C739F7-F6AC-4100-A9C1-DC57D054DF70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {53C739F7-F6AC-4100-A9C1-DC57D054DF70}.Debug|Any CPU.Build.0 = Debug|Any CPU - {53C739F7-F6AC-4100-A9C1-DC57D054DF70}.Release|Any CPU.ActiveCfg = Release|Any CPU - {53C739F7-F6AC-4100-A9C1-DC57D054DF70}.Release|Any CPU.Build.0 = Release|Any CPU + {598D73F1-9EBD-494A-A244-7AA4E7FB7591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {598D73F1-9EBD-494A-A244-7AA4E7FB7591}.Debug|Any CPU.Build.0 = Debug|Any CPU + {598D73F1-9EBD-494A-A244-7AA4E7FB7591}.Release|Any CPU.ActiveCfg = Release|Any CPU + {598D73F1-9EBD-494A-A244-7AA4E7FB7591}.Release|Any CPU.Build.0 = Release|Any CPU + {23996BF0-3124-4BA1-805C-85E2B6580CB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23996BF0-3124-4BA1-805C-85E2B6580CB5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23996BF0-3124-4BA1-805C-85E2B6580CB5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23996BF0-3124-4BA1-805C-85E2B6580CB5}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {829BDFF1-A65E-456B-B55E-1D1B7043D939} = {E206613A-09A6-4EAF-A643-E67D8ACA71DA} - {5E0FC59C-B443-4946-99FD-5EFC5DCFB149} = {E206613A-09A6-4EAF-A643-E67D8ACA71DA} - {53C739F7-F6AC-4100-A9C1-DC57D054DF70} = {E206613A-09A6-4EAF-A643-E67D8ACA71DA} + {23996BF0-3124-4BA1-805C-85E2B6580CB5} = {E206613A-09A6-4EAF-A643-E67D8ACA71DA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B8DFC42C-B0BF-4EC1-852D-CD82AE728643} diff --git a/UpgradeLog.htm b/UpgradeLog.htm deleted file mode 100644 index c7826c04b93e60ae02cb75767e5bebdb1a2dde66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29060 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 QocP_7h%&=J{=JR<583_NES+XWcp)4gN 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 (block element) instead of `` (inline element) -* 3485 Should we make MultipleAssertException.TestResult maybe-null or obsolete two constructors? -* 3496 Adding data dictionary should not add a trailing newline -* 3497 Fix mixed line endings in Git -* 3503 Remove implicit cast from ITestResult to TestResult -* 3505 Better failure messages for Subset and Superset constraints -* 3506 ValueTuple tests now running if not targeting NET35 -* 3536 Reduce newly added API surface -* 3542 Update NuGet Package Icons -* 3547 DelayedConstraint constrains does not preserve original result additional information -* 3551 Add PrivateAssets="all" to analyzer dependency -* 3552 MessagePumpStrategy does not work for WPF on netcoreapp3.0 and upwards -* 3559 Disables the DOC100 suggestion and reverts the added paragraph elements -* 3563 `[Suggestion]` Improve TextMessageWriter output for numeric values -* 3565 .NET 5 issue with PlatformAttribute -* 3583 Avoid using a culture-sensitive EndsWith in common code -* 3592 Add classname and methodname to the start-test event -* 3594 Reduce memory overhead of TestNameGenerator -* 3596 AreAlmostEqualUlps throws OverflowException for -0 -* 3598 Fix typo -* 3608 `[Platform]` attribute fails with DllNotFoundException in WASM -* 3616 Extend Is.Empty to work for Guid.Empty -* 3618 NUnit has a P/Invoke whose native function doesn't exist on all platforms -* 3622 EmptyDirectoryConstraint doesn't need to enumerate entire directory contents -* 3632 Assert.Inconclusive() reports failed when timeout used -* 3636 NUnitLite filtering fails if space in test name before ( -* 3641 Type implementing `IComparable` (or any `IComparable`) fails comparison. -* 3647 Fix exception under blazor 5 -* 3650 Build issue with the latest .NET SDK 5.0.100-rc.2 -* 3657 Add Framework Version to the XML -* 3662 TestContext.CurrentContext.CurrentRepeatCount only contains retry count not the repeat count -* 3667 Create FrameworkPackageSetting to set CurrentCulture and CurrentUICulture -* 3676 Parallelizeable tests sometimes shares memory -* 3679 Issue 3390: Do not prefilter relevant SetUpFixtures -* 3694 Async tests causes double failure messages -* 3699 Compilation of netcoreapp3.1 targets fails on CI (both AppVeyor and Azure Pipelines) - -### NUnit 3.12 - May 14, 2019 - -This release of NUnit finally drops support for .NET 2.0. If your application still -targets .NET 2.0, your tests will need to target at least .NET 3.5. Microsoft ended -support for .NET 2.0 on July 12, 2011. Microsoft recommends that everyone migrate -to at least .NET Framework 3.5 SP1 for security and performance fixes. - -This release dramatically improves NUnit support for async tests including returning -ValueTask and custom tasks from tests, improved handling of SynchronizationContexts -and better exception handling. - -The .NET Standard 2.0 version of NUnit continues to gain more functionality that -is found in the .NET 4.5 version of the framework like setting the ApartmentState -and enabling Timeout on tests. - -### Issues Resolved - - * 474 TypeHelperTests.cs is orphaned - * 999 Support multiple TestOf attributes per test - * 1638 TimeoutAttribute not available when targeting netcoreapp framework - * 2168 ThrowsAsync reports OperationCanceledException as TaskCanceledException - * 2194 How to use `Contains.Substring` with `And` - * 2286 Add support for custom Task (i.e. ValueTask) - * 2579 AppVeyor Test Failures under .NET 3.5 - * 2614 TestExecutionContext.CurrentContext is saved in Remoting CallContext between test runs - * 2696 Getting WorkerId fails in debug - * 2772 Random failing of parallel test run: Unhandled Exception: System.InvalidOperationException: Stack empty. - * 2975 ComparisonConstraints are allocating string on construction - * 3014 Timeout failures on MacOS - * 3023 NUnit runner fails when test method returns ValueTask<> - * 3035 Apartment state can't be used for .NET Standard 2.0 tests - * 3036 Apartment state can't be used for .NET Standard 2.0 tests - * 3038 TestName in TestCase attribute not validated to be not empty - * 3042 RequiresThreadAttribute allows ApartmentState.Unknown, unlike ApartmentAttribute - * 3048 Add .idea folder to .gitignore - * 3053 Conversion from TestCase string parameter to DateTimeOffset - * 3059 Constraint Throws.Exception does not work with async return value - * 3068 First Chance Exception in RuntimeFramework - * 3070 End support for .NET Framework 2.0 (released in 2005) - * 3073 CollectionAssert.AreEquivalent fails for ValueTuple Wrapped Dictionary - * 3079 Regression from 3.10 to 3.11: Range in bytes - * 3082 Is.Ordered.By - * 3085 XML Test-Suite Assembly does not contain DLL path anymore - * 3089 Remove outdated comment - * 3093 Tests having TaskLike objects as their return type throws Exception - * 3094 Bad error message if collections have different types - * 3104 Removed NET20 compile output - * 3105 Add tests for use of ApartmentState.Unknown in RequiresThreadAttribute - * 3107 Declare class in Program.cs provided with NUnitLite Nuget package static - * 3109 Azure DevOps build fails in Save package artifacts - * 3124 Switch copyright notice - * 3128 Correct documentation on ParallelScope - * 3137 Fix doc-comments in NUnitTestAssemblyRunner - * 3138 Assert.Ignore breaks when a Task is returned w/o using async/await - * 3139 Add Azure pipelines badge to frontpage - * 3144 Retry attribute should not derive from PropertyAttribute - * 3145 Capture additional exception details in the test output - * 3156 UnexpectedExceptionTests should tolerate Mono on Azure DevOps Ubuntu - * 3159 Make tests more tolerant - * 3161 https url repo - * 3166 Allow static SetUpFixture classes - * 3171 Incorrect type for Test Fixtures when using running explore with a filter - * 3175 Improve user-facing messages - * 3181 Template Based Test Naming - Incorrect truncation for individual arguments - * 3186 Fix licenseUrl element in nuspec, will be deprecated - * 3193 Cake Build Fails with Visual Studio 2019 - * 3195 Drop or at least make Travis not required? - * 3231 Breaking change in filter functionality between framework 2.7 and 3.11 - * 3209 Test fail when posting to SynchronizationContext.Current - * 3211 Fix logging - * 3218 Remove todos from the code base - * 3222 Our build script tests hang when run with Mono on Windows - * 3233 AndConstraint should write additional information from failed constraint - -### NUnit 3.11 - October 6, 2018 - - * More informative assertion messages - * PlatformAttribute is available on .NET Standard and now detects .NET Core - * ValuesAttribute now works with nullable types - * Async tests detecting and running Windows Forms or WPF message pumps rather than deadlocking - * Support for UWP 10.0 is back via .NET Standard 1.4 - -### Issues Resolved - - * 352 Test with infinite loop in TearDown cannot be aborted - * 452 Deprecate the existing Chocolatey framework package - * 660 Order dependence of And and Or constraints should be documented - * 1200 async test + Apartment(ApartmentState.STA) => await not returning on STA thread - * 2123 Task.Run inside a test will result in deadlock if a control was created previously - * 2146 Assert.That with a Throws constraint does not provide as much info as Assert.Throws - * 2427 PropertyConstraint throws away the more helpful message in the base constraint result - * 2432 Ability to exclude/include the platform .NET Core - * 2450 NullReferenceException in ExceptionHelper.BuildMessage on Mono - * 2536 SetArgDisplayNames for TestCaseData and TestFixtureData - * 2611 Enable .NET Standard 1.6 tests on non-Windows - * 2693 Ensure that resharper settings are consistent with the editorconfig configuration - * 2757 Broken `char` comparison in v3.7 and higher - * 2759 Test fails with "No arguments were provided" error when no values returned from IParameterDataSource - * 2761 Infinite loop in nunit 3.9 - * 2781 Fixed precompiler typo - * 2786 Timeout value not resetting on Retry of failed test - * 2790 Removing ITypeInfo abstraction - * 2798 [Request] Show actual count value when test fail on Has.Exactly(x).Items - * 2814 Remove public marker types - * 2819 Only run AppVeyor PR build against open PRs - * 2821 Save and restore the SynchronizationContext before and after each test case - * 2823 SetUp failed for test fixture - Array was not a one-dimensional array. Issue seems related to byte[,] method parameters - * 2829 Obsoletion warning for DataAttribute - * 2831 Regular "BusyExecIdle after 200 milliseconds delay" CI failures - * 2833 Use longer BusyExecIdle to avoid CI failures - * 2836 NUnit.Framework.Does cannot be extended - * 2837 DictionaryContainsKeyConstraint behaviour is inconstant with Dictionary.ContainsKey when the dictionary uses a custom Comparer - * 2842 Supporting inheritance of Assert and related classes - * 2854 Has.All.../Has.None... - show non-matching items in error message - * 2863 Make tests robust without depending on the order of attributes - * 2867 Skip executing TestCaseSources for tests which are not included in the filter - * 2876 Implement Discovery-time filtering for NUnitLite - * 2883 Our public ConcurrentQueue causes type conflicts - * 2885 Copy/paste error in Assert.That documentation - * 2887 NETStandard 1.3 support dropped in NUnit 3.10 - * 2896 Some tests are silently skipped on netstandard1.x since #2796 - * 2898 AssemblyPath contains invalid charaters - * 2901 Values attribute support for nullable bool and enum types - * 2923 Update outdated CategoryAttribute xmldoc - * 2928 Improve error message on EmptyConstraint - * 2929 Added NUnit XML schemas - * 2940 Increase StackTracesAreFiltered amount to 5 - * 2955 Potential threading issue in IsolatedContext - * 2965 NuGet Package : Add `repository` metadata. - * 2970 InvalidCastException @ NUnit.Framework.TestFixtureSourceAttribute.BuildFrom - * 2979 Warn.If in Assert.Multiple - * 2994 Error in .NET Standard 1.4 DictionaryContainsKeyConstraint MetadataToken compatibility methods - * 2996 Remove unused enum - * 3009 Fix failing CI Builds by upgrading to NUnit Console 3.9.0 - * 3020 Upgrade nunit-vs-adapter to 3.10 for nUnit 3.11 - * 3024 Unable to add `.IgnoreCase` modifier to an `AnyOf` constraint in collection constraints - * 3032 APIs to restore before 3.11 - -### NUnit 3.10.1 - March 12, 2018 - -Added a namespace to the props file included in the NuGet package to make it -compatible with versions of Visual Studio prior to VS 2017. - -### NUnit 3.10 - March 12, 2018 - -This release adds a .NET Standard 2.0 version of the framework which re-enables -most of the features that have been missing in our earlier .NET Standard builds -like parallelism, timeouts, directory and path based asserts, etc. It also contains -numerous bug fixes and smaller enhancements. We've improved our XML docs, -fixed performance issues and added more detail to Multiple Asserts. - -This release also contains source-indexed PDB files allowing developers to debug -into the NUnit Framework. This allows you to track down errors or see how the -framework works. - -In order to support the .NET Standard 2.0 version, the NUnit project switched to -the new CSPROJ format and now requires Visual Studio 2017 to compile. This only -effects people contributing to the project. NUnit still supports building and -compiling your tests in older .NET IDEs and NUnit still supports older versions -of the .NET Framework back to 2.0. For contributors, NUnit can now compile all -supported targets on Windows, Linux and Mac using the Cake command line build. - -### Issues Resolved - - * 1373 Setting with a null value - * 1382 Use array argument contents in name of parameterized tests rather than just array type. - * 1578 TestContext.CurrentTest exposes too much internal info - * 1678 Result Message: OneTimeSetUp: Category name must not contain ',', '!', '+' or '-' - * 1944 Removing Compact Framework workarounds - * 1958 System.Reflection.TargetInvocationException after run finished - * 2033 Nameof refactor - * 2202 Best practices for XML doc comments - * 2325 Retry attribute doesn't retry the test. - * 2331 Repo does not build in VS without running `build -t build` first - * 2405 Improve PropertyConstraint error output - * 2421 Publishing symbols with releases - * 2494 CollectionAssert.AllItemsAreUnique() very slow - * 2515 Retarget Solution to use the New CSPROJ Format - * 2518 Bug in CollectionAssert.AreEqual for ValueTuples. - * 2530 Running tests on main thread. Revisiting #2483 - * 2542 NUnit does not support parallelism on .NET Core 2.0 - * 2555 CI timeout: NUnit.Framework.Assertions.CollectionAssertTest.PerformanceTests - * 2564 Add minClientVersion to .nuspec files - * 2566 Refactor `SimpleEnumerableWithIEquatable` test object - * 2577 Warning in TearDown is inconsistent with Assertion failure - * 2580 Remove unused defines - * 2591 NUnitEqualityComparer.Default should be replaced with new NUnitEqualityComparer() - * 2592 Add .props with ProjectCapability to suppress test project service GUID item - * 2608 Culture differences on .NET Core on non-Windows causes test failures - * 2622 Fix flakey test - * 2624 Prevent emails for successful builds on Travis - * 2626 SetUp/TearDown methods are invoked multiple times before/after test in .NET Standard targeted projects - * 2627 Breaking change in CollectionAssert.AllItemsAreUnique with NUnit 3.9 - * 2628 Error during installing tools when running build script - * 2630 Framework throws NullReferenceException if test parameter is marked with [Values(null)] - * 2632 Parallel tests are loading 100% CPU when nested SetUpFixture exists - * 2639 ValuesAttribute causes ExpectedResult to have no effect - * 2647 Add Current Attempt indicator in TestContext for use with RetryAttribute - * 2654 Address feedback from @oznetmaster - * 2656 NuGet package links to outdated license - * 2659 Naming Errors - * 2662 NullReferenceException after parallel tests have finished executing - * 2663 Building NUnit .NET 4.5 in VS2017 fails - * 2669 Removed vestigial build script helper method - * 2670 Invalid assemblies no longer give an error message - * 2671 Ensure that FailureSite.Child is used where appropriate. - * 2685 Remove Rebracer file - * 2688 Assert.Throws swallows console output - * 2695 MultipleAssertException doesn't provide proper details on failures - * 2698 Syntax suggestions errors as warnings - * 2704 Add Constraint to test whether actual item is contained in expected collection - * 2711 NUnitLite: Add support for --nocolor option - * 2714 AnyOfConstraint enumerates multiple times - * 2725 Enable 'strict' compilation flag - * 2726 Replace the ConcurrentQueue and SpinWait compatibility classes - * 2727 Avoid treating warnings as errors inside the IDE - * 2734 TestCaseAttribute: ExpectedResult should support same value conversion as normal method arguments - * 2742 FailureSite not correctly set on containing suites when tests are ignored. - * 2749 Update Travis SDK versions - -### NUnit 3.9 - November 10, 2017 - -This release addresses numerous parallelization issues that were introduced in 3.8 -when method level parallelization was added. Most of the parallelization issues -resolved were tests never completing when using some combinations of parallel tests -and `ApartmentState` not being properly applied to tests in all cases. - -### Issues Resolved - - * 893 Inconsistent Tuple behavior. - * 1239 NUnit3 sometimes hangs if SetUpFixtures are run in parallel - * 1346 NullReferenceException when [TestFixtureSource] refers to data in a generic class. - * 1473 Allow Is.Ordered to Compare Null Values - * 1899 Constraint Throws.Exception does not catch exception with async lambdas - * 1905 SetupFixture without namespace will make assembly-level Parallelizable attribute useless - * 2091 When a native exception of corrupted state is thrown, nunit test thread crashes and the nunit-console process hangs - * 2102 NUnitLite incorrectly reports Win 10 OS name - * 2271 When CollectionAssert.AreEqual do compare each element, it will ignore the IEquatable of the element too - * 2289 ResolveTypeNameDifference does not handle generic types well - * 2311 Resolve test projects' namespace situation - * 2319 Add .editorconfig to set file encodings so that people don't have to think about it - * 2364 Parallelizable attribute not invalidating invalid parallel scope combinations - * 2372 Create testing for compounded ConstraintFilters - * 2388 Parallelization causes test cases to stop respecting fixture's apartment state - * 2395 NUnit 3.8+ does not finish running tests - * 2398 NUnit CI spurious failures, NUnit.Framework.Internal.ThreadUtilityTests.Kill - * 2402 --labels=All doesn't show anything in console output executing NUnitLite Console Runner - * 2406 Summary descriptions replaced by more detailed ones - * 2411 And constraint on Has.Member throws - * 2412 Using fluent syntax unintentionally removed in 3.8 - * 2418 Support equality comparison delegate - * 2422 Has.Property causes AmbiguousMatchException for shadowing properties - * 2425 XML doc typo fix - * 2426 Regression in 3.8.1: ApartmentAttribute no longer works when applied to an assembly - * 2428 Fix NullReferenceExceptions caused by WorkItemQueue not being thread-safe - * 2429 Stack trace shown for Assert.Warn - * 2438 [Parallelizable] hangs after a few tests - * 2441 Allows to override load-time/execution-time interfaces in built-in tests attributes - * 2446 CI failure in mono Warning tests - * 2448 Inherited Test SetUp, TearDown, etc. are not executed in .NET Core if they are not public - * 2451 Compile RegEx to improve performance - * 2454 SetUpFixture not respecting NonParallelizable tag on TestFixtures. - * 2459 [Parallelizable(ParallelScope.Children)] Unable to finish tests - * 2465 Possible wrong properties are returned by reflection in ReflectionExtensions.cs - * 2467 Test execution hangs when using [SetUpFixture] with NUnit 3.8.x - * 2469 Allow RangeAttribute to be specified multiple times for the same argument - * 2471 Parametrized testcases not running in parallel - * 2475 Framework incorrectly identifies Win 10 in xml results - * 2478 Attributes on SetUpFixture are not applied - * 2486 Message when asserting null with Is.EquivalentTo could be more helpful - * 2497 Use ConstraintUtils.RequireActual through out the codebase - * 2504 Support changing test display name on TestFixtureData - * 2508 Correct divergence from shadowed Is / Has members. - * 2516 When test writes something to the stdErr there is no guaranteed way to link a test-output event to a target test using ITestEventListener - * 2525 Remove unwanted space from comment - * 2526 SerializationException in low trust floating point equality test - * 2533 Matches(Predicate) throws ArgumentException or Fails when actual is null - * 2534 SetUpFixture causes NUnit to lock with Apartment( STA ) - * 2551 CollectionItemsEqualConstraint is missing Using(Func) - * 2554 Made TestFixtureData.SetName internal for 3.9 - -### NUnit 3.8.1 - August 28, 2017 - -This release fixes two critical regressions in the 3.8 release. The first caused the console -runner to crash if you are using test parameters. The second issue caused collection -constraints checking for multiple items in a collection to fail. - -### Issues Resolved - - * 2386 Contains.Item() fails for collections in NUnit 3.8 - * 2390 Missing value attribute in test parameters setting causes NullReferenceException in console - -### NUnit 3.8 - August 27, 2017 - -This release removes several methods and attributes that were marked obsolete in the -original 3.0 release. Support for iOS and Android has been improved. - -An issue that caused unit tests to run slower was addressed as was a bug that prevented -the use of Assert.Multiple in async code. - -The Order attribute can now also be applied to the class level to set the order -that test fixtures will be run. - -### Issues Resolved - - * 345 Order of Fixture Execution - * 1151 Include differences in output for Is.EquivalentTo - * 1324 Remove CollectionContainsConstraint - * 1670 Attaching files to the test result - * 1674 InRange-Constraint must work with object - * 1851 TestCaseSource unable to pass one element byte array - * 1996 Timeout does not work if native code is running at the time - * 2004 Has.One as synonym for Has.Exactly(1).Items - * 2062 TestCaseSource attribute causes test to pass when source is not defined - * 2144 Allow option on RandomAttribute to produce distinct values - * 2179 Some NUnit project's tests fail on systems with CultureInfo other than en - * 2195 Contains.Substring with custom StringComparison - * 2196 Expose ParallelizableAttribute (and other attribute) constructor arguments as properties - * 2201 Invalid platform name passed to PlatformAttribute should mark test NotRunnable - * 2208 StackFIlter trims leading spaces from each line - * 2213 SetCultureAttribute: CultureInfo ctor should use default culture settings - * 2217 Console runner performance varies wildly depending on environmental characteristics - * 2219 Remove Obsolete Attributes - * 2225 OneTimeTearDown and Dispose Ordering - * 2237 System.Runtime.Loader not available for iOS/Android - * 2242 Running tests directly should never surface a NullReferenceException - * 2244 Add KeyValuePair to the default formatters - * 2251 Randomizer.NextGuid() - * 2253 Parallelizable(ParallelScope.Fixtures) doesn't work on a TestFixture - * 2254 EqualTo on ValueTuple with Nullable unexpected - * 2261 When an assembly is marked with ParallelScope.None and there are Parallelizable tests NUnit hangs - * 2269 Parallelizable and NonParallelizable attributes on setup and teardown silently ignored - * 2276 Intermittent test failures in Travic CI: TestContextTests - * 2281 Add type constraint for Throws and any method requiring Exception - * 2288 Killing thread cancels test run - * 2292 Is.Ordered.By() with a field throws NullReferenceException - * 2298 Write TestParametersDictionary to xml result file in readable format - * 2299 NUnitLite NuGet package no longer installs NUnit NuGet package - * 2304 Revert accidental doc removal - * 2305 Correct misprint ".con" -> ".com" - * 2312 Prevent crash on invalid --result parsing in NUnitLite - * 2313 Incorrect xmldoc on RetryAttribute - * 2332 Update build script to use NUnitConsoleRunner v3.7.0 - * 2335 Execute OneTimeTearDown as early as possible when running fixtures in parallel - * 2342 Remove deprecated Is.String* Constraints - * 2348 Can't use Assert.Multiple with async code - * 2353 Provide additional Result information through TestContext - * 2358 Get framework to build under Mono 5.0 - * 2360 Obsolete CollectionContainsConstraint Constructors - * 2361 NUnit Parallelizable and OneTimeSetUp with no namespace results in single-threaded test execution - * 2370 TestCaseAttribute can't convert int to nullable long - -### NUnit 3.7.1 - June 6, 2017 - -This is a hotfix release that addresses occasional hangs when using test parallelization -and fixes crashes in NCrunch prior to version 3.9. - -### Issues Resolved - - * 2205 Ncrunch: System.Xml.XmlException: Root element is missing, when adding NUnit 3.7.0 - * 2209 NUnit occasionally hangs when parallelizable TestFixture has OneTimeSetUp and OneTimeTearDown - -### NUnit 3.7 - May 29, 2017 - -This release of NUnit expands on parallel test execution to allow test methods to -be run in parallel. Please see the [Parallelizable Attribute](https://github.com/nunit/docs/wiki/Parallelizable-Attribute) -for more information. - -NUnit 3.7 also drops the Portable build of the framework and replaces it with a -.NET Standard 1.3 version to compliment the .NET Standard 1.6 version. This change -enables several constraints and other features in the .NET Standard builds that -weren't available in portable like Path and Directory based asserts. - -The AssertionHelper class has been deprecated because it is seldom used and has -not received any of the updates that Asserts and Constraints receive. If your code -is using the AssertionHelper class, we recommend that you migrate your asserts. - -### Issues Resolved - - * 164 Run test methods within a fixture in parallel - * 391 Multiple Assertions - * 652 Add ability to execute test actions before SetUp or OneTimeSetUp - * 1000 Support multiple Author attributes per test - * 1096 Treat OneTimeSetup and OneTimeTearDown as separate work items - * 1143 NUnitLite - Explore flag does not apply where filter to output - * 1238 Feature request: Print LoaderExceptions when fixture loading fails - * 1363 Make Timeouts work without running test on its own thread - * 1474 Several SetUpFixtures at the same level may be active at the same time - * 1819 TestContext.Progress.Write writes new line - * 1830 Add --labels switch changes to nunilite and nunitlite tests - * 1859 ConcurrentQueue is duplicate with System.Threading.dll package - * 1877 Resolve differences between NUnit Console and NUnitLite implementations of @filename - * 1885 Test parameter containing a semicolon - * 1896 Test has passed however Reason with an empty message is printed in the xml - * 1918 Changing DefaultFloatingPointTolerance breaks tests running in parallel - * 1932 NUnit Warn class should be removed from stack trace by filter - * 1934 NullReferenceException when null arguments are used in TestFixtureAttribute - * 1952 TestContext.Out null when used in task with .NET Core - * 1963 Investigate removing SpecialValue - * 1965 TestContext does not flow in async method - * 1971 Switch CHANGES.txt to Markdown - * 1973 Implemented TestExecutionContext to use AsyncLocal<> for NETSTANDARD1_6 - * 1975 TestFixtureSource doesn't work with a class that has no namespace - * 1983 Add missing ConstraintExpression.Contain overload - * 1990 Add namespace filter - * 1997 Remove unused --verbose and --full command line options - * 1999 Author Tests assume ICustomAttributeProvider.GetCustomAttributes return order is defined - * 2003 Better user info about ParallelizableAttribute and ParallelScope - * 2005 Exclude empty failure messages from results xml - * 2007 3.6 Multiple assertion backwards compatibility - * 2010 Add DelayedConstraint in NetStandard 1.6 build - * 2020 Better message when timeout fails - * 2023 Ability to abort threads running a message pump - * 2025 NullReferenceException using Is.EqualTo on two unequal strings - * 2030 Add method to mark tests as invalid with a reason - * 2031 Limit Language level to C#6 - * 2034 Remove silverlight project - no longer used - * 2035 NullReferenceException inside failing Assert.That call - * 2040 Cannot catch AssertionException - * 2045 NUnitlite-runner crashes if no file is provided - * 2050 Creation of TestExecutionContext should be explicit - * 2052 NullReferenceException with TestCaseSource if a property has no setter - * 2061 TestContext.WorkDirectory not initialized during build process - * 2079 Make TestMethod.Arguments public or otherwise accessible (e.g. TestContext) - * 2080 Allow comments in @FILE files - * 2087 Enhance error message: Test is not runnable in single-threaded context. Timeout - * 2092 Convert Portable library to .NET Standard 1.3 - * 2095 Extend use of tolerance to ComparisonConstraints - * 2099 Include type in start-suite/start-test report elements - * 2110 NullReferenceException when getting TestDirectory from TestContext - * 2115 Mark AssertionHelper as Obsolete - * 2121 Chained PropertyConstraint constraints report incorrect ActualValue - * 2131 Remove "Version 3" suffix from NUnitLite NuGet Package - * 2132 TestFixtureTests.CapturesArgumentsForConstructorWithMultipleArgsSupplied assumes order of custom attributes - * 2143 Non-parallel fixture with parallel children runs in parallel with other fixtures - * 2147 Test Assembly using NUnitLite & Nunit 3.6.1 hangs under .NET Core when `--timeout` is supplied on command line - * 2150 Add portable-slow-tests to Cake file - * 2152 Allow attaching files to TestResults - * 2154 Fix execution of non-parallel test fixtures - * 2157 Getting WorkerId inside Assert.Throws / DoesNotThrow returns null instead of previous non-null value - * 2158 Update SetupFixtureAttribute XML Docs - * 2159 Prevent crash in .NET standard with log file path - * 2165 Trying to install NUnit 3.6.1 on .NET Framework asks for download of 20 more packages - * 2169 Incorrect xmldocs for SetUpAttribute - * 2170 Cake build fails if only Visual Studio 2017 installed - * 2173 Remove PreTestAttribute and PostTestAttribute - * 2186 Replace special characters as part of converting branch names to package versions - * 2191 System.Reflection.TargetInvocationException with nunit3-console --debug on Mono - -### NUnit 3.6.1 - February 26, 2017 - -This is a hotfix release of the framework that addresses critical issues found in -the 3.6 release. - -### Issues Resolved - - * 1962 A Theory with no data passes - * 1986 NUnitLite ignores --workers option - * 1994 NUnitLite runner crashing when --trace is specified - * 2017 Two NUnit project's tests fail on systems with comma decimal mark settings - * 2043 Regression in 3.6.0 when catching AssertionException - -### NUnit 3.6 - January 9, 2017 - -This release of the framework no longer includes builds for Compact Framework or -for SilverLight, but adds a .NET Standard 1.6 build. If anyone still using -Compact Framework or SilverLight and would like to continue development on those -versions of the framework, please contact the NUnit team. - -### Framework - - * .NET Standard 1.6 is now supported - * Adds support for Multiple Assert blocks - * Added the --params option to NUnitLite - * Theories now support Nullable enums - * Improved assert error messages to help differentiate differences in values - * Added warnings with Warn.If(), Warn.Unless() and Assert.Warn() - * Enabled Path, File and Directory Asserts/Contraints for .NET Core testing - * Added NonTestAssemblyAttribute for use by third-party developers to indicate - that their assemblies reference the NUnit framework, but do not contain tests - -### Issues Resolved - - * 406 Warning-level Assertions - * 890 Allow file references anywhere in the command line. - * 1380 Appveyor Failures when branch name is too long - * 1589 Split the nunit repository into multiple repositories - * 1599 Move Compact Framework to separate project - * 1601 Move Silverlight to a separate project - * 1609 Upgrade Cake build to latest version - * 1661 Create .NET Standard Framework Build - * 1668 Need implementation-independent way to test number of items in a collection - * 1743 Provide multiple results for a test case in the XML output - * 1758 No direct inverse for Contains.Key - * 1765 TestCaseSourceAttribute constructor for method with parameters - * 1802 Design Multiple Assert syntax as seen by users - * 1808 Disambiguate error messages from EqualConstraint - * 1811 Build.ps1 fails if spaces in path - * 1823 Remove engine nuspecs and old global.json - * 1827 Remove unused repository paths from repositories.config - * 1828 Add Retry for failed tests only - * 1829 NUnitLite accepts --params option but does not make any use of it. - * 1836 Support nullable enums in Theories - * 1837 [Request] AfterContraint to support more readable usage - * 1840 Remove SL and CF #Defined source - * 1866 [Request] More readable way to set polling interval in After constraint - * 1870 EqualConstraint result failure message for DateTime doesn't show sufficient resolution - * 1872 Parameterized method being called with no parameter - * 1876 What should we do about Env.cs - * 1880 AttributeUsage for various Attributes - * 1889 Modify nunitlite to display multiple assert information - * 1891 TestContext.Progress and TestContext.Error silently drop text that is not properly XML encoded - * 1901 Make nunitlite-runner Prefer32Bit option consistent across Debug/Release - * 1904 Add .NET Standard 1.6 Dependencies to the Nuspec Files - * 1907 Handle early termination of multiple assert block - * 1911 Changing misleading comment that implies that every `ICollection` is a list - * 1912 Add new warning status and result state - * 1913 Report Warnings in NUnitLite - * 1914 Extra AssertionResult entries in TestResults - * 1915 Enable Path, File and Directory Assert/Constraints in the .NET Standard Build - * 1917 Use of IsolatedContext breaks tests in user-created AppDomain - * 1924 Run tests using the NUnit Console Runner - * 1929 Rename zip and remove source zip - * 1933 Tests should pass if test case source provides 0 test cases - * 1941 Use dictionary-based property for test run parameters - * 1945 Use high-quality icon for nuspecs - * 1947 Add NonTestAssemblyAttribute - * 1954 Change Error Message for Assert.Equals - * 1960 Typo fixes - * 1966 Xamarin Runner cannot reference NUnit NuGet Package - -### NUnit 3.5 - October 3, 2016 - -This is the first version of NUnit where the framework will be released separately from the -console runner, engine and other extensions. From this point forward, the NUnit Framework will be -released on its own schedule that is not bound to that of any other NUnit project and version numbers -may diverge over time. - -This is also the first release where the NUnit Framework will not be included in the installer. Only -the console runner, engine and extensions will be available as an MSI installer. We recommend that you -use the NUnit NuGet packages for the framework, but a ZIP file with the binaries will also be available. - -### Framework - - * Added Assert.Zero and Assert.NotZero methods - * You can now pass a `Func` to Asserts to lazily evaluate exception messages - * Added the ability to Assert on the order of multiple properties in a collection - * Tests with a Timeout will no longer timeout while you are debugging - -### Issues Resolved - - * 144 Pass a `Func` to lazily evaluate an exception message - * 995 Enable Warning as Error - * 1106 Move various Assembly Info files under Properties for CF - * 1334 Add Assert.Zero and Assert.NotZero - * 1479 Don't enforce [Timeout] when debugger is attached - * 1540 Remove old .NET Core Projects - * 1553 Allow ordering tests to be done in multiple properties - * 1575 Escaping control chars in custom message - * 1596 Eliminate code sharing across projects to be split - * 1598 Split framework and console/engine into separate projects - * 1610 Refactor dependencies in build.cake - * 1615 Appveyor error in TestCF - * 1621 Remove console and command-line option files from common - * 1640 When submitting only part of optional parameters, all are overriden by defaults - * 1641 Create OSX CI Build on Travis - * 1663 Find way to hide NUnit.Compatability.Path from intellisense - * 1681 NUnitLite under .net core doesn't support TeamCity output - * 1683 Existence of SerializableAttribute in .NET Core - * 1693 2 unit tests fail due to localization - * 1716 Move installer to new repository - * 1717 Change suffix for master builds - * 1723 Remove Cake target TestAll - * 1739 Create separate copies of MockAssembly for framework, engine and extensions - * 1751 Serializable attribute exists in both System.Runtime.Serialization.Formatters and nunit.framework - * 1775 Support NUnit assertions in partial trust code. - * 1800 Remove Console/Engine projects from nunit.linux.sln - * 1805 Error message "arguments provided for method not taking any" seems incomplete / doesn't make much sense - * 1815 Prevent NullReferenceException in SubPathConstraint - -### NUnit 3.4.1 - June 30, 2016 - -### Console Runner - - * A new option, --list-extensions, will display all the engine extensions that - have been installed by the engine. - -### Issues Resolved - - * 1623 NUnit 3.4 is not integrated with TeamCity - * 1626 NUnit.ConsoleRunner is not picking up NUnit.Extension.NUnitV2ResultWriter - * 1628 Agent's process stays in memory when it was failed to unload AppDomain - * 1635 Console option to list loaded extensions - -### NUnit 3.4 - June 25, 2016 - -### Framework - - * Improvements in comparing equality using `IEquatable` - * Test case names will only be truncated if the runner requests it or it is overridden on the command line - with the --test-name-format option - * The .NET 2.0 version of the framework now includes LINQ. If your tests target .NET 2.0, you can now use - LINQ queries in your tests - -### Engine - - * The TeamCity event listener has been separated out into an engine extension - * Fixed numerous issues around thread safety of parallel test runs - * Additional fixes to reduce memory usage - * Fixes for Mono 4.4 - -### Console Runner - - * There is a new --params command line option that allows you to pass parameters to your tests - which can be retrieved using TestContext.Parameters - * Another new command line option --loaduserprofile causes the User Profile to be loaded into the - NUnit Agent process. - -### Issues Resolved - - * 329 (CLI) Runner does not report AppDomain unloading timeout - * 720 Need a way to get test-specific command-line arguments at runtime - * 1010 Need to control engine use of extensions - * 1139 Nunit3 console doesn't show test output continously - * 1225 The --teamcity option should really be an extension - * 1241 Make TestDirectory accessible when TestCaseSource attributes are evaluated - * 1366 Classname for inherited test is not correct - * 1371 Support `dotnet test` in .NET CLI and .NET Core - * 1379 Console returns 0 for invalid fixtures - * 1422 Include TestListWithEmptyLine.tst in ZIP Package - * 1423 SingleThreaded attribute should raise an error if a thread is required - * 1425 Lazy initialization of OutWriter in TestResult is not thread safe - * 1427 Engine extensions load old packages - * 1430 TestObjects are retained for lifetime of test run, causing high memory usage - * 1432 NUnit hangs when reporting to TeamCity - * 1434 TestResult class needs to be thread-safe - * 1435 Parallel queue creation needs to be thread-safe - * 1436 CurrentFramework and Current Platform need to be more thread-safe - * 1439 EqualConstraint does Not use Equals Override on the Expected Object - * 1441 Add Linq for use internally in .NET 2.0 code - * 1446 TestOrderAttributeTests is not public - * 1450 Silverlight detection doesn't work when building on 32-bit OS - * 1457 Set the 2.0 build to ignore missing xml dcoumentation - * 1463 Should TestResult.AssertCount have a public setter? - * 1464 TNode.EscapeInvalidXmlCharacters recreates Regex continually - * 1470 Make EventQueue and associated classes lock-less and thread safe - * 1476 Examine need for "synchronous" events in event queue - * 1481 TestCase with generic return type causes NullReferenceException - * 1483 Remoting exceptions during test execution - * 1484 Comparing Equality using `IEquatable` Should Use Most Specific Method - * 1493 NUnit 2 test results report ParameterizedMethod but should be ParameterizedTest - * 1507 NullReferenceException when null arguments are used in TestFixtureAttribute - * 1513 Add new teamcity extension to packages - * 1518 NUnit does not send the "testStarted" TeamCity service message when exception was thrown from SetUp/OneTimeSetUp - * 1520 Detect Portable, Silverlight and Compact and give error message - * 1528 Use of Sleep(0) in NUnit - * 1543 Blank name attribute in nunit2-formatted XML result file test-run element - * 1547 Create separate assembly for System.Linq compatibility classes - * 1548 Invalid Exception when engine is in a 32-bit process - * 1549 Changing default behavior for generating test case names - * 1551 Path in default .addins file for ConsoleRunner package may not exist - * 1555 EndsWith calls in Constraint constructor can cause major perf issues - * 1560 Engine writes setting file unnecessarily - * 1573 Move Nunit.Portable.Agent to new Repo - * 1579 NUnit v3 dangerously overrides COMPLUS_Version environment variable - * 1582 Mono 4.4.0 Causes Test Failures - * 1593 Nunit Console Runner 3.2.1 and Mono 4.4 throws RemotingException - * 1597 Move Portable agent to its own repository - * 1605 TeamCity package has no pre-release suffix - * 1607 nunit.nuget.addins discovery pattern is wrong then restored through project.json - * 1617 Load user profile on test runners - -### NUnit 3.2.1 - April 19, 2016 - -### Framework - - * The output and error files are now thread safe when running tests in parallel - * Added a .NET 3.5 build of the framework preventing conflicts with the compatiblity classes in the 2.0 framework - * Added a SingleThreadedAttribute to be added to a TestFixture to indicate all child tests should run on the same thread - -### Engine - - * Unless required, run all tests within a fixture on the same thread - * Added an EventListener extension point - * Reduced memory usage - -### Console Runner - - * No longer probes for newer versions of the engine, instead uses the engine that is included with the console - -### Issues Resolved - - * 332 Add CF to the Appveyor CI build - * 640 Keep CF Build (and other future builds) in Sync - * 773 Upgrade Travis CI from Legacy Infrastructure - * 1141 Explicit Tests get run when using --where with some filters - * 1161 NUnit3-Console should disallow the combination of --inprocess and --x86, giving an error message - * 1208 Apartment on assembly level broken - * 1231 Build may silently fail some tests - * 1247 Potential memory issue - * 1266 SetCultureAttribute does not work if set on assembly level - * 1302 Create EventListener ExtensionPoint for the Engine - * 1317 Getting CF framework unit tests running on CI build - * 1318 NUnit console runner fails with error code -100 - * 1327 TestCaseSource in NUnit 3 converts an argument declared as String[] to String - * 1329 Unable to build without Compact Framework - * 1333 Single Thread per Worker - * 1338 BUILDING.txt is outdated - * 1349 Collision on System.Func from nunit.framework with System.Core in .Net 3.5 (CS0433) - * 1352 Tests losing data setup on thread - * 1359 Compilation error in NUnitPortableDriverTests.cs - * 1383 Skip Silverlight build if SDK not installed - * 1386 Bug when using Assert.Equals() with types that explicitly implement `IEquatable` - * 1390 --testlist with file with blank first line causes IndexOutOfRangeException - * 1399 Fixed NullReference issue introduced by the fix for #681 - * 1405 ITestRunner.StopRun throws exception of type 'System.MissingMethodException' - * 1406 TextCapture is not threadsafe but is used to intercept calls that are expected to be threadsafe - * 1410 Make OutFile and ErrFile streamwriters synchronized - * 1413 Switch console to use a local engine - -### NUnit 3.2 - March 5, 2016 - -### Framework - - * Added an Order attribute that defines the order in which tests are run - * Added Assert.ThrowsAsync for testing if async methods throw an exception - * You can now compare unlike collections using Is.EquivalentTo().Using(...) - * Added the ability to add custom message formatters to MsgUtils - * TestCaseSourceAttribute now optionally takes an array of parameters that can be passed to the source method - * Added Is.Zero and Is.Not.Zero to the fluent syntax as a shorter option for Is.EqualTo(0) and Is.Not.EqualTo(0) - -### Engine - - * Engine extensions can be installed via NuGet packages - -### Issues Resolved - - * 170 Test Order Attribute - * 300 Create an NUnit Visual Studio Template - * 464 Async delegate assertions - * 532 Batch runner for Silverlight tests - * 533 Separate NUnitLite runner and autorunner - * 681 NUnit agent cannot resolve test dependency assemblies when mixed mode initialization runs in the default AppDomain - * 793 Replace CoreEngine by use of Extensions - * 907 Console report tests are too fragile - * 922 Wrap Console in NUnitLite - * 930 Switch from MSBuild based build system to Cake - * 981 Define NUnit Versioning for post-3.0 Development - * 1004 Poor formatting of results for Assert.AreEqual(DateTimeOffset, DateTimeOffset) - * 1018 ArgumentException when 2.x version of NUnit Framework is in the bin directory - * 1022 Support Comparing Unlike Collections using Is.EquivalentTo().Using(...) - * 1044 Re-order Test Summary Errors/Failures - * 1066 ApartmentAttribute and TestCaseAttribute(s) do not work together - * 1103 Can't use TestCaseData from base class - * 1109 NullReferenceException when using inherited property for ValueSource - * 1113 Console runner and xml output consistency - * 1117 Fix misbehaviour of Throws.Exception with non-void returning functions - * 1120 NUnitProject should parse .nunit project files containing Xml Declarations - * 1121 Usage of field set to null as value source leads to somewhat cryptic error - * 1122 Region may be disposed before test delegate is executed - * 1133 Provide a way to install extensions as nuget packages - * 1136 Don't allow V2 framework to update in V2 driver tests - * 1171 A bug when using Assert.That() with Is.Not.Empty - * 1185 Engine finds .NET 4.0 Client Profile twice - * 1187 ITestAssemblyRunner.StopRun as implemented by NUnitTestAssemblyRunner - * 1195 name attribute in test-suite and test-results element of output xml is different to nunit 2.6.4 using nunit2-format - * 1196 Custom value formatter for v3 via MsgUtils - * 1210 Available runtimes issues - * 1230 Add ability for testcasedatasource to have parameters passed to methods - * 1233 Add TestAssemblyRunner tests to both portable and silverlight builds - * 1234 Have default NUnitLite Runner Program.cs return exit code - * 1236 Make Appveyor NuGet feed more useable - * 1246 Introduce Is.Zero syntax to test for zero - * 1252 Exception thrown when any assembly is not found - * 1261 TypeHelper.GetDisplayName generates the wrong name for generic types with nested classes - * 1278 Fix optional parameters in TestCaseAttribute - * 1282 TestCase using Params Behaves Oddly - * 1283 Engine should expose available frameworks. - * 1286 value of the time attribute in nunit2 outputs depends on the machine culture - * 1297 NUnit.Engine nuget package improvements - * 1301 Assert.AreNotSame evaluates ToString unnecessarily - -### NUnit 3.0.1 - December 1, 2015 - -### Console Runner - - * The Nunit.Runners NuGet package was updated to become a meta-package that pulls in the NUnit.Console package - * Reinstated the --pause command line option that will display a message box allowing you to attach a debugger if the --debug option does not work - -### Issues Resolved - - * 994 Add max number of Agents to the NUnit project file - * 1014 Ensure NUnit API assembly updates with MSI installs - * 1024 Added --pause flag to console runner - * 1030 Update Nunit.Runners package to 3.0 - * 1033 "No arguments were provided" with Theory and Values combination - * 1035 Check null arguments - * 1037 Async tests not working on Windows 10 Universal - * 1041 NUnit2XmlResult Writer is reporting Sucess when test fails - * 1042 NUnit2 reports on 3.0 is different than 2.6.4 - * 1046 FloatingPointNumerics.AreAlmostEqualUlps throws OverflowException - * 1049 Cannot select Generic tests from command line - * 1050 Do not expose System.Runtime.CompilerServices.ExtensionAttribute to public - * 1054 Create nuget feeds for CI builds on Appveyor - * 1055 nunit3 console runner --where option does not return error on invalid selection string - * 1060 Remove "Version 3" from NUnit Nuget Package - * 1061 Nunit30Settings.xml becomes corrupted - * 1062 Console.WriteLine statements in "OneTimeSetUp" and "OneTimeTearDown" annotated methods are not directed to the console when using nunit3-console.exe runner - * 1063 Error in Random Test - -### NUnit 3.0.0 Final Release - November 15, 2015 - -### Issues Resolved - - * 635 Mono 4.0 Support - -### NUnit 3.0.0 Release Candidate 3 - November 13, 2015 - -### Engine - - * The engine now only sets the config file for project.nunit to project.config if project.config exists. Otherwise, each assembly uses its own config, provided it is run in a separate AppDomain by itself. - - NOTE: It is not possible for multiple assemblies in the same AppDomain to use different configs. This is not an NUnit limitation, it's just how configs work! - -### Issues Resolved - - * 856 Extensions support for third party runners in NUnit 3.0 - * 1003 Delete TeamCityEventHandler as it is not used - * 1015 Specifying .nunit project and --framework on command line causes crash - * 1017 Remove Assert.Multiple from framework - -### NUnit 3.0.0 Release Candidate 2 - November 8, 2015 - -### Engine - - * The IDriverFactory extensibility interface has been modified. - -### Issues Resolved - - * 970 Define PARALLEL in CF build of nunitlite - * 978 It should be possible to determine version of NUnit using nunit console tool - * 983 Inconsistent return codes depending on ProcessModel - * 986 Update docs for parallel execution - * 988 Don't run portable tests from NUnit Console - * 990 V2 driver is passing invalid filter elements to NUnit - * 991 Mono.Options should not be exposed to public directly - * 993 Give error message when a regex filter is used with NUnit V2 - * 997 Add missing XML Documentation - * 1008 NUnitLite namespace not updated in the NuGet Packages - -### NUnit 3.0.0 Release Candidate - November 1, 2015 - -### Framework - - * The portable build now supports ASP.NET 5 and the new Core CLR. - - NOTE: The `nunit3-console` runner cannot run tests that reference the portable build. - You may run such tests using NUnitLite or a platform-specific runner. - - * `TestCaseAttribute` and `TestCaseData` now allow modifying the test name without replacing it entirely. - * The Silverlight packages are now separate downloads. - -### NUnitLite - - * The NUnitLite runner now produces the same output display and XML results as the console runner. - -### Engine - - * The format of the XML result file has been finalized and documented. - -### Console Runner - - * The console runner program is now called `nunit3-console`. - * Console runner output has been modified so that the summary comes at the end, to reduce the need for scrolling. - -### Issues Resolved - - * 59 Length of generated test names should be limited - * 68 Customization of test case name generation - * 404 Split tests between nunitlite.runner and nunit.framework - * 575 Add support for ASP.NET 5 and the new Core CLR - * 783 Package separately for Silverlight - * 833 Intermittent failure of WorkItemQueueTests.StopQueue_WithWorkers - * 859 NUnit-Console output - move Test Run Summary to end - * 867 Remove Warnings from Ignored tests - * 868 Review skipped tests - * 887 Move environment and settings elements to the assembly suite in the result file - * 899 Colors for ColorConsole on grey background are too light - * 904 InternalPreserveStackTrace is not supported on all Portable platforms - * 914 Unclear error message from console runner when assembly has no tests - * 916 Console runner dies when test agent dies - * 918 Console runner --where parameter is case sensitive - * 920 Remove addins\nunit.engine.api.dll from NuGet package - * 929 Rename nunit-console.exe - * 931 Remove beta warnings from NuGet packages - * 936 Explicit skipped tests not displayed - * 939 Installer complains about .NET even if already installed - * 940 Confirm or modify list of packages for release - * 947 Breaking API change in ValueSourceAttribute - * 949 Update copyright in NUnit Console - * 954 NUnitLite XML output is not consistent with the engine's - * 955 NUnitLite does not display the where clause - * 959 Restore filter options for NUnitLite portable build - * 960 Intermittent failure of CategoryFilterTests - * 967 Run Settings Report is not being displayed. - -### NUnit 3.0.0 Beta 5 - October 16, 2015 - -### Framework - - * Parameterized test cases now support nullable arguments. - * The NUnit framework may now be built for the .NET Core framework. Note that this is only available through building the source code. A binary will be available in the next release. - -### Engine - - * The engine now runs multiple test assemblies in parallel by default - * The output XML now includes more information about the test run, including the text of the command used, any engine settings and the filter used to select tests. - * Extensions may now specify data in an identifying attribute, for use by the engine in deciding whether to load that extension. - - -### Console Runner - - * The console now displays all settings used by the engine to run tests as well as the filter used to select tests. - * The console runner accepts a new option --maxagents. If multiple assemblies are run in separate processes, this value may be used to limit the number that are executed simultaneously in parallel. - * The console runner no longer accepts the --include and --exclude options. Instead, the new --where option provides a more general way to express which tests will be executed, such as --where "cat==Fast && Priority==High". See the docs for details of the syntax. - * The new --debug option causes NUnit to break in the debugger immediately before tests are run. This simplifies debugging, especially when the test is run in a separate process. - -#### Issues Resolved - - * 41 Check for zeroes in Assert messages - * 254 Finalize XML format for test results - * 275 NUnitEqualityComparer fails to compare `IEquatable` where second object is derived from T - * 304 Run test Assemblies in parallel - * 374 New syntax for selecting tests to be run - * 515 OSPlatform.IsMacOSX doesn't work - * 573 nunit-console hangs on Mac OS X after all tests have run - * 669 TeamCity service message should have assembly name as a part of test name. - * 689 The TeamCity service message "testFinished" should have an integer value in the "duration" attribute - * 713 Include command information in XML - * 719 We have no way to configure tests for several assemblies using NUnit project file and the common installation from msi file - * 735 Workers number in xml report file cannot be found - * 784 Build Portable Framework on Linux - * 790 Allow Extensions to provide data through an attribute - * 794 Make it easier to debug tests as well as NUnit itself - * 801 NUnit calls Dispose multiple times - * 814 Support nullable types with TestCase - * 818 Possible error in Merge Pull Request #797 - * 821 Wrapped method results in loss of result information - * 822 Test for Debugger in NUnitTestAssemblyRunner probably should not be in CF build - * 824 Remove unused System.Reflection using statements - * 826 Randomizer uniqueness tests fail randomly! - * 828 Merge pull request #827 (issue 826) - * 830 Add ability to report test results synchronously to test runners - * 837 Enumerators not disposed when comparing IEnumerables - * 840 Add missing copyright notices - * 844 Pull Request #835 (Issue #814) does not build in CF - * 847 Add new --process:inprocess and --inprocess options - * 850 Test runner fails if test name contains invalid xml characters - * 851 'Exclude' console option is not working in NUnit Lite - * 853 Cannot run NUnit Console from another directory - * 860 Use CDATA section for message, stack-trace and output elements of XML - * 863 Eliminate core engine - * 865 Intermittent failures of StopWatchTests - * 869 Tests that use directory separator char to determine platform misreport Linux on MaxOSX - * 870 NUnit Console Runtime Environment misreports on MacOSX - * 874 Add .NET Core Framework - * 878 Cannot exclude MacOSX or XBox platforms when running on CF - * 892 Fixed test runner returning early when executing more than one test run. - * 894 Give nunit.engine and nunit.engine.api assemblies strong names - * 896 NUnit 3.0 console runner not placing test result xml in --work directory - -### NUnit 3.0.0 Beta 4 - August 25, 2015 - -### Framework - - * A new RetryAttribute allows retrying of failing tests. - * New SupersetConstraint and Is.SupersetOf syntax complement SubsetConstraint. - * Tests skipped due to ExplicitAttribute are now reported as skipped. - -### Engine - - * We now use Cecil to examine assemblies prior to loading them. - * Extensions are no longer based on Mono.Addins but use our own extension framework. - -### Issues Resolved - - * 125 3rd-party dependencies should be downloaded on demand - * 283 What should we do when a user extension does something bad? - * 585 RetryAttribute - * 642 Restructure MSBuild script - * 649 Change how we zip packages - * 654 ReflectionOnlyLoad and ReflectionOnlyLoadFrom - * 664 Invalid "id" attribute in the report for case "test started" - * 685 In the some cases when tests cannot be started NUnit returns exit code "0" - * 728 Missing Assert.That overload - * 741 Explicit Tests get run when using --exclude - * 746 Framework should send events for all tests - * 747 NUnit should apply attributes even if test is non-runnable - * 749 Review Use of Mono.Addins for Engine Extensibility - * 750 Include Explicit Tests in Test Results - * 753 Feature request: Is.SupersetOf() assertion constraint - * 755 TimeOut attribute doesn't work with TestCaseSource Attribute - * 757 Implement some way to wait for execution to complete in ITestEngineRunner - * 760 Packaging targets do not run on Linux - * 766 Added overloads for True()/False() accepting booleans - * 778 Build and build.cmd scripts invoke nuget.exe improperly - * 780 Teamcity fix - * 782 No sources for 2.6.4 - -### NUnit 3.0.0 Beta 3 - July 15, 2015 - -### Framework - - * The RangeAttribute has been extended to support more data types including - uint, long and ulong - * Added platform support for Windows 10 and fixed issues with Windows 8 and - 8.1 support - * Added async support to the portable version of NUnit Framework - * The named members of the TestCaseSource and ValueSource attributes must now be - static. - * RandomAttribute has been extended to add support for new data types including - uint, long, ulong, short, ushort, float, byte and sbyte - * TestContext.Random has also been extended to add support for new data types including - uint, long, ulong, short, ushort, float, byte, sbyte and decimal - * Removed the dependency on Microsoft.Bcl.Async from the NUnit Framework assembly - targeting .NET 4.0. If you want to write async tests in .NET 4.0, you will need - to reference the NuGet package yourself. - * Added a new TestFixtureSource attribute which is the equivalent to TestCaseSource - but provides for instantiation of fixtures. - * Significant improvements have been made in how NUnit deduces the type arguments of - generic methods based on the arguments provided. - -### Engine - - * If the target framework is not specified, test assemblies that are compiled - to target .NET 4.5 will no longer run in .NET 4.0 compatibility mode - -### Console - - * If the console is run without arguments, it will now display help - -### Issues Resolved - - * 47 Extensions to RangeAttribute - * 237 System.Uri .ctor works not properly under Nunit - * 244 NUnit should properly distinguish between .NET 4.0 and 4.5 - * 310 Target framework not specified on the AppDomain when running against .Net 4.5 - * 321 Rationalize how we count tests - * 472 Overflow exception and DivideByZero exception from the RangeAttribute - * 524 int and char do not compare correctly? - * 539 Truncation of string arguments - * 544 AsyncTestMethodTests for 4.5 Framework fails frequently on Travis CI - * 656 Unused parameter in Console.WriteLine found - * 670 Failing Tests in TeamCity Build - * 673 Ensure proper disposal of engine objects - * 674 Engine does not release test assemblies - * 679 Windows 10 Support - * 682 Add Async Support to Portable Framework - * 683 Make FrameworkController available in portable build - * 687 TestAgency does not launch agent process correctly if runtime type is not specified (i.e. v4.0) - * 692 PlatformAttribute_OperatingSystemBitNess fails when running in 32-bit process - * 693 Generic `Test` Method cannot determine type arguments for fixture when passed as `IEnumerable` - * 698 Require TestCaseSource and ValueSource named members to be static - * 703 TeamCity non-equal flowid for 'testStarted' and 'testFinished' messages - * 712 Extensions to RandomAttribute - * 715 Provide a data source attribute at TestFixture Level - * 718 RangeConstraint gives error with from and two args of differing types - * 723 Does nunit.nuspec require dependency on Microsoft.Bcl.Async? - * 724 Adds support for `Nullable` to Assert.IsTrue and Assert.IsFalse - * 734 Console without parameters doesn't show help - -### NUnit 3.0.0 Beta 2 - May 12, 2015 - -### Framework - - * The Compact Framework version of the framework is now packaged separately - and will be distributed as a ZIP file and as a NuGet package. - * The NUnit 2.x RepeatAttribute was added back into the framework. - * Added Throws.ArgumentNullException - * Added GetString methods to NUnit.Framework.Internal.RandomGenerator to - create repeatable random strings for testing - * When checking the equality of DateTimeOffset, you can now use the - WithSameOffset modifier - * Some classes intended for internal usage that were public for testing - have now been made internal. Additional classes will be made internal - for the final 3.0 release. - -### Engine - - * Added a core engine which is a non-extensible, minimal engine for use by - devices and similar situations where reduced functionality is compensated - for by reduced size and simplicity of usage. - -### Issues Resolved - - * 22 Add OSArchitecture Attribute to Environment node in result xml - * 24 Assert on Dictionary Content - * 48 Explicit seems to conflict with Ignore - * 168 Create NUnit 3.0 documentation - * 196 Compare DateTimeOffsets including the offset in the comparison - * 217 New icon for the 3.0 release - * 316 NUnitLite TextUI Runner - * 320 No Tests found: Using parametrized Fixture and TestCaseSource - * 360 Better exception message when using non-BCL class in property - * 454 Rare registry configurations may cause NUnit to fail - * 478 RepeatAttribute - * 481 Testing multiple assemblies in nunitlite - * 538 Potential bug using TestContext in constructors - * 546 Enable Parallel in NUnitLite/CF (or more) builds - * 551 TextRunner not passing the NumWorkers option to the ITestAssemblyRunner - * 556 Executed tests should always return a non-zero duration - * 559 Fix text of NuGet packages - * 560 Fix PackageVersion property on wix install projects - * 562 Program.cs in NUnitLite NuGet package is incorrect - * 564 NUnitLite Nuget package is Beta 1a, Framework is Beta 1 - * 565 NUnitLite Nuget package adds Program.cs to a VB Project - * 568 Isolate packaging from building - * 570 ThrowsConstraint failure message should include stack trace of actual exception - * 576 Throws.ArgumentNullException would be nice - * 577 Documentation on some members of Throws falsely claims that they return `TargetInvocationException` constraints - * 579 No documentation for recommended usage of TestCaseSourceAttribute - * 580 TeamCity Service Message Uses Incorrect Test Name with NUnit2Driver - * 582 Test Ids Are Not Unique - * 583 TeamCity service messages to support parallel test execution - * 584 Non-runnable assembly has incorrect ResultState - * 609 Add support for integration with TeamCity - * 611 Remove unused --teamcity option from CF build of NUnitLite - * 612 MaxTime doesn't work when used for TestCase - * 621 Core Engine - * 622 nunit-console fails when use --output - * 628 Modify IService interface and simplify ServiceContext - * 631 Separate packaging for the compact framework - * 646 ConfigurationManager.AppSettings Params Return Null under Beta 1 - * 648 Passing 2 or more test assemblies targeting > .NET 2.0 to nunit-console fails - -### NUnit 3.0.0 Beta 1 - March 25, 2015 - -### General - - * There is now a master windows installer for the framework, engine and console runner. - -### Framework - - * We no longer create a separate framework build for .NET 3.5. The 2.0 and - 3.5 builds were essentially the same, so the former should now be used - under both runtimes. - * A new Constraint, DictionaryContainsKeyConstraint, may be used to test - that a specified key is present in a dictionary. - * LevelOfParallelizationAttribute has been renamed to LevelOfParallelismAttribute. - * The Silverlight runner now displays output in color and includes any - text output created by the tests. - * The class and method names of each test are included in the output xml - where applicable. - * String arguments used in test case names are now truncated to 40 rather - than 20 characters. - -### Engine - - * The engine API has now been finalized. It permits specifying a minimum - version of the engine that a runner is able to use. The best installed - version of the engine will be loaded. Third-party runners may override - the selection process by including a copy of the engine in their - installation directory and specifying that it must be used. - * The V2 framework driver now uses the event listener and test listener - passed to it by the runner. This corrects several outstanding issues - caused by events not being received and allows selecting V2 tests to - be run from the command-line, in the same way that V3 tests are selected. - -### Console - - * The console now defaults to not using shadowcopy. There is a new option --shadowcopy to turn it on if needed. - -### Issues Resolved - - * 224 Silverlight Support - * 318 TestActionAttribute: Retrieving the TestFixture - * 428 Add ExpectedExceptionAttribute to C# samples - * 440 Automatic selection of Test Engine to use - * 450 Create master install that includes the framework, engine and console installs - * 477 Assert does not work with ArraySegment - * 482 nunit-console has multiple errors related to -framework option - * 483 Adds constraint for asserting that a dictionary contains a particular key - * 484 Missing file in NUnit.Console nuget package - * 485 Can't run v2 tests with nunit-console 3.0 - * 487 NUnitLite can't load assemblies by their file name - * 488 Async setup and teardown still don't work - * 497 Framework installer shold register the portable framework - * 504 Option --workers:0 is ignored - * 508 Travis builds with failure in engine tests show as successful - * 509 Under linux, not all mono profiles are listed as available - * 512 Drop the .NET 3.5 build - * 517 V2 FrameworkDriver does not make use of passed in TestEventListener - * 523 Provide an option to disable shadowcopy in NUnit v3 - * 528 V2 FrameworkDriver does not make use of passed in TestFilter - * 530 Color display for Silverlight runner - * 531 Display text output from tests in Silverlight runner - * 534 Add classname and methodname to test result xml - * 541 Console help doesn't indicate defaults - -### NUnit 3.0.0 Alpha 5 - January 30, 2015 - -### General - - * A Windows installer is now included in the release packages. - -### Framework - - * TestCaseAttribute now allows arguments with default values to be omitted. Additionaly, it accepts a Platform property to specify the platforms on which the test case should be run. - * TestFixture and TestCase attributes now enforce the requirement that a reason needs to be provided when ignoring a test. - * SetUp, TearDown, OneTimeSetUp and OneTimeTearDown methods may now be async. - * String arguments over 20 characters in length are truncated when used as part of a test name. - -### Engine - - * The engine is now extensible using Mono.Addins. In this release, extension points are provided for FrameworkDrivers, ProjectLoaders and OutputWriters. The following addins are bundled as a part of NUnit: - * A FrameworkDriver that allows running NUnit V2 tests under NUnit 3.0. - * ProjectLoaders for NUnit and Visual Studio projects. - * An OutputWriter that creates XML output in NUnit V2 format. - * DomainUsage now defaults to Multiple if not specified by the runner - -### Console - - * New options supported: - * testlist provides a list of tests to run in a file - * stoponerror indicates that the run should terminate when any test fails. - -### Issues Resolved - - * 20 TestCaseAttribute needs Platform property. - * 60 NUnit should support async setup, teardown, fixture setup and fixture teardown. - * 257 TestCaseAttribute should not require parameters with default values to be specified. - * 266 Pluggable framework drivers. - * 368 Create addin model. - * 369 Project loader addins - * 370 OutputWriter addins - * 403 Move ConsoleOptions.cs and Options.cs to Common and share... - * 419 Create Windows Installer for NUnit. - * 427 [TestFixture(Ignore=true)] should not be allowed. - * 437 Errors in tests under Linux due to hard-coded paths. - * 441 NUnit-Console should support --testlist option - * 442 Add --stoponerror option back to nunit-console. - * 456 Fix memory leak in RuntimeFramework. - * 459 Remove the Mixed Platforms build configuration. - * 468 Change default domain usage to multiple. - * 469 Truncate string arguments in test names in order to limit the length. - -### NUnit 3.0.0 Alpha 4 - December 30, 2014 - -### Framework - - * ApartmentAttribute has been added, replacing STAAttribute and MTAAttribute. - * Unnecessary overloads of Assert.That and Assume.That have been removed. - * Multiple SetUpFixtures may be specified in a single namespace. - * Improvements to the Pairwise strategy test case generation algorithm. - * The new NUnitLite runner --testlist option, allows a list of tests to be kept in a file. - -### Engine - - * A driver is now included, which allows running NUnit 2.x tests under NUnit 3.0. - * The engine can now load and run tests specified in a number of project formats: - * NUnit (.nunit) - * Visual Studio C# projects (.csproj) - * Visual Studio F# projects (.vjsproj) - * Visual Studio Visual Basic projects (.vbproj) - * Visual Studio solutions (.sln) - * Legacy C++ and Visual JScript projects (.csproj and .vjsproj) are also supported - * Support for the current C++ format (.csxproj) is not yet available - * Creation of output files like TestResult.xml in various formats is now a - service of the engine, available to any runner. - -### Console - - * The command-line may now include any number of assemblies and/or supported projects. - -### Issues Resolved - - * 37 Multiple SetUpFixtures should be permitted on same namespace - * 210 TestContext.WriteLine in an AppDomain causes an error - * 227 Add support for VS projects and solutions - * 231 Update C# samples to use NUnit 3.0 - * 233 Update F# samples to use NUnit 3.0 - * 234 Update C++ samples to use NUnit 3.0 - * 265 Reorganize console reports for nunit-console and nunitlite - * 299 No full path to assembly in XML file under Compact Framework - * 301 Command-line length - * 363 Make Xml result output an engine service - * 377 CombiningStrategyAttributes don't work correctly on generic methods - * 388 Improvements to NUnitLite runner output - * 390 Specify exactly what happens when a test times out - * 396 ApartmentAttribute - * 397 CF nunitlite runner assembly has the wrong name - * 407 Assert.Pass() with ]]> in message crashes console runner - * 414 Simplify Assert overloads - * 416 NUnit 2.x Framework Driver - * 417 Complete work on NUnit projects - * 420 Create Settings file in proper location - -### NUnit 3.0.0 Alpha 3 - November 29, 2014 - -### Breaking Changes - - * NUnitLite tests must reference both the nunit.framework and nunitlite assemblies. - -### Framework - - * The NUnit and NUnitLite frameworks have now been merged. There is no longer any distinction - between them in terms of features, although some features are not available on all platforms. - * The release includes two new framework builds: compact framework 3.5 and portable. The portable - library is compatible with .NET 4.5, Silverlight 5.0, Windows 8, Windows Phone 8.1, - Windows Phone Silverlight 8, Mono for Android and MonoTouch. - * A number of previously unsupported features are available for the Compact Framework: - - Generic methods as tests - - RegexConstraint - - TimeoutAttribute - - FileAssert, DirectoryAssert and file-related constraints - -### Engine - - * The logic of runtime selection has now changed so that each assembly runs by default - in a separate process using the runtime for which it was built. - * On 64-bit systems, each test process is automatically created as 32-bit or 64-bit, - depending on the platform specified for the test assembly. - -### Console - - * The console runner now runs tests in a separate process per assembly by default. They may - still be run in process or in a single separate process by use of command-line options. - * The console runner now starts in the highest version of the .NET runtime available, making - it simpler to debug tests by specifying that they should run in-process on the command-line. - * The -x86 command-line option is provided to force execution in a 32-bit process on a 64-bit system. - * A writeability check is performed for each output result file before trying to run the tests. - * The -teamcity option is now supported. - -### Issues Resolved - - * 12 Compact framework should support generic methods - * 145 NUnit-console fails if test result message contains invalid xml characters - * 155 Create utility classes for platform-specific code - * 223 Common code for NUnitLite console runner and NUnit-Console - * 225 Compact Framework Support - * 238 Improvements to running 32 bit tests on a 64 bit system - * 261 Add portable nunitlite build - * 284 NUnitLite Unification - * 293 CF does not have a CurrentDirectory - * 306 Assure NUnit can write resultfile - * 308 Early disposal of runners - * 309 NUnit-Console should support incremental output under TeamCity - * 325 Add RegexConstraint to compact framework build - * 326 Add TimeoutAttribute to compact framework build - * 327 Allow generic test methods in the compact framework - * 328 Use .NET Stopwatch class for compact framework builds - * 331 Alpha 2 CF does not build - * 333 Add parallel execution to desktop builds of NUnitLite - * 334 Include File-related constraints and syntax in NUnitLite builds - * 335 Re-introduce 'Classic' NUnit syntax in NUnitLite - * 336 Document use of separate obj directories per build in our projects - * 337 Update Standard Defines page for .NET 3.0 - * 341 Move the NUnitLite runners to separate assemblies - * 367 Refactor XML Escaping Tests - * 372 CF Build TestAssemblyRunnerTests - * 373 Minor CF Test Fixes - * 378 Correct documentation for PairwiseAttribute - * 386 Console Output Improvements - -### NUnit 3.0.0 Alpha 2 - November 2, 2014 - -### Breaking Changes - - * The console runner no longer displays test results in the debugger. - * The NUnitLite compact framework 2.0 build has been removed. - * All addin support has been removed from the framework. Documentation of NUnit 3.0 extensibility features will be published in time for the beta release. In the interim, please ask for support on the nunit-discuss list. - -### General - - * A separate solution has been created for Linux - * We now have continuous integration builds under both Travis and Appveyor - * The compact framework 3.5 build is now working and will be supported in future releases. - -### New Features - - * The console runner now automatically detects 32- versus 64-bit test assemblies. - * The NUnitLite report output has been standardized to match that of nunit-console. - * The NUnitLite command-line has been standardized to match that of nunit-console where they share the same options. - * Both nunit-console and NUnitLite now display output in color. - * ActionAttributes now allow specification of multiple targets on the attribute as designed. This didn't work in the first alpha. - * OneTimeSetUp and OneTimeTearDown failures are now shown on the test report. Individual test failures after OneTimeSetUp failure are no longer shown. - * The console runner refuses to run tests build with older versions of NUnit. A plugin will be available to run older tests in the future. - -### Issues Resolved - - * 222 Color console for NUnitLite - * 229 Timing failures in tests - * 241 Remove reference to Microslft BCL packages - * 243 Create solution for Linux - * 245 Multiple targets on action attributes not implemented - * 246 C++ tests do not compile in VS2013 - * 247 Eliminate trace display when running tests in debug - * 255 Add new result states for more precision in where failures occur - * 256 ContainsConstraint break when used with AndConstraint - * 264 Stacktrace displays too many entries - * 269 Add manifest to nunit-console and nunit-agent - * 270 OneTimeSetUp failure results in too much output - * 271 Invalid tests should be treated as errors - * 274 Command line options should be case insensitive - * 276 NUnit-console should not reference nunit.framework - * 278 New result states (ChildFailure and SetupFailure) break NUnit2XmlOutputWriter - * 282 Get tests for NUnit2XmlOutputWriter working - * 288 Set up Appveyor CI build - * 290 Stack trace still displays too many items - * 315 NUnit 3.0 alpha: Cannot run in console on my assembly - * 319 CI builds are not treating test failures as failures of the build - * 322 Remove Stopwatch tests where they test the real .NET Stopwatch - -### NUnit 3.0.0 Alpha 1 - September 22, 2014 - -### Breaking Changes - - * Legacy suites are no longer supported - * Assert.NullOrEmpty is no longer supported (Use Is.Null.Or.Empty) - -### General - - * MsBuild is now used for the build rather than NAnt - * The framework test harness has been removed now that nunit-console is at a point where it can run the tests. - -### New Features - - * Action Attributes have been added with the same features as in NUnit 2.6.3. - * TestContext now has a method that allows writing to the XML output. - * TestContext.CurrentContext.Result now provides the error message and stack trace during teardown. - * Does prefix operator supplies several added constraints. - -### Issues Resolved - - * 6 Log4net not working with NUnit - * 13 Standardize commandline options for nunitlite runner - * 17 No allowance is currently made for nullable arguents in TestCase parameter conversions - * 33 TestCaseSource cannot refer to a parameterized test fixture - * 54 Store message and stack trace in TestContext for use in TearDown - * 111 Implement Changes to File, Directory and Path Assertions - * 112 Implement Action Attributes - * 156 Accessing multiple AppDomains within unit tests result in SerializationException - * 163 Add --trace option to NUnitLite - * 167 Create interim documentation for the alpha release - * 169 Design and implement distribution of NUnit packages - * 171 Assert.That should work with any lambda returning bool - * 175 Test Harness should return an error if any tests fail - * 180 Errors in Linux CI build - * 181 Replace NAnt with MsBuild / XBuild - * 183 Standardize commandline options for test harness - * 188 No output from NUnitLite when selected test is not found - * 189 Add string operators to Does prefix - * 193 TestWorkerTests.BusyExecutedIdleEventsCalledInSequence fails occasionally - * 197 Deprecate or remove Assert.NullOrEmpty - * 202 Eliminate legacy suites - * 203 Combine framework, engine and console runner in a single solution and repository - * 209 Make Ignore attribute's reason mandatory - * 215 Running 32-bit tests on a 64-bit OS - * 219 Teardown failures are not reported - -### Console Issues Resolved (Old nunit-console project, now combined with nunit) - - * 2 Failure in TestFixtureSetUp is not reported correctly - * 5 CI Server for nunit-console - * 6 System.NullReferenceException on start nunit-console-x86 - * 21 NUnitFrameworkDriverTests fail if not run from same directory - * 24 'Debug' value for /trace option is deprecated in 2.6.3 - * 38 Confusing Excluded categories output - -### NUnit 2.9.7 - August 8, 2014 - -### Breaking Changes - - * NUnit no longer supports void async test methods. You should use a Task return Type instead. - * The ExpectedExceptionAttribute is no longer supported. Use Assert.Throws() or Assert.That(..., Throws) instead for a more precise specification of where the exception is expected to be thrown. - -### New Features - - * Parallel test execution is supported down to the Fixture level. Use ParallelizableAttribute to indicate types that may be run in parallel. - * Async tests are supported for .NET 4.0 if the user has installed support for them. - * A new FileExistsConstraint has been added along with FileAssert.Exists and FileAssert.DoesNotExist - * ExpectedResult is now supported on simple (non-TestCase) tests. - * The Ignore attribute now takes a named parameter Until, which allows specifying a date after which the test is no longer ignored. - * The following new values are now recognized by PlatformAttribute: Win7, Win8, Win8.1, Win2012Server, Win2012ServerR2, NT6.1, NT6.2, 32-bit, 64-bit - * TimeoutAttribute is now supported under Silverlight - * ValuesAttribute may be used without any values on an enum or boolean argument. All possible values are used. - * You may now specify a tolerance using Within when testing equality of DateTimeOffset values. - * The XML output now includes a start and end time for each test. - -### Issues Resolved - - * 8 [SetUpFixture] is not working as expected - * 14 CI Server for NUnit Framework - * 21 Is.InRange Constraint Ambiguity - * 27 Values attribute support for enum types - * 29 Specifying a tolerance with "Within" doesn't work for DateTimeOffset data types - * 31 Report start and end time of test execution - * 36 Make RequiresThread, RequiresSTA, RequiresMTA inheritable - * 45 Need of Enddate together with Ignore - * 55 Incorrect XML comments for CollectionAssert.IsSubsetOf - * 62 Matches(Constraint) does not work as expected - * 63 Async support should handle Task return type without state machine - * 64 AsyncStateMachineAttribute should only be checked by name - * 65 Update NUnit Wiki to show the new location of samples - * 66 Parallel Test Execution within test assemblies - * 67 Allow Expected Result on simple tests - * 70 EquivalentTo isn't compatible with IgnoreCase for dictioneries - * 75 Async tests should be supported for projects that target .NET 4.0 - * 82 nunit-framework tests are timing out on Linux - * 83 Path-related tests fail on Linux - * 85 Culture-dependent NUnit tests fail on non-English machine - * 88 TestCaseSourceAttribute documentation - * 90 EquivalentTo isn't compatible with IgnoreCase for char - * 100 Changes to Tolerance definitions - * 110 Add new platforms to PlatformAttribute - * 113 Remove ExpectedException - * 118 Workarounds for missing InternalPreserveStackTrace in mono - * 121 Test harness does not honor the --worker option when set to zero - * 129 Standardize Timeout in the Silverlight build - * 130 Add FileAssert.Exists and FileAssert.DoesNotExist - * 132 Drop support for void async methods - * 153 Surprising behavior of DelayedConstraint pollingInterval - * 161 Update API to support stopping an ongoing test run - -NOTE: Bug Fixes below this point refer to the number of the bug in Launchpad. - -### NUnit 2.9.6 - October 4, 2013 - -### Main Features - - * Separate projects for nunit-console and nunit.engine - * New builds for .NET 4.5 and Silverlight - * TestContext is now supported - * External API is now stable; internal interfaces are separate from API - * Tests may be run in parallel on separate threads - * Solutions and projects now use VS2012 (except for Compact framework) - -### Bug Fixes - - * 463470 We should encapsulate references to pre-2.0 collections - * 498690 Assert.That() doesn't like properties with scoped setters - * 501784 Theory tests do not work correctly when using null parameters - * 531873 Feature: Extraction of unit tests from NUnit test assembly and calling appropriate one - * 611325 Allow Teardown to detect if last test failed - * 611938 Generic Test Instances disappear - * 655882 Make CategoryAttribute inherited - * 664081 Add Server2008 R2 and Windows 7 to PlatformAttribute - * 671432 Upgrade NAnt to Latest Release - * 676560 Assert.AreEqual does not support `IEquatable` - * 691129 Add Category parameter to TestFixture - * 697069 Feature request: dynamic location for TestResult.xml - * 708173 NUnit's logic for comparing arrays - use `Comparer` if it is provided - * 709062 "System.ArgumentException : Cannot compare" when the element is a list - * 712156 Tests cannot use AppDomain.SetPrincipalPolicy - * 719184 Platformdependency in src/ClientUtilities/util/Services/DomainManager.cs:40 - * 719187 Using Path.GetTempPath() causes conflicts in shared temporary folders - * 735851 Add detection of 3.0, 3.5 and 4.0 frameworks to PlatformAttribute - * 736062 Deadlock when EventListener performs a Trace call + EventPump synchronisation - * 756843 Failing assertion does not show non-linear tolerance mode - * 766749 net-2.0\nunit-console-x86.exe.config should have a `` element and also enable loadFromRemoteSources - * 770471 Assert.IsEmpty does not support IEnumerable - * 785460 Add Category parameter to TestCaseSourceAttribute - * 787106 EqualConstraint provides inadequate failure information for IEnumerables - * 792466 TestContext MethodName - * 794115 HashSet incorrectly reported - * 800089 Assert.Throws() hides details of inner AssertionException - * 848713 Feature request: Add switch for console to break on any test case error - * 878376 Add 'Exactly(n)' to the NUnit constraint syntax - * 882137 When no tests are run, higher level suites display as Inconclusive - * 882517 NUnit 2.5.10 doesn't recognize TestFixture if there are only TestCaseSource inside - * 885173 Tests are still executed after cancellation by user - * 885277 Exception when project calls for a runtime using only 2 digits - * 885604 Feature request: Explicit named parameter to TestCaseAttribute - * 890129 DelayedConstraint doesn't appear to poll properties of objects - * 892844 Not using Mono 4.0 profile under Windows - * 893919 DelayedConstraint fails polling properties on references which are initially null - * 896973 Console output lines are run together under Linux - * 897289 Is.Empty constraint has unclear failure message - * 898192 Feature Request: Is.Negative, Is.Positive - * 898256 `IEnumerable` for Datapoints doesn't work - * 899178 Wrong failure message for parameterized tests that expect exceptions - * 904841 After exiting for timeout the teardown method is not executed - * 908829 TestCase attribute does not play well with variadic test functions - * 910218 NUnit should add a trailing separator to the ApplicationBase - * 920472 CollectionAssert.IsNotEmpty must dispose Enumerator - * 922455 Add Support for Windows 8 and Windows 2012 Server to PlatformAttribute - * 928246 Use assembly.Location instead of assembly.CodeBase - * 958766 For development work under TeamCity, we need to support nunit2 formatted output under direct-runner - * 1000181 Parameterized TestFixture with System.Type as constructor arguments fails - * 1000213 Inconclusive message Not in report output - * 1023084 Add Enum support to RandomAttribute - * 1028188 Add Support for Silverlight - * 1029785 Test loaded from remote folder failed to run with exception System.IODirectory - * 1037144 Add MonoTouch support to PlatformAttribute - * 1041365 Add MaxOsX and Xbox support to platform attribute - * 1057981 C#5 async tests are not supported - * 1060631 Add .NET 4.5 build - * 1064014 Simple async tests should not return `Task` - * 1071164 Support async methods in usage scenarios of Throws constraints - * 1071343 Runner.Load fails on CF if the test assembly contains a generic method - * 1071861 Error in Path Constraints - * 1072379 Report test execution time at a higher resolution - * 1074568 Assert/Assume should support an async method for the ActualValueDelegate - * 1082330 Better Exception if SetCulture attribute is applied multiple times - * 1111834 Expose Random Object as part of the test context - * 1111838 Include Random Seed in Test Report - * 1172979 Add Category Support to nunitlite Runner - * 1203361 Randomizer uniqueness tests sometimes fail - * 1221712 When non-existing test method is specified in -test, result is still "Tests run: 1, Passed: 1" - * 1223294 System.NullReferenceException thrown when ExpectedExceptionAttribute is used in a static class - * 1225542 Standardize commandline options for test harness - -### Bug Fixes in 2.9.6 But Not Listed Here in the Release - - * 541699 Silverlight Support - * 1222148 /framework switch does not recognize net-4.5 - * 1228979 Theories with all test cases inconclusive are not reported as failures - - -### NUnit 2.9.5 - July 30, 2010 - -### Bug Fixes - - * 483836 Allow non-public test fixtures consistently - * 487878 Tests in generic class without proper TestFixture attribute should be invalid - * 498656 TestCase should show array values in GUI - * 513989 Is.Empty should work for directories - * 519912 Thread.CurrentPrincipal Set In TestFixtureSetUp Not Maintained Between Tests - * 532488 constraints from ConstraintExpression/ConstraintBuilder are not reusable - * 590717 categorie contains dash or trail spaces is not selectable - * 590970 static TestFixtureSetUp/TestFixtureTearDown methods in base classes are not run - * 595683 NUnit console runner fails to load assemblies - * 600627 Assertion message formatted poorly by PropertyConstraint - * 601108 Duplicate test using abstract test fixtures - * 601645 Parametered test should try to convert data type from source to parameter - * 605432 ToString not working properly for some properties - * 606548 Deprecate Directory Assert in 2.5 and remove it in 3.0 - * 608875 NUnit Equality Comparer incorrectly defines equality for Dictionary objects - -### NUnit 2.9.4 - May 4, 2010 - -### Bug Fixes - - * 419411 Fixture With No Tests Shows as Non-Runnable - * 459219 Changes to thread princpal cause failures under .NET 4.0 - * 459224 Culture test failure under .NET 4.0 - * 462019 Line endings needs to be better controlled in source - * 462418 Assume.That() fails if I specify a message - * 483845 TestCase expected return value cannot be null - * 488002 Should not report tests in abstract class as invalid - * 490679 Category in TestCaseData clashes with Category on ParameterizedMethodSuite - * 501352 VS2010 projects have not been updated for new directory structure - * 504018 Automatic Values For Theory Test Parameters Not Provided For bool And enum - * 505899 'Description' parameter in both TestAttribute and TestCaseAttribute is not allowed - * 523335 TestFixtureTearDown in static class not executed - * 556971 Datapoint(s)Attribute should work on `IEnumerable` as well as on Arrays - * 561436 SetCulture broken with 2.5.4 - * 563532 DatapointsAttribute should be allowed on properties and methods - -### NUnit 2.9.3 - October 26, 2009 - -### Main Features - - * Created new API for controlling framework - * New builds for .Net 3.5 and 4.0, compact framework 3.5 - * Support for old style tests has been removed - * New adhoc runner for testing the framework - -### Bug Fixes - - * 432805 Some Framework Tests don't run on Linux - * 440109 Full Framework does not support "Contains" - -### NUnit 2.9.2 - September 19, 2009 - -### Main Features - - * NUnitLite code is now merged with NUnit - * Added NUnitLite runner to the framework code - * Added Compact framework builds - -### Bug Fixes - - * 430100 `Assert.Catch` should return T - * 432566 NUnitLite shows empty string as argument - * 432573 Mono test should be at runtime - -### NUnit 2.9.1 - August 27, 2009 - -### General - - * Created a separate project for the framework and framework tests - * Changed license to MIT / X11 - * Created Windows installer for the framework - -### Bug Fixes - - * 400502 NUnitEqualityComparer.StreamsE­qual fails for same stream - * 400508 TestCaseSource attirbute is not working when Type is given - * 400510 TestCaseData variable length ctor drops values - * 417557 Add SetUICultureAttribute from NUnit 2.5.2 - * 417559 Add Ignore to TestFixture, TestCase and TestCaseData - * 417560 Merge Assert.Throws and Assert.Catch changes from NUnit 2.5.2 - * 417564 TimeoutAttribute on Assembly diff --git a/packages/NUnit.3.13.2/LICENSE.txt b/packages/NUnit.3.13.2/LICENSE.txt deleted file mode 100644 index 29f0e2e..0000000 --- a/packages/NUnit.3.13.2/LICENSE.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2021 Charlie Poole, Rob Prouse - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/packages/NUnit.3.13.2/NOTICES.txt b/packages/NUnit.3.13.2/NOTICES.txt deleted file mode 100644 index 02f3f84..0000000 --- a/packages/NUnit.3.13.2/NOTICES.txt +++ /dev/null @@ -1,5 +0,0 @@ -NUnit 3.0 is based on earlier versions of NUnit, with Portions - -Copyright (c) 2002-2014 Charlie Poole or -Copyright (c) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or -Copyright (c) 2000-2002 Philip A. Craig diff --git a/packages/NUnit.3.13.2/NUnit.3.13.2.nupkg b/packages/NUnit.3.13.2/NUnit.3.13.2.nupkg deleted file mode 100644 index cf753705d73c290c79901d8a583cdb3c56c620e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1292603 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%0A{MO}FxdLbp@m0OrvAeeEz2$ItaHO$A! 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 z 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

I4_ z3kkIz5@svzLYV9EtxGS3(JJ*A2yW998Qb5_?Li`u#G4pgi`+9&i7y_iDeQ+wDHhYp zX-q{093x$iqQ$1IblqB|D_t@nOktxbt23=YzV=$seIYexK|hGF$b9o_sN{nJ8_;Q2 zfjs0m$UOMKo;U7`?5-BIM3;1PMjU6Pofow*1$qkv&l*~8xHO$TMh_p*KP4F&t|zx) zT%JVXw)E~0_puNFjDdzEI?K?@4&y*`x7#)36#jYf@@Ju=S&Nq{KSzNo1=sNYpi1SH zME6a1C_hzgV?*FAS``}sT@2y^A!&8jIP)^OXRn*2&XN9)@cL7Jd(>z&brXl?(0ioL z8v492ha}^@`vfmiJ&IC6DtYe3%aLW|Oa%gdL9^Byr^tG$Zmtfg^6|o|H-q=#Z3F_< zI_@xXZHF^KsT=TCq}Z#!?$AmOo-drR45sAdHxx2L>ZPQE8>3HgpdMF6K2(SXZ$|k3 zVJ$(IN!ae}E#%^^M1xa3{R23ryeDljLkNd9QdRO#ltpf>Lu z+**2~#XPvcf1t-fjsVG?g~3kXOW`7zfTx^7h}f+c5^t~zBhR_d;k#=+eLM#|ZA}!M z-_n$Q?PP?iYo$Y+alhn&cHYSAoP-6ol>^`+UXudNpnmP)x=P(8?3^puIK8*%AtY@A zsc2asL(Po7Iv+4JtUpz&!^neT*2`q()PTb5kC{L%fssWA=4l9jgKdoO;!t&s!dOc^ z_+C&y4~d(y_taFC<&C-nU+nH?#e$vUNq!;)A!9!*(nYwH_7*kibkjXiu<1dP-iAm+ zcp1*C#aeC|%0?K1VSB8mJq(+l!Yt%%)su4y9s(Z=)F?yP6FujDUSzNmI3K)`d&iDY zj~k7E(Vq%0rmh{V#o;0q)>)yG<#g_&*&~(e5@BE-N>qOxC#8S5&2r8)_77N_CTMEC zh3rwdk*z!m;N2L(5#XBYxF7Iy3*7-;Ri_Oi10GB&ZH$7GAhrP90#8z<)HP>1v`x5s z(Yf~y{O!43lo3X;AsqzLkXoRqDAm0#+I4QqY0EN$uO)Lp>SmN{DD@h0#u)|syK2xO zwSn;cdKg`PrT5S~ojpp-?YseU#;{{CI6!DU1ubZA-(G<^4Lt(#AQ9XcjEPq!66^!e3(`ki=8@ zwCk*4<-}FKkzvE!`^C&EdF*Jy?0DKVW6&!I0#I!oBP5Mlw%&FPB{LW;XiWByo3WM7 zht9w~Lk@s<_vwPUUAyJ_@T{>JvOHcv@jS`FRqI}$5Dh2K4O=GBXB{Yx@8_$R^k_0* zGP5AF@FMtbEyxs$RgN*q=K*cxU9{_GR4@1rjA%To@d)G8sA(`w(&O8Ne3kqH4#r&+ zbhoOECoqX4E6F@;vzCr;#neCOtWTOo%?_#?&((1hY0~A=Dwc;T=c0p3l3ygoWyu~4 zBO2Bv8_|`Pkm{eVP@OWc09pr8a48Lu4^`UiMyolHH<752kGpwNnw>PBDVLErb z-2#Tga!DCW_DEJ4B2G%TP`(uyh=LUOJR`V;7=g$%WnuMCWC1zNOob%39GCZku( z@8X}GsnRLg*uD$z=A37)DCV)^I4V~ZKanygKN|0lx0rEm&BBWdx-Qb1Zy@(|c%8(> znoIP^sPD$4QAlJ2s$L}Oqz)u87n?9nRoj?R2<#)!m+>kM8wrm)Q^*!M#dQh)80fl2 z0Q!T@zSn--L5m$`2siNgfr$GQ#=bI#F>^A0u?U^R_cdiXAbpA=_=m`|0m$(>dXS1Y zm|+cI6?f&QJoe9J*zt5AZ>o^S4RyWpoZeOn7tXk5@d%FR77+PwktZW>9M0C1=i!=|HCff?=Nt$QllrF_n_}f zr{WR;4!g?RGRa)*n*-7DCQb)2GpV*A6}L&F@b?HPd(>6nxJeu1g8t=EJfy+;rBnag z;l<;wlgCZlI9m?}BCQ(b3E13^nrYe3 z>t}~ZjCkFh%sHf-ZoSiEf!wWp7NLIV$pg(B{^g$(V9t9>Pjb=(?~@G4L2Nke#&O8i z7=$dy3J!^=xDOqi z6g!rSe?wm**^p=c3pN{>NlDEPK&2GZ+&9%7e>-`|$^WHt?VDru$1 z+PhY&ew9+ba-qyhhn^F*`PB&gTYbIO)qNpWX>#>}J%)9vlct2@KH#=vx{nxwPz6OL zO$%R;i@c327=+T2Us2Ka%3$fkmvR>4WNoM$5tiN?wt9hlv{7x#~YRwTQWhn zC~m%8nB|U8nG}g!8Y2-QnTtYSz-n7i6^!WeC4F)0VIU=zZKOvU3+)0CctEv_sLTFv zALH9eoKiRuA@-!sAh}$qK263`sy)C|BIHik)0CdN!O5P5d2EZj(VE-sVe%+j_7oev zo3f_KbFo|}+BlMlNU?In85UZk#HBwh6HQTLJ|LO+lsAApja#@N{yovJgc)Ij230itXj<9e&?`Y4 z>f3#Dlie^ImT@l66~TRSY*(}eogbIMQ@OXD29(gzQSN@9m{fy**x~2XTBK(Xgy`1n zvYw;de;CA=ktBzNbH^TA=nMyM5e!9Sze2>+T`|@4!(ga2O=VNTK1??>*+a$|HV~fk*z~*gyDnFOA+`K$r8axB+M`YTcU*MN54@II_DdOh$jhVb?oyz_RqNn{fE(A7XaQlxsvhw2Pzx<0M9f+UY=+H#}Z6A?Qwht|p~4{Rgq+c9?Ve>AAec`D4wM)N8OXI?L999)uegCf%%R8!fB? zy;=L{eR?Auo;9m)n9|X1&*uti^_50<^~E7ggO-N@^EFDaN0iY~jdcfTTRVcb{!pbouLImZgZi4RGT;fcMNy3<8Ys~OMhQQmmaTl;*9JIR zN`P01h}C@<+tOU4O#`bw8QAxuy-$XEs_5KdLq9o1myNe!oKgx@?^9~u5bbAGP2u&u zJ(fmBuNxzAdK3X=hv*`}WO%t}spmly%jM1+S808vyu?J3mbu*`G^uLqLt6>QQ(N60 zFiWB10%TX->Pbv>)b8VP|1;O)(4FdR*h}Dar>t6grJwZy+NRr6PB=29@+kOq6o+bK zZ`WH|>cI|;0Pyp}o_>3|{n%p=^;mryvW#0~scYAnIx3$B9}DK`ZHytb98MPdnRi*K zJALcsn2$Ig-*FF*9loUczNVsB%$e4CJOLjOj5gCmgvo7qUob5|u)Lhrzm8Bx6sW#dt_`G3paub+ct;h~S zB!+_?K_optGLetn*wfu|3sIJh8!n2r)0%~1(yD(O)U2_d*Q(Ko*-Yq3-owSCxch!{ zC_iQizkI*)=qx%fGN}I}y*7%@kOFA~4(V_@^(L1$`w&5*FoTt*12wIaK_&0u&Q*T@ zL12Mrr-MU2M&+B3rBu^o5S`PgL6%@Y=*bcb|BbY;h0x$hRNJGVJPHQ|hsv{a2)(<0 zJE|6DGzhFI0WY{cqArG=%q8AN7$uK%0d_GsKoT7h>_Lo;TG32^R;xVzRI=Sl8yfyS zO#QaO4oZkoGB{Y_=LzMhgQ6~I=pLt_U7ks$_{QaStfO!zlhh@4;L1Ga)dEZB`4v65 zr3&ci!By#G~S- zL6uQ@uw!+g8ey!ky&co`-uL!nCbp!$(bTGeP%Z2sMLlE$G;w${Fc%BsjL_%l;`nQ3Hm|&xLu$W-*vGmf&i?kcA?SxTh zH6EduCZQWDH(GFG^KE&FMRgM| z72uk4B4?2>3bD~uwvH1zfTznQ-^JmtBE4-Vanm{d(Y>K;)LL38lI8gQcLxZp^l=Id z97v-bo6rAi%6Hqz>49AHPbqU6?0zX;&s` z_7kRvc>84PN4Qskk!glC3}IUpD=?8+TaX1gz_#p2qVZ4k5fX^9FXapgM9<(+YH-3A zTEDUGx6J%2M)l(H46I!m+v6HrAG_LNh9>zUq`UF%p@vCuGZ_6-Rd^>OBU_7jB?ohy zbJt=C0X{SLSWz~B@N}i=T(0}$X<{_#aY*vU1!9sO@I*C@Pz*fI9(|ZW2;P`Rk8SfS zf!17Uqz2SH)U89I_t$#KWAniO(s&mBJZ;Z0F^ZT6@SiS7Jmxn4w+095sk4sO7yPMi z#|CK~ngQ(KfAHM#zT-V_s3iNY^qdzbNqplCnIskY0)0}Zy=tXpf~~>!_W*L&sg$E+A#H`O3A;5S0LzMnN5cNZ&25zRRK8<)uQP1K@+B<)+v*M z{4p_f8|`_OMZ}SMc^7?VJf(t(Ff`m6AS#&_auwB`3uNvVS^xshfjt!0ZmOlI-8kBLD*2VAg1oXA zB~?|(t)-siq-YESk1w+-jmTS}?t%qQs}w0>)j2L=u?!)hBEq&SA$jjofXsw|0*;c$ zEBQ@g{)F={93Qdb3`AD()e~+ry-ZHY!o|F9=-9{FF$I7k@ICeqGnr;VhDrlAgHQ&zCMHcy2>1bFz^&FfO5T;RSY&G8xAqDv6-fdQm6a{Fv8ZNx3XskOHRML85 z*H-9B2g8qtXu5*|-K_nZ1^C$G2WqU7yj zjen$hu$2c?3?W!*2lZS&8(t^c<_pW(AV{0%v^GQ7hGS2SG}o?$Jn6Ba8>Cxq%s}(p zm7LMEc$ZY05i_CmvQe^(u~b9l%~0Q$|4GsH z9iEhFSFC?r)La%5M9WQz2~;DR|3+ zd@b#zNL*VT62A?DIg7GEA^hJLQ{q1^-`1{w>)f40X>5(P&o}QwzJEUWPVp2P;nQw ze_6Lzz(7mDsmeF*6f=;<93&E|v~sm3c<}RpQ+Yf!C7qknntlqa9B;r-M>i6#@Z9uv z+2G+ynolLAstRoF0GynL-fna=1L(Q(8WhT*1gyayPnI~RDSFKoh!;)1W(r;lCMV@o zsU7e2X?WfavMD;n{;%r5g?a2jl9S(=H!uNx@vnf6ohURE)KZkxoG+nogu+lR;H<-<#Wc`ow1`GV-mIe z0pf6)Qs`XsI?LI>LqI@3r=Wb!u(hoOe62+Xw)DDD_EuWg@3Qhkm8OuM-_Q36gA}$` zLf%`9Vf!_|3=3fN2mCK7=h{d!2Os^8`lul6j(p-SSwIcmw1ieQ=lz1KkUCt)PbIaZ zGZ9j>v%*(f$Qwu+g?SY4W0P-;@vE$$o`zP#9;XoG;loQ9ERvcNexPrebX^25#R2po z|3l5C8;7Vzj0U(e9qL?Kty8%Us2P8%9>0jV(yl5Dk7eo??5g4h!zexgUHPpWiY&zLhcoLu)&aIKFF8lh18nzT)7PsX?s=M8rftWi#*I1 z>wBt=Ru+OgvQhKQ!a%uw0FkPvOsqE>e1RU3<`^`1;k76K?{KA@=aWzcCcQNWpY(^G(n9Gt&Qn61@l$C zs!A7G8pS{-gb4OEG%DT8#PB~ShfVuB@0hIT$@5*3hFtO z{sq@Kd5Gt8{zsQ&44>;u_rwjHhGgY!#`&`f+>#pZhN|lXxxF!8f&Jc`51mLW4^|?b z1>#psKFhFc?FvO8$FImvE&aUT);ifApJ3e=ZrM_-Xz)_aO`FS!oaYU<%P7EpaQnF4 zsRq987tqsn1|BuJX>L;$FQ)`UG`GhHfME}Gta4MiF^UvazdECKgq#&xCVL!!w^5Gg>kTFgNJhpYQ1g|^@I35^qtn2gQB=6uiH332mX>f(= z`mkO~+{9T`$lE*iESuVI(Z!6rYIoLYi+gH^5j(oTN8-I4F2{p-ll}ZW_#}c&7P(Cy$s-R_H@Hf34Pu9UbH<@;99qZ;x#zFG5sctlMH|*hLy9 zPsQ-gF!Vcu^H{~)E+<&rFA||uePM7(WuZBVQPPH&1`WE%o8Z|a8yYBTLxD2yklpd% zNNWnt(&%E@s&Dq!7sJXg<6IPVfw9vwd`eFd(bBQ9^<8KHL>2?FzvGn8i<3p^4+8n1 zFWK0GHNIVlub7^=U&7*3=3VK)wC#4=sZ~M|gWM&hs-kRq+B!8@WztkWw{a{q>-H3t zU7;V&Tf9-=q}psMOy!UYeIaT92l9HjFbG3)iBHR}?q|g)ee8WFu7`RX}Ex53_26&6`s=Hd~mKI;pwTw}lB@ zXvXxo5?8u77x(!V6)f^l2VzGuq&?Ef8c8Elj3Ju`Gg}SQ8Z!LCxamPAz({5N(5>+R z(tNqDN~r7cUAi^k@j%927r7jI(qq)F*2W9ycz_C0b)>wYFs&Y2a7S4yt@<#HZi?|x zg8@vE+pH+eRzCyReNN#46VOvA?`#10y2xW}Izsz|tC*Z?mb}Pv!`+a9{;(1|q=v6@ zFcDH8w=#^AET<#9wI49VEo$UO)hY%UCvTf6u@Q$ySy08g{5yLn_*sZX0dCzaF$Y$=Aa%Y=L8b< zMx?89?a2rFv9*2>C6U97dmc3>k6xIbfZEnb2bp+#V&w%UjQ{(8^aTpHUL@^%DSF%o zGX&Ai+qWEuX||;j7FMxz{N}4_)7PsGuhX5vd{P@1w zV6do*>L$F4H`RtTSwb7427Ee*OyPg{BNKQU^Iv9z$l6=oR}4v1Xrjmjr3uKDu0#oz zbSC8vQ7i1hjD7%8dn`mmLD&^^w+A7#PxD!Ty?%83jR6t#lkkZXgM;s}md6b3SgMaOrA?tFk6Z@s(@e zF2Xu~$$HFVIQ4#D`IDCy)HsD@puq|1#7hr&Pt|*5`uPF$$sXAnR(;?>!UlPp`e4u& z?mSRyl6o_86%YhqDS!$A%sfjl2HNyEv1&lGdH2--s~3&7==L}o1{CdQy? zUjEDXGw7@WsUU2$qbVc5VwL4;A^aMYo!l*SuUv$=Fq1+wHgx?;_;^66H5t%Pcsq`u zDB)y#AjinGU#m7cg$30hH~sS;d`bjYsXRbVL&!>o#mXyr-@)G5P!@<^5`qWKnVd&) zAyt;g;EN>QZZV6o9$J26O&Z*=nk$7%@1|8hUj*Gp4=#gOvs7TEa7(TXJqhbeO!N2%+JqKc}>nCR$-{* zKm5K|Ay7L97y5NXzLQC*gX!q2*w*cORH|GCE>qZGxVL(6zn%cMbgL(1Xk@`$(w-Wh zI^}}m$X67BAv#FUslGDqs6J{lWC#uAFso}NJ%$@Wl$42v9XxMqJ8blQ^Ue;y0^87c>v@2NUdGt@SSo$&>P3u4em58h&AWt5*H6S zWyfWA|D*jue(u}}kFtC8T`zpZt$uGYgj|J!4)gbUwiS7K|5Lbn6_#QBm3M;x^#CmL z!{{N5GibcF4Kr%!3>y!6AxrQa?*JbmFP;GG_kt-JLn+%w4v9UpE|$wel>P8}l+(PO&Kn{JH(*8ji>#r4w_%Yjxa5JSKrBSDjNvGN78ogH= zsYv5(qHqTbz_p(la*Vhct0WsbeVof@93MU}Lakp86{(gxA zkSayRI)NVPAQRu;(~y4IBY^(<8Sv#174{EqXA@ZO@9<2@mX{a#FDh(MUaCQs0Nn1sqkNrndrh^+GN# z=Z4_3F)FD%t5z+JAAFqxOi)m)s!B`e@@XBh#lFaO!y!zs92#+a|&Jfvi!cAsbf7vO=}Z^DM8e1vrS}6LF#n~i8*B9#d)xx(c)op zkUjRDJ^i7oQyr$Ls~=~5F_HIOWS|MFcw&z;j)CB?X9SI8DI`W;Cp}Rd zN;L=|2LMgoRET;?tv_jwg73$siePMl*Hx0d^CEwcO<+?sl#)1i;&xb-wYrK{mBR=U2L`!2m1b zvfHjc!Hvrs7K9spA%KNa`d^3#5k`CZk9J`=;~kKQ@!T0Mk;mfG@Y$0Nr(Ubqc`@Mw z9{vvUz=DQ^QeS?_VHSO2CygruZMXJ`?uOI(YQ|W%(J%7Hu~K8OZbENJ3lk6N6B&b> zCsA~j{dJSAkED}AH2nM?3De>30Z-P_~(}PJ{>|zLWc=GZ+bu@&L`n9{#A3fx9 zf^aSLywWot?HcH;$k%Bx+E*J-!qh_#-vZ-&;v1k%&$kO;SB8D9_dkcsuX8h>cZ+?i zpYPwl@ep8l9)frt4Z3I3nmlW}_RSZHIWI1bCf}mxY`JU3PBG=dl7I&gP@4 z1ZK9ue-#Ny?g8@!dt%IxA(gut01O*MaSpkET+DBXY+OpqbO}j;)GdP`V*UGGd8}*q z{k(I7?PbIPgy38JX2-$}6Tk7W-Y)WP_pfb=>{nD%0>$nJcXBV3vT zRRQTW`a0cHssz51nPWfn*dn01LVY5$#-9E@jPd@iYKKLtB#3FH8lDzl%RUx34@rV~ zV!xsTnyTUZb{Z@2mQ(|eW0yFK@*D6ojCHCwocwl)9Q6|EafCPv@^v00upK*RC#Z+K zvJ<8YU)r<`6}_}a{i?DO9EN?Z5le^6uX7`#EFsT3ZDsedU3pV=GEi!)SXMC(olm2urNcItDZV-oe>`0(?hT5GlAImOp zu=ty0erU_Qso%eg@gLrk!d(D$H254y)Fv^EA> zXX^*CWUy^c<2_H8S)Ze}O$=Fgx3J7hqtSy;Ue*)SoZRTHZQ?G39Eo9%+BUXb<@Zv7 zfEb*p#k0|F|NTFd@`oS&`+s=%hT_V0G?*J()F5|8o0%JvZ0temy{ez4U7Or@*{zL5 zki)%+mE)`)TQ$SLiTR*Kn|z~CUbTQW-ODPOS>afl1$}I&J!i5$M*mDT!^O>Pzm=P9Gedi9#GCrEfwN0>s~6?<2Xbimfj3Pm zUlT_F;e44@`9hrCEyR`@HhA7UaR5rxbq+n?<()J|O|XUVMIPfJ+;H_T zX#hr7uiz{T>Sj&){!(kIMVLaW@--a8RXVzG?&MXc%$##Me2i^Pw4A2ULwunZ`(gBN zV>)e|hs}%Ex&w2h-^KOF7=)kOwo9{J>cIYhZj4p7iT=@VjMI(hqy|;B2Kdhdtqt_>o2f;XZwF%<^s&%m9)sAwU6)GTBFqFyn8Y1r4k+%h4)EVLf7A( z$4TRH_bkB!fqz87mZG9;V|zSoVWcqZ;jGXxn2An{1|=QO3fPWijE>y_c4%{1radWk zaHH=zF%@%;`jGJA=_8JaFQ3Vc=cYLy9$1(oIvq@dTlpm>Th#$hn^wc)+x^9#S-6{vgB(#0FV7L3Qq$dG-ejwlKlGLg6XVgD$VWlrbEiZMNv86Xk#pvF z%JZ{4@2j-r2!-PiWqA#_!I*%-gGAhj0LaO7n~krNmdMTtFtt@cZQQ!V3C&&;k4f1%E~ck@E!~5 zTbUYMUA(&Z6SgVFLV@dQxfD6pPGSO_UL+hdXLiBNBo8vWMYfK(j91_w%PQc_trSzp zHG%{wNT;K9PU{ZLO0^=ImPxo$d4_lmG?MY{<%l7dM89Qh zH&;7x&hg;)JPKoX_YB(})~05KcyD+~F_y<#Pih@|G|Dgsp(_RU@&<9Nw@L5wN4|)1 zjj!mfzD2wELasZlXE3yUHJ)j;`B>slvI;7`=1Q2ewL?v9Nd@kB~d`*c=BwlGUf-UgEZJ~w2=wHBvSUUfjJ1{4dLte zHRaxrocKHVtOqd(U!L}JYFAJ3P>Bo?dg%K6K9zif znjkz5BJld(kqWxSYaueocpk)aF~{cM2czgOBEQZG--571(d2soePa8@icpmIBBU^gyzJ7iC1p`qhD{GEt$if&1Yvh0aT71b_SAGrzk08tYo-Tf zW$05Ub~diL%fZ*S495<4o!MiIzM(QAc@-X${FrK|I{eEgqHFkX!4FR!eUImqRS6HW zoKv7Hf!H+!y1?Bw@SYto=gx?yAAgqJh)H&n^P%xvol~IaGE&0IpxJc><8H%z^Cig7 zIJtB-BMzNCH<1htkVI$j?da3y#><+UnhS>)ogvcY46Yr2g4~Gtag+05Z1LG+9uk1k zr##&HMiAs1qK?F>ePds2Ao({jY$JRWG+2?9?M(GR>=QJ;SsEv8Q0dg zD6vg`2xse(n4w^}Y|c>#op9eUDXSj*IOu+C>u3!M76z;MM&3p>t&9+ccZvZ>-Q!la zNree?2o7pYLYz2)cq!*D^kE?)0AMaB2^k$h%BH5~a#wm9plzC*NeQ5ot!`5{)5{Jp z<@4g?x`0@oZ>j~S6*7)*dtM<+5&}cg;1kpIzPe80#V8bQap;NZxdiaHap);<=t=20 zCFJgcfe+t<4FK&Yi{S}mkZ^>|EQ)vqaN!Df6tVxd`sEWZsfGGD&faqnRu4(wE3w4f zVs8`#A5smipVw%DoCn6QL%hU8GJ=A*aNu@587Q(!XZ7F*gts*%r_*nPBEp1zvNHwv z`B=H64H8*c4bV_8Ld^)h19;pbcL9e#u588A`qNs1CtdBg;b&oOT+@#BzkhxZ@)ES* zFk0Cp*HBa%&eFnUEevpyG~%tGq6g=lE*ALt9(35Nbpr{PVoq?QdjOIA#GOw~jx%IV z9EnDkg62DT=@U{fFMsR%W_^m%G5xgHR8zRU0)(zBiPoHVOm#`DMV_v=Qq`=>% z+|38e45b<7R(TE`kH;@g!z5w&7H@AKR7IkLPtH+_O|dgmM8U><5St9dS@IPKhku#x zr3{-zmP4QW)1~OEl1=#kn{Ac@!X388s0eyl z*MUO);YQv-83>wdHHy&fEx}2(GeoUNT7wjV2jORM!J;gJ`r_g4Rcb;iiJAwOk{|1` z+!lX&@nR+4QeDp%+2%!BNv_lXK3`DH?u)o6Dp9=n-H-n?!HRcXmjdGUu5Og_&YIS`iX#pKJGW9U?4-S*|g{?;8r3S28t!40a zm=YK52KPU}n*SED*Dicdn=|an(=aLau=*l(6Jk#mw1=b^7x!ry-i@qXchA6&=1+{T z!DfsZB*l)6fFUAfSR-VUtqWHmGS%geC_%OnYC>~}z6%ouJ{4i~ya<;I&mcE9zrttg~Dn%F$YH`&C`1(GWzdO4+7&%$$8)EdJ1V)>TlE40x8I<%S z0tRVW4%}9gQu8)kTwMP3(e%(TBU7};<8M%ON{4etodAFYpwA55KiMunE(6 zDKGT`L57$)_-2{}{`tfAv!<Wk}M|?&;JI7ono2dX0rJ%k8w=|cI>s2hREEnqtd{%AT zvP+hT2KLP5@hXN=2>#T=d8Vc+r9(f|!&T;WbkE=CStM=A4q-Zef`U0`2JVJ#*342c znKCtKkO$u9G`sb+ToohULd+$2$@-E&4^MVzSvS|(#+daxwCZ#~)Yo;ICm121V_8WZ8F{;l zyxLcI2zJc$8OQJrS_&pJ!+P3Z=9;1x3Ni7>Ej8J~c8uAatNx%AZk5Lm#AYzs3^cSF z7V|p3<82VBjy=ZxKe8PVLOf1U{8!?4!?~9Hx56I=+X{b}cHZ9)H*q%-G4|Ad7;x%8Ogr@-2b}tk z(@uT3L-r5zDUaE|#6=knGj|+na((&7k@V#sSziWEbzCmXgAYG?I0MI_@WVhGdoPWL zqi&$R-$vbsDRlu-^}~xqaf6-wI8umplg^6<;M<<`A1rIvg|ZM1JH_fnoQ)^rFyqPj?CcJ*+XbaX ztKsWXLd;#xW5TyD;!Txc-?}w6t_)Rb)@@cLQLqkgL~t!cs#YZdAW?ZRQgXQcUdk1u z965YYB|~D?85gkzr~gHM8DYQ=I^^Nt7=jJC(wC=+tqKU{h%2>q2{*x9MKPvl0q%Zd zp<1}o#wqB%C?vPGiI_=NK<&qURzX_Y|NY%9_-coQa&H?M21 zXP7sMZ4`k6lJGXJ{dw{7hwuOVV(~I~+KL#RmcRQEhD8QG1B*mH@%{XV-H*J=s_R4; z&rmtJ&ZBa;MQFe!WXN;%Yyq1@KC}r-2HvL?kW48aqQ0)Pp9TL3ogL+}O4$Ln-a@e( zrChqbc^T59O$epT^WbC^#_5a&LurVDRD_`y)==UL`w z34cIUD}}0-bz%2QEO*Bw(ibmhur5>wQ&d~1=^X}6?Xe7MFaGbx8c^D+M4c{QBv-ET z`v)0gBP9F}Up~DTIapAVQqUuCYQqsA|GTK)PX`obK+%SeA@3GDCp%ROTj<$P8ki!4 zHG*g=2AaW7FO(14{1Js9ifwNB{OOMB4e%SYTAa zlCw~ZzpOyNGBnC;|5Ws#aH?ec_tXQ)^scN*F3HniB{xYV2g>Pv@vbH!@;e}*o)4TF z?oS;SSgZtD{O7%Mzz!D-rI2PW^Awa!*Z0cvG;2UH3|&H?p|QHd&bp5}$g}$EF9m$o zrH2!gTYtX1 zTyR&L0Ri`n8(^Wk=8WsyXb{!|Ffp|dx^(`sGIQIl`j~5S>Fpy!1~#aCZwre*u|SZ~ z9mg8yP&D)bKQvJfJ8aNF71(bYO|3??%U!vja@LMxIMe&IjdCPyas%Qw6a`>+h!y8EL;I9 zfY-^H18S#}cA1{~c5BrRvh1#?<8{>E^fFp)EkP!08#IXHJ=Bce#oKxCQ8@(!Mq~P1 z-t+RwOP9)r(NfJ3GP!jw6b*EW>>Xgh6+SQ22bXH=*;rQo(3jvM!N8W*!}9)&rx!r^ zE}%Ylp-SDHR zT2Dadt{fI*E*R&fwlp5Ydrb}lhw1|y@E0i{c>HVA@cez*Yg4-9d`WB53*xX@p3+Qwl zx`5a<5fKBhW5NZ5^h1Ca4&wwcS_w#SF266Nc}0Cf)2wu@f4cQZy0Pm$xI33{XF4xx z`7s>(&l)EWJvR0&DHpHfr1ZWZ=|Xl2EMc$#ZhK1{1Wh3>Zja;hg(UBD8cmr@zL8fXtg_j%ESax?vjg$_UrVW3$ZL0Ui$?%3IqOeO|;LZk4K^R4v*$C%^DBIVp+hGqNafqte93d4LEa5e%--XMHK#cG! zNC?0jpJ?>(t6r3osOPaJA7rs)a+o_R;!L0RIHTynD?|_<`0ind;#&~@r#%Ag9}8g$ zBbr7Sk7n>N^k5r8i+(ZQYC9PNqQEKx0kYey+}Ghpm!}x&;h+K_WcyNe#ejAywg4BnkW%eju&are7q4S5PjanW{1m zPUM5~EAGTjCpzj{{N9-i9PQV1xliv=Eat(xN{&E3R#qBkXp|7#$81J-E-5?%oVa%z zR)yDvFrcr2FJtdEz0^&;Z0Eal(9#7l{6#GsN=0w^eXvYD6tx_bE^qQ59$qFl$z*8V zUi0o!ltb|DQpLTvR|vZOB(0#DHgXqmKNZZBw4Y=Vq+JJblLTOr@0Hpy`QGOihm7~< z_;`%|*=2Ocpp%uUX7IO8cU($U=E!D7H)!2`!`SbZxn3QcYZ@m$_s~QgBn6t!r&jKJG9URO1(p6g zJh|smFdreGWK0xXa6y-TUdl#1Msi}hgZe7_>n3@8{(&6iT^5OECX8~{n(yqfpK>7w zD&iY?9=yv+uReNvCS^=!Ow}f>7h><8gtaS};cPtqoA!6OY+g0U1dg$&LvGP^EH51@ zWLj~Kh~zUYVJctH%WI2|!}Lfcn!|aR0o|8=@Qh66Avm3Vb>5Z1dwh=5F8BhXnk3h8 zdDZE~9tOUP!aS-~VjQt$MycHxACo(*vL2OlH6go@Q0*-^kXIym+Hpt;6!v@$MW4o_0|_kR~mza65Q6 zgG5)5@?*AVH7(=tw8bu+BUdgcC8T!R@v z$}o8jsrpXZ??bd2@FwR13aUF0p=#TL3#!Dn=mJ&bHp?11dixDl@*e!GQLxNU3ZpH=#>19o9hpctvgqNbqv5bIuc}cdh!Gm>HYg zt5Tb#nZK?Q!dwc}m7gx05bA-lz@&h@QEXbOv(l~sI78&vrZlToE)7`H2I;8O@|M?E zJBsG+8t-t`?P^npKq_dH6>=pO_jQ=vs0HMAQpUrkE$D9KK{x@kic=@Hxmd<`!IO7D z#C-llvO04E89HIigcHhja#@x>PsJ*Pc6Dm-ZKJ@6mI&f!lFc#xwiW;`51a=VjMY+D z=>pD3m>YmGrF$Yw*|{ihII7M;pwoip>I{QLdlVbsYyp=iKMP_B?46q|cIP3NXIXJq zKa~T4EPhU0;1y|#LUYL<6DO(F#GG4jUkc%Gr{NP)t$0^LMPvl)GO8HW?({YD&FL@Uj~1k3)nEDW3F^qmR@!Kv@-dgmC-KT zZ;P{MaZZua-PXpgiZ$Bul#FHUk2;wml?Mc>3CAUS6UGS`9awvT>?7_WON{jdJJF5& z%fl@GwSp^%{9n$NB4+zWy2i?pFgW_iD$2=L-fAC+0BPOJ6?Mf9o(H%To(o~d3=2Ge zhRqx@2nAE+PD`|xh#-OBklb~tlW)U@(V>Z) zjX*M(TzKuNsU^#AQd%$9S>9a^EsL3nD`2DpOx{o!Km4Kl((EMVxMZ?P>TE2!k3%p& z_LEF^ryW2lKU!<`vFG}<5^`KJ*+%GW6ta&)B;RD-9dH{2C7Bnz!N9XM6viKZ-+M7& z?#Cs04ccapBeYE!BGtzscpo1ldDZly_t9LRkB<|+>iDFug}m7#i9K=wM0n_)3kc6n zK3ScSeD9AK(K_?vl028R*Z2PX)ed*qt>9fJ~~-zQa2lr)T59$ z$d~U+#nFO2~mYC!m4(ih#h>qlmh2Oi$zA|K6>=SqI8SE>AFs;g}PZMV_w1+_y+d z2dm^W;i6PwekG4pis9T2p*YHFXc;!lDKL5_cL=l$3zO|Sl)F24S^*LRCUPhw8dWZ!7#@;vhy?TL1Eg*L`VHsmG z8a0ocq2^M=Dd$-o8^vFforKV`INn2br4AFJz97Gj%Utq;NgFW~+%6Zt5lMLD67U$b zV?RROq|x4`zou(`COIO+OE_6-)@i1qbWWi;j#4J}EFmHqvF84*FCyMDxC39`n*=>R z@y&={s;@@$XaCy}J+IAhowzCAmmP~i-cIvuU>58$%MIkj2B@dTjv`cAfDzPU@ix5s ziyT%p^kS5TSm9-co&~P>d3yr!Nq``*p{l|o#6s%@Fl(LYM#;FST{dnmJa(?U3pN0D z2qmno#5ATm>h}D(iv3&0kc#C-6>+2*)CRwA?J$Nzzi9SD9Jn5U@+G~C0T@1>bBfVW zk5iCFDgvj{m}`I`(|MTo2+nwK5q%2vexXy9gEIUqf^(-wimLXe%bGKe)m|2oq%}mG zoWd*+H`wSC66k}4$N_f7Yy`4sjE9{zp+8B8cz(R!7Tgt2PM8=hZv#mz=W4V8k{oHd zcsawL^NxcX$L$*1WD@H%dOPDsN4ipn%v(%ObZIwenNdXoz>2_3VErSVObo;Dg73)F zr!D}Z&LqcFdBo-8!)1PN>oL}(dsYl9cD;Hu$cq0{u$Y``awL@r#4-ndK+ zjjHQDd}=NprGjV$=f8vniQOl;SbCSVfm?R*op6(BM3cRv@;r2qXf!g7WEpdUv+8pN zGGmWrO4v}VK-yoX@cty`nnsM7^(zvAJNEc*;Q&J!IR@zxsfTZ7;Hc)@jk zY#*Q4d3uw57M6W&bthJsr9Bp>)C^T@ycQTr zeUJZ zi0qkys2RwL^jo&mTBM3yXOaIJ>b8A`q@wiJ$Px8bsI~!dl>zY_cZp3Io6=q6tOGdNm$H_PF(o4kHsh7vM@&_Fst+0R82Z6$ z4dY_eer+U94>Ovb^D!x7sh-8_NTF7lWXa&2_x0vWm`8 z)0Sx(OFS!mfv5SJA0z%(g!UXZ4O3*4jT?`4q~5|v`>Z~9ojlh@T7*&7Qd!!v7;Ou5 zzQi^wfGYTsO{ixW2yhG>ryWLDC_SNXU{qM@k-+{M0fU#JB*FDR% zMHJJUdUd=cKNS0*IJg5QoIAFMUg4jTNWFZ+IQaZ2-(XQ{%nnKB*Fgs0Sr6rhfNA%$ z!G@vnz*SFE>Zs_wMpkzo$~rv+=gUdkO)Og^u4chQevE7~vC#+&$ zQr#8=;xCQekvk(gfFI5ho)G5)1+;8Tcxm4SI6FEqg|ja+;ge0VR-`hl6Sg+T2W zA_joeJ}~*WkS0*bakpOz6VB5`2HgswZ^szSh>h{T437K~7N`8;&Irb}ha2$k=uE=^ ze0t9SQxfpIkx}Lw6n#4R z@b3KG&tuWlew>a@)%nlwEt76n(rr`|!8ZlXs_QZ{D1}8ipnSyG6CO z0B;30q1XC*^qwUKZEw%t{q5Dq4<}dW7w@|CI*3!mfQ_o0+?aSl9=}I}F?03ViL{pT zPU!z9t5pv071Vbr=O%sf`N`(~;r30o`0Ra|4kM9&%40bWJU0GC`Qb}4^>aIiANRQ- zlbF*{LXmp98~45yYvlC0d&uzjUv>GzH+HiE82!9l>-&0b+yErD?x8V(QKMuK|I?-K zkEX_W)a+cu1aX$W{cLP>sDN&J=&gd(UAXo``lT_>bUb($dUtrKjddeS*r0l{Ilr!w zq|dw?Db9zO{3|{$`nD4lNw`JWYykgl>oo;M9)*ziB{%1LM55$I$jc7Rf*Mp=P{z=) z4YPKbwCQ%kSsD#T#Zp=b#d=sW{EjW?L@NI}Da&xNhCu7ymZa7%JGN@4+qQmM6;p|Q~DM_&ex zRdn&ePemT<~(hf@3|e^Hg>itA)m zNh|)2pHmxj#w1a7@ME^3<*y0R%cfT&WWWaVqAo7ysz zVnTm+y1ImvU9W9I5H^;vhAlj#Dd=~#y~_T&(cl|^u_?l|Pu|>L-@d5>dj@Dl2Wi94 z&3kJu&B`3~>64e|ORS!r1(7HgB8|edteKeCBK~kOrX=@W7KtY86%99Zy@KOKKyL4I z9>CmY{gwk=2tI3pI1sGu=nH$GqQZo)2r8h!L6FKh&HF4MJr5+20iTc{|33IS3?&!)RIWO-3)?Fat(s0&My$d+#a)PnYgMp{7RnPn zvP>Fm6nC`F=1_2{4htUhVBDJR*+P8IU&h@Jfg@#VQ@&%h1r1`SJz!{su0)u>l5>8% zT<;hU@ygQ33D2aF8Mm+pQa~s*f5SY+R;y8kh@7Q-MH#DFh|Wa{Mo26reQyxkHFXaLZq>SRzy8pJ5_ zZ3YQbhL54`WOF?Z!L>AH5#SF`e?aD{(p0#q?F2KKrQemo=M*&ebyk%PJ<=8J`mMIv z;e23}`7zye%=R-vRd~=}*D=ROtqOybp&@`iF#{{IkOyF|a$`ifsXcD=_g;^iS@sLf zS(DQzMd2M5NyqlP$IoUQd$a3av3H{-B&IQm3 z*1T4(Np=F7qtijzFE4})*sI!LBF9`9_4CT@Yx5y>LA(+A8(*{8dCc~48sPri5yA1j zEiorxvyt)!AYm2UesdbKdy|<*wJCJyP~D&YLeuWnsE{AR^29U{n{9a?@MkkDup~rN zQX(x5Yibu!tPw%6K)g*9tJ60hbY}?;PbhS)36iNAEPCKx!oN4+%9sh=FDmS;QKF$6 zPB1sL_g!&E>R`uVbDNP_}4F1AT{-=U=3%p~TgsjytH?2s$k z;s2U!3RIb1)7kfKz4pW|2dz>7 z>CpD@^_n`%c}d(EwUehTrwFv^@}3l`b78h0JLK(IN!LyaLGlXPqXchZ8!=-}>z(kp z9K4Mec~)f0GMK+Ry9!=UG_j+a&*kOmn{$sDU9Lmu&3>6x`2wue^D!s&HcPYJbCO?< z{qn1)tAha0~r_B2HT;GF~I>YAO~Sw>%WcA`THDOns~Qg zr)O0sltwRV=#op-t=EDY{DEbfge4@r7G~BFYf-b&!F%0s178BbLG&->9H}Qedb__? zW}VWS`a1vU*Lbf;!>zPJ>xzp!TtMfg!h})NE!~L4Dub0J2b$3M^fefq=npglZ!;5r zU34K6J~fi7_0GY^4nZ<>8$PWPn1#Af{+wjjVG{p?j1m44`i6CHc)!TD_jM^tZNDyP z&_faY@qBucKb{|&YOPYV=KxAssoH-eytkcl4As$qDQJGh5In`N^%~~V;A;8d=&65-4mvK-q|yM@uVAq-aX}__wm{#S&-xK7>`5d+&o- ziMwD+e`+C&L?WbBm|$yT-IG*4t_($-kxvu9tSqz5V_r%lJn-HTSMRG{uR-}X9ixVt zHvOmHdegIDM&{wI4b5rPLOc?>C%om#c<@MPdAy3@NHAXZ5K<5GRz&tg!@8e|aUaXr z*HQ6a9X{N55j`&KbKs&%4%&flA8LZZmEPK;ad`1iw9HTO-D00I?};(QBNv!BM3fd7 zq{R@3yx`0zih&$}nu&O+I_~xhY{++`OBZ^NkZ>dk9u`l#7GSE z>Ur`~QcwuYFm#%BLd*-Bf1>{Z3q(j|C1{uwszzS1Nt#M3!t;Re|1XheDw?LA<~UP) z6DHD%nnC%J3O8}?F-%l)3*J*uBmr3lKiy_UZ2#1LGw{lNZs@3_A)oZm;tXWwn~;8? zLV9I{e0K>c#th*{X*Nzl8&LmV_1g7Crc(7+_QQOk5$Ph_%3}}n*f{}C#iSuX?Uu=7 zXql2x2{BC#mkI&dh#+?hWjHjhG-3Tj{11jK7_52e1D#`R^5=gOcUvT)Q+*(TjL?I2 zGBz#tAWfA#y099AbTR4p-d3A-uv)5qTIDF~C4xP67;<_eo|rZ(^o@o}lki$zJM|kb z1*G<)3-P{rcO!{KGut49(@-Lj-3sq>kN3G z)-FXGNZP|(8U`1_14X5gLHv4vZPShRU&5jn`HWR5H+v;inFcJmD)vG+B%3>cH>IN! z6Evp;N}=IQR+V-4de6n(@i>+;AY>Mm>Zw*^T(K9$xuiI8pqX@~_$N6j#8e?g3Xw*Th<0Jp(< zdW@0z10x!vn5Ovn2gVuVRn%cU-xMv8Y;_1sxv~Kc&CJUR79s~EI?OnU7mXzQ0^>g= zAR<#?t-g$l^d`=;l#pr=`)|3#Vn@+vhl<@_AvtUluhu2T57+YYPYL@l7UqHBgA-gS zU3Sj@w$0-#@5bCWar&76dhlU}nOo2phoC{IPdedWpBw!tLkbyWTdbW#@I38sIs`>< zw-Kp#q!JC^8<0lzpi#&t?H@siw`o>NLyr(|C+OPSBrELP!0XC_ZqS%-g)U*#d1YQ` z#>11u@9%t1G3PxQf?Z?!hq5jkYJEb>vYiS0ajM*B4q*^IhG+P>Y1E)w^a=Fa5O-2# zfOarv*2<^hFa3>IaK>-9^N2grL`IiC-dubpO>l+ZMG1V@yI0|`s;w&pU3=VOF}7+5 zYpFNY-d3N}hoffkxl0gYKRMDE!~qXLO`oR9Xt*9#Gv!^Irn}c`*S49g*>!`IM>h>) za4IOOD1=mQb;qzBL>@xR!H4A7?`!(7kNUYrpwM@sWqb!I;?8x7ex9WYlMx}rA*^{V zK#mo@;USoD2}xDy86cqhFFK2^^4Dg(?s8vhARSD$qKhYmuMuSZ00f@(x@Yn6jBSKk z-O{@*UWZu2H{CB@mN?tDutS^-ak0fh;yxsRH~hR5n|hFW@D`$o+v+-r7jRQ(u zTFEIUQftjyJRp;h4dIg{5y|Bu^R83|%B|-(FpmBr@XnxaQ70t2ejq^b|F`$9&21xD zg6QY{7g%@1mMel*Rdx5wjhN|mw91bv#oCtFlFM^vktsOPv;my3;KLoJx;RtJ+nfWra0r5P90ozR12c5)1k3n}7Ws)pKP;saP#>GBs8 zXQ98dz-XM6$2C=_rg`Dzajct;v*ZyZ_CoPYKwsON&IZL0oTvZv1Aj3fpn6aM1N;Uq zDF340@@7aBI|*WZ9z6t0J%1py<_{c0@>k*~U9AR_*rfx$EY6Mq(8pCyahg-=XWDU; zEv0$L3Z!4ceOAcAO<{^L%{!?n^$k9SH;PD=*)_)QQpbbEl+X47jalq?@U(3Vu+{o@ z{F**Rw&>2(PW{W?DhWHH;Ws?{uc>U!--Ng2W7_7};Hij3K{oEt3dAo==uS#bZN~=9;pJtETzl?z1`$4}b+$QOue0b1 z7Jy^c1Ag0vSa|B0{Ph}G{#6-4Z#(&EBN6n*XguY-UR8{Y@_xsGGWsdKN3EV?g=@7Q zR`)dFi2(ukFOJh&Km=<-y#?;uV)RwM4#6hR7v`JxD8*dSVpYM0liQF=YGk;@hB1>1 zgIlGKu{N0N=N_#+ZvE!2q6vW6h!IE3upx*{D@-#^*PBIPFIzoCj)C>F1a^g}X>UH5 zN9#reDradjbTbTZfOO6gJo$&;`$sx=f)`p%Fv6v$<IX0lWP6_?3!X`DG&&V2< z2;3?67{#HZ*9jE~NoE%|T1c?OsN8b5S=j8B#Ll!M(6UTfcoWSPYBU!ryNSI0g6CJ1 zQy0s_ux)y}u@Ct$omX4tQGm{yVl~;UUDm;A5>y^Ey*8YYF{pD?)sc`piYUn%wDd*E z%LfGBhMT-$#)1TekkzB*DwN0PRJ~mr_j0Vl%*-4y zo$qE*J`HI)ay7oMzD8@UsrqMR(C6xFh{Y?FkMV!3{65_VPnD=ozyH3z#^387;s1X4 zA$Wm`BKvV0@!b?w#{d1J3RfL~{tv7RX{($rbVu-j2i*ZcGh!o?)T%3&;TNS7n`9eC zo0FA}qSaJTg7K_0Z`sVw#Y^LRdH}7husWSB(rIf+MNjQL_aL^wsL4ugpDtA@lXX|b zmPmLa!kaLPsag>PmYcgJxATG~x92Pp%V0eSM|VZk@ZtZ>p20qGjz~maC00uL5t6KM zq36*|=?nfSmX}R|uI)*7P{b0cMdOq@B9VP(Y@_QO)NI{QvajfoFT1wN5O7*X*AoQv zWyXBqKB{lo1hrtioiM1TxN(3Ka*df*&tPNuMdIJV{zDZ8x`30E^CFIshb~}XLdysJ zdS77^Tw^1cc@f`%e0qW7^eWBP?EwMHYN}=fg0bf?wQ5#oiizdGo1$N~N9MYxko58w z8>lKkxkU!`Op+0|&GQc@K{%(zN~LqtT_{e`dpyA!8r%|I1(MrEK25R=KnhZric^rs zD1VXWOs}wOfG1vIIUsmIj|gf;a8S!e&+;}~-7?-$@J=he?yF~=-~KPtRhxkGb^t=` zIQEQPu1ti9`zUH7sI-9TDL(RKBS|Iw5p9pAAVA~H-o3T{HCMXFVWgw&bJ zrz)9+N$teeHl9UP7#8yusfQ*HYY~Yc#r8M=2dTwo>sxX-OG~cGk|4F%_s{+N)FQmW z0yI6|rHRm6ZOckOJj&C*)Ch29e(NT3MtU}Tahf~tG!v+0$N- zdXu3pbhf846$W-t?Vg5NCUac4uNj4Rvb4Bf+^^$shRrqNXd11FlZI)@YKrlOY~$@(8I6bJSsR%sk{L7hu^5_j-qRZg74f+jC9ut z)d|O8J>3~GSB%ps=#vMCilgC#qL+rfI5@6wq%1Ym*_Z+%*+0_s@asT0es;0en+a-T_W z7BeisG;H< zUy!mlk>mJ8*n5Jh!1l2{Z&x0!pzq!{w%r2JV{cmzv+Qn zsi#CGKhcX8d?`+KXS=CZ53e!J5DT^WMSTuF*>jn+Eu6O=ag@M{>sObuncvnk;xMxl z<39`R%a7`xPQ&9!Bl{>xQGWOF%^Q5#N@eRYltH~|`s0GT#`I>5zTh!rcF$W3#r|he zcBtvW&XlGcv>@QOe^KJ#=yjAt`N9K9+#%)wR8gfT;%hFi?4)ILo0?0L5a>EM21V65 zr8e(WoXxKez!RL7Suw?uMNXwgbu3yg)ht4RGmG+79Bw+`j+etE=W?4`luI19%s2Q- z4i9C(*qFdaWe#{SD@7P+{1onHJVgu_@7jwCFnbOD6=I z3*#AfDZN2%rTQ+4^I^7tH2N4JnZv+@_fLz?Kw;U;MOS?mB~n4=$-ui$z{4`2l9XHrwuBHo9m53GtF|MErbr`_i}M zhw;T4${rN`6zzz@0^Y z-LG(J?9j4r))A9FsC^GlDr~!C-En7C?jzw-zRh*Ge4RM`egd(rE zYD31-B}SFos&JnyCw(WgFq;`eX2vU)K7zV{(AXx4Ixc$Nv!gdsty-vwR3jHLs4CP! z4RhigT#YKuPFJgVbD83&yA@CGsJK-2IFgLI-Q~J9g_XkCJpe~QxW8NJlr@||rP#UD z=XQ|Yd$F7PDi;Kq>eU?Si25ha{*m^h-9-H}wxoJYG)#0S% z2>j^?RitoouQQeB9~91QZxvIjK8j=Mlbo{=+&~g_YDVy?z9(*9vq`3uQgjt^=>g^; z=_+KvRg{>#*(n^Rq}rt+ov&~4_u-Z4>nb}VwbINe978jzpv2W0KdGyek7p-mF9g zo|v9Q66ljvOe-hhtqPOEw;d2Yc3iO$&yVrN;qdzyXWSQO)HE3;$XFu?X#PD{c6`wJ z$*fG7R-h5wxu(r6NX~0ze-U9Bmz2YIme6}#u+`lR;XJP)m|NhPCZyCBuUkmxZTN+F zIj5(BJe;#TLX=mmHqmdH;FTVS)0$yAU4-b_MeUYuv1y2%;j}J5E(vF_=CFwk!qQ%V@^+_lKQDPo?^~O43_PyUuaDgrA((M18EqFu!`Jaa-FZ*F3%me|Td|F}7rL4#l-sR$k zwc(}Wbn2zvv!`i0mmoorgWHW}5HW4|+vqw{l{>s+aXUmWfFd5*+ueAW$w-|6OJ*kh zgAaEHmK=dIeEFM$=AAD<>+xWb#xp+jG1kLK{xfz&yNPB+7}woh{B&;VEOxOCm+y{w z$63<ygyCqhE411xK1g+y!a7o_oB1e5rdsuOFL5bk0tjyQe&9M&pv$r4zC?0j_~# z8Czj{5I3t0(Bs8gL*tHvd!g1JSE88s&#*9$1nTRW+_dCWCpkr9!HX5TA@bUT#frYa zRAKfqy-jpir-5a^z2iG<2RgJE>00zfP4%}A`}%VZh5s#BCE&fe`5Z2|G>!xR8v!wI zJPfA$8jFZ}x=)W+o-b=Z-U>C;?FkFFY)w#R?{ea<1i2TksNihH_C*x=$BpfTr$Z$Yd*z?XNBCHQ}3MiKmL*vNJh=-oyVZ9@dd_sIFeb>{2pa5K&& zh*TD4(*-3Alx<77YpHKqRSlK+;&%p}R$wm=<^`N_uCUm9+aG}rIuFL~e?az0iXW(2Er&Fzrk%Q&Z zX=IJV>d*e&hY%JLhhn6Sdv6~y>{${aClZY%bPlfYD7dJBQUmPr4m=}V!xm;)xIwTJ z>^O+?J)%0l38#r?FhW!uin{WgEwEYTse5Z&{o5N!rmOVbir` z@AK@stA=@7gKYcXmhme_S!d~G)g>uw=7-{Cr5M3opq`1v=c2z_oxSIHu&BieTfmjX zHg`F84u~(K85yEFqP2lp&2Z|e@1ncTyhx@pf~$YGhz|;}VOyJt%7RCpF|0?vVilX^ z@1atjn)oXx#T3a*Wm`qWAfO&xmxi@leV3!{RsQof84e%p?!1v4MjGQ|A~PfG`PVRi zAp;TGanx0s#@hzb>7jddyf5gKIt{_e79WMD$o6l|PvV5ogpp+I%7#DYWj)-K=3=Hi zGQ_MfmVjt^VB~asCv!2F8m-KoQ&TKwtuTNM)Gp-dn0TR4;3SitN|}ZTZtV9Dyw4PD zrk!hhMbDJ?K02uB0)m~Nu2wJ8B?#)u_OV_S7}9J6XI^HQGd0F&wv!9xJws4a>O!A5 zSV`{d+O2g_}sbIA6 zd_paPW;DZ?l1*sBrW2(1hvvx-&&vtG?i-7|pz*M4steRB8QX}e9?CH;#sg*nS}A46 zG0s*yL=d}qx-6Rp=RBgV1Qe$(WRb$DX>jkmYvtjM$S?7@mEuJ*)#*E|vWl>>xh z;D)L&V*dH_PaP*$VDGXit!6WgHF7o_se8uB`*cMk2=EV_-7w&QiLxz<4KrBUyy3ir zn+7>_DxLvB%o8Zujhz^PUk({;V%J1&bK10uNo)c8Y)*#f1f<$Lfnx-~krM8?VIalts8PzyOVjD94bQd6f!L7<^DBXhB zV{=1q%kpN}I4MckU|%uiAoPBbE)lTH)NNI_ot*MO?oi5PaB?gv;i)NN z@M*fB`;@db6h2wW2N7)OTK5o+8b&NPyazaDs%EI#%)zcoZ{Z&}zHN#)*Zx6z;VR7| z+i94m8HQHSsV1#t?7g1&)x=)?=ac8Brl}g`EfP|6nF~6TWTz*=079-LTE~7%51WXd zmCg8wKOOr|89dE%_;u_%J>7n!;;U>dOjTb&0@X*YiK#>g4nez4!fSHi^TH$OzZwQN z_sOz6^bfivLiO3}$52S8msd=RQoqJ^4RP>jn9|_R$y1?W4>EG};$`+gNpGL~NH2hq zuk-AExL#BdO7mK;6r2H7W@b1s``nZ)a8x%|^ew!m9BLBg`(W=|95yr5ec_rCQJguI z*rdkZ4-_I53ph^0nOErl+a*-B|bDlw&wd(DG6>p(Z1|-NAVY56p;QKGxXOQ0F%fw1vK`>n=%M&cXgjuXTIq zkb0*|%Ch{7ZtIE<+G_lT>38ttl48swMb33a)|+UqUTmgun|9bSJQGauA^TEE>v;ki z0pm@nY>{T)bx=j0DqV*%Q~KOJKePtR^h+JJDzhWKl=w2+^t3i)k-=M2V?uM>W$}rd zRGDn+-ZcVwD?feErLpt&Rk0OzyH{G+L#v6kVS2o-Yna=^#jR4Nbz!X3A~saTQUch3 zInR4)DtTikfTU%cybY&^ePtYO>B?a!hG%90;x2bSvN-3E+g2CAUY1GsRy*xbSE~)s zLAwKvoA1E3V-p?>1!_xi=oM!t{r;a38f!E zzatBpz6zQo{9so!F@%$Cl}&gV>G>8TT6#Dg}_XA2o_apdd84khaV|v5T=?#87{*ZI?1;lT(w9UDKTR?87dey6vd)W6L z{i;o|QW@rV>>{MfHm`^R?{pr@3TETDAASZuoxo3npq$lT>Fj)0ayo z!F3KO;3DOCy}@Yp7-y;BZI2C9b|xR)#^o%75v<%2#{1EP!@|)}$QY#al&#f_;iL6} z^es>UDS@AyW7fZa>vfWPne?VDRx28Co68v0QnFJCExb7C#q{(7>O4`G(NcA&T(_Up z<>1!D`*E6=I6!nOYp*;!94KD*PTz3=TJ>H80vP@W6bJBv_n|sWeHF~dD$fTL2JzFZ z7i#*2ZjFk(_RLc7_YcvV*l^9w6q9NPlK>w4!b$d1mErwvWoWzWEfw74y4Qs?z?2bU zSjTR+LvR}suowI`%6qZhc3H>^(4uA^*HIj;y$ky6XS7yDiOM`kH0K6H8eO2E+^8f1 zu-#=)0O4k=5v#cF;1N}O_a`q^9B#B<3V!p4-)qUizk|)4dKYpL7 zXP06Ah3hoe(G|UXOgK-kKzDpv1C9SRvElbN(Q!qz(Rqnrq2iUy*qudroX)OA2J-A> ztkH_o=@(9jOaKWtXj;y?bh_tPicL@drd|-ZAurc9zWZ#Z-P^PiSq6KNz<$3ZaNfV4 zl&3KGvBH%gG_^S~2|_9Y=A&%3bESeW5e*F|1bn9pS7lWAs#vb{%Ly@b48mGdSgLMY z7TD@OyrI(L8yvM8Z{P)>y-mXv+C40dU>~@OUz$ zDVQY?Ie0{OJ;9$$WGYA4EQF_Ff+)Y{PNy}eHz&9A&QPkU5XDK1 zUgoEt-u~sqoAZlTWR;}_D*3lj0w%CX_V1~`VI*nl3U``pN}}myM<-tOSiR4pWE!o) zcq_%oEoL2y_y4km)lX#Ma!KHJxC80gI83f#Uo*JRia34}z*jQ$Kp)N(91OTJm%%Jm zZ0O7AR2%{^EK)AEA;ly>p(luVUw?CQX8yUI*)I-49pI;i8$C^S8&2r;jti`$?{DQC zzctA{KkRqjKP=BT4`n{kL4{)}0|W9#w)o+B-=%7smHHKoZtt*C`9SHksrYKh^~GI9 z5jJ{caEFZ97M@^GGk{*y?xjn*ka2X+cpa-j4FQ85*+TlR^NzZx(wzPyg`e!mqR@Hh zz81TTDm7~ip3|b*V|v-NVO?0-yJOV{-(558?iccSH*-@xt3WQQ^le*)>*<18`A*kG7`vhT&`2Jl zzbDnpZ63xsE>Z(+Fs6Tj0flU>^GM!AWmj`8u6CwDn$qT$!6AMvbvlz* za}JSc_Ikis$;E`mDl3aR5pO1}JlukOAyZy(&GC{f$FAO-wgMXm?WJS;G%eLm6Um6d zsYTg!E_}of<@qeFqjx(Q@?6DtHB!;rdRdqp0GF~OkS#4F{Q*@ z;EVh<*i-o5U00ed5C8o?yd`4ek+*tnk>xd`-AKbx#5Rjevc_a^YU#@{Az>pLM-vnK zE)`Ii%Vr{+O;;}7><+M--ITe|iP3+mAH(^RLAaXvBrV-~b;F;k>1+=v_(bxuW z*x=m~aj2Nde9cmFb-AEEi0@#bsM9Sk%osf`JMxij3nBF(S~`2JGL??YDd88-9YHzxP;5?MVPOx zR)X!454Py2)38)sESPSoZEIdkr>drLoXrJ~nVJg-*isw?^ERIcIWqr*D_0)8gfHFI z#bepL&ZOM4>@5%e6GJg^^o51`i{H^x1-c&RD)ej%SK|%pk&Xh*YOWpjUpC;FaE;`h zeE$5Sw^D*Dh(X0pD5p|~nRSls$n)r`c4i*Qx>LU)g!01Df7>Xgrno^wW`&dj1fsP!$zG8wiptng;2PUIi;Up#FLw!43E z74M%bf3|jE<%<+7qePp-{8xn;wNNC{Ukhd7Olx(WciaAT`ye|O*KYI4eXAVX zILwWzYa7EQ{@i@%!jGK3o6~{i%szi%uLe1U8a*!dzh9Wv8TpAkc!D0hzdNk|k3YBl zz3*8$zoLw7_p}(lj9Ox_&~`+-n$)(F^BU9{;jSGg$of^KSu^Vp8}j$bW)3-P=0)zA z>*cVyYYY1wxU!)H^Uy0JGA?Q)s#B&f@G6@)7183eg-%!)=wu>&HnM5`vo3bH9F)*H zCUz?jIS)G^KAP@W0e-JYI_&b5xA`H3;L6eGM!tV8t&7)imuIYdYdB_R414qL9`OGkqHfI#bYzKh-W?FVh!+XiC#vmC#a8?w9KEpKwX z?SeAOTU=PfDI)^-Ap*}1b>j%3P4HJBF~>u-=-)?gimu&d+4w=3sl{7R<~GFgRKNUj zY+hdthe>6s7KSFgQ~S|`lOwC|+tCjOH%tk8x^G5J%j+UXuU-7ryJguspHyUhQV=Pr zuR~qu)Y8l={3g$n)lg}-v0NtdUXgN@Mu7e8AJjp1rMjq%m`b@H2 z#^n_)!U*SCu7shx5dLf;;Z8yJUf%Z!*Y^~JbW2KrDs<`E0!k|oN z3KW|uC$EVXFzv5ar3>S}RP!jIS?`0hFvv>%t}%hVP+_cEPK)u9IXNvnD&a1u>gfgQ z)V%?ul^>_qy_8q^_8aa?_PBLDEhf%3R_++sjs-w9yT8p0-R4>(o#Eo>t&_kwr$Dqw zOCq}}0#k-Zq#}0qvqX%2mH6YJoa%zTvyD#fwlxEMxLvhNuP%$6(l2L{)#-DSu|6tm z93pqEDL2k(B{aCs#!}95u71T{)0u4+(~Nt>`x`cGwY@VL+4bSmX=9a8DEvUFq@xRp zvz$0U&3XXdj8h<}-Q$7pzzlJ&Y z*!u*M(s1D+3U3(9D9b2d)kM35A4Nti*=@QgXFw&BIT>W2Uo^!eMaLLE9 z5pCM%h+c&9f+^h%6-w((OoEhJ?7&i$7M^8@mmK3{^}!(s-s%S7s6~d>mz3`p#<$@n zmo7iJ8wK)Lm0iX8A^tsXuKG^W1mt(!`Y9M~;zFRcDuuA6N|=d^H&biLbmynI=5-N9 zNzXwus#N=h`xm9z$;Dc&Jc<1(nTD&ph-r8R`JTDqD$hikat~f3{jdNMZo(xET3{Vt zf@+k^q4THLzN*9_XP^Qz4*)^PyOn;G14R7hZA4@kdD*B9L9N6k!MEJ;~fFES8t zzGp?1UA6pPF$gnYq1YCF*gl85fujCJW%q!4gl$YT)#02|-8#)tbE?{!QxvJ0tSsc} z;lO+2?DJ2c$1G8Z0{n=-&p&y0m^NLw%YNIOC-T|w!C^IM*zTWrK*){gqpk3-OzXzP?Mg=>8&m5 zPb&K{J?20q!mZ4>FI^l?zqs#8u{kFQL~QiZV#E9PcnT`n0(8e{>g=-0DShVc?LT0r z$O=zC|LA{|rg~7qb`Hsp!XkwEW>I-3*ki~3JXxcy64V5?@3YNY8t7^rz=GIDhX&K4 zs&w2TJ40~ucuXIU=|IP{)$MUqqgTs`u?&|vJ5#oC%A@&P(&e5Rz;}+5?yxz0ourwX z=`pDK>M#GLjBL4K*g->Xb=J|XMDE4ox zFIhc2);?U9guv8!MPsLg)q5GLxH<$O{BbDm;ncO-KO61CLLr7ZDOJWb|M>UtC!ffw7;$5 zazkzPHT5{{Z?Cl8P@8?9=Fyslm-e>b5WC~iqO2Yb#=R(O`rdjXiw?W>|E03D$89Sr zuU~KY2EstVU^oxo^|)_XZK#dD!pZf0q8Qg3YO^1y9aT@e)mDdnixcj`p zf@w?{PC1%uL7&_6g9cM}7zv-f)5jhV=w}i`8H)#+Z0-^fyHF62?LGrl_{P6b=}@E$ z$rJYi6{mR~T_3i#_C|arP&LWBTHZGbP-IwPXXb#@JX}Y+gNsZyR4C&N+AFdZ}AKoDdy9znt zPYqpblr?gLiD&w6(o^9aJs;CBNt0+w4qU22A5cUfN=o)W7E(wi&`+vE2abXkVU_dj zBX*TMHgXKdFoH7fb$N8=IZHlZ?(VLEQA3N(U>?SCCAW-nI^jKv}RI&IPN=o8ldRY$%ic0s!gFqWaK&Tj!H za`2I}X(%;(q`s;twp)=}b?RwNr<;&F(2*_yKlz#7iyu7QHR&6F;L9+t7$j4F&joOj z>z5TCz4mI1fKSUvWR(l|VE`c|{hVgy!ooduQMa&jili6@IZWk&aD%NzX!;{JdF+Oo z1`W|d%_UDFZ(CJMmM1-GW_lS}0f&XjY7^wC>t)S`1ur4=5*3xaJK zuBymVpcqD=k-#-;nN@V-(%^OL(@yQWq_h7J%1JZBy=~LZzkC2$PNNCfB*`)D#kDo* zYcZW!nQV@k0hi8-Dfe%z;?SCGAIJ!ckaDsI)3{3z-G2WEvY$Nyz``PR$j7!1+Y`q8 z<^l^-@>NvBpP`VN^>RyFNP5pQX4B1jdr!1i+ueVdC5KcmtAj!<);#i(YIwr`Tf-3* zKk|}WHC$S$=i|qy;u-@_eEl5e(NvcuAm8M)#y}$2-XJHQ<$ai;FVBN_=a<39i&y^@ z2RaANYfdvoZ=$Lj_!z58o}QeXe2*4+(D z!wPVKDf&Bs$0E8;XK7OH6PQX1v4YdcG71zY@F^Sy`~u98DX=R$t>LSAk#xTYwq61D zudbSYbts)b=!CgJ2wo>r<$aITYDF#G)xLS`*{;9ZdLp#YA%!s%!GlPhr$sU|J|MZm z`Rg91Kk$KggOPo) z4goXRk@Z-oGp8NszTfwd1hq9Dtmit(<_N6a*qj8TjN2V%{FZF z$QZq#{8chL>aD5Z{r4FCwKX2(x%6R@Z<-By5`2K?J8@g8WOk2Z@K&v=-iik0$$gXxlT-BYO;SYQ_9G>d`f(2~YYwB8iagACK>FT=d8%ozHPS zMX_Tm^L;(crQUYS*mX=VXSV@Cfb~njX!F!g29{o@`upf_)q*}M#~_smd!u8Hm~`c! z#teFc@AU$l)Q&CGgV0@Q9v3u&Y?G|RuXf2mqz7eb)-PYVpC3A$2B+7ylbhUDL>@Te z%VCN`hIp|^A2kVricF^rFn}e8a&W|3KQ$%9WfG)4&5f>SU@*vAl*m z(C7BCvfd|SRmutYewhDK)~ODlJ*Z^s(wDoAffnR66cQ zM|0I$M?=ye2j4y`Ysn5n5iWxQ!K=0efBYMd#J!6MJxkVq`28b3d&B3;v}n;S>k*-^ zz5)iOk#Cjd+c5i*yB7&woJv+1;fB;3?k2AH?0+JCdN$f|k*P2rs-D^bi$|$-1B#!` zxmr)J+8q@7+*OzHN$roLRmLd;CRoyBt-kv5r}XoXes%ODImplvD+SH;m5gIVCa6`% za^WP_=Fh?vdf2q?6v-G!X_f-($>!V@$R3;oi)f}%uOH0I-lw2(W=*f}lec(tVnuJA zX^B6r0@S5;-+CqcAd@|K^6ny2U4}Wa`YE-VK#KL!QpQH$3+9$~ocN0jF|=7tvt(JG zOY=9Y4q6aM3D4prmoc#l4wBBp8<(>I&F+(E$C#F5_{K?aRjhHKXue2`ct-wvaTL2x z+Jl*Ct4Km_{SmFLoetCD(Z=?9(E`OeG2Ykpr!10*4Kl1Vr>`Qs={hDY1y5iaD}K-5(13Wo#t2VmfUF>a7~v=*qa`R`5zgRT z$qRI_%%eNop&%K1-#3Z_4_mFRM|rokfjQtVqM) z3M5cEn~^9>)D$^`&Ft_djo@RDOka?V%$+*W#4sDLm&&^%)h{$$xEvktsfY})=?~)f zY;$-&H0~Q${owjy#{~sBM`dTeErEa0J~5dqXS+ptDbu`c-TCsd^*%tXF;TK&UxKg)XBupng)38jRx+*n`6)SH*&{c~4T`iaV z@RSw3A0!|!T1!wXkm9KE+&Po@BI<|9tuW~w!0GNnx7gUV$n|;N8J7H@*4gG%x0b}f zBpjMOPvA@KM}{{>Ne|R+j-OLdUBexn;^^0`U2qao{T2oFfLD=*%oSx{NA-pUpeeUz#dhx@I7C8<8d))ax`^UCku*fml88-0Gf9wH@ zfBxe!p?C>4)-sF_q3Ub^7P&`D$NgEufypA%OHCxeWBHmlcTx?W@R9DK@+Tq!-1bX|Da;H({6C` zS`c34X^ay)>4h|o7c-;`P#%>CPW{$7{TCE*yNV3&&K)cEc)C7+{;9vFPIdh{b` zb~q1}OV4iEB>=|`K6hW@E~VMg(6;%!O*lbu$Uc{USKzUc2 z@(i;1;4UQxGEL$Qyckn1b@5-Wtf5}C6%E$};7_WVd(qk%`KNnoT`QItQF4>UH+uFV zjwoBMXnI21VL@vE$mYSzi(<7(Gt+bnzo#LL^qEQTF`NI>4`u}~(ZZ{`ggr#G>?~TK zf1h#{L5u8Cd4jXqb4jfyB4UANvE;LORpBD1ssMgD8?s)t4xdk%LD#Z^Q>zezKj|Pg z%XzefPR=gl5|1vOPWR{YX~dkp?3ko@He+MOuL`Zl9dqrPr$nvSnCqFLShJ9F=>pds z)ESnh%1Z*V$mPB&t^L7$OD{eEXxX_jH0`!G0H)=0H!UGZl8di(`-$LZXr1R3a+b- z#9E>`2!cdW2}Gv;T0~ht1x33rVa`);cMUtwxEHaN_I}r{V`tYs7cxK4_}MPZkT!!(P)a!p@5|=&`K8!DD{dE3O$pA?+7u!5Q+nJ62d5?_ zyB!*IYZY=;=rzQ~&2?J(-AeCv0e`DIL$*`ZbPq{@Ih{t7!Yw9Io!HV*5~U*j29=_$ zND^CQjtn*M?exoK7Ear7eX_xkKhrNbK6}~#d}UC#!s0{(TQD#-ZC}G{4=hz+DIVrZ z+F~LkRdyyTy-HB-o*2h;tfz}8o@HwEQ~fE-a8o_wU=gCfgjUY)3ntzJul9_F70SDN z!wMH)qE*ibxWyULIjp<7KWI2hKzWmL&*yH#V|OXuhCx}AQ!zd_>m zH~jG2DAdXBg-BPO!wr+4oLLLO3YCksri&Z(dw8Y04&g4%yADkk?fXFVQx}r3v0}R; zJ&uBAIE&pH=IHu7Zo6r!(Mfl~&#&RoCSsldDrA3O)CM4>I{wl-PBVii+?4q?sh_v>Ch z>F!TDOJ?dT+S(>#d5TRi_3<=qseuHPvt7+E9vGpNOj~;h!@cPCkXEP2;V$ryOl#|kNb^=D0Jb$x?gHDEA>93pxLc`px4VF z2I+ZQZnqz*&75UNA|F;#xD@>S`NzKK#(OTw=SjC(*1uMzXf-Ty@XYIfBzgnUPiM1U zN|?ygY5^mX5RJOg&*u%(s2R=u)NL%X^ww9A`&Gp&Sc_F@(r&CoUUXCQr6L&tq)=Bb zW#6QBvF^Mq6!MamLk?f%wSre$B{K;#4Bhb`vmlasOdE2J4M*M%o`??_ky9~2ywLVL3(kT_K4@s%5?-~+7opL@TV6}IQ0nj^8%*Fu9dC#zC z3`B1>RKRXO1GOemSZYB4oWd9 zAD;ddO|ikyS44`O`zT3?Ws%b`CV0-B76S|9#dNB00MyyseG(nE?6D7{IG+IOBm+C3 z(J6V+PeoOo%!rtiSAQ+SIPW9q{PH|_cYYasym<9r-7nA%IX--iHskU7$nfXHX5hX zH6Wd=>X*_4;qRY6|M-u|u7}P(s2saLl%KVkx4Ln~JvQ4&f{^yXK9Y%+ek9eT-;8;{ zT@VPD15@M_Qb4;KMIfn_MlNFi3-7Wc`n=|yVk}8*BHl-OT=o)v1_Ia9Sv6Cz#%U5X zAYEKv`qDFf$*%ZHXexcIEsvKDtRIwQ(f1JEno>x~k-dA$W|Ky*R@=PZFI9&c%-&mR1+}Ua|sH z%nd)5-%zZ-s|8g%v%E`9{#>*TjC&&TyqoGj4EhdoR1T5j_Y{w{ zMed7~vuPz{{Ktb7d8a`fF0W=G?-wM%(KU5D#I39kY?!1s}N@LNQ z^-vBdo5)Penbo&RcakofyBaU#mV^e*?+{xiuNXZ#W3wYK%!pn#Rzz~?VYwbmP;Tak zt|72mA03JVSf-)1j14elY607LTA$1Y_liFrJ%JB}dunSwc%NT)Zhv&)JuFtgyBgZr z{Gmq#95BK|FB4?;;z3Vkq)}{d)D3!- zy>Nkotp2dnlf#(^Lq)}i`sTfD95a}+X zrAiCm2CT?&<)Vmyf**3q9>=BHAaifZ0wR|x`j@h5^lW^ zr({;{iQMWjin*L?5Ytx$c9}@a?$VT~xy%(PSK~0Cp!Ws*f6#*bCkE3UQ=cnpP`b!e zI18q{Y=tk~#mvMp1RriSUO8W+1*jEtp;486@bioJ&;I!Tm?aUudKU`)EzqM#;Le-~ zR^cTY%}bD?QKG)f&1U7HG4cKJY#@w(JbOg??n~@b7Wt2p!z|~oYkmX~%Jbt9BGcTK zCyi>W4@ol$OmEIlUwQ*!hTv*l19lpxAtrzaV{G;v^}#-$*rQC(iA?ovNZsE=-P9joB4g({d~b8coMPXs?sEWJ~wv%Bl?bsKLc zWZ$5?$JJonQRw~w?(=kc0VZ$@3}*BYz{pp-ts{^!=HgCYQ?(1M%oYGKlxAx^6e$G7 zA;PAsMKYZ)u95vnw2csp9!4G`?7;tMh~vUQdN*PTu~BWm@F02mmoB z$+gh4Qihm#ydR!TGF@b8k{0=^8}w?mg$j)(QFawBP@Z4xV2aKSaq*CVpr7Pgnb&U~ zRa=E^yn~;-2Q5!|_wBm0u5)-F-pDIn!1({<=;*7Pw$(>J{=I;8n(t6PAX0}X5(n%! zGCJ=B1XISdg-ARZDJ?n=U%Cl;qp`Ivet8m{U*&16q%g`FJ=7ACm!>uSlOLY{Yw!j1 zb`n2V@YHRX&DfE*j;^9OT5m?-p{*P28R=n+_vnUDO5DZn*0b`B|1DnstM(@Gf1jTO zAJi(wNvj7Sy{8e1`|rvkIZxh(QF2KtLtCj+8fB#2S?X*KFVq^h+>5jo@y*Fy(F2Iu z`T4@(!c%QKa<}KUZ2{rBj>9#E5}x7kfR#${9yVq$4lueeLIbW-yS zH0%xzcugzQJ3;8+Vd+;%y0ZStXPqcnfOuX%c^(-pnT~!88WxwWhjBR-Iyng$4X1J22HYyjm7#iV5PRgUro!A8&b)9>-9 zXj$IW$#s?{-*K0Ju-1Zx0dVzgbYw}F6espBJ9HDa9w#wiPZnCHrQ{%)hVy+fDo$K6S?+zqW|SNQ-jpovE_>94N{&C27t59I3^z6bw?!Z{3V}(7o9nI%q~S5utrK?- zcympo{tPqaV2$Qoaat5QP~9C(%?faV(gk6(d5JLfqb;|DgXgyoGnBmpN_~g4 z4}gdgxYt0P^0B843;lwA@o0K-_9`isD#QEc@1KA4&ONp9C@H0DVtTZ4q>V^QXI_dkKx?Gq zmt<3!fC?0yv9ZkyS5B;{ti5Gc7{b9o z!q4k)lHlbB!Qyq_h2vmh8|IC}^6hzYA%P?~okn31!(M+yjsi?hR}^BCT(-7zM`z(W z1hBJEC*74HtfL6a^W>!}w=fLs?7}am>zYhN#r`HriyW>}E0&igy*U5cV}pPHJL~tq zJ1hTy&sUpE<8wGgDr&XyELs2I_x=c3X?4jQYfnLDZ3hn!hu-!ce%dPh9>Z~ACJ`DQ zg}RQWMI2Ur&JDZJYw+OcPT>ezfy4q(_}L6Nj7)|w-tofc^dDGXspl+{Y5rUV-kHLi zH8i==HfAdldq1Rm+2!Z(8pR|9-aT>efI)+@7U7Kw{-(0@*;UAKR6r|+sJ%if@LR@Y zbp_P7t3o%_q{A{J(hpEMh^kYmuhcbMb$v-{r12RvGY}#5t zRuzldZc9H?zQTk|5))ft7mZ7SfvA({OUdI$jgu1CwG~>m!1LDQDzHw&1c?kv#WVx~ z6Bg?f!y7miY-4gb%2#fepj)?I75bg@v-f>p%V)Vx6hrNyP5eDHnf|q+n=)|J;aaY8 zU2g5KtZu_ye@IjB&_3<;IaTLJ^Fuf2?8$vmZG-5~|^*Vza`$8{PG5R!$cD#Kw+pdY4r5ECNKpy$a-+T5!x2{OwBGAu@Zn~xn zWuA~+Tra3DxvjIuisI}&*4E~Kc;3ievL&;lwc}mrmLSs$8Ok61?(BV*&WfqZ&{RZ# z%HRF{@*lsu%r>X9+0)NIdI$N|@UoSZN6u#U`Rj17EWmbe)GtavpF7$-yim*{vq{|b z;Cm${gl|A$8dl7!BDg_IcNKGrqkf9=;y2Dj^+S}djbmNW5W*xm%-eQsRP9JvWL5l^;Gw<%ja3OhA zxMN5!XTOigVta-7EPn-X`_>USh7~JCY+Zp?WI7u35Me|&1a7OF_0;DM8o9J;s5m_8 zevBMD!vcpTHxIF~WW|BZ@eY#>YIT?_XbPMvs(z-X>2iq)`W4$Qv$7Q7AZ3xd(G|g^ z>xC9~WvSq)J@dRsi)4-1D$Tq^s$-}~C#swstff2&f?v~HOog6snM9P^h@c$dH36p^ z(~!vE7MmtGPpOm=#wS#Ud3B~bB^)KGpoGdY=%_E#Sv22N3BWaR2Vp}WCBTP~_mrL) z@l1H~K~y)Xqz}V!@(M0f@nCljZRB8`a2Z-3r;ZA}Fyu*Isn#}C`KaBmCk*l=T;+>& z?YJJR!QP&utfN?7m+6}*_w`m-+J{K`A=&DQ4^R1~PqE_es6oijKd;XB-c^E_?I|9O1foAkE6g>*ir zJ{nSNPo?bt{^KOLc=gNMSMM(Wa&h**Uj2vX27isN7xhgxzTw$V?kk@C)bNr46jRnM zTBxP2nq!?{I`F;SQG|VCa4yl(Zfx7ej&0kvwPV}1ZQHhOJJ~Vc*gM$K%{jO3ukWk6 zRWnoF{q*$wm|8V!^_qVAT6KxesD77&txMjk;8gSCrFPPfvb0emGt*MJfV5vNXir!h9BaH5$;jhSp!%Oa)va*GT< zv4DUXkBy{FZYR7n<5$j*6KGHq~~oTojerARYTUi;gi=T#+us1vd7F5>eTCXO?D#OX5wOPmM`y zv590;4K0`8D!6se!xL4l#vxv#O?I?y9r6t;i5KGO^o^8oS(bgo&}0l0n^jcHT1*ki zp6;ot@_)|Z?iS=WoITQ&DlS?_Z?3h3hGN!l>72c}1O6DuSPCg7g&V|KvpB&M+Y{)7 zv5mX|xUL$P^FF~OX0GcL zxsbQA7#$WU41g&}3ddZLmB-m8F?4i-nKsDbaJ1R$XFCR2vP=HdFOu}`_C1{2*;tve zbK3e(G6rl(ODgdPpL&7`=o%raAEhE+lu3oU8(5_ybUU7nPxnh=<=AEFa~XMvXRL4y zemPE}(D4Q2Seag}G<6S!BFx6C&=AKklSKPG9mUAVP|>sH=&Yr8BO3~S7;QoY?g>Ze zKd_PsWs}Q~c5%#MJn6AtxY{1apQxPRlKESrpf171)s*9`>}ga>PTnxXcGv#7)o6t&{roC;>W}N}KKo&WCj@~zwvsBE zvy*O1)^P~5tbaN;o@>$|RO)7Xl5D?^ zeu%{25}F~yRDt=nqK)CF&E=>?j{b5-F|}E5Z1>)CiFKX>Z@@ydLAPY=1H>$f1X-Z! zvXfKsKL_e7=g-fyu>l>{C#hzse4maoQ$bL5PQs5{Q*ogze##X2({`T8!J-nRw#ucrv-7-W zw)$*wo!j^HHW*nfz_noRZXu{Au{(E8kx8h?zWENc4yIBY3 zwN}_vAC67+_)jtPX^#PWj>1kPh&u`T?1?U=1TqgocHENN@mbHsm!W@AdhS|dIq~@K zc2%njQDcnMNE>{W{_XX@iI8g$H;u|o&klEkrLW;==w21OpsJ_wW%~$8RU>=a25Ebr zrte|;Rn>?8+9h|qwgBY?TmvlY4UM=S^3|w30cNl!&>&0__VFl^KE2Mb>x zO}W_9#jZDY=(-fl^B|fdlS;W1mi@yo0j}7iCk#4u7HV4>!?tNS$lcjVfRzI$R{R<5)HziO0VOE#v+}MZl8smK^#CqjTl>MOv?~alTDoy8 zqogxw&=W$!rCt|5646%c4X7HlvZ6uqxs7Toi4vVYuKz$zgcHX8MK z!6>b(aK%1)4xei&=Sjq=Kue~nC-k#-`~*ItB{wjmF?7+VJJf0ZmZ z&KWLWzT^ztEIAagY(NbkL2nD!F~uF|*L7uw-`VV{X%K~{meLZ{Egxgkc+2u^N6TSO z^&RHJ`7mA>c9tI*$JPcQaO1`1gl|3Zpr2;C-{qG%H~RX1`61rKwvq4NJHgYWSuL9M zkS+;kzjP-k2~b@t?uEZ4SK+bGj(dJfap~0>XTn(2QTO#qG8*xy`Tm*wVVugaOp%Kw zM^wQBk8AcUXJNR*!lntZXrqxLhqUb$-SAS& zk|}%+0uoA_xus65I~(K$5f83KmkMi5JU;IK6EJAFutvmnfsLTUy8G9q@M_u<&ao-A z;ntm`iC(^~_-})WhZM9(hR;34$5z;P7Zkv%*Av!3^`&(dp!TVjPS^Xqg(7)&EPr#! zH=A2#_~D7NK1A#%RUE#1CLQ*5%F@qupGcV7NgS3!{E)(62_vTK=+Hgwu+ zd?u?2U8-*Vxf#{~0>)-0Lv~nA9y%9mPm3OSt3xDeND1UY$^n6JFu&2OZAuv~uIyJ> zIqVF4u7eH{j^fpgP+19D&N{fxzRO)T$sW?avXJPtXnKL3@eP@tz4@f}==a`F?PH)P zZmGjKmFKoUcs7T(SwP^P8a)D=9vRhD4$mNiYEO}1-;H7mRP&}S*S}n+Z@UgHr2^z5 zV{*7Um5#l%MGd5{sv@?NaA{9w5|A_A9zjcx+#&9Fz zV7LqESOLe$Zc?a@p$LLgoFeVej=jv#pGh?1_jHXtoA!XNz6Y+gqn_6DGRX3Utvpa8 zrXHo4dT<0V4Pf&CjJtYB;3oOT+ahyJ)siwBXGXm@{njZtGq#+-z>vJohoW*r$9ltxSc-;WOgFM4{23&Ex?e89^+A-M^OA(yEI){zc=6TfBQvqqy+Y3Qt zdqy}HrK-t;p%f;OV$!0L51euuOIuLR0~o5c7)F3WF%Q(iS?ihr3N3W?LT*hLrOAD~ z)O=s&8guDH;G^7}BH;Pg~$=uL}Dv+|o ziN-z2GTLEGH146tqAOn!9%{>C_o1MhYYA9NLaQh{RdaGaeGke#yeD z2I7?r{-LF?c@`+?zyxG0KpnyWbMoo7E`EuJ2Oe`+Jhnl1R6xtCr{eyWdkXi_y|-!M zH@U2EcBQ7C3O31kdXz4SHW$S(%J(2{)S9Vm{J80}GT}-JticU(e8{t1k=b-$#W3@J zx3W_DjUI@IevMma9%3=I`ajlB97K>dtCD|L=vk8PiC=THc)O113gxpT!V6Z?uQeDu zH>Is$k(ehi#KiSrIPvJD$hf#*UZa1U=KZX6gQ)?h8#D4h6ta}KUrTmXYqAn^-6t?Q zW1@VRecpVNf`EzJ6MZ$8tdFt{L{GY|#gZCD8(WG6)rn$!X18g#7K}{gkU!=g^c88d z++=Q@o9f`>9?_E#0-m^jt5oC?=`6L;XCTi z$R^eUe$&M#*u@-ah*u4w@oiZA5DhC%PPjVKnYk5>c{SwY(N%8Pa%;WOGDpd3HV#Mz zj#W^UY@cs-6h{YWzlA0kh?h=K4Geu6tfSj#D4o<)#K2fwfRA?)N4^f;&VrbA35iVL zH~z<0evnp2V#dfX4@600>QA7G=_wTc^}M>=2#scuT{%E9f-PkK^jVjNr{tKhOZ4%)1hXLh7ZsB|Ee6SNQObE^rNb0)+n{(O*dIzl?@0dbwO{Yo`dy~6Dn@Yb& z@;}bQwYWpSzrGb^K*7*}fPkQY4l=WqfiM$y_3lA{fb=1O@PDi}mc|TrrY@|E40f(| zmM-*WPDZw-?)FaB^uKLvu0A1MbVvUJAsf>a3e|pLLkpTC=3TPfg(pz9z;SR3OJ*KPDoG`PVCn))89(9 z^*i9%dl3NKg8t!fzuE3wzU^gkHjfX*gwlgD8u-3khjpyq_ir8@`=$&3uGYD!#t@MC zXuRH?xbe5ydZ`dAT_YC*OdJl5w-I>VIgWG5=pb_Sw02x|tci`c+VunYYsb06@prT3 zDYwXDd)<(XUn1za`#A5_#a_^v`q!Vc8@QF|d*9a#DeT~e+{r6dXVi6^0)Zd(sv&zU`T39+AAe9e@1~~Z3G0PB7NOU4Yu}D7^#EXLZ{9r013k)etEK-=hcd#?s z!a8eU22w0MMdijjtz~wcD#Sa=XMMA3p}NQkX%^3{K8%TMw^Q0|ISB>=_HM)%cI#laIJn0R&+~=n;g-qYVtV!GEVs*rxSg;gkPL z6P(eI#X|y!X2b&tg!5j}RlY)Z8kKteA!MqRx6p}B;s38rS$PU;{nybp)w;9RiLPC( z?xbz1bz8kNZHs!{N#{h{u3C5ce*vegI%{kG>*M|7Q?EOH{S%<~CxAxX$qxa{w*F55 znsulD1#Hr`W2ioH^QW6f&dLQ3u-k}aB*F#~OcKRP_|Udo3IBhG{|@UjXaG16AQ-Gv zCRGHu9mIvSBST62rI2bsW5nV&91D=cd-%@>F6ID4nvxuv^k*Q4L2`yMRe=HxR3N0? z9fiaz0$nJ>9;p}XFYTZdzyq~f>+a%qFeV!M*mCN_j_DkD@L?HX#&HDQXFB+>V&%h+ zXAi#qbKs31@2pz+mg)%Io=0?+!5OKkji^)`XrVT~Kxe$9HpW3`WI<;tMrUkBXPSk{ z_>0bDVn=rx)JueU1Kw%KFcIo4M85&+bfBLA`y8a(fqDEtAg>CaH^aAwgNKvglj-p3 zbi_0ULV5#!%|4%w{{h@G?4c>~BCe*@D%u7Lk`#dixrFlx3PdE{B;o_pRq!yiu!*ik z2?y`uFKe8NKM9jTMk#@$RcWD_)JFvHxL0{lEp0CwseqlY84xSX`UNGS9{ki$a=rSOzLS;Sxb*kcaaXSOaC>goCQAg>2pq0X zt|tOE`*{6tPv0~d6%gpb^cq=#rX|mx(WJ<@sJdPU8_*cBJggz~P@W80Xf$)!DrZJ< z^k^IV17<=tg=R{O-+ulrQc~q+D`yMpAJ#HB2El$KdE8a8=8iWMdIkguQWet13JW8O z=zh`jO^SgGR$=_TnH9B)nt++y+B8UQM{dT?pqUMmZrlq)UVi)AROvBeJInhVRFmHN zefHew2qFhwlAewOzpu%XOC?p*MAtO(i9cRJTp%SjMTdKm#EQ%2jla(+;jlIm*e@em z(5#v{H#f0V-*K9t-b{q6lAs=(ufBd*Xd{XxViLl5RgUE2tNL|5)U_r`xgbdjZ!|9y zJ>;MwJ(6?1zr0CsO(tR7dn?G4LLm&%9U)03rUJ}wHZk)}aFSPfF5dE|!Jv#}et_tS z7vY+&B`czrbm5_J=5GM~VVuPW*7%aEwDda4p|s6Hw`J&Z&O8eL2+_u9*%O^9nhv$f zM-TJp{3lxD7eH7}b(yo>JqYA!gw5Ohl}_}5@$9i{%nG6@_N0`nZ{Y$G_vt(*^T|lD z8_O7Fq0Y!VWr61D7K>FySuopTz>)wp>$m9P^P*Ut(ny1Ef`Vq;!W@jxh0~!2_=VPH z6WqlLp20ux$Z{n_;3Hh&dn1wv7Ij6+rV#Vzptg1c(40%8!*-KZDqT6{AUGHlp~a$) zH6!Q<^>eNXENHKs$EWg2spZO^NrNV<9@_pMspFP zITSfr`cHq8T!hFR@Ztykl29wzZz!`WFgroy<#cx+_#eN<{>{8+FPQJ{h44Sl%U!U@ zW$*qd$NZ0j|3PrCSO{&r@;$$4{$?VIU$RiNb=A-Ni2Is}s0Wo?n8p}!(1Z?df|sWY zHUX{3b-M#;pa{N)KXP9-nH=+mU9SbZ%3G6;Qe2lOie$(Y4#HGsGBPVVykuelb} z5e@^ES%?uT*ODPmHk6NC=AR|jI@zZK?7B?|U?NA~i}&2XpVKdf;p-aa-o*DFw9sS5 z9q(jIc}xLzF!wjsuJqmf^xYPepC$<$p@KujoZ?R0Ngtr8WFHmF&zBm^-t6_r=)*1S z+fL=c1nbKUYj^Oj-a8N%npzU;&IfhFyUYz!oIUlet_6y}a$h31H*O(Gc;} zSK+*NA3FK-9|L)ghVzes>)O=livxeoQw|=ms+_mZD(|h5aq1E#fEPAz_^R;fd4L^G zSJHbdjDAp8ry|N^_F9t@Y&XDQ5?4=V@~6Cbgp#~L$#e#lgufI1Zy5ZB-NrLU+C6)g zf_6g;rJOszr;o5EK|WH__!iC75i0e6&dH-|<$?v5?qLQ+7inx^R7FN!78U(CW-Zqm z#v)a^bIqV?@`LI$=1uqFC*i*&%f+8Hf0|9CSS*&Vcab9%_~u^U5yiWy&?fUJ(d>)o;-6}N@+V{89kGxbXhZnM}G?z7~RIH{VIN5 zzRF+3bm`y&;^)K|?U^a5uzqwzX7#RPPD4&(5AcshY9HA|y*4v*uO1t~`{wip?jUa* z$OI@qkFColDM7`DjUp@NdJEapn#u8YyCD3gj%LxIxdtaJUEYuP<$v_8Q|HDA3O-6e zZifn{!(xTdVXFRQ^|jT2eWdsbo9)EG7Yf|dhq zOpR6-l!z)3qc=grLB&YHoE)PyNp%J-sBeq;_=qvW4&XBWU8LRus5kZ~kD-!o7wk4O zR;L9V7YYtVahWt2<|;ByyF3qS_mIj_>lFYN|vb?&TdV|bI4j0e-Lt4>spW#q!2&aZ+U?ebF*?#^{M?OAU13 z*c7Mzqj(OvfAR$7m^d#UxqOao8uhrzuJu^T-64v_K|$&gygc!tjO_MHjoMo(_#xNSWf|R%WM5VVYUrF=R89 zsO*)fHYegH>&kz(zb219UG?}>5gGr|$S}sfYeY|nhBUAhwLf<|Jre3dCY9i!MlH|) zXnZ8e)3>=89MBFlz7In^ui23rsGXsPPA*7mn#>7DEMI>%-m{=Q(P64a94|vlqo8x~ zhmJd=OwbuyGmoE1?Kcd@)K)DWK943ql0}>rzO0WtJgP7`pA=Em9~dH~Ev{BV;LoW) zg%YM${`5_I7N^+smzf{J;p7aI7Y;J!4KSF?FLIjlntqbgBKYL$JJ`A5frVBfyUm{b zQk?CVV^wk5`a3j2#WMm#ak8A`X;5$2ae?zy!+m@|jgW`9X~q`)pyP&XSkau$X3^S( zgZnMo93xpiZErZ&yqe>VL9)5M)gSA8qW=usVSyJ>Y{7)`I#cb~ zVpUF*<%<+Qex&wlctsJupD%KN_%v=;$l<8waQ^8LUdZJH2c28 z%SjJmJ%4ZmrfvbRoa*}Lyn1;Go~!Xtn^9?125`oy2b@zE#Tg1DAE>Z9g=)}mW`+SV z9MIOerEYVZBlou!o~VbFi$1iSzIIR__u@78VZqLU_Ab1CA^8{NRrhi#9#OR|uWGfk zMot<2S-Xjkp)F7{a=nvq=!pYS51yN)=jd9hv_$|O}76Q{|}r#RJsI^;z z)8|LfPix#8(0t;vgpaV(CQ?y)aJ}p#9tE5ZOlICf>9fwJdrWia;NRs3vnGPTRVB-M zxS*u1`DTV9k=hf;x7Dps)=3!+cu@#RYdjOL>V8tzhBQh1IqC4Ucd5972YKDl9@cz4 zy)^rs?+L#^Rf|mCL(vXUm1)UKeo3)TdItR&-}HPOcjNW9DLsuhqoT1E<}-ZeQwci$K2=64A?x)8Ek1-(ZBiJ0M}QA|t*aU~-6cSO<4FPHVuvbaXJN z`0fyn$Z7U@b9F^FDV15TvFOzZ>(zgGrg zPAPE1`aEq}+dYRCBv|!l161$THN~P;Q0mBoOB)9_OZp#Q+FtQbZn-$?$_3jz-@y(1 z9;Y907o&B^K}v}Ce*KY`7r$!|829$&+P$2<*XJ1j>?jcTa}=sJu<0+sxSsN4C>zqg zYrJ2oyFck2OMk)PxW(4|Gx|LJ#fzB&cvFM%$!A!8_sQG^m{Ge{lMcPfCIB&kMsMtg zmK#a^g->;oA9WtiT>oxk)m(0_S<=n_asC!Pbg;(5>($c7-T zLwX+mjgG&;4ka~tyKabHA7u?HStjqk`+G2r!eeCs&{26&^h|0aRG`I8MarUt++H+? zn?O%@_zS7Wswfl6EI>28rTePPCF2zRC1Gm*W0UAAvzq5&l%t@bng=JNAcS4o0@Zm= z@g1v>em0egd#ln5>VgZ3p0BcP&@9m7izdJC$&nF{QL-<8BSXkZqY#iAESGPFl%U+E z!QGZm2$q(o{1LF^tgd;kRe|1GV$K32%(GB1y7HPzgC9+DzzBU3u#F_TyC}B1DB?$s zqqz6GJ3x@mE$N+uLfa=52jS4Pc|!f%HS3c&yGW2dBHOW&C?MjEm|1pu(Fkg)z5|r` zb|SO7lsNS4TYo`Mv&V!BMFR#^yZak=Tz-8A3}*ptU*DNOu6wP-WiQ^L<5->5SS%a5 zULa|<3a+<7lNHHM!fpo-&z!Seq+Yu{7+3Jfgf*QBR;9MWv~FsImFDyeniW4tcY(+S zYRPCapZvr~szk>;^X+Y8z4mNMOod>2d61?Zrn}*K4@SNEJ+b6Fq|3Vt_8Poe59Ota z?kK3ByBfvCJ#{T}2hETJdP5J`4ZuI@)H`P4OG&;yKlnVJkVd$@$#Ls@v3cYcxHfdu z!I+bVRxe*kK;KH)qLw(co4j#{P$@8^y+n1$ zYBmfcQ!7bPQ-t71buwvlR$Z`ACq)&S=0e*dcQpmLPBEoK@5EZEeJ2xOZK=t)5$LS=Ujn z;?cCjCXsUaFrI@by33Y=r?K0;i{*EvXt)=EVxe${JRKoD^fngJMgdZN80^h0AONn2E+#C0dXL6dT6sdoc`n;~!2D(Je!6bo<$v^sy)rrH%tO?9IB zb!E!}o`2O1XcWsqq#tkxgR!XYE3QItO)?*=V$93QlOMi;w_FE7HDt}u$FET~lo zC)2 zOcM$zM3aj7>R;ac2!?R{ zXI^VH5p>PgYPsq^mLsMl@^!es?x(~Y1*_XH%y$E>4$7#QGLn5x(6T=9>m_M0O&>x< z#Ac@Io$Q9BZ5wd9s%vsm3AwRL6NYSzPSB|n>|1cUt(mk@X6v=}uvBP;&Eu0TvJHVT z+goKogXkl*Jb#JpPCf40B(JVG12Ya^MSJ*NaNY=Xs;yLAnsq{+Xs*thX4RhFc#sB$9Zp9pps`or};XoNpo~c zsx^A#%J1Zo32&pw2{M2P!DBeO5C22dqil&u`2rJm3un(*3|%ZlTsw?s(u5Sy8=rLb z>DybVLZlzDy!a>WxHt%owF3D8bj^ zfy2ImQT*{y+tb6i(ZeOYViEjdC)?EB3X({3hoHE&!$G%K}cu@x8pWno%Mi#tMH%09nmh(>-z_x>ZMbie0J%xWf=IF%%#@ z(>g(%J-9>1NMyJq=pB(W8xF=92)l4MIvFa4JcGw6d0fYm<{VB)T;)+c^=cg`^YSwP zciSIjNnV1ANZm3BGn5S6ni936oT#Jus=~J-aS~yJ%2q3H{eU8}1hEX0F6)qs19cZy z3ScH(6kRrR3$oS2DEbV^U+DE;1q^mjm!;< ze7K+~CoSU;tC18BboIDe{eGP0*fwJGTAeqXa1Nd;g$pFcbC$38GZ^H9Z1$nj_5cj2}2%BW=qYrO0Pvhe#GbM6@mt8=v8q$0k7D>xoT8k$uMKN-Q_M&0%us73 zJJmQn(rtq?joKUM71uUu3$o@!ANAB6^>Hwk{fJa7mai)Bw)E8S3~CK6B~N`Y8PlEG z;(_&uxNxO}?Pva&Qx#v^(4@Kdg-1VZ8Vw!k4b89p(qto>;|6r3z>WiNHcDc6xvlYQ zY`VXMoixYnrzIJ}isnHk(qJ+fo)qm?9iF5KPXm$1In2E_a9PM#w8m$%h*~>LrIe9Sm(t$LYk&i=SD2g4}P6f+S^YL=}9Qms9ey8 z6NAv4JR_h@PYoS733H3eNrp=f6v8-EfZvqE6;i8f8#e({~}7S zgueW_0o(5N?MdQ|e-HIY0=wpGv{BoWPO4F#z$ZXaL1jc2d+c4fZdMCDDx?9GPnyzD z;|y_})XbPOh3kCFh(yN`G8{EEKj&k8MoC)~DqlUUCJuVW3O9O=xxdPU!b79!%S4tz zd493POrD3n@7*6319}D!_#sG}_^Y%+&~Mw{5ADptzKH5~ zz$(iZ4tlC8vTM?cMN2zMG(R6AA3yvg|Eq-crrH zupZ-{#5OXP-^w_zf@|tY9wNc3Wz*t|`y^82W3^g$-D04TXyq{)Qt7S%H-SAT)v&U^ zkRXApWQ}U&-7&0$Yi9I%lHMu1V3f!u*b_uy3qO zigtzJ#+1EON5Qm4RirN|O^GM5>%8>RtiD9u-gFS5w<}#$j-_#Ad)gvQ@H13PC*f2u z_@!a&9xgkKKUYX{>EbZKY z-}KOG;J!9VEwq;SucrGwp9Wo@Eu&`exq~a;o(yDko_pH-0Lx_uWcZ8L%+w`8ZJX6~ z_geq+b?sZ3sVkg)8d%lcUmvt~BXEMs>xtAp176X7!6D8A{~TEliyxV=cxy(HfpZH>k90}fAokqzlK zQ`KpFBFJ!4;%P^eXQCUV$;X^9545Fu0DlLVIZ(4VijRH>x))QV6PY3apwd=Qa4GMKmZM&o20Vhl>nomy;H z4!K-C!3iynJy@5`s^%}i z0_rxd&vt#I@v}tkmC4FvKz1panhufLUW{@pjdnR}_i@zPHOXo0S6p7#++lY^)2M|& zNedn8_T>2x8q1i}aR_4vo0T`|DJAe)w&(Op867 zKN(u7td3OsVRdI^bY!M>-3euoQCQD}E)}(TjoWL&8ZI0B1E0CZD zdz?v8*saPH&dd_jzRD7OilgS#C-|rwdz?TQDtXAB;uaxhWCGB4_OyBr2MpFm4~^8=SPX_ZsE;KU1XHRA84ge7`XlwNxVY>|5is(Dt66aEE8n=4J1iVt>gOglX) zHGL>WsILAhq5mr>2a^cnmH6m2Y?|_0AW|_ap(^69N&CF)8V!l=fs-WETxaAIo_^`1 zo{XpCG{A0Rl@Otzv!F%hwQnmBPN3wlS75e#573X%Wkx@sb^oTD)RNVA5-^&W)6t0hayFQuDhQMOk!cIBL zPC17>rfaVVyWk6o?yv4Uglz|zgx3-Xscm}2mIx|el*bB7Ou7sSOt?>h#@SNL9d+KL z_pfH_=!0hgv^T7(<&sPzm87sG^>0MWYSllh6^G`qjFvrdPDIIz(dHblv;^bD9!KTu z(%6D1B&x^exJy2qtEGLn)34sinh5v0)epoT+2+ke*mmg9F3fi(7-zhjG7<(LD0|%j zwLIytCyhF}Tlb4A*LMB$IQX|M(Zf>~3F8k`Q|r-5z}O7tFCJvuya#4+rPwezt@+PVZ%F-d64Io$hy7PRxQC3+MxH&isik@tGIy*FeSCR;&Hp zTI}At;@L*qik7wLUrqk%+Q<&9z0tis+P#No&QH%j8p?T3kF9_=dC8W9xzVYrBl}d( zYDGf-_dg!*;}q-T>*;{^!M{Ib3g7IAwW{AW5$O8!{BZQXh_7jVjDz1XKkxQmV-pWf zAJfdEqdr3(WUmf`KDhsNwPODpw3`cC7-i>cS58g@g&y3*PZE*w-BA63{#(^ga9brP7lkc!OBE% zjEwQ~o<*p`z8mJ+!n6e1aXb_%m&1b|nF7uGZn!jnf_Pw!^vOVIBh{)E6)MdT(13Em z9h(+FgU+HcLPYO&8m-L78@?k6pA(q9G%|+k2eUcQWqK?eFOyMi*6qZ)kxyV5j4JZc zGw5Jg-TeVdIufNuCrGHI5gfBqaNqs!--}<6Kj8QNx5PW)$G1iC>-VDg{dci#);HlgVGMhe0G2J9 zKjY8chO9e}kfgkOL=ykjo=Ub`2W#7xZlEpA+$bepH-ukq4a~R%)-|#KBXWKP;>w4e za3|C~&R%G#f4PO;5L z@+6B_cDF=lrOg&wfoGmsN0uNMFRvoJzmy(bNOMU6RCqhXLb(4Hd(0|0RSPgVXlz58 z3)Vs(cIl^mA-{sw9+J)SVVZ4Z1w%VENHh8H(>C4LQ*Hd?!E<9ndRcQ3U_{w5N{t^ov$ z5I5!LJ6-w-5?@z3=e(Bdx_fJ>LHJ02T9ogOsBJVVIS=w!IK`)KY1chIrwPYNWKKHn z13B^6J+a3h!ftIMPS?MOJ+y|pd*SN&Bg%2n9kPZveRy~SG_mb%!Fm1Pa7so_QtNAJ z=aR>$Q&C+@Ot=(Mz?0EKI8$e6SI;^`6i~zbz4!)q=8fMjIZGt^@}y;kn%a-XxZ=fk zejdZ!7y^h!4b+uTP@$X%m)z8f4k58LawCIelE2|){?54Zkat)9h41O1;Lw#EbiTom z@suqzF)!+99XsF2j|N+(^lE0bIBeR|_^izlX?knZHJPjM>Jsfs2|EV8?58yzO=9^@ zpOVf6q}H*wKqXpR)%;q+GyG;ck`&+HFB)tuFvjqARG>TYwO#EaZHRtp#E~P`gyXf@ z@Gj5r4luaS5H#o=Jjgbo5v$MEjU@Gj8sE*&k0JhmX< zGh~Q`^Xh|I@_W(nuF>#reQ^J1aNj;?a1SE59~Q!&5blc@>%)ZcRh04dcZKNXQ0kqk z7CA4z^aG_BvP9l#52h)0l&=GAv7hqCpyqAQ2FtJ65A3g%c+sf!xY2hti#anq&+~hR zAcVgnnDx!^<6V5nk3+sVUbRPDadlDd8tCJ(pfII?#^CooW*|=oT6zN>@ttNC4hjqW8avtolRtHyI7n{UN(N?`w#ze)q_EV(v2# zBKb6K_FGt*y%mugnMS9DXy~^5&f($6?+A1~ABnn55~zE~@jKMWSmyg!qyQ90rNWB1ce)9}!8b$I8D?RSf5_dkf`Z(TYDa>cLKZ0ec;!Bcn z)z@t|wwL^|;XN%z-k!`>n}2l);G=GK>MY64b(P@aG(mix5``c|so^5Y-I*k^M3pD9 zROuI9viv*Mwqs74L){#=BD|^P!0WDk-{l1#sKh-=BHoRFw}^#(0;z28u)1_l@W=+) zE{9Gyc3Gp*v8`f*Q%BV*hu=SX<``qs1K;LNU`i%y(dX+N@Nc71&9&5x+=V$v@UR>Fi&uLZZ9Th7xdLn+-(J$a4}P zw(7_BM*W5H#0_|lIRC)<)822s?Jw`6y%nDO9r14#o#x6XR&}>^ZzkOlu7L?j&0v42 zmVOJ1jyuH+x>v!Txl)obO!zu(pBL%TpvMEK`+)n)8)vwx#U^u}dARYNT=*q0_=_Oi z`4`k6tI(fOo>X!oxDdJ+P?-QC`1Nn#?EG}YJni|&%WlfII~E{2;(7AcqnH~r1~8tc z?x&d*7OhJ(JWSqTm}h*2nvK98TYO>ulQ!H;)Ey24%&mie~z z62vZQXt&cMvc^E)e{PKd3NaZ+jVNMZlD_#j)EKgfYV_iTYb1#c;3}Y!>D(#~5YyUF z$qWU>NwRhMe#}+g%U_n;XES+>h1yuXqZs7hp-T<;I zhK8*Xw(f8{TtIIt!8qt%a$`SPBi&l%W^dRQ6%u4v`fFVi=rXKlcY8;f@Vhg|CRuQO z+}T+vx^T2~=>gF)UMfSK|nvy=G-+)(}H*t0~i&L*=2^Ui$VDv_s+PL`eTU280fw=Ac zzxeT@EA%CLndy6B-07!F%Svr?aT%zMewPKJ@)RWHJG;sl{OP3P>qvxPSiH-qqoFQC zJ`iL1`c(Q1s}g8K5WY~jV?US29B;G|zW8;8rv^AsG(L)9UG>t;Hb4}1@8ckAWL?H) zG5mds45rte=VS(*9z*jmpP(pUx)G=-F&*$n?&|g%vwu44;Gf=Z=qJ4ie#i$sYDLnX z>G4IWdXH>l@N}yE&huM6pNa?Ma34+lR6eUEsT|bA} z88iDWdNwTDq_$&*AOm;NgswH5Pp^u(xMebvDaKsgt}%$>~DxUvAC1Qcdnuo35XUIBrCJ)O~%TS^9x2E$|b`E_QQfv&%HOw zYXGL8l~b0(F?o^)QY{w=M<>7fBXFGQg5aq1lF9bVOjN9`v6M_VAH~oM>fHd(8wlp* zv*Kf-rG2C}O<1~!21{5r&%IM37I(mD0TrkC*kJ~z!W4)Pf1_T^j=HE)aW;7vqqOrF zvCf~#3D|!&|M=^7Jg}11Ze!>$8>|C)6X(Lx>gHpZ+iceezh}#rgAr zj7unb{3(}jrX0XzG;KElN3PTQU{5%-*V|!Bz$W{^CiB52Q-u(00tMn*M_6C6B<%v8C5MyyjbI#4}EJtEBr9SWcRHR|#g(eYnE!xz?Z1JbKF zi$qTc)(QP{h;HkF>d2yd?oQMc=Ea=w0mKX4FJP!0PgKkOdnT?SUonG|LRn>mY}xm$ z4;f>Do^}N$OKO2|0OnZs0OR{)Ej(H~BH?#e@e_)}j!=ut1^F9F(u&x%9n_!#BAuR% z?s(PN852)*=DlERdd1ZAJ)gT5$I<CmnSQE5z9md6R;@JhA)A zkX&+Ln++F#OJ3NFQo=*U9fc`3Sby0DTir!%EJU|M1StxAc3uK{gxRpmAG+!bsc#y@ z33}ISQ%2A|;}AI|uu_sue?rI69LJABmgazxS`X02oYQu=a~3Y9_ncqCwM^R5Je7W` zcq<&h5?lg~@cJuI63n_TRoT@s%%VSVkAJ}T{__6-SU{)0;P+x_J7XI#t=q*mtmZ9{ zEL}}U?{}Mz$IV zzH*Uu{^ON7iZ*-sE<0P!PUr{4$OhG70S7Jx2X9mNDSks8g6 z+Rc!?(Cr-j)J6>c1yVVDst><)ZD<9`GSmthGtGf&1NSnt;u^P+G~P~fS>xtHUx*rr zs8s7{7IQwKnwk|P$G4}VcFcnuCxV$flas1xRUiGK>NlgZsSW&q#FB10VRw;>1nO+c za9&UOo(|awR`KV((iqNb*ft(1!+90H`I;ZT?x7Xm1Z;+$e{BTH{~*i8a$D^L;A*9t zp{_a8k~EWWY!^bNCRJb5=!`SV{k~LC>W?W^pcof>#Zct9KJEeT&`l^ZrKCY~2xUwYsqU&_1{0{)5rH4AIKEGi>etv07oN9T4?=LNLm*YfK{1UL1 zV`~@l6W|N$syG?HkPYqzXf;}Xf$v_aPp8`47+t5rIHglf_jD>9@1%-LS(jrE%Af#b zs|q{I8x#EzvY()g56~%^vlR)Vbc?#U8}LT8MHPVv7A!|wW0F;+sc9*KBcG;t9rC#h zb=?`fSgYUWvm{q7|;jL|ZI>g36Gj(k|e@t^bx~7><41gT)9P&K3L-CwT779W)S4kHR-HjkJVdJGW zPGhc0*jvzaE&XvRN(Q!N&!f;Ary0r<>lV@zt3by9OqszewX!d!z zOrkJG1iZ06Y%sBT`3yP|k#&zRaa_*&@6HiE8%JiZKH{nmU6ttETXrEU+03h0jzx!e zJ#n3SFuJhfw%5rc-s&pD*)>AW@v}mU=T;d6mNW|o8s2#6PHF~BB|eRPTj)Dm%TBv; zQ5q$Ql{bT#X_{{$LWGL79?m#)gC3kSv%t4JF2Nx=S@UL3$X|%(K#%8zv)b-d#}3z#6{Alp_To~%S1?|4Un zIQBy(H<#Km>-o)x&J_niD`rqT$fv>Pta~>ieE~23k?$-M8n&PdSao8geqXe@u@tu_ z+hX|~Xg zVE$7(#gbDIX(UJVX>%17UMVRnR#cf$Df|h`B5pRNL;N;swuLhedkdLw`1hL)+Ecq4 z=k^lL?SnVc?7V;)Lm$)7P+ExHV}F`?^3J!&reY4>AlMa8SrX`JH>f$7^Ipw51wx%~ zN4)(l)MfD;-!&YMM3T9b35xpxOo@`{e8h{djhXg=5xObHx?oZ?wX?p2v-wHRVjZTOy60mLUJw?QT@wz&ece?0+A0zwdbzUArH^ZN1DF@MWY{@z?bQ7-K_=ei* zj=bL7TT>J9jm$!{cxop(`RDDq!=MW3knHM?Mr{BqY;{MIv05Hu+pl;YATLLX#q03v zX3r*%dneb^+<|*}Npsod{EiiLu=tPz!dg|K$=(4Eh4$2R+Pl(+**SC+#n9dvzj1K` z%B1tsq#_R`&LR7U+Pqsz|DcpuTGGf?nzX=Kd2n78)T4?NFb`+E~IC!+okMwhXULoZPNC0|S>8gx-3$kcdlkT$4x#Ql8;F|hNV80 zt18sS;+h#>Rr(dgu8!yDSH(#dO(%NZipiZC#mmh;Iy(k<(eWOYxP{}F8PXjOqw1s( zluE&UPTzfQLh@hu4&5o|_|Tnl+^^Mq@rFIYJ^8!wc1~cuiJ$TsMw-=Tkb3AuwL5tN z?F<}({dEzFF3T~-o`Wn%CrB^?4hFKU%vG)Xw-TI`R2*OJ93An3>yA=879oVy&M}1M zYD>pLaA}Ed`X#i|erc&R9pR3FVr(-|HI747=uU6E_jq&Foivx@M3rV-2dDCaMFEbs zm(c9~m1HE&rv>u4)wj2qD$d(X4R@_{Xxj6K#pm;Gqy5OcaYZ>^bs5}0c^Betr#-`= zA}W3d0u`sk(l$*~GjGKu&n&LNh@}zb^bq|TFXR1%m))2Ju+CnGe=>$y%-H4NXq|!2 zVJEv2b@VQ_D}y%*h&hqX>-du>okVu%;XTaaPPRX1lwP>rqN9>CS;)% z!%^C1(t_{qV$Z(+30}|9T>HX{B8s-!1AK=Z?&bZsHQ2hlVhdcvCcx<6eR5*ESE#oD z@DY$Z$d1{<>dp^wYcHOP?O+JHJxQ&AUTk3ii9(-QJl0m*5QSN0@e(gI$t*tZg~pr3 z|9YXU$&}Auj5jg9LojHZ2@@rTW?zD%j3RvdG{EW_$?|<(U+wnBHqvb99m5~_-VA?$ zXhXk^xHRY8GfESJ>4rd#GkR-e;2xB5BZ2c4H9`EG|L#^OF28}eh7H6u`r|So{(ep@ zjUN9CUwku+myEKP1Hx*YE{DxdQJ)+Zrt-@YA=d}TlFvhp-b}ia=#AmSQ2BIWPp!$b zz2Uz1tX8}eYo8n;XPl;ewS1fiRo6VMr2|rPEpCQwc?#!X58|{ClbZ}`kKbQkQ^(0B z9|Fv#skJh6D%-<6CnD-DULb8tAg$#~+miGp{;FvghSIi%+R^0_(>8j@8^vw<3b@Td z+!hb_ChXaxRTScG6~gWD;pTCWxS@urFhVZne#@@s{dw9UI*pZ5ewFf%8MREeZmdij z!p(mL+=j1!+Ze)a@^EjHvx`@EKE2j=hU;erpW(X42%X^?g;ry@&-?IhA001{=PzWQ z_iiB1J2o-TJO2;7(^|6-Z)c-M^ubjg}=a2+!S@I6 z!Zg4D9#dVVgNpwMt;OA-{KQuK9$x_2`X$Ykt=Y%;-Mr^qCnyo_GMH6`$y#@&_>GBb zn^~i~)}SMv1EAtX6Y((7G-c0Wt9@MUL!uA*pRrAjULC>5oQFvsl!{-LC-m2Xt87mwu;!E*8+O9^Z&=^>|RX zx>+9hdrF(W-to&?FQFgrHz8^ltQ;kzMb>j%@h(2qrmsdSLe-{z7u>**ecdEy#+q%uKPo6 z|HnGsWRT$gF;OA<-i%R#S-bB(wtsC@Mq~2+Z7}-R9Q{s(*r_ea0EvUETjp6+&YDk6}*xGV=4^ z|KR6Dbo~$3-qU}osuKkFzXw_Lbu(W5!H=!!7b?%jhs^u?-%ugsw!apU*GCE2$ldV- zu{`5|YyLpgceC#JegAJ&0tELTja)pz35M(L_(T8RD*E{B9e?caRUstSpG4|cGxE32 zU-A^Qe8=Wbdi8+d{u>eRJB;@|=bC5xKTy#Ro|AmutA{z?y6A=e7*^Wuh-?%O?vg9b zmb)Ny216IQ(5VP*W#}>&+KbR6L(g!b6A}6!gP>Qq&~}6lGxSy$+JeyEFm#OzZ9?c> z41LUn)+6+ChCby&YY}=DL!Wn{DTFRz=<&MCd|>zUx9G2;H8cAGy#kuzh+N8Yw8~ zCkSm|=vWu}Awo5VcDT^@5c&_Dpp#uFK9|<_7l!WPLSIMdLkvCEg$^V1W`>^QLf=K` z#SFd4g}#B%A%@=VLZ3kBQ4D>|h5i=t56M=o<{}aG^!&{|w#1g)Tc)ePO=h3<~f^BH=$3*8=} zCor_+LbpQbK@2_3g?1uzSB75YLYomfjiI-?&?rL3G4%H?^fMfAafZI^LjQr#4^f^Q zz?Ijz428$Ozk7fm6X35N;Bo@|)&pEYfO|c_wFJ1q16)UdA9;Z53GiJHa03CBdVm`V zaHt2ki2!?hfSU=htp~V;0FykxPYKZC0d6HgwFkJ10AC6ha5n+|;Q{U;zzZILl&rK2 zNKGr%cb|uFFQvH21FRvyr5@lu0({Q{tVKZKJ2G@Xg^re?2PpJy8Cpf5J!R-B3T-Px zKcUc6`)m*l#*IW$1)Dyb@N=wv4jN_(_4JD;7Ya$uw4X89+=})b6o@UY`0sA_iUA5O zF~7e!-yH*tlk!(o{2AcCKzKIki7q`Xy5Rd$4ZN{~PfyiGV)<1`kYY%D0nsI$C^q(} zJA&IKifwLSPNF#34Q!hzZtVu9C5pSafvJh&K5k%2VJj_f+J83i{0r1fvuXc@zo%;r zE_|Za=zfpYn%r-zcw~<%eQ5`Pos6g2S?0yP+wMb=Kb$# zvD*UgKEfgJdq3+g&l~Q2oO%3iNzz{t>B87LohpJ(?dZ;;wBR?DAjNQtfJiFmU!k0O zpq%Pn4(C5XbnW5gk5%+QS^g*HLRs(NWzDQv#=wQRhqS+{l<{N`;L|)1`2#l+wO`~A z6kf&RU1coNZBXQrc^oJ9Ucx-i)k+uP*3hG#TGq9&K@DpAijI8CR#z1kt>!{ct zNd-J1<{X6s7#ccmzhTH%zS4zR?o&`^aX_WTzExb&i+5XaYI3$r;EA~?H2@4i4<=t{ z>bcK-nkjTwM0)Q#J>Xv1%)~&fM?dkjmo-J~dJ6mOLo49vm-D_B^ublw2OsnGL3gkJ z-0bqd;#ri^kMSVDIrb%4;8V}Kx~D-r##Za>EJ z4v!K(lF*#1=?*(jp>_>y*hyF^E z6wdemQaGKO{bO%0^~#95XR6bit&b7iT)q7t!?zC}h||Myb0O~6G&c2-DBd`^1lqM2 z+Z=|{XJnEz=;U!!$Lqg_z93m&ZyvB91-+*c7aI|e@m1iS_u}RO`uxDXOB^eYbH1(X zPZh%cq@1tE60T7^G!Nqbuz~hPHq6{&kFoYmWJ-8#{72Om@NMhSvbOl6YKu@@jTWUJt70Bn4UVi#QAD?)Jc-;oug;oSZuPRvBMohw7sLxk&V}vf0 zJ>}6q+Mjog8>b&*C!mgw_R47a;*4YLq!-I)(qQTrPg5PxyI@IE%bE0y7*!~};49}d zKHp~%EuZ6`YM@9?pH!YEy&Li;qDgXse6!Kea(thHDWh+VD+0&nUo=bCMbw2%)!(FF zs-lCnRU2&oj2qw57)C%n1o!lwVcDty-Lv`r=5nR$-PIa-#vO@26VF38;9Pwp&-a@_ z_$CbBjE748zImYCC??hSK6V$~z9m9ezwH#R2z8pBWHWJb@+83j0`dFqCwW-2;}pf$ z7kd=|gxEMUm*$_0!M|4A&cV-tnW!l256Cf@8aEmy3JHMJ$v|o=DO2IiN>Lb(h$bVZ zBu0uc@TpJ4sWTIJ|1y`ev1%+3Eq)qN$Ga`i3lk!rN%w696J?C+4EMbL!u{I573(M5 zues`witc^(Ht6;B^|Ar%+u)BusX=irUNK1#_?#zE`*v;zLr)cQc+CF}Oq7kH;B#BV z?VCF7Q9nyF#Ue{=)MJZwism*>^{L;|lTq zig@G7@P6hmBc9cLf%UVYm+?&O?1Sh=4Gyqobdn(Add|5g!rB+^BGr1YqQ30+lc3RC z?=KS1L$9FlaZH3Sy#G8xXVG$e6uYQTmfBZo7u0{vES)Fw`Q$;LGcVD&;p3VKjULHM z7q->yaip)Bb_@E<-=16-aR%&GL1wW>FpHQ@S$K8^gLH~v;#FS5fdUH+?@+Yz9SSqn z0mZZobaEH73>){?R(qEq{%Wcl={#@XFVvq^I$oYby@<}CI`>BCc2W^HdDldEAGF~5 z)6nsKTJehHL&r-ce0&#oa;Afh*CzD%DlN`8g6y^^4S&4J1@ZNQjzVhgwVXfY)wwpE z-tv7F`6)?$E=GRL0sPUNwcH}Hd{y7MC>Zmt3!vL8QTR&6{ixXG8NwBN8B{DO&FE66 zFmLEpv>R~z1E~Hq_#wZH;P&H#5kAUBhkYQ?7|px1wbZ?|wIe=J@4getYc!vo)U&>0 zlcbNJe*GH7u`>mzue}5<*mR9+c&92+Tr(Nf3%picT7g|)S%F?yG&*yIY&x;*CEi<= zhmc_A8?ib$QG)TavW-xO5U^5KHHr*+>BCjCYObj6mi-9UV7wQH`qS?xd;9P!JiW5v zKz@XwhB!nY<*B~Q1rD`I2ewS24!#SXq?{xYy3ue@%gYB667nUVRzy`iY8k1*Q6k~p zl|fJEM@wbA=T}C{2M5+_LId4r5-2}NiOJBT=I&#!Q43UwHbC&`@Pn>IDQP8p9?80M zh<8TES2lU6@F8q%SX(-y-a!ydGu=(&yG+$40}o?=%JK!obscKg+dC35t7W9LEKScO zU8eIL7rgI&9{j$6eR)v!~PS^Pn&E#-n3JOGC25M20E&h43xf z@bL|~CY%U1uNMzPhOS(I`)uz*nwG7W<1(A0HD@_4lcnF#GU**2DgBnR_70{vzr&T= zcXmYq9tr~<4g-D>2HYD4tO*0|3j=-`0yw`XLBcx}^Z)M*ue*Pg65Rj)_!8U~E<-sfo~fa46g4k(%>Vgl|nEf#h(F0zXaQ7frbz zk`~E4?}yM$<-du*{ZV-@s2}U(fq40Q0si<0L-AFv-Duz)Wtcu4@|dvVy?cK0$*=F2 zwRy_@EJXCdcVv%ie9zne9%Y}#S?DT8=nw2)pfJ7X^$XD3lekl37Jokl9|ds7R|=h$O^V2! zVcu$y(Y5gHIZZ-8GG_64FEvI7@T~;djX-nkG>dO~hzQRZb;byc zf~cvXKG!%SgDx|gdbPsdnrSaWhg|6QWoP*4uIFDm%t=Pl9Nobu*9+qzqr0c7{kSTt zir$=(31%kHuU7%xY+_I*&7`d~Xndx<7<19=`55F*BlQR-= zD5IhACqeB4)7ADu<4!@o5b2L*ABAB&Ng^2~LQTOuO6NjlIIl(I79;7$o8cCSeB ze|)wDL>}=k-b*+%if+Jo6bxk*pFJ_+xez5#QZ9+ViIZQ~xY^*;;T%|e7&<#tiUmq5 zza-AZ!s&thRQgI8BiCuE;`2DOAV9b4Fd0ItG-p?t3{3@f93-r`L@;AO-El zKbY$3sLRfS*6WFD%TP`3PPyIz)g^xlrwWE9^~WgrBKo)2AF0_=F?`InfI?MmVK0qd z(YC*hSr@*oX^fb2UdIUpyQX~%ZB_W7=f^{U6>(Mjg=VDit*D!f8vOu@BKK&tJn7CG zBnq&5G-`AEaDT5qBI^1^HPENG_z#^SdNV@zK;4q$M>O=;W)?rfIf?vCpgEQi-in~< zwkzShjnjf*7Pp%wmc;V&J5uC!z%r;Dbnk?d%2NYR45t#^u|!2TqH_F96Eha8wO1$m z%}0FBVZk(Y&SAroDf>_j&z;;WAPxP7(?Cff&7x_z1nlajF}*!1cdgfpry&+k!!r}Y zcP0bvyB{;o_ow;JWVkh!Dx4If8moe-{yK${PLMDVrw+jjbTYU=$Eh~m4xXUGF_0OJ zQ!haTJd6PdSP}-xl|x$2mRCNNq3XU#oOz`u_n;m86Dkk(>K&qN{>9mYw(Riw7GB>k z#7Q=uPQVQS@c^=Z`D^pd`6S*A*i142;`?+PiuVj#4FT0R8PBru=cL3sHc1t zh3_ZDon{ny`ncd@622KDQGA;UjzC#(AoRBg*$l}qtm8Wi74%=*B=(bMp@xd1C9TD4KzOf8fbj-HPHBU6KRCbPGX}u|A=^JCj&Yz$ICO7?2A##51-K_ z{2t~K7AC$ks_>xtU{$B$#lUk(%5LwiuMMO=bf-1lc?qZ3lWDnUg-Lhb0?>TYhcs?O z-FcTl|6$Na1bUl5A2H}-0=+|^j~Vm{f&NCIPZ;zmf&NaQPZ{)Im%OAXlSnj4b3Tm& zlHVpog!nIwdsca1QpqnMe*<`v2B#Nn!GqxczR$5HJ=t2mgXUjO`<@G;;7wl7>OnX9 zLD;agp*$oR!V%0XW#3N(-ljsWsrdYK<(2_wkBmk&Tzn6qysFxMD-GX|r%R67P!6fS z=29)}AxTb{p-AFPJbl9q%EQ+~4M^+_kC+IaTk&0!`x1~0=Y8sw=-e|2lIbawCJtXi zQTA_RuSCJ%dupA>zO)O}{b$sdG`%BfpNVm%eLDW=bRQPh!BlK!2Og5Qm*dWEqAI=v zIvX4-{~z)FVq5k77aO1{*NXQ<$(sdJ?R%9f7-_0|YO<9v)%WE8xZBqEQ^Lfn*H{x& zW9V)WWT)Q30UGns*jt^?wSK2s=2581=UZQ^4dhtpm#EM@cu})j%jZfTU^JCatB@k0 z+k;%yg{fLYu646t2jj<8D40Ky=vpa?Q=zRjzhiBF<8RRn^-{2``zwX=Im^|;MfP*3 za}Kf?Q&WtWSCMVkWvMi2dOJ>^LtUL6Z;V_4k4`ARfmP_?rKr=3~i{3oHO9q2H`434IPULph z9sFy5Kk7devA<-W`@Z`*qRI0Islv?47*oee_^BQoKUK5&_8svI82dc@2$d$Ub@AW^ z8^>Mz|sbNxu?KEE0ny3l&vS}n$Xp^|)EhmT&Y|EqEu_h~!>TVxRRvZ4E zx`W26#+1A+KdKqR!KodZ^Irlt>hhzOAsnRTN*xKfGRL#gaxB@<^<;cG5A6$|;k5QS z#(W{ChD3yalkzu(zpH!;8X{=MAjWIaL5#*XM5^SRU{JdXG_TY1GWHkPK)2x1g&yKc z7e}T3^&!7YrP&u^ANdl+Dhc=j0!By}voFHF`BQq)a{#lD4@F@<<5WI6Ct+kp^RnUj z+{NYW^sj)+#Pu-laaw6T>IpSiewz%?SUJ^L4JUw_^t~CL3kf4zIv))(SJ14DI{ZF@ z4#8LfM5-W-`hS(s4JSfG3qAbIN(u?Ze1u~Bc8Un-hwi%%-J)qn&oAYPI1f;n29V*9 zZM_yiC_FUu#zEt2>>Xd|)CMd7IvTK`;WJByt!q-~(h7iOUkxmr%+z$p&`5H|fF0Fb zrpkR~9(=UN6Z)FeH_p?7{0yz24R>p{2^0pAEv;b?qc@PD%5T=rUVflQ3S*=B<$Ixd zDc5u%S3GZqI+szb+roXED^J-6v()Mg`zKL(?I;O>6={?^-to%5?QR|~Bt4J9OQBb? z!_Mg8s-%&B0sC-mgmydp3Mh+(wQ{o*U-|~qZR5*8=pLGDqaE==NySWmOiNtX(q&X z->y_PN?lBq>w)VhoV}ES+BB||!lthW-sIi9v}QET4o{{)Wo2{u-odO5%S z(ObF>O0_&2k$M`+ZgDJ^(ZjpGnr_-PntK>loi}&iy}L2$c}a6G>~w0j#Sc5j-)QL^#1IHzcSWUB&jux5 z(#KcwScv6wlsa!Gfvv&jh;K(aJJ^W9oc#g`)}>nPI^BfvE^BH2XTQaQ`Jd5q+MiV4)$s1lsCnz0x9+UPwd{V@9_Tr6`&TmXYYaTjfdNd+ z6m;h|81Y+)^;ZnMAOkPLZ^?3tp%1iRvKCJEbX2j2kHKQ#4H15e7pIt)A|18-vB zEmyD5XgnscPkC-AmtBo=vdL~?v!ZkXp3tLcll@G3_i6n;{3^JptYR0H(mN$IeyeKy zRw;M1DL|V9j8_2qU>@;UX_DrhI-KF`2Z8?uN%I&qUnY;)-@WgJeXxrA;JAppAIxtP z%P}#C5#F5R;2yO7nChDoROS;TH|+}0E&&}1&=K+8q`>{J6wmWb0Paa?1C0@%BWFuv zfb%=ZXt0SEHT>(p>o~#3BV$Ms#3%)H=l7~F%Cd5v%@O}wJk65RPQ_`b1Z<`Nn@NDJ z0Ja27RDg+I-Q#|Jn)4YOQGQ5snr34^cNW4ppeu8OV~OXnZmB}=1&xV#Z{T&QY`SE= z1qCQbK)1?Y`c~rnvD-TrD$(q8G_JK!wOoSLik~D}>MUlClKux3(q9@%KN3n`<4b>$ zD;j#~FH`At7GkjoJ*rGSvP``S&?^C(D*%1WKxb%*4nBd*+5L!TqWh@fw-nkbSdn&C zqZ_(7AC6W1rcmXNRL?BIIPQ5H$$>EZI!W9~HBWT8_Yi3OYo&W>QKt!v*WWsmL(ZZ2 zj5keVASgeBkUvv^rh!$!-yfprZ(8pxH0Xxx8rxvk7>D-$7vsKlBBs`fY$YF@%Rs)- z)SE6)N7GduO;>ARwKq<3&PRTkUK6vGu89`7Mtq+LRbq4*^=Z_79jMTvBI;yBPXZwS zWv$sg&)w+d!`MC~|J^UwkEZTC4(04d>iEHls%41s@o8$D7SHC_lAPlFF3!)tlH1Q* zy0E+H)Z@aAmqsQF6NHHzN)b`biZbOSeo21h6>|_}@h<*+lw4vX21+75kLG+nKTm@E zEY^AOA-!~>J68MxB&b>d%pmi%(~Gv!x-I?h+@y-F5H8``e6s0G#TLzLbS0uOmhX+5 z_UFh&%5CIkOMF&6usP zEbiN)|9KUC=EP~=?!QWfkaR!#Fz!n+@|(x6yPdLFpPF?`|K|#C(kDCI(*LXqAyWSp znCj0Or8@DbS0C?fqqv`({KW6P+&;BtJ>UNcV&1|oU+Pq8wwN7n*;d&!`qv{$yF77!?*A4zW4Sr%blL-p3Eef30b&F z&twlw780@$wg6!ZN!TIm%MINL2$KmB5m^Ev2towZ2#AO*A}Gj?yMpY3NI(%mTpvXr z6iL4NSDka0o(aqQeed^!On29*v!7F^PF0<%nk|smBZx(iv34+qJ`76vNtDu+Ot~XU z$tF{-ic;RS<0+N(3S3BJsGOj{|4d>pRXYx|&N~i4TrGZH*q&8cI+G=hs2J79W1 zctcqkUP_3(zDSgFU?+8^@+XxR{y$FNGxhnC*L+hgs~zhf5Q@Fl?+o_34~4{ol=p?a zo}523^;@gP$TvUaJ*NRjc!in5E9D(#{!oD5ggXP^;@Mjv1tYOiD=jUi-(`X(+g3W* z1gQc+y0I+ZkSMR`42tp^z73bV`c$K9|H!_nDPtI|+|N-azfkP^0aQI^SHBbNfGXV* z9TEJ5r|&_$4C)$iIiVqo1e_?Dz8fjQb+(#(sV&*2<2oyX{UPAH34UEhvp~qrx+}`d z84Pj_lR22&3E8IA)&1`LJ*JD_!$SA>HeEJt#_sgx$cFQ$&FG>pr#||kB-RDi8 z{eq#Ar(H0A`s^+G7uq))HjjNTn2h|==!RPgMM+q^w}9*I>57^Md>$5 zh6QhYX6M-l>11S|oksEnl00MNl~T+NuU@|M?DI7qz_X_V?+C%W;^wV8Pdt;;u6<|6 zzS+0x7FK_-q;KNxeLDj!S542>gtQ--M+vkLLeB&=FVNQ62?G7k6hnv4PLTLl1v+MS z;z0R{Kzl;yF@WAJ(CH!ca6qpY=$sG=m$ZGK5$K{2dN8182y{sZ<#{?(pa+G}@qq3o z(8EG#5zt8jT@^y%F|2QxKu-;!ZvtuwbWI3-8qhx*3|$vO5elyFmjXRMgksV5Ju1+R zA@s9+j6)VyyCvKPeMhGNxG@4OWx%ZwU>*Z*j{p-HaAyPR}@{_b4#_mBZMEt5Q;4`rm`?y-Pb@tTT^VU+H8A`v8Gohp?FI3 zJWtZ1PE?5CWU284j2d3?!1%^UO$ASi^M+$`Lx@VXcrCNWzqf5$1SxvOo+1${(F;ad z?P4qKq}B-&tDmQN+yFX1;dHaSeikTmo17)Jw_v$Af^Tp~m}P4yc<4in&$`m~@|*r} zm@bdALqp2oPB(&Yo(;EVEg@K)AE!{6Z7Imyf@j%!<2hU%+Vn~H41RSgVche$W8C8^ zr$V_(x6Mw4@=}8%2u^S}FusjCY%w%@F%i^4%Xz06Jx4}z-bL!(9&>wKw#C}E8=vXR zPRf}!zjXA6F~IcO>C^Vl27Y3|=un=mFLATgDLqF6=0x}Wm@m6sw5;GV8n01QN{>w9bR3+ z&=D3t>QT^<)#Dl3m6f*Aw_NoT0?KFUPocUVzx-1%+eRO3xs0wR-Kg_-`Twm^H>*Zj z!6U9j>k`Wd$wKXXOb{BZ;L)KF8mq6xI%4)?BAsBI=*fDEX=D9-f>hrkB-I#LUMrtr zY?2-vn`W~&(4YCkg{Ham?*Uo|-=}}Q%zxmGbB1LH!&n? zt#gglPB>Byk5sUus14CPJD7p{m}+CCkZ9tox{2;kE!6L&_g-RDq)lnI!)lgy*Ic|6 zOo$afHm8aoH&@xF+mVt!-t{mROQ~#(-G14lhbp`Jam&^*|2lXN!<_v`Y$42%ZiweL zTJx3B0%XJd-Uj)><6N=jM@-*yKu9;Mk5F5x-={x;Ppzyzg`dxbKYxp#zYl-DgP-q) zKh1gc)1Ie(GF4enZKmHG3~~edI^hC3gWlzHX&V}Ji9VO!!wqa9Fj!f0nN}k)z3PbQ zI#7sU%%V~&nd+)}+AM=*Q+SBd$zx*GdiAwx3zdEiM&e&w?WTCO{$6|}S!HC>_-+n3aFkp50B5gOn)lQf*V{8^59l4XRuqnZC>~` zJ=xAF(e;n{0@%(C=kvSO->63iBjzsuc%N> ze`g$L!G3s4e@z0k6rfEC^aa>rd`bPdHvCaPG<(=eM-uPXPP$(^nXP!6vx}hb1RIC& z*Aa=;V1@7t2G5xQERDfqb-w1I)JdeIQU4Z~2XoQjT@}wE9k*C!*<+edj znQJllWtlSnp@l$)^B($e-a~OAduqU*3b2<3>?N{m(^!jhU3e0VdrnrS$l9mSf?S-^ zK^HqsNeiyUNRBsE9KeCatYyJp4y(qF`ta<$gL?y6@?bkCL~^)%|8El1a=kHc8^cA84rC#7Sa z#pM5r-_SVw>YDadRqv+({H0_4Qh{$!pZ)vm^!*j!01Y@m0S?rF0~O#P4LC^a7{K3m z36FJfsPmd)s5wDMA533w)-2&FRH-xzfMX>3Ct;qDP37hVvjBw3KL8u_IJrmYII`Vx zrUnz3>^9j!g=OnzaAk~X|3i{#7oI(9bgDSAn+=N}D5~94QVZT+8s0&KP1QOJ@b{x+ z9jXP$K~VXJ6&%P;m&Qt;B;jj=dO68`!R3B5%gtatkTb<`OizpXRD0+u1rRalJroMD(9I0beb6gbV*cH> z#2FvKKC)~TXT0Pegy)Zp6gtRyMU@gyq>?6@(Ic$w%TiAXPa*9yS9Gq{+S|~K)9i$f zY=lm?U{bn}XO(AR5?}e-7q z&>4Wq)}%YAVpA+r8*W)D<`b4_245(mKH%-6ig$yIt^Qru1g@;QN?xG;!C?@b`t$1y z-DRrm5WTw((X`59A4z=nP4#&;A(oE7=RNMDXY7X)2(J1usU$uvr0?ie};i5N>sBS-~<4 z>>;)Yx+20Yg07`X(4~@`NIp}jw7D#wX%M>ZWaZd% z?bYhXAOur|1Rv9q@u%UdZKORrcmWSWp%dBD@Z_4tZw@BVuQlLc(!u9!i9}`w2XUvk zG%p)W7i-^U4Y3u(FsOzZQ1@K5rKu&ewRCQz?wOGCvG-ORqduqQL~#U?(}7f`fUtu;t)5C+MRuYj9W;43{}D(F|gkXbeBg z6QN{S&kSvc>>E>8N_&pLW{maOk`4~KV_aq%gZ!|J6B@BH6??x2US)iW_kFV6)D?61uX_KkR1TIZX+wAyw zvFtJ&FHEhSX3k+;D7#EN0Iz%deULHwtVli#^-x9lRwxz`1V+4{2456c0wak-*|aMj z{PL9@_a^^%UPgVy?-Jg1xU4k0a=n>l>M*0c8TRrE3V?z>%8Ad0BN)O`=N@f%!p<5-=XsSUNI`-tzR~)`z{!&6_u&+ z8pAyBFS*@3q0`uTH*MXvjV-8W^Cp@ImZkQc1~99Nmk;ffEb*M_65YRvw_h+v=V`V4 z8zcH`^1B3n_mQGE3hQ!TGhJMzL{E3n-2p|tM)y-fB1@S zv-bDi!}MWIn+fyO;65mK=CLX}@33>=iH&q4=|-%ziDsp_GTILAM>)6f{26tXsN(TH zc^u{KWgg%t5eeZ@Qi^<)rAp{1_usFvMQq=QL`Q#4c+Oc9+pp zF!>T+V3lvo3uQxgCN#{3siX^Dy6aGmn27zTV!$A*X2DCByi8~ppu}4-B>2{8fX8bk z;VP!Zfo0Jy6&*H`D7vL$7P?FQ+^{0g4U2_Rv4NvNc?GXwQ?b$TvaEk>@Z9Qw3w4z9 zGHtWQuA}N3*X%XVybL4hHHHoJJb23CTvP;vqv}Uv*gSuCFaRy3VzIKb;T7Snr`2oa zD&HuE_^xMr@P=G;Hu>KK^<^;O6R7AFy_T)%Vw>02`yge5&{d^Za+I@CBR3FogV*2{ zhy-+O+qTUUk$9m}kwK3{g_B%?R2t<|OAEu;nct$Rnk@VPnv=779P2Wsws;}v*bRMG zu+n)PPkQx`aPWv2Gi5j6@>eWC3Qnx2mY3ed6gcZ;^i#V%yN%UEW-}7SwLo7UFm(7< zCX>4nheVCXgtRFt*y!2SLl-I+)S%HiyHh=SAxnz+?UbY%Y$rt+qorJ4XhkaFxTu7_ zje>HYLcua?CX|yRl**};e!ohG0Tj|ti={82bQMyT72tEg=Rw8Xh8%0-?gaCju);1Wu0lU8){mxvu+>)?^N&EL62(UK?uJgq>K0z;hFf5B1)3y zxWDkzXpYA;W$&if`| zSoH`vOm&q%G*Q9>gAY?(!cAO49Rk*aF5!GGp)MpaR);R(ST3Os0h6ywSimLRpG3ga z>k>wB33UjVdtHLTB_!h+^W^IiU?yYL08~J$zawBR=n@_Rp^SWQ3IfQIF5!AEp$-A2 z61s$ST*7yf2(XvXB^=5n)FHHZEnx|>xP(WO2(XIKB@E*d>JUK4bP4bBdUzy>KqMP~5|YuQi)F7ImT(o9P>0a&wfDGELgg&8F4S~!m^Tcm$X;1t)u(oN z9bw+txI)5dd$H5&4D*b&#FKk*xHmjRZB9p0J>@MKd+vphf3I8hvpB9`-9lz7q58!; zi{E6|N5@`YKexT7){k`W%KBB@yGQ++>fNb+hI_}p1UWoitVMRegPY zoZFl7&e}JG=oQ?VBLQ?cRCa@9ZwhW>CrG7YChMg|ChBE{pa7sL3Xz4GKjX7CT{m{U zMFKrg-y$XxlN}E8-89+YO*ePGr(rV9<-G~uOo5mQeNZICY&cyl@K zrUoM$T%s7GD3*b;x`dm2TSZzZW{4N+`vOL^RCFuH8^m2~Vh*jhjaVlY>_C8Gv&DTO z1|>r@hD@>XY;aGj>3@A*t^Kl-481bxD8|;s}T4Q=? zR=yGH0r+&(C#~KCAr_gEcjSxMSmN3D*P@l(8LjNhQj^vQdLRXc>-pD%)-zG{z2&LJ z@D@k%yJ(8(xrqWCDd1&!ZxJhi?OND&ZKL6T+fa7@KR3qz(+KVU@lJPEY#wRu4z4}W zfF*1WJc1w(mc%mPJ7#Q98yp_Mfrk;?!P#m*h&Q?i5hOTR%*~yCB=O|Zo`f8Dkr8RR z5f|xMs(ZG~74}njdz>h@$6R_yFp=jHLNO8PEw3nM9R9E?y+m>|n}~31k|$Ao5u)or z170VU3zgACJ%R5bvJ;_}rsn8s5IV5Id+!HbCd$1=hBYy^hdR9U3V)fb7=}7osxhlz z2GQb-%`MqP2#zD))SJCfXJf_VsPGU%E*8omp&yx(s>6%s!&6g0OYC&MG8T;L!;r}k zP0pR8;^mIhvP!FJEizW~1uz{P0@=oAarbcu$fjB`-U990MaCcH(|B_=bbyAtDxwBw zhMoYb`9-lt{>WD5qpP&wb(OZGKs?d8a;No4MQqGGxmfg8NVcTa8_)L=Oo5h>R1)8 zV|l159(wFnd`Nm{{GDmWSWM}=reba6AYfqGE+j%obfnVexRPeOn`*VRVQ*#zh$HPa zWP5+(@JksjW7l=gkC%CBa=wdUn=Jp=Hk9JawV_^^-;B3;M7+&|*X8`g+D^m&pRs_@ zYAZ~RLO8Gz)Yg(%xd*FU9QCYSf}X8E)I{u-^0@Vf(U-0E;V@F-a6uc8;;*DJwYSheAVs7zgWVU>S`aD^!P4TYq%2)MKJjkJhEGKQ@W83OL6BwgD+%(JKQdu#A_N zAVMDbM@Vx{0`AGcIx^OrFxFXyY34$f1s_M`rp!$E*pj(9Sj2Pu)Wu=oMLG-ZHTX&N z^Hfs@Wy4&gXd)J&j3`WF-CYbq@Y+jsvaPuU1@t{l+(isId6gp;u(|e=2>He&@+0*O za&zt32>Glea^1Zj`j+O}D-rr0N%T5F1DK}f+Vc_muq1k&WCPck=Gv%U-_DAzlqQ{Cea@le8p?1y&R%fj*8*d3Ab=7YN$OO;ZBd?)(N3l zid}m$!gXt>naWNuJmkLh)IHiXUIlbp|6}$*^1Cpo8*RwShU1iOQGB7X{c*L8PQ|Ad z>*`JR-CWCR>Y)8mvi{uBXalWr*mHoF`yrlwwA#jMHo3?tYrNe<>x+?MeX$0D^9D2PkHc$d4#-B=tu14e z8OE@=_EdQpby%ute+~l5M?n$hH=huU}VuF~BCHr)aIcl}hSWPb@+sd#LxC zOaXE$!#i@kp38MT2blg=_AX`ev+{xCu}PPOK&#dtLWx~HUcaZYjQyyrJ(Ycu>1g{T zth?#)87)+rU7pc~tX&pUL^W1#ZOOYmjvFfF)g4F1r`s4lN9Hm<5J~<;J^Vl)W4u7r zNB9L8dMv~E&GHn+^mm|CanCS>jnu{4os)Q59{s?!!0*7&WnfM0m13J^D|pP+cA$-h z{9-e7x*1B@VQkcR+1KgzEr_OV-~=^eC&;}b9p`nM9oU7^)~fe0(pHC~w|Kp+bG@w^ z?ooToT?~#JqNUI%1<}moQT#Y*e?-=_ul*%#Po*fF2^F3-a3ZXXVS-UvA@&zgoWZa) zpAAMk+T#gt!SROKe^QEl6V=vXxt_$9eq8oVj7ysuZrOjqdOl=#O>X*jz3F9uw9nNo!_?+~ zEwTBvPgU9by~ddRqjO^Z(C0)cc}}oH*yxb>ZQ_t9#eLA>oY-OVQ0K%ty^mlOEPIqT z(#hewOVc!05O@s)XFu!Mn?^(u%>m+!I zn%_RH&Getg48Sj6a2``;GjatLzPV=FQu`#xGYT_nxI7HhqOWU|P4Lh3&N~eN(|?(M zuf2vK1El^d1c!?wvtDF9PXyX*esCvu z+Mnuh@(lSy6l&L7j-maiPLJqB*jlmX>(t}UK@+YE8xc9% zX1OlS(1Ef((3!Gdp}$z%x#~|TOYOTLKBn1^6&Bz6xtoev+soE=0FqYodJb`SzqN}*iM*V;BkpH(ovvfISnT`%;QBrfxdGUmthQw6 zG3lxs6C$jyZ*KsmeUt%M+mbTOo~cjG)Y6#vxWLqwe-7!N7i=j5*#U2ev>G; z8^L&1j%%^}OL+zq&1HgXR+f2bbE~}zru#A|-kt>6@l^NOO=R$d2K^Gny(nZmJmZKJ zKOZ2wydq~%C7;DiUO_WyZ7p3J^J9fW0JE{L*^g6>7pv#AxS_x9Dmx9h99I+h5q!=R z?LGE2k>t5dl8I|~!L^5;$hCg*Sfl#9)=&Q1*lALVdG^033Tc)3G)S+9hviIgGdd>W z{!A-&P^4qW1N(Kqh{{;5-ff1%nX4SpV(@V04burwemdjN-@h0Zb%_bTrD}T+{aeTo z{|e0OZt>Jdkvg9pgPy0`_cph+e|6p3*SuqA}Skht)JQ-_N^ za3A5Wkoy#tMZ#~owe}S}_;8tu&g56*Zep?iA{udb@QB0Ja!;E|h=&l;7v%;)EQ_yQ zwdk%KVgX{SgbT3V6TT7pPygyS^*zeuGrO_w%x-7NY*wA^m2zwsnYDkz#Ql7=?o580 zx>CkvP5rpUcXpw&u*Kx12s@+a)vZc%?M+_V>b1(1RJ-&s8$9JOA1wDPx{kgf>&=w) z_HFS$7h7+G{QmP^8)Ym#L+`bmarURA-g&g;~BDcc2VA8qxlSZH`cNSj;~?c>JGdwBQeN zXS&btDlp6JKa+{e_tt1g7^jP>|L zRfMR%I6q;^<&bW7~lGFX$prnc*KymY(v() zX*+d4^dW8j;&$?V_e1hsx1D?sen`ISx0CNX@%bAa%je&)ogClR>qO%5sQK=7)_+O1 z=a;vW?{1w>>`QdKf=ulz+a3AMrrsYW%XU}lFB**d zM0}j1@zR@Qh#WtQ`n^5cuxN50_=9Q65E*{(fph%T?d1A-d1_URu-?GXfDy!+AB#dFO-cjD^ z^N4LT8>Tz`7^&b4xqgi)sA9^y8>{t3cGs%6q^(&;Cm=moUaKF4ufZ7hT$zX#^8R9p*rI{V;sK2D*M`7 z*?qsUpgMXF?dfctOsuloSYY~9N6A{xL&{vbFZJVF@Dj_H;|QM$5%5iJbP0s>Lj-&i zjxvGpX^r6bv%JbxCXk;_CHyR@m>Qo!A-9=vJ1&c3Ll0Lni;J*e&2{*&%gb$E9TGc` z=dn|Yu!3)z?4j>MlsAk6x4^LVp^|!a%;kDCdPkyM7>s`ogK73(oI)%}uBPC)5|wHu zJ6ExK2!2V59~f(EYqzy%_u*{_U1V=J5eCrIX7~lb?%>6Vpo-FxJMr6*TBbF+Qjdy! zD6a{dl8ruDes#lrba0obGnbj`kl!gUcewkG2y`JmFe@`F!w0n#rau{KX=RKW;T9|S zmb&ucImDA$N^{G_Lf?B^w{7#nagS)>x=ZT!d?DV<3D20dyKy1<49oQq^lbpCCaBhi zfs3NA7e}ONLa0|>6X}&FfG@dF$WHQ|feLWrSix^Od8ASMHdT2}xUQo!<|ycu`>$fP zC0-ZYLwIX`iz~Ld4p7(eSHU{ccBZ`=Kbz|F-TSffT|H!dSAUFr_kL(To8NKqeYEx+ z4EU8i;NQj9&*N)#XWI3(0=ySq!@u_oe_zYLj}Cut;@{`e?{c~JPl$!T$dE4rQWD5@ z40(_sC53Z6LtX_$;oOi4bva*3aWL{P$IhSimxGEqdq!l?+6W80&B2LjHi{nj0%KpU z<{YvTINCm1>3**S(U{0r;tnV1Wtl7;HaFt1aUl|IU?G#JRktJ@WSIU{4)hJzpolhc zRVYy+*>h-wB%?WC7L<#8(5;{Rg6%iA1mojqolu~ z(y5qhlz8M?^|?uXeo=j1r#`P&pEsnm{UGiMt3>}ja0OP4W%<{Gzxa}L@g_7{HZTY7 zaqJ)~9_Pxgyu~pMS|`SF@-FEWLWf5He6~+y>5+C1Xj!b~l!BSJfGzRy%vp2m_r>^|$@d_Ng0+hVz=HV~L^_G5n*N)0Y8A}tF3JWFft!=ZpV`>K&2YL`N7azsoGMfpvhGizi0wAir0Pu&L=6!qyLBSTD}}JVt0T8;Uf# z!6XBwGC?Nh(CO`jfsEPD^t~U8J$Q&Y8nyDxeh}I6a;CLI%Pw~{I#%jFj5m(|Y&2)k zW}YPc|DZ-n!KJM#VsKIQbN*hMyWMhzKrR8~1ZGTQ{c5N*XSrWksev7HB>q;y8ILJl z3m(SF74OlCA$z3f+be-7|XUMs`Vf2Y!l--PIwTv4qaF<|;>W5LBT=YU__Mwoj5Orx|K?v0&Sk z2bJCj!&zv^LXN(f_n=v!v#6M^To>PJv zw)IMJjImP(@8LGRhl3VzADng~Q>)h#JGnJsk2`9TjMswdclOeEkjwcRknAj|`&R&u zqSe$kfTa*1wdNL(pjr)W8emc!0oM)%JZmW6*%5F7d<|U)Gp9Rv#wQ#fGd;-+Z018{ z;H#;~=l;3$c^do9Y*I(rn`~`u`gftFzo#Fjz141}#M+~{$RCF{7{8YFG$(I3(Cx_c z^B&uOjQ6mpLmp#A*-@gKi$FTBu_dRiBlMoe4Q0ko#vHlprHtAdakB>f9b(6v9@DYH zl%+gzOu{mzILI$34Q!LGd29ohTCRZmi7n8ob6$a2mnp4?V-wmwG!0TvgyWBI|ffwRv1} zBbD6fHF^zH@_oAG1F2-TcpBR~Vq6TSqn5+giPIah{Ae!A9xBK7wv3DE)5R?&oh%CF zh@nv6CKK`L=zM8q`;ejyrzx!A_bM$do@n@69IvG|9StT(sNwg9(C~}So=>H&Y|rpW z)1M8_NhtZDx`T%c$6=j*K4$F^JdQfuN|zBg0da%x1KjF(tul6a_D*M_s~iNuKhKkx z$P>_~QmI&`i7a{LP4H2nC$db#UG~aei6@efPXzL?Qn7=Ohj|^Fik*(v$>tV$uY-^~ zybf;|kUfW;P-G3KHkoTzZTl4)rN;H6PvG46791~(@J93uACv^u=}ovH;6jU&dZah9 zr^)fMWSHYQ`@?{?oGu}-YDIXZfaY%*X?zoZBB6qc23BPdp2s` zp<;MDX#0qhQ(YIO)EnPH_fe(+$3-&1fgAa(+G^jEkai8+#6pKHArU9uc|0~$1P^|| zvVbk#IK!&Gf}Z|PZFGeuaxl$j8OCIzwAk?A_UZ%g!Lukk8l`^XjDox*kTdG$!RI@W zg&uXPUrIX)6CTHG~)vDL)XpLz}HfdEof)hkKjTh zCQJa1*mgv6($#!FzAbsLo@(;__%^v8pFGsPx<22%A1mKChpg|LA0ywrAC&I}x**>g zU77ES-IcBC!Fxxqg$Hg=vE23!bq~5-ecqAMa@@!VL;u&Y0)7~in}JvThoSB1$^+lP zr1ss&tdr?Kj0Ks36yQ!~Fz-xhm*APcO9^HDEnxAE-aESFs49L$RnSdGawPd(E=ifq z@Zg&YtEDkamqjXLl}tAKZxx0XAB2JS=ABvlZQHiZ*fLo)=+p5A`H!G>v;|q>LWO9( zy2kyFu}GQ6<03-~PiO-_mfXN!=W*b_T(F3%4GrP}`*&;`XV~$aH0$}Ho5cf0_tjiN z;343;y-svyHzT9{-@*3&4CZCA(P_PWgBy2O9YZTcLDnbJhseydg-58d*1KAKp3=U) zQyA-^c-)e)>oU!=H7(IR8#)JBZfM}}tyDs0yIIyApuypF@0DpQ8`V0yg~uccuh`Eyz+688U~oClKSJn(;7&J)RUo(Og1*Xt!z8u(r+6m~umZRkg18=8jf zUfIOoVa}3+4hw^4mi(t3Vf~^5aH6Bm#$Kz0*Lrm+d^GM1ljsL||8TnhH~e`uUZ$Rd zb3R^M0~99>w%C|RwbWvB8~+9M1L6{CfEB<}&VNxQY#H2;a}*yyw52+BNff_H3X9Xw z8q?5kCu#4Mv_6T3ep_hhDMQiT`h53(P(Grb_oS4P>mEf;?@g}hxINc={X(D6zN65; ztMh+X0q)a)`%>Cg9yU>H`21aWKLPz8hf;HoChe~vJU;==L83zWsTqag_?{~H0bTL~ z3hlr~HL!k!It`xvW>>GgL*Dw7t?m9p-H4LE_0 z5YsiW4O_&B)tC2)#3;#9ciWdsJ⁢V9m7sKQrf4aZLX&ArFLQ9dxob;`DfpR-!_d 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

heiN#7}G3-%J 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≪B~Q0-bWtK(>{dn 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≺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

IY;X(x?@{WX*q4 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
L(aq(JCVZju@uLVB+@^- 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�-> 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

2K@?9fY(Bnoedi#lPwnXa*UdY2ocJs{qWfp2qA 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 ND9kXwxl1AczX0nBys`iQ diff --git a/packages/NUnit.3.13.2/build/NUnit.props b/packages/NUnit.3.13.2/build/NUnit.props deleted file mode 100644 index 79c80b8..0000000 --- a/packages/NUnit.3.13.2/build/NUnit.props +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/packages/NUnit.3.13.2/icon.png b/packages/NUnit.3.13.2/icon.png deleted file mode 100644 index ad14c1603eab311ff5326908fa6e839f1299083b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16371 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 diff --git a/packages/NUnit.3.13.2/lib/net35/nunit.framework.dll b/packages/NUnit.3.13.2/lib/net35/nunit.framework.dll deleted file mode 100644 index 32f86d80679ffd40765ca135388ac89649cd7f31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 489472 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%0Acw3EQ&-djN-G@EAC}$Z)WW#FN8e z=y;BGVJzd%{FUX<9=L}mo=pN)Is5g!k(Bpd1O-YLV1jw2SSi&o`$QIck~r zbB8@X@RrwUSY{+DCvCHY83nOFeHH3rHL-2W(0%*gN11q$TAnQgGrQZ`V8t_nZeh%7 z*hpdqieik40AWa%4EwY)=wCQL6+%X?w0m3bq)x>)pHfdq^R*mHJ$WqIhvAy&^)8>3i@C-^!mche}gp14*q04Y1>&2Y$*AS!x6U)c~Es^aUpmuO?Zj= zF{(cxl9<9&sQ*X)-1s{XamzL~y%s`di$Xb%+fgK0H3+PIa&7OR#HN3|fGX6@$)$Qw z-{MeTNP-B=O0D2Atl!7ymfGWuF}}4*!vr(&QIFK^w8lsoywrFtiWdU22Mf7=dkJvU zxP*uF%&O*lWKVF5@-}8s9}zZ^kY6HZl@hLgWh28cBNFnVMK~)HGMvyVdBE`Rc327X zvs1pVnH@}|XNG^0@?PJ`ZF-%tfSr|*WjY&c?oXW#TJeu;AJ_5gauWS%32kUw_!!&! zVBplaIyBh6_wvA2I6cPl92T>k93P@O9#iZXqTA@7V> z^V}^;(m&^yw7-AaV!o8`e$`4bpU5<$?P7aT=k33;@;H5 z=}=0l5XAQmJ_1U&x}3>5(6#FlA;({rBb-R0!ih?~*-~wbA$}0m6hT{<-&?yTjFmQQ zX<|^$bN1HGOh?-v!Ddt{zI~q9(;H@14}x_2`13rNb1aV=c#OdXXm+^ir;u+Vn$HKD zheX%Yz~wf>-_QTEvy-VO^K0|Mw!|NU+Z`-3SvkyKo!OD-w-Ku?x{&Q`Wz{0+V|C5l^1 z*KD$I9tw$^(SMBVylU%AHc0ugFrx%7^YLre!NPF7jK-K+pt}T5fa))|?{@2ed5F-J z`w%2;qB{!hngvW*bR*}2H+~W#V`h|vkrPvcl;y^&Nj!0s9qUvHljhU-*xRM9S@UZu zCzhjHnco^fh{rdO$}#0@X*f0m9cu2X8dfrrXim}weptJq#2s2GJg#l9S${R#3-*vY z5n#9@0_{Mh+mjR1BQYQSH*KtQ?N(}>Q6Sm{?3&6oy$Y-@2_2%Coe6F=Kq{T&qLQ-% z)oagU%{J{!wW6Jc7PxjO16FJt!@4jb9xz3TdxSAY%-}NX%HVwqX7!5->LbY={R`{o zWxUh;m6)VargZby_BhN;*L+-$qh#IE{7vieKlK=|w>37Z`ET`FX#P$=UCsZ}Pc@#P z;dt4^HT#X1>j!kGpJg+@uTWplzx7{{gxniY>noNT-BiBK&dbl=!H(U;e}u*6e+XJw z9qVtZ(r&{-s+;Q6uPW8AYGp3#@P+?9X~tj6wdT?r2xNI)X}mV|hmJgYvpk{2s(+R8 zFo1-FkX)z;0p+9zJej6oMLS?SJ3r$8h;|i3_Oq!l+O!7Cik&T}#`{?Fr88Ve+b0CK zP+e6l&``#9{YJW>{sHyH99Bg_^7}QK|nJ-Nr*}^H&7}ZO)_LsX?7E3l851VDRKF!xgPBZPkHYa6B zu%(Ei<-k^VV_+0GgC#j;hYaUtc}+W+d?7UP7IgUAG{T#N5D~q~=5K>n5cs5n@(f*Z zM+gw>oWb7eAhA<0k@s!YsF+(w`XGx1MGb2Ml|BX-L$A_{;qvoq<;jjnUZukp7c?e5anxp)td$Pla)r>g7`mA00BB-DQBAvYLVn%*bA7J7zMk{B}< zr-mtVri(OZ)Z)~9OA^Dew&@C9$AEaPaIgyq2z+oh1oF=CwzPWN&detj@L3+lD`^Px z)xa4SF-7-J?=KBWLpA@PTW5& zNQXPQsHIYu-&|#Xz{s2o3215ZebA9;qx19z#QKBOp*snBtsV;)

hMxXQWK3+cbI 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 diff --git a/packages/NUnit.3.13.2/lib/net35/nunit.framework.xml b/packages/NUnit.3.13.2/lib/net35/nunit.framework.xml deleted file mode 100644 index b76e164..0000000 --- a/packages/NUnit.3.13.2/lib/net35/nunit.framework.xml +++ /dev/null @@ -1,21818 +0,0 @@ - - - - nunit.framework - - - -

- The different targets a test action attribute can be applied to - - - - - Default target, which is determined by where the action attribute is attached - - - - - Target a individual test case - - - - - Target a suite of test cases - - - - - DefaultTestAssemblyBuilder loads a single assembly and builds a TestSuite - containing test fixtures present in the assembly. - - - - - The default suite builder used by the test assembly builder. - - - - - Initializes a new instance of the class. - - - - - Build a suite of tests from a provided assembly - - The assembly from which tests are to be built - A dictionary of options to use in building the suite - - A TestSuite containing the tests found in the assembly - - - - - Build a suite of tests given the name or the location of an assembly - - The name or the location of the assembly. - A dictionary of options to use in building the suite - - A TestSuite containing the tests found in the assembly - - - - - FrameworkController provides a facade for use in loading, browsing - and running tests without requiring a reference to the NUnit - framework. All calls are encapsulated in constructors for - this class and its nested classes, which only require the - types of the Common Type System as arguments. - - The controller supports four actions: Load, Explore, Count and Run. - They are intended to be called by a driver, which should allow for - proper sequencing of calls. Load must be called before any of the - other actions. The driver may support other actions, such as - reload on run, by combining these calls. - - - - - Construct a FrameworkController using the default builder and runner. - - The AssemblyName or path to the test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - - - - Construct a FrameworkController using the default builder and runner. - - The test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - - - - Construct a FrameworkController, specifying the types to be used - for the runner and builder. This constructor is provided for - purposes of development. - - The full AssemblyName or the path to the test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - The Type of the test runner - The Type of the test builder - - - - Construct a FrameworkController, specifying the types to be used - for the runner and builder. This constructor is provided for - purposes of development. - - The test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - The Type of the test runner - The Type of the test builder - - - - Gets the ITestAssemblyBuilder used by this controller instance. - - The builder. - - - - Gets the ITestAssemblyRunner used by this controller instance. - - The runner. - - - - Gets the AssemblyName or the path for which this FrameworkController was created - - - - - Gets the Assembly for which this - - - - - Gets a dictionary of settings for the FrameworkController - - - - - Loads the tests in the assembly - - - - - - Returns info about the tests in an assembly - - A string containing the XML representation of the filter to use - The XML result of exploring the tests - - - - Runs the tests in an assembly - - A string containing the XML representation of the filter to use - The XML result of the test run - - - - Runs the tests in an assembly synchronously reporting back the test results through the callback - or through the return value - - The callback that receives the test results - A string containing the XML representation of the filter to use - The XML result of the test run - - - - Runs the tests in an assembly asynchronously reporting back the test results through the callback - - The callback that receives the test results - A string containing the XML representation of the filter to use - - - - Stops the test run - - True to force the stop, false for a cooperative stop - - - - Counts the number of test cases in the loaded TestSuite - - A string containing the XML representation of the filter to use - The number of tests - - - - Inserts the environment and settings elements - - Target node - The updated target node - - - - Inserts environment element - - Target node - The new node - - - - Inserts settings element - - Target node - Settings dictionary - The new node - - - - FrameworkControllerAction is the base class for all actions - performed against a FrameworkController. - - - - - LoadTestsAction loads a test into the FrameworkController - - - - - LoadTestsAction loads the tests in an assembly. - - The controller. - The callback handler. - - - - ExploreTestsAction returns info about the tests in an assembly - - - - - Initializes a new instance of the class. - - The controller for which this action is being performed. - Filter used to control which tests are included (NYI) - The callback handler. - - - - CountTestsAction counts the number of test cases in the loaded TestSuite - held by the FrameworkController. - - - - - Construct a CountsTestAction and perform the count of test cases. - - A FrameworkController holding the TestSuite whose cases are to be counted - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - RunTestsAction runs the loaded TestSuite held by the FrameworkController. - - - - - Construct a RunTestsAction and run all tests in the loaded TestSuite. - - A FrameworkController holding the TestSuite to run - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - RunAsyncAction initiates an asynchronous test run, returning immediately - - - - - Construct a RunAsyncAction and run all tests in the loaded TestSuite. - - A FrameworkController holding the TestSuite to run - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - StopRunAction stops an ongoing run. - - - - - Construct a StopRunAction and stop any ongoing run. If no - run is in process, no error is raised. - - The FrameworkController for which a run is to be stopped. - True the stop should be forced, false for a cooperative stop. - >A callback handler used to report results - A forced stop will cause threads and processes to be killed as needed. - - - - The ITestAssemblyBuilder interface is implemented by a class - that is able to build a suite of tests given an assembly or - an assembly filename. - - - - - Build a suite of tests from a provided assembly - - The assembly from which tests are to be built - A dictionary of options to use in building the suite - A TestSuite containing the tests found in the assembly - - - - Build a suite of tests given the filename of an assembly - - The filename of the assembly from which tests are to be built - A dictionary of options to use in building the suite - A TestSuite containing the tests found in the assembly - - - - The ITestAssemblyRunner interface is implemented by classes - that are able to execute a suite of tests loaded - from an assembly. - - - - - Gets the tree of loaded tests, or null if - no tests have been loaded. - - - - - Gets the tree of test results, if the test - run is completed, otherwise null. - - - - - Indicates whether a test has been loaded - - - - - Indicates whether a test is currently running - - - - - Indicates whether a test run is complete - - - - - Loads the tests found in an Assembly, returning an - indication of whether or not the load succeeded. - - File name of the assembly to load - Dictionary of options to use in loading the test - An ITest representing the loaded tests - - - - Loads the tests found in an Assembly, returning an - indication of whether or not the load succeeded. - - The assembly to load - Dictionary of options to use in loading the test - An ITest representing the loaded tests - - - - Count Test Cases using a filter - - The filter to apply - The number of test cases found - - - - Explore the test cases using a filter - - The filter to apply - Test Assembly with test cases that matches the filter - - - - Run selected tests and return a test result. The test is run synchronously, - and the listener interface is notified as it progresses. - - Interface to receive ITestListener notifications. - A test filter used to select tests to be run - - - - Run selected tests asynchronously, notifying the listener interface as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - - - - Wait for the ongoing run to complete. - - Time to wait in milliseconds - True if the run completed, otherwise false - - - - Signal any test run that is in process to stop. Return without error if no test is running. - - If true, kill any test-running threads - - - - Implementation of ITestAssemblyRunner - - - - - Initializes a new instance of the class. - - The builder. - - - - Gets the default level of parallel execution (worker threads) - - - - - The tree of tests that was loaded by the builder - - - - - The test result, if a run has completed - - - - - Indicates whether a test is loaded - - - - - Indicates whether a test is running - - - - - Indicates whether a test run is complete - - - - - Our settings, specified when loading the assembly - - - - - The top level WorkItem created for the assembly as a whole - - - - - The TestExecutionContext for the top level WorkItem - - - - - Loads the tests found in an Assembly - - File name or path of the assembly to load - Dictionary of option settings for loading the assembly - A Test Assembly containing all loaded tests - - - - Loads the tests found in an Assembly - - The assembly to load - Dictionary of option settings for loading the assembly - A Test Assembly containing all loaded tests - - - - Count Test Cases using a filter - - The filter to apply - The number of test cases found - - - - Explore the test cases using a filter - - The filter to apply - Test Assembly with test cases that matches the filter - - - - Run selected tests and return a test result. The test is run synchronously, - and the listener interface is notified as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - The test results from the run - - - - Run selected tests asynchronously, notifying the listener interface as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - - RunAsync is a template method, calling various abstract and - virtual methods to be overridden by derived classes. - - - - - Wait for the ongoing run to complete. - - Time to wait in milliseconds - True if the run completed, otherwise false - - - - Signal any test run that is in process to stop. Return without error if no test is running. - - If true, kill any tests that are currently running - - - - Initiate the test run. - - - - - Create the initial TestExecutionContext used to run tests - - The ITestListener specified in the RunAsync call - - - - Handle the Completed event for the top level work item - - - - - Executes the action within an - which ensures the is cleaned up - suitably at the end of the test run. This method only has an effect running - the full .NET Framework. - - - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - - - Verifies that the first int is greater than the second - int. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first int is greater than the second - int. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the double that is passed in is an NaN. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - - - - Assert that a string is empty. Returns without throwing an exception when inside a multiple assert block. - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is empty. Returns without throwing an exception when inside a multiple assert block. - - The string to be tested - - - - Assert that an array, list or other collection is empty. Returns without throwing an exception when inside a - multiple assert block. - - An array, list or other collection implementing ICollection - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that an array, list or other collection is empty. Returns without throwing an exception when inside a - multiple assert block. - - An array, list or other collection implementing ICollection - - - - Assert that a string is not empty. Returns without throwing an exception when inside a multiple assert - block. - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is not empty. Returns without throwing an exception when inside a multiple assert - block. - - The string to be tested - - - - Assert that an array, list or other collection is not empty. Returns without throwing an exception when - inside a multiple assert block. - - An array, list or other collection implementing ICollection - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that an array, list or other collection is not empty. Returns without throwing an exception when - inside a multiple assert block. - - An array, list or other collection implementing ICollection - - - - Asserts that an int is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that an unsigned int is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that an unsigned Long is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a decimal is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a double is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a decimal is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a double is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - DO NOT USE! Use Assert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - The message to initialize the with. - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - - - - Marks the test as failed with the message and arguments that are passed in. Returns without throwing an - exception when inside a multiple assert block. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Marks the test as failed with the message that is passed in. Returns without throwing an exception when - inside a multiple assert block. - - The message to initialize the with. - - - - Marks the test as failed. Returns without throwing an exception when inside a multiple assert block. - - - - - Issues a warning using the message and arguments provided. - - The message to display. - Arguments to be used in formatting the message - - - - Issues a warning using the message provided. - - The message to display. - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as ignored. - - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as inconclusive. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as inconclusive. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as Inconclusive. - - - - - Asserts that an object is contained in a collection. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The collection to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is contained in a collection. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The collection to be examined - - - - Wraps code containing a series of assertions, which should all - be executed, even if they fail. Failed results are saved and - reported at the end of the code block. - - A TestDelegate to be executed in Multiple Assertion mode. - - - - If throws, returns "SomeException was thrown by the - Environment.StackTrace property." See also . - - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - - - - Verifies that two objects are equal. Two objects are considered equal if both are null, or if both have the - same value. NUnit has special semantics for some object types. Returns without throwing an exception when - inside a multiple assert block. - - The value that is expected - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two objects are equal. Two objects are considered equal if both are null, or if both have the - same value. NUnit has special semantics for some object types. Returns without throwing an exception when - inside a multiple assert block. - - The value that is expected - The actual value - - - - Verifies that two objects are not equal. Two objects are considered equal if both are null, or if both have - the same value. NUnit has special semantics for some object types. Returns without throwing an exception - when inside a multiple assert block. - - The value that is expected - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two objects are not equal. Two objects are considered equal if both are null, or if both have - the same value. NUnit has special semantics for some object types. Returns without throwing an exception - when inside a multiple assert block. - - The value that is expected - The actual value - - - - Asserts that two objects refer to the same object. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The actual object - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that two objects refer to the same object. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The actual object - - - - Asserts that two objects do not refer to the same object. Returns without throwing an exception when inside - a multiple assert block. - - The expected object - The actual object - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that two objects do not refer to the same object. Returns without throwing an exception when inside - a multiple assert block. - - The expected object - The actual object - - - - Helper for Assert.AreEqual(double expected, double actual, ...) - allowing code generation to work consistently. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - The exception Type expected - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - The exception Type expected - A TestDelegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - - - - Verifies that a delegate throws an exception when called and returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception when called and returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that a delegate does not throw an exception - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate does not throw an exception. - - A TestDelegate - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. Used as a synonym for That in rare cases where a private setter causes a Visual Basic compilation - error. - - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. Used as a synonym for That in rare cases where a private setter causes a Visual Basic compilation - error. - - - This method is provided for use by VB developers needing to test the value of properties with private - setters. - - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - - - - Delegate used by tests that execute code and - capture any thrown exception. - - - - - AssertionHelper is an optional base class for user tests, - allowing the use of shorter names in making asserts. - - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to - . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to . - - The evaluated condition - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - The actual value to test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Returns a ListMapper based on a collection. - - The original collection - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for equality with zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - To search for a substring instead of a collection element, use the - overload. - - - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - - - To search for a collection element instead of a substring, use the - overload. - - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that fails if the actual - value matches the pattern supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - within a specified range. - - - - - Provides static methods to express the assumptions - that must be met for a test to give a meaningful - result. If an assumption is not met, the test - should produce an inconclusive result. - - - - - DO NOT USE! - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - Not applicable - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, the - method throws an . - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A ThrowsConstraint used in the test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Marks a test as needing to be run in a particular threading apartment state. This will cause it - to run in a separate thread if necessary. - - - - - Construct an ApartmentAttribute - - The apartment state that this test must be run under. You must pass in a valid apartment state. - - - - Provides the author of a test or test fixture. - - - - - Initializes a new instance of the class. - - The name of the author. - - - - Initializes a new instance of the class. - - The name of the author. - The email address of the author. - - - - Applies a category to a test - - - - - The name of the category - - - - - Construct attribute for a given category based on - a name. The name may not contain the characters ',', - '+', '-' or '!'. However, this is not checked in the - constructor since it would cause an error to arise at - as the test was loaded without giving a clear indication - of where the problem is located. The error is handled - in NUnitFramework.cs by marking the test as not - runnable. - - The name of the category - - - - Protected constructor uses the Type name as the name - of the category. - - - - - The name of the category - - - - - Modifies a test by adding a category to it. - - The test to modify - - - - Marks a test to use a combinatorial join of any argument data provided. - Since this is the default, the attribute is optional. - - - - - Default constructor - - - - - Marks a test as using a particular CombiningStrategy to join any supplied parameter data. - Since this is the default, the attribute is optional. - - - - - Construct a CombiningStrategyAttribute incorporating an - ICombiningStrategy and an IParameterDataProvider. - - Combining strategy to be used in combining data - An IParameterDataProvider to supply data - - - - Construct a CombiningStrategyAttribute incorporating an object - that implements ICombiningStrategy and an IParameterDataProvider. - This constructor is provided for CLS compliance. - - Combining strategy to be used in combining data - An IParameterDataProvider to supply data - - - - Builds any number of tests from the specified method and context. - - The MethodInfo for which tests are to be constructed. - The suite to which the tests will be added. - - - - Modify the test by adding the name of the combining strategy - to the properties. - - The test to modify - - - - Marks an assembly, test fixture or test method as applying to a specific Culture. - - - - - Constructor with no cultures specified, for use - with named property syntax. - - - - - Constructor taking one or more cultures - - Comma-delimited list of cultures - - - - Causes a test to be skipped if this CultureAttribute is not satisfied. - - The test to modify - - - - Tests to determine if the current culture is supported - based on the properties of this attribute. - - True, if the current culture is supported - - - - Test to determine if the a particular culture or comma- - delimited set of cultures is in use. - - Name of the culture or comma-separated list of culture ids - True if the culture is in use on the system - - - - Test to determine if one of a collection of cultures - is being used currently. - - - - - - - Abstract base class for all data-providing attributes defined by NUnit. - Used to select all data sources for a method, class or parameter. - - - - - Default constructor - - - - - Marks a field for use as a datapoint when executing a theory within - the same fixture that requires an argument of the field's Type. - - - - - Marks a field, property or method as providing a set of datapoints for use - in executing any theories within the same fixture that require an argument of - the provided Type. The data source may provide an array of the required Type - or an . Synonymous with . - - - - - Marks a field, property or method as providing a set of datapoints for use - in executing any theories within the same fixture that require an argument - of the provided type. The data source may provide an array of the required - Type or an . Synonymous with . - - - - - Sets the tolerance used by default when checking the equality of floating point values - within the test assembly, fixture or method. - - - - - Construct specifying an amount - - - - - - Apply changes to the TestExecutionContext - - The TestExecutionContext - - - - Provides the descriptive text relating to the assembly, test fixture or test method. - - - - - Construct a description Attribute - - The text of the description - - - - Marks an assembly, test fixture or test method such that it will only run if explicitly - executed from the GUI, command line or included within a test filter. - The test will not be run simply because an enclosing suite is run. - - - - - Default constructor - - - - - Constructor with a reason - - The reason test is marked explicit - - - - Modifies a test by marking it as explicit. - - The test to modify - - - - Specify the life cycle of a Fixture - - - - - Construct a FixtureLifeCycleAttribute with a specified . - - - - - Defines the life cycle for this test fixture or assembly. - - - - - Overridden to set a TestFixture's . - - - - - Marks an assembly, test fixture or test method as being ignored. Ignored tests result in a warning message when the tests are run. - - - - - Constructs the attribute giving a reason for ignoring the test - - The reason for ignoring the test - - - - The date in the future to stop ignoring the test as a string in UTC time. - For example for a date and time, "2014-12-25 08:10:00Z" or for just a date, - "2014-12-25". If just a date is given, the Ignore will expire at midnight UTC. - - - Once the ignore until date has passed, the test will be marked - as runnable. Tests with an ignore until date will have an IgnoreUntilDate - property set which will appear in the test results. - - The string does not contain a valid string representation of a date and time. - - - - Modifies a test by marking it as Ignored. - - The test to modify - - - - Abstract base for attributes that are used to include tests in - the test run based on environmental settings. - - - - - Constructor with no included items specified, for use - with named property syntax. - - - - - Constructor taking one or more included items - - Comma-delimited list of included items - - - - Name of the item that is needed in order for - a test to run. Multiple items may be given, - separated by a comma. - - - - - Name of the item to be excluded. Multiple items - may be given, separated by a comma. - - - - - The reason for including or excluding the test - - - - - Sets the number of worker threads that may be allocated by the framework - for running tests. - - - - - Construct a LevelOfParallelismAttribute. - - The number of worker threads to be created by the framework. - - - - Specifies the life cycle for a test fixture. - - - - - A single instance is created and shared for all test cases. - - - - - A new instance is created for each test case. - - - - - Specifies the maximum time (in milliseconds) for a test case to succeed. - - - - - Construct a MaxTimeAttribute, given a time in milliseconds. - - The maximum elapsed time in milliseconds - - - - Marks tests that should NOT be run in parallel. - - - - - Construct a NonParallelizableAttribute. - - - - - Used by third-party frameworks, or other software, that reference - the NUnit framework but do not contain any tests. Applying the - attribute indicates that the assembly is not a test assembly and - may prevent errors if certain runners attempt to load the assembly. - Note that recognition of the attribute depends on each individual runner. - - - - - Abstract base class for all custom attributes defined by NUnit. - - - - - Default constructor - - - - - Identifies a method that is called once to perform setup before any child tests are run. - - - - - Identifies a method to be called once after all the child tests have run. - The method is guaranteed to be called, even if an exception is thrown. - - - - - Defines the order that the test will run in - - - - - Defines the order that the test will run in - - - - - Defines the order that the test will run in - - - - - - Modifies a test as defined for the specific attribute. - - The test to modify - - - - Marks a test as using a pairwise join of any supplied argument data. Arguments will be - combined in such a way that all possible pairs of arguments are used. - - - - - Default constructor - - - - - Marks a test assembly, fixture or method that may be run in parallel. - - - - - Construct a ParallelizableAttribute using default ParallelScope.Self. - - - - - Construct a ParallelizableAttribute with a specified scope. - - The ParallelScope associated with this attribute. - - - - Defines the degree to which this test and its descendants may be run in parallel - - - - - Overridden to check for invalid combinations of settings - - - - - - Modify the context to be used for child tests - - The current TestExecutionContext - - - - Specifies the degree to which a test, and its descendants, - may be run in parallel. - - - - - No ParallelScope was specified on the test - - - - - The test may be run in parallel with others at the same level. - Valid on classes and methods but has no effect on assemblies. - - - - - Test may not be run in parallel with any others. Valid on - classes and methods but not assemblies. - - - - - Mask used to extract the flags that apply to the item on which a - ParallelizableAttribute has been placed, as opposed to descendants. - - - - - Descendants of the test may be run in parallel with one another. - Valid on assemblies and classes but not on non-parameterized methods. - - - - - Descendants of the test down to the level of TestFixtures may be - run in parallel with one another. Valid on assemblies and classes - but not on methods. - - - - - Mask used to extract all the flags that impact descendants of a - test and place them in the TestExecutionContext. - - - - - The test and its descendants may be run in parallel with others at - the same level. Valid on classes and parameterized methods. - For assemblies it is recommended to use - instead, as has no effect on assemblies. - - - - - Marks an assembly, test fixture or test method as applying to a specific platform. - - - - - Constructor with no platforms specified, for use - with named property syntax. - - - - - Constructor taking one or more platforms - - Comma-delimited list of platforms - - - - Causes a test to be skipped if this PlatformAttribute is not satisfied. - - The test to modify - - - - Attaches information to a test assembly, fixture or method as a name/value pair. - - - - - Construct a PropertyAttribute with a name and string value - - The name of the property - The property value - - - - Construct a PropertyAttribute with a name and int value - - The name of the property - The property value - - - - Construct a PropertyAttribute with a name and double value - - The name of the property - The property value - - - - Constructor for derived classes that set the - property dictionary directly. - - - - - Constructor for use by derived classes that use the - name of the type as the property name. Derived classes - must ensure that the Type of the property value is - a standard type supported by the BCL. Any custom - types will cause a serialization Exception when - in the client. - - - - - Gets the property dictionary for this attribute - - - - - Modifies a test by adding properties to it. - - The test to modify - - - - Supplies a set of random values to a single parameter of a parameterized test. - - - - - If true, no value will be repeated. - - - - - Construct a random set of values appropriate for the Type of the - parameter on which the attribute appears, specifying only the count. - - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - Supplies a range of values to an individual parameter of a parameterized test. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using a default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values with the specified step size. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - Returns a string that represents the current object. - - - - Specifies that a test should be run multiple times. - - - - - Construct a RepeatAttribute - - The number of times to run the test - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - The test command for the RepeatAttribute - - - - - Initializes a new instance of the class. - - The inner command. - The number of repetitions - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Marks a test that must run on a separate thread. - - - - - Construct a RequiresThreadAttribute - - - - - Construct a RequiresThreadAttribute, specifying the apartment - - - - - Specifies that a test method should be rerun on failure up to the specified - maximum number of times. - - - - - Construct a - - The maximum number of times the test should be run if it fails - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - The test command for the - - - - - Initializes a new instance of the class. - - The inner command. - The maximum number of repetitions - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Marks a test to use a sequential join of any provided argument data. - Arguments will be combined into test cases, taking the next value of - each argument until all are used. - - - - - Default constructor - - - - - Sets the current Culture on an assembly, test fixture or test method for - the duration of a test. The culture remains set until the test or fixture - completes and is then reset to its original value. - - - - - - Construct given the name of a culture - - - - - - Sets the current UI Culture on an assembly, test fixture or test method - for the duration of a test. The UI culture remains set until the test or - fixture completes and is then reset to its original value. - - - - - - Construct given the name of a culture - - - - - - Identifies a method to be called immediately before each test is run. - - - - - Identifies a class as containing or - methods for all the test fixtures - under a given namespace. - - - - - Builds a from the specified type. - - The type info of the fixture to be used. - - - - Marks a test fixture as requiring all child tests to be run on the - same thread as the OneTimeSetUp and OneTimeTearDown. A flag in the - is set forcing all child tests - to be run sequentially on the current thread. - Any setting is ignored. - - - - - Apply changes to the TestExecutionContext - - The TestExecutionContext - - - - Identifies a method to be called immediately after each test is run. - The method is guaranteed to be called, even if an exception is thrown. - - - - - Abstract attribute providing actions to execute before and after tests. - - - - - Executed before each test is run - - The test that is going to be run. - - - - Executed after each test is run - - The test that has just been run. - - - - Provides the target for the action attribute - - - - - Marks a test assembly as needing a special assembly resolution hook that will - explicitly search the test assembly's directory for dependent assemblies. - This works around a conflict between mixed-mode assembly initialization and - tests running in their own AppDomain in some cases. - - - - - Marks the method as callable from the NUnit test runner. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - public void TestDescriptionMethod() - {} - } - - - - - - Descriptive text for this test - - - - - The author of this test - - - - - The type that this test is testing - - - - - Gets or sets the expected result. Not valid if the test - method has parameters. - - The result. - - - - Modifies a test by adding a description, if not already set. - - The test to modify - - - - Builds a single test from the specified method and context. - - The method for which a test is to be constructed. - The suite to which the test will be added. - - - - Marks a method as a parameterized test suite and provides arguments for each test case. - - - - - Construct a TestCaseAttribute with a list of arguments. - This constructor is not CLS-Compliant - - - - - - Construct a TestCaseAttribute with a single argument - - - - - - Construct a TestCaseAttribute with a two arguments - - - - - - - Construct a TestCaseAttribute with a three arguments - - - - - - - - Gets or sets the name of the test. - - The name of the test. - - - - Gets or sets the RunState of this test case. - - - - - Gets the list of arguments to a test case - - - - - Gets the properties of the test case - - - - - Gets or sets the expected result. - - The result. - - - - Returns true if the expected result has been set - - - - - Gets or sets the description. - - The description. - - - - The author of this test - - - - - The type that this test is testing - - - - - Gets or sets the reason for ignoring the test - - - - - Gets or sets a value indicating whether this is explicit. - - - if explicit; otherwise, . - - - - - Gets or sets the reason for not running the test. - - The reason. - - - - Gets or sets the ignore reason. When set to a non-null - non-empty value, the test is marked as ignored. - - The ignore reason. - - - - Comma-delimited list of platforms to run the test for - - - - - Comma-delimited list of platforms to not run the test for - - - - - Gets and sets the category for this test case. - May be a comma-separated list of categories. - - - - - Gets and sets the ignore until date for this test case. - - - - - Performs several special conversions allowed by NUnit in order to - permit arguments with types that cannot be used in the constructor - of an Attribute such as TestCaseAttribute or to simplify their use. - - The arguments to be converted - The ParameterInfo array for the method - - - - Builds a single test from the specified method and context. - - The MethodInfo for which tests are to be constructed. - The suite to which the tests will be added. - - - - Indicates the source to be used to provide test fixture instances for a test class. - - - - - Construct with the name of the method, property or field that will provide data - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - Construct with a name - - The name of a static method, property or field that will provide data. - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - Construct with a Type - - The type that will provide data - - - - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Gets or sets the category associated with every fixture created from - this attribute. May be a single category or a comma-separated list. - - - - - Builds any number of tests from the specified method and context. - - The IMethod for which tests are to be constructed. - The suite to which the tests will be added. - - - - Marks the class as a TestFixture. - - - - - Default constructor - - - - - Construct with a object[] representing a set of arguments. - The arguments may later be separated into type arguments and constructor arguments. - - - - - - Gets or sets the name of the test. - - The name of the test. - - - - Gets or sets the RunState of this test fixture. - - - - - The arguments originally provided to the attribute - - - - - Properties pertaining to this fixture - - - - - Get or set the type arguments. If not set - explicitly, any leading arguments that are - Types are taken as type arguments. - - - - - Descriptive text for this fixture - - - - - The author of this fixture - - - - - The type that this fixture is testing - - - - - Gets or sets the ignore reason. May set RunState as a side effect. - - The ignore reason. - - - - Gets or sets the reason for not running the fixture. - - The reason. - - - - Gets or sets the ignore reason. When set to a non-null - non-empty value, the test is marked as ignored. - - The ignore reason. - - - - Gets or sets a value indicating whether this is explicit. - - - if explicit; otherwise, . - - - - - Gets and sets the category for this fixture. - May be a comma-separated list of categories. - - - - - Builds a single test fixture from the specified type. - - - - - Builds a single test fixture from the specified type. - - The type info of the fixture to be used. - Filter used to select methods as tests. - - - - Identifies the source used to provide test fixture instances for a test class. - - - - - Error message string is public so the tests can use it - - - - - Construct with the name of the method, property or field that will provide data - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - Construct with a Type - - The type that will provide data - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Gets or sets the category associated with every fixture created from - this attribute. May be a single category or a comma-separated list. - - - - - Builds any number of test fixtures from the specified type. - - The TypeInfo for which fixtures are to be constructed. - - - - Builds any number of test fixtures from the specified type. - - The TypeInfo for which fixtures are to be constructed. - PreFilter used to select methods as tests. - - - - Returns a set of ITestFixtureData items for use as arguments - to a parameterized test fixture. - - The type for which data is needed. - - - - - Indicates the method or class the assembly, test fixture or test method is testing. - - - - - Initializes a new instance of the class. - - The type that is being tested. - - - - Initializes a new instance of the class. - - The type that is being tested. - - - - Adding this attribute to a method within a - class makes the method callable from the NUnit test runner. There is a property - called Description which is optional which you can provide a more detailed test - description. This class cannot be inherited. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - public void TestDescriptionMethod() - {} - } - - - - - - Construct the attribute, specifying a combining strategy and source of parameter data. - - - - - Applies a timeout in milliseconds to a test. - When applied to a method, the test is cancelled if the timeout is exceeded. - When applied to a class or assembly, the default timeout is set for all contained test methods. - - - - - Construct a TimeoutAttribute given a time in milliseconds - - The timeout value in milliseconds - - - - Provides literal arguments for an individual parameter of a test. - - - - - The collection of data to be returned. Must - be set by any derived attribute classes. - We use an object[] so that the individual - elements may have their type changed in GetData - if necessary - - - - - Constructs for use with an Enum parameter. Will pass every enum - value in to the test. - - - - - Construct with one argument - - - - - - Construct with two arguments - - - - - - - Construct with three arguments - - - - - - - - Construct with an array of arguments - - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - To generate data for Values attribute, in case no data is provided. - - - - - To Check if type is nullable enum. - - - - - Indicates the source used to provide data for one parameter of a test method. - - - - - Construct with the name of the factory - for use with languages - that don't support params arrays. - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - for use with languages - that don't support params arrays. - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - A set of Assert methods operating on one or more collections - - - - - DO NOT USE! Use CollectionAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable containing objects to be considered - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - - - - Asserts that the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the subset does not contain the superset - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that the subset does not contain the superset - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the subset contains the superset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that the subset contains the superset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - - - - AllItemsConstraint applies another constraint to each - item in a collection, succeeding if they all succeed. - - - - - Construct an AllItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - AndConstraint succeeds only if both members succeed. - - - - - Create an AndConstraint from two other constraints - - The first constraint - The second constraint - - - - Gets text describing a constraint - - - - - Apply both member constraints to an actual value, succeeding - succeeding only if both of them succeed. - - The actual value - True if the constraints both succeeded - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - is used to determine whether the value is equal to any of the expected values. - - - - - Construct a - - Collection of expected values - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether item is present in expected collection - - Actual item type - Actual item - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IEqualityComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - AssignableFromConstraint is used to test that an object - can be assigned from a given Type. - - - - - Construct an AssignableFromConstraint for the type provided - - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - AssignableToConstraint is used to test that an object - can be assigned to a given Type. - - - - - Construct an AssignableToConstraint for the type provided - - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - AttributeConstraint tests that a specified attribute is present - on a Type or other provider and that the value of the attribute - satisfies some other constraint. - - - - - Constructs an AttributeConstraint for a specified attribute - Type and base constraint. - - - - - - - Determines whether the Type or other provider has the - expected attribute and if its value matches the - additional constraint specified. - - - - - Returns a string representation of the constraint. - - - - - AttributeExistsConstraint tests for the presence of a - specified attribute on a Type. - - - - - Constructs an AttributeExistsConstraint for a specific attribute Type - - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Tests whether the object provides the expected attribute. - - A Type, MethodInfo, or other ICustomAttributeProvider - True if the expected attribute is present, otherwise false - - - - BinaryConstraint is the abstract base of all constraints - that combine two other constraints in some fashion. - - - - - The first constraint being combined - - - - - The second constraint being combined - - - - - Construct a BinaryConstraint from two other constraints - - The first constraint - The second constraint - - - - BinarySerializableConstraint tests whether - an object is serializable in binary format. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Returns the string representation - - - - - CollectionConstraint is the abstract base class for - constraints that operate on collections. - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Determines whether the specified enumerable is empty. - - The enumerable. - - if the specified enumerable is empty; otherwise, . - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Protected method to be implemented by derived classes - - - - - - - CollectionContainsConstraint is used to test whether a collection - contains an expected object as a member. - - - - - Construct a CollectionContainsConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Test whether the expected item is contained in the collection - - - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - CollectionEquivalentConstraint is used to determine whether two - collections are equivalent. - - - - The result of the from the collections - under comparison. - - - Construct a CollectionEquivalentConstraint - Expected collection. - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether two collections are equivalent - - - - - - - Test whether the collection is equivalent to the expected. - - - Actual collection type. - - - Actual collection to compare. - - - A indicating whether or not - the two collections are equivalent. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - Provides a for the . - - - Result of a of the collections to compare for equivalence. - - - Construct a using a . - Source . - Result of the collection comparison. - Actual collection to compare. - Whether or not the succeeded. - - - Write any additional lines (following Expected: and But was:) for a failing constraint. - The to write the failure message to. - - - - CollectionItemsEqualConstraint is the abstract base class for all - collection constraints that apply some notion of item equality - as a part of their operation. - - - - - The NUnitEqualityComparer in use for this constraint - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Get a flag indicating whether the user requested us to ignore case. - - - - - Get a flag indicating whether any external comparers are in use. - - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - Compares two collection members for equality - - - - - Return a new CollectionTally for use in making tests - - The collection to be included in the tally - - - - CollectionOrderedConstraint is used to test whether a collection is ordered. - - - - - Construct a CollectionOrderedConstraint - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - If used performs a default ascending comparison - - - - - If used performs a reverse comparison - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use a and returns self. - - - - - Modifies the constraint to test ordering by the value of - a specified property and returns self. - - - - - Then signals a break between two ordering steps - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Test whether the collection is ordered - - - - - Returns the string representation of the constraint. - - - - - - An OrderingStep represents one stage of the sort - - - - - Constructor for success result. - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - - - - Constructor for failure result. - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - Index at which collection order breaks. - Value at which collection order breaks. - - - - CollectionSubsetConstraint is used to determine whether - one collection is a subset of another - - - - - Construct a CollectionSubsetConstraint - - The collection that the actual value is expected to be a subset of - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the actual collection is a subset of - the expected collection provided. - - - - - - - Test whether the constraint is satisfied by a given value. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - CollectionSupersetConstraint is used to determine whether - one collection is a superset of another - - - - - Construct a CollectionSupersetConstraint - - The collection that the actual value is expected to be a superset of - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the actual collection is a superset of - the expected collection provided. - - - - - - - Test whether the constraint is satisfied by a given value. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - counts (tallies) the number of occurrences - of each object in one or more enumerations. - - - The result of a . - - - Items that were not in the expected collection. - - - Items that were not accounted for in the expected collection. - - - Initializes a new instance of the class with the given fields. - - - The result of the comparison between the two collections. - - - Construct a CollectionTally object from a comparer and a collection. - The comparer to use for equality. - The expected collection to compare against. - - - Try to remove an object from the tally. - The object to remove. - - - Try to remove a set of objects from the tally. - The objects to remove. - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Flag indicating whether or not this is the top level comparison. - - - - - A list of tracked comparisons - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two types related by . - - - - - Interface for comparing two s. - - - - - Method for comparing two objects with a tolerance. - - The first object to compare. - The second object to compare. - The tolerance to use when comparing the objects. - The evaluation state of the comparison. - - if the objects cannot be compared using the method. - Otherwise the result of the comparison is returned. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s or s. - - - - - Comparator for two Tuples. - - - - - Base class for comparators for tuples (both regular Tuples and ValueTuples). - - - - - Comparator for two ValueTuples. - - - - - ComparisonAdapter class centralizes all comparisons of - values in NUnit, adapting to the use of any provided - , - or . - - - - - Gets the default ComparisonAdapter, which wraps an - NUnitComparer object. - - - - - Returns a ComparisonAdapter that wraps an - - - - - Returns a ComparisonAdapter that wraps an - - - - - Returns a ComparisonAdapter that wraps a - - - - - Compares two objects - - - - - Construct a default ComparisonAdapter - - - - - Construct a ComparisonAdapter for an - - - - - Compares two objects - - - - - - - - ComparerAdapter extends and - allows use of an or - to actually perform the comparison. - - - - - Construct a ComparisonAdapter for an - - - - - Compare a Type T to an object - - - - - Construct a ComparisonAdapter for a - - - - - Compare a Type T to an object - - - - - Abstract base class for constraints that compare values to - determine if one is greater than, equal to or less than - the other. - - - - - The value against which a comparison is to be made - - - - - Tolerance used in making the comparison - - - - - ComparisonAdapter to be used in making the comparison - - - - - Initializes a new instance of the class. - - The value against which to make a comparison. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - A ConstraintResult - - - - Protected function overridden by derived class to actually perform the comparison - - - - - Modifies the constraint to use an and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Modifies the constraint to use an and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Modifies the constraint to use a and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Set the tolerance for use in this comparison - - - - - Switches the .Within() modifier to interpret its tolerance as - a percentage that the actual values is allowed to deviate from - the expected value. - - Self - - - - Provides standard description of what the constraint tests - based on comparison text. - - Describes the comparison being tested, throws - if null - Is thrown when null passed to a method - - - - Delegate used to delay evaluation of the actual value - to be used in evaluating a constraint - - - - - The Constraint class is the base of all built-in constraints - within NUnit. It provides the operator overloads used to combine - constraints. - - - - - Construct a constraint with optional arguments - - Arguments to be saved - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Arguments provided to this Constraint, for use in - formatting the description. - - - - - The ConstraintBuilder holding this constraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - The default implementation simply dereferences the value but - derived classes may override it to provide for delayed processing. - - A reference to the value to be tested - A ConstraintResult - - - - Retrieves the value to be tested from an ActualValueDelegate. - The default implementation simply evaluates the delegate but derived - classes may override it to provide for delayed processing. - - An ActualValueDelegate - Delegate evaluation result - - - - Default override of ToString returns the constraint DisplayName - followed by any arguments within angle brackets. - - - - - - Returns the string representation of this constraint - - - - - This operator creates a constraint that is satisfied only if both - argument constraints are satisfied. - - - - - This operator creates a constraint that is satisfied if either - of the argument constraints is satisfied. - - - - - This operator creates a constraint that is satisfied if the - argument constraint is not satisfied. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending Or - to the current constraint. - - - - - Returns a DelayedConstraint.WithRawDelayInterval with the specified delay time. - - The delay, which defaults to milliseconds. - - - - - Returns a DelayedConstraint with the specified delay time - and polling interval. - - The delay in milliseconds. - The interval at which to test the constraint. - - - - - Resolves any pending operators and returns the resolved constraint. - - - - - ConstraintBuilder maintains the stacks that are used in - processing a ConstraintExpression. An OperatorStack - is used to hold operators that are waiting for their - operands to be reorganized. a ConstraintStack holds - input constraints as well as the results of each - operator applied. - - - - - OperatorStack is a type-safe stack for holding ConstraintOperators - - - - - Initializes a new instance of the class. - - The ConstraintBuilder using this stack. - - - - Gets a value indicating whether this is empty. - - if empty; otherwise, . - - - - Gets the topmost operator without modifying the stack. - - - - - Pushes the specified operator onto the stack. - - The operator to put onto the stack. - - - - Pops the topmost operator from the stack. - - The topmost operator on the stack - - - - ConstraintStack is a type-safe stack for holding Constraints - - - - - Initializes a new instance of the class. - - The ConstraintBuilder using this stack. - - - - Gets a value indicating whether this is empty. - - if empty; otherwise, . - - - - Pushes the specified constraint. As a side effect, - the constraint's Builder field is set to the - ConstraintBuilder owning this stack. - - The constraint to put onto the stack - - - - Pops this topmost constraint from the stack. - As a side effect, the constraint's Builder - field is set to null. - - The topmost constraint on the stack - - - - Initializes a new instance of the class. - - - - - Appends the specified operator to the expression by first - reducing the operator stack and then pushing the new - operator on the stack. - - The operator to push. - - - - Appends the specified constraint to the expression by pushing - it on the constraint stack. - - The constraint to push. - - - - Sets the top operator right context. - - The right context. - - - - Reduces the operator stack until the topmost item - precedence is greater than or equal to the target precedence. - - The target precedence. - - - - Resolves this instance, returning a Constraint. If the Builder - is not currently in a resolvable state, an exception is thrown. - - The resolved constraint - - - - Gets a value indicating whether this instance is resolvable. - - - if this instance is resolvable; otherwise, . - - - - - ConstraintExpression represents a compound constraint in the - process of being constructed from a series of syntactic elements. - - Individual elements are appended to the expression as they are - reorganized. When a constraint is appended, it is returned as the - value of the operation so that modifiers may be applied. However, - any partially built expression is attached to the constraint for - later resolution. When an operator is appended, the partial - expression is returned. If it's a self-resolving operator, then - a ResolvableConstraintExpression is returned. - - - - - The ConstraintBuilder holding the elements recognized so far - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the - class passing in a ConstraintBuilder, which may be pre-populated. - - The builder. - - - - Returns a string representation of the expression as it - currently stands. This should only be used for testing, - since it has the side-effect of resolving the expression. - - - - - - Appends an operator to the expression and returns the - resulting expression itself. - - - - - Appends a self-resolving operator to the expression and - returns a new ResolvableConstraintExpression. - - - - - Appends a constraint to the expression and returns that - constraint, which is associated with the current state - of the expression being built. Note that the constraint - is not reduced at this time. For example, if there - is a NotOperator on the stack we don't reduce and - return a NotConstraint. The original constraint must - be returned because it may support modifiers that - are yet to be applied. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a , which will - apply the following constraint to a collection of length one, succeeding - only if exactly one of them succeeds. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - With is currently a NOP - reserved for future use. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests if item is equal to zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - To search for a substring instead of a collection element, use the - overload. - - - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - - - To search for a collection element instead of a substring, use the - overload. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - This overload is only used if the item sought is a string, - since any other type implies that we are looking for a - collection member. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the Dictionary key collection. - - The key to be matched in the Dictionary key collection - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the Dictionary value collection. - - The value to be matched in the Dictionary value collection - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - inclusively within a specified range. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - Returns a constraint that succeeds if the value - is a file or directory and it exists. - - - - - Returns a constraint that tests if an item is equal to any of parameters - - Expected values - - - - Returns a new IndexerConstraintExpression, which will - apply any following constraint to that indexer value. - - Index accessor values. - - - - ConstraintStatus represents the status of a ConstraintResult - returned by a Constraint being applied to an actual value. - - - - - The status has not yet been set - - - - - The constraint succeeded - - - - - The constraint failed - - - - - An error occurred in applying the constraint (reserved for future use) - - - - - Contains the result of matching a against an actual value. - - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - The status of the new ConstraintResult. - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - If true, applies a status of Success to the result, otherwise Failure. - - - - The actual value that was passed to the method. - - - - - Gets and sets the ResultStatus for this result. - - - - - True if actual value meets the Constraint criteria otherwise false. - - - - - Display friendly name of the constraint. - - - - - Description of the constraint may be affected by the state the constraint had - when was performed against the actual value. - - - - - Write the failure message to the MessageWriter provided - as an argument. The default implementation simply passes - the result and the actual value to the writer, which - then displays the constraint description and the value. - - Constraints that need to provide additional details, - such as where the error occurred, can override this. - - The MessageWriter on which to display the message - - - - Write some additional failure message. - - The MessageWriter on which to display the message - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - ContainsConstraint tests a whether a string contains a substring - or a collection contains an object. It postpones the decision of - which test to use until the type of the actual argument is known. - This allows testing whether a string is contained in a collection - or as a substring of another string using the same syntax. - - - - - Initializes a new instance of the class. - - The expected value contained within the string/collection. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Flag the constraint to ignore case and return self. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - The DateTimes class contains common operations on Date and Time values. - - - - - Applies a delay to the match so that a match can be evaluated in the future. - - - - - Allows only changing the time dimension of delay interval and setting a polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithRawDelayInterval - - Parent DelayedConstraint on which delay interval dimension is required to be set - - - - Changes delay interval dimension to minutes - - - - - Changes delay interval dimension to seconds - - - - - Changes delay interval dimension to milliseconds - - - - - Set polling interval, in milliseconds - - A time interval, in milliseconds - - - - - Allows only setting the polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithDimensionedDelayInterval - - Parent DelayedConstraint on which polling interval is required to be set - - - - Set polling interval, in milliseconds - - A time interval, in milliseconds - - - - - Allows only changing the time dimension of the polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithRawPollingInterval - - Parent DelayedConstraint on which polling dimension is required to be set - - - - Changes polling interval dimension to minutes - - - - - Changes polling interval dimension to seconds - - - - - Changes polling interval dimension to milliseconds - - - - - Delay value store as an Interval object - - - - - Polling value stored as an Interval object - - - - - Creates a new DelayedConstraint - - The inner constraint to decorate - The time interval after which the match is performed - If the value of is less than 0 - - - - Creates a new DelayedConstraint - - The inner constraint to decorate - The time interval after which the match is performed, in milliseconds - The time interval used for polling, in milliseconds - If the value of is less than 0 - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - Test whether the constraint is satisfied by a delegate - - The delegate whose value is to be tested - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - Overridden to wait for the specified delay period before - calling the base constraint with the dereferenced value. - - A reference to the value to be tested - True for success, false for failure - - - - Returns the string representation of the constraint. - - - - - Adjusts a Timestamp by a given TimeSpan - - - - - - - - Returns the difference between two Timestamps as a TimeSpan - - - - - - - - DictionaryContainsKeyConstraint is used to test whether a dictionary - contains an expected object as a key. - - - - - Construct a DictionaryContainsKeyConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Returns a new DictionaryContainsKeyValuePairConstraint checking for the - presence of a particular key-value-pair in the dictionary. - - - - - Flag the constraint to ignore case and return self. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Test whether the expected key is contained in the dictionary - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - DictionaryContainsKeyValuePairConstraint is used to test whether a dictionary - contains an expected object as a key-value-pair. - - - - - Construct a DictionaryContainsKeyValuePairConstraint - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Test whether the expected key is contained in the dictionary - - - - - DictionaryContainsValueConstraint is used to test whether a dictionary - contains an expected object as a value. - - - - - Construct a DictionaryContainsValueConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Test whether the expected value is contained in the dictionary - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - Provides a for the constraints - that are applied to each item in the collection - - - - - Constructs a for a particular - Only used for Failure - - The Constraint to which this result applies - The actual value to which the Constraint was applied - Actual item that does not match expected condition - Non matching item index - - - - Write constraint description, actual items, and non-matching item - - The MessageWriter on which to display the message - - - - EmptyCollectionConstraint tests whether a collection is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Check that the collection is empty - - - - - - - EmptyConstraint tests a whether a string or collection is empty, - postponing the decision about which test is applied until the - type of the actual argument is known. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyDirectoryConstraint is used to test that a directory is empty - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyGuidConstraint tests whether a Guid is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyStringConstraint tests whether a string is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EndsWithConstraint can test whether a string ends - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - EqualConstraint is able to compare an actual value with the - expected value provided in its constructor. Two objects are - considered equal if both are null, or if both have the same - value. NUnit has special semantics for some object types. - - - - - NUnitEqualityComparer used to test equality. - - - - - Initializes a new instance of the class. - - The expected value. - - - - Gets the tolerance for this comparison. - - - The tolerance. - - - - - Gets a value indicating whether to compare case insensitive. - - - if comparing case insensitive; otherwise, . - - - - - Gets a value indicating whether or not to clip strings. - - - if set to clip strings otherwise, . - - - - - Gets the failure points. - - - The failure points. - - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to suppress string clipping - and return self. - - - - - Flag the constraint to compare arrays as collections - and return self. - - - - - Flag the constraint to use a tolerance when determining equality. - - Tolerance value to be used - Self. - - - - Flags the constraint to include - property in comparison of two values. - - - Using this modifier does not allow to use the - constraint modifier. - - - - - Switches the .Within() modifier to interpret its tolerance as - a distance in representable values (see remarks). - - Self. - - Ulp stands for "unit in the last place" and describes the minimum - amount a given value can change. For any integers, an ulp is 1 whole - digit. For floating point values, the accuracy of which is better - for smaller numbers and worse for larger numbers, an ulp depends - on the size of the number. Using ulps for comparison of floating - point results instead of fixed tolerances is safer because it will - automatically compensate for the added inaccuracy of larger numbers. - - - - - Switches the .Within() modifier to interpret its tolerance as - a percentage that the actual values is allowed to deviate from - the expected value. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in days. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in hours. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in minutes. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in seconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in milliseconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in clock ticks. - - Self - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The boolean-returning delegate to use. - Self. - - - - Flag the constraint to use the supplied Comparison object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - The EqualConstraintResult class is tailored for formatting - and displaying the result of an EqualConstraint. - - - - - Construct an EqualConstraintResult - - - - - Write a failure message. Overridden to provide custom - failure messages for EqualConstraint. - - The MessageWriter to write to - - - - Display the failure information for two collections that did not match. - - The MessageWriter on which to display - The expected collection. - The actual collection - The depth of this failure in a set of nested collections - - - - Displays a single line showing the types and sizes of the expected - and actual collections or arrays. If both are identical, the value is - only shown once. - - The MessageWriter on which to display - The expected collection or array - The actual collection or array - The indentation level for the message line - - - - Displays a single line showing the point in the expected and actual - arrays at which the comparison failed. If the arrays have different - structures or dimensions, both values are shown. - - The MessageWriter on which to display - The expected array - The actual array - Index of the failure point in the underlying collections - The indentation level for the message line - - - - Display the failure information for two IEnumerables that did not match. - - The MessageWriter on which to display - The expected enumeration. - The actual enumeration - The depth of this failure in a set of nested collections - - - - EqualityAdapter class handles all equality comparisons - that use an , - or a . - - - - - Compares two objects, returning true if they are equal - - - - - Returns true if the two objects can be compared by this adapter. - The base adapter cannot handle IEnumerables except for strings. - - - - - Returns an that wraps an . - - - - - that wraps an . - - - - - Returns an that wraps an . - - - - - Returns an EqualityAdapter that uses a predicate function for items comparison. - - - - - - - - - Returns true if the two objects can be compared by this adapter. - The base adapter cannot handle IEnumerables except for strings. - - - - - Compares two objects, returning true if they are equal - - - - - Returns true if the two objects can be compared by this adapter. - Generic adapter requires objects of the specified type. - - - - - Returns an that wraps an . - - - - - Returns an that wraps an . - - - - - that wraps an . - - - - - Returns an that wraps a . - - - - - ExactCountConstraint applies another constraint to each - item in a collection, succeeding only if a specified - number of items succeed. - - - - - Construct a standalone ExactCountConstraint - - - - - - Construct an ExactCountConstraint on top of an existing constraint - - - - - - - Apply the item constraint to each item in the collection, - succeeding only if the expected number of items pass. - - The value to be tested - A ConstraintResult - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Contain the result of matching a against an actual value. - - - - - The count of matched items of the - - - - - A list with maximum count (+1) of items of the - - - - - Constructs a for a . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - If true, applies a status of Success to the result, otherwise Failure. - Count of matched items of the - A list with maximum count (+1) of items of the - - - - Write the actual value for a failing constraint test to a MessageWriter. - - The writer on which the actual value is displayed - - - - ExactTypeConstraint is used to test that an object - is of the exact type provided in the constructor - - - - - Construct an ExactTypeConstraint for a given Type - - The expected Type. - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - ExceptionTypeConstraint is a special version of ExactTypeConstraint - used to provided detailed info about the exception thrown in - an error message. - - - - - Constructs an ExceptionTypeConstraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - FalseConstraint tests that the actual value is false - - - - - Initializes a new instance of the class. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - FileExistsConstraint is used to determine if a file exists - - - - - Initializes a new instance of the class. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - FileOrDirectoryExistsConstraint is used to determine if a file or directory exists - - - - - If true, the constraint will only check if files exist, not directories - - - - - If true, the constraint will only check if directories exist, not files - - - - - Initializes a new instance of the class that - will check files and directories. - - - - - Initializes a new instance of the class that - will only check files if ignoreDirectories is true. - - if set to [ignore directories]. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - Helper routines for working with floating point numbers - - - The floating point comparison code is based on this excellent article: - https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ - - - "ULP" means Unit in the Last Place and in the context of this library refers to - the distance between two adjacent floating point numbers. IEEE floating point - numbers can only represent a finite subset of natural numbers, with greater - accuracy for smaller numbers and lower accuracy for very large numbers. - - - If a comparison is allowed "2 ulps" of deviation, that means the values are - allowed to deviate by up to 2 adjacent floating point values, which might be - as low as 0.0000001 for small numbers or as high as 10.0 for large numbers. - - - - - Union of a floating point variable and an integer - - - The union's value as a floating point variable - - - The union's value as an integer - - - The union's value as an unsigned integer - - - Union of a double precision floating point variable and a long - - - The union's value as a double precision floating point variable - - - The union's value as a long - - - The union's value as an unsigned long - - - Compares two floating point values for equality - First floating point value to be compared - Second floating point value t be compared - - Maximum number of representable floating point values that are allowed to - be between the left and the right floating point values - - True if both numbers are equal or close to being equal - - - Floating point values can only represent a finite subset of natural numbers. - For example, the values 2.00000000 and 2.00000024 can be stored in a float, - but nothing between them. - - - This comparison will count how many possible floating point values are between - the left and the right number. If the number of possible values between both - numbers is less than or equal to maxUlps, then the numbers are considered as - being equal. - - - Implementation partially follows the code outlined here: - http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ - - - - - Compares two double precision floating point values for equality - First double precision floating point value to be compared - Second double precision floating point value t be compared - - Maximum number of representable double precision floating point values that are - allowed to be between the left and the right double precision floating point values - - True if both numbers are equal or close to being equal - - - Double precision floating point values can only represent a limited series of - natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004 - can be stored in a double, but nothing between them. - - - This comparison will count how many possible double precision floating point - values are between the left and the right number. If the number of possible - values between both numbers is less than or equal to maxUlps, then the numbers - are considered as being equal. - - - Implementation partially follows the code outlined here: - http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ - - - - - - Tests whether a value is greater than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Tests whether a value is greater than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Interface for all constraints - - - - - The display name of this Constraint for use by ToString(). - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Arguments provided to this Constraint, for use in - formatting the description. - - - - - The ConstraintBuilder holding this constraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - The default implementation simply dereferences the value but - derived classes may override it to provide for delayed processing. - - A reference to the value to be tested - A ConstraintResult - - - - IndexerConstraint extracts a named property and uses - its value as the actual value for a chained constraint. - - - - - Initializes a new instance of the class. - - The argument list for the indexer. - The constraint to apply to the indexer. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Returns the string representation of the constraint. - - - - - InstanceOfTypeConstraint is used to test that an object - is of the same type provided or derived from it. - - - - - Construct an InstanceOfTypeConstraint for the type provided - - The expected Type - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - Keeps track of an interval time which can be represented in - Minutes, Seconds or Milliseconds - - - - - Constructs a interval given an value in milliseconds - - - - - Gets Interval value represented as a TimeSpan object - - - - - Returns the interval with the current value as a number of minutes. - - - - - Returns the interval with the current value as a number of seconds. - - - - - Returns the interval with the current value as a number of milliseconds. - - - - - Is true for intervals created with a non-zero value - - - - - Returns a string that represents the current object. - - - A string that represents the current object. - - - - - IntervalUnit provides the semantics to the value stored in Interval class. - - - - - Unit representing an Interval in minutes - - - - - Unit representing an Interval in seconds - - - - - Unit representing an Interval in milliseconds - - - - - The IResolveConstraint interface is implemented by all - complete and resolvable constraints and expressions. - - - - - Return the top-level constraint for this expression - - - - - - An extension of ResolvableConstraintExpression that adds a no-op Items property for readability. - - - - - Create a new instance of ItemsConstraintExpression - - - - - Create a new instance of ResolvableConstraintExpression, - passing in a pre-populated ConstraintBuilder. - - - - - - No-op property for readability. - - - - - Tests whether a value is less than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Tests whether a value is less than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - MessageWriter is the abstract base for classes that write - constraint descriptions and messages in some form. The - class has separate methods for writing various components - of a message, allowing implementations to tailor the - presentation as needed. - - - - - Construct a MessageWriter given a culture - - - - - Abstract method to get the max line length - - - - - Method to write single line message with optional args, usually - written to precede the general failure message. - - The message to be written - Any arguments used in formatting the message - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a given - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The failing constraint result - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the Expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in locating the point where the strings differ - If true, the strings should be clipped to fit the line - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Custom value formatter function - - The value - - - - - Custom value formatter factory function - - The next formatter function - ValueFormatter - If the given formatter is unable to handle a certain format, it must call the next formatter in the chain - - - - Static methods used in creating messages - - - - - Default amount of items used by method. - - - - - Static string used when strings are clipped - - - - - Formatting strings used for expected and actual values - - - - - Current head of chain of value formatters. Public for testing. - - - - - Add a formatter to the chain of responsibility. - - - - - - Formats text to represent a generalized value. - - The value - The formatted text - - - - Formats text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Returns the representation of a type as used in NUnitLite. - This is the same as Type.ToString() except for arrays, - which are displayed with their declared sizes. - - - - - - - Converts any control characters in a string - to their escaped representation. - - The string to be converted - The converted string - - - - Converts any null characters in a string - to their escaped representation. - - The string to be converted - The converted string - - - - Return the a string representation for a set of indices into an array - - Array of indices for which a string is needed - - - - Get an array of indices representing the point in a collection or - array corresponding to a single int index into the collection. - - The collection to which the indices apply - Index in the collection - Array of indices - - - - Clip a string to a given length, starting at a particular offset, returning the clipped - string with ellipses representing the removed parts - - The string to be clipped - The maximum permitted length of the result string - The point at which to start clipping - The clipped string - - - - Clip the expected and actual strings in a coordinated fashion, - so that they may be displayed together. - - - - - - - - - Shows the position two strings start to differ. Comparison - starts at the start index. - - The expected string - The actual string - The index in the strings at which comparison should start - Boolean indicating whether case should be ignored - -1 if no mismatch found, or the index where mismatch found - - - - NaNConstraint tests that the actual value is a double or float NaN - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test that the actual value is an NaN - - - - - - - NoItemConstraint applies another constraint to each - item in a collection, failing if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - NotConstraint negates the effect of some other constraint - - - - - Initializes a new instance of the class. - - The base constraint to be negated. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - NullConstraint tests that the actual value is null - - - - - Initializes a new instance of the class. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - The Numerics class contains common operations on numeric values. - - - - - Checks the type of the object, returning true if - the object is a numeric type. - - The object to check - true if the object is a numeric type - - - - Checks the type of the object, returning true if - the object is a floating point numeric type. - - The object to check - true if the object is a floating point numeric type - - - - Checks the type of the object, returning true if - the object is a fixed point numeric type. - - The object to check - true if the object is a fixed point numeric type - - - - Test two numeric values for equality, performing the usual numeric - conversions and using a provided or default tolerance. If the tolerance - provided is Empty, this method may set it to a default tolerance. - - The expected value - The actual value - A reference to the tolerance in effect - True if the values are equal - - - - Compare two numeric values, performing the usual numeric conversions. - - The expected value - The actual value - The relationship of the values to each other - - - - Calculates the difference between 2 values in absolute/percent mode. - - The expected value - The actual value - Tolerance mode to specify difference representation - The difference between the values - - - - NUnitComparer encapsulates NUnit's default behavior - in comparing two objects. - - - - - Returns the default NUnitComparer. - - - - - Compares two objects - - - - - - - - NUnitEqualityComparer encapsulates NUnit's handling of - equality tests between objects. - - - - - If true, all string comparisons will ignore case - - - - - If true, arrays will be treated as collections, allowing - those of different dimensions to be compared - - - - - Comparison objects used in comparisons for some constraints. - - - - - List of points at which a failure occurred. - - - - - List of comparers used to compare pairs of objects. - - - - - Initializes a new instance of the class. - - - - - Returns the default NUnitEqualityComparer - - - - - Gets and sets a flag indicating whether case should - be ignored in determining equality. - - - - - Gets and sets a flag indicating that arrays should be - compared as collections, without regard to their shape. - - - - - Gets the list of external comparers to be used to - test for equality. They are applied to members of - collections, in place of NUnit's own logic. - - - - - Gets the list of failure points for the last Match performed. - The list consists of objects to be interpreted by the caller. - This generally means that the caller may only make use of - objects it has placed on the list at a particular depth. - - - - - Flags the comparer to include - property in comparison of two values. - - - Using this modifier does not allow to use the - modifier. - - - - - Compares two objects for equality within a tolerance. - - - - - Compares two objects for equality within a tolerance. - - - - - FailurePoint class represents one point of failure - in an equality test. - - - - - The location of the failure - - - - - The expected value - - - - - The actual value - - - - - Indicates whether the expected value is valid - - - - - Indicates whether the actual value is valid - - - - - Represents a constraint that succeeds if all the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - they all succeed. - - - - - Operator that requires both its arguments to succeed - - - - - Construct an AndOperator - - - - - Apply the operator to produce an AndConstraint - - - - - Operator that tests for the presence of a particular attribute - on a type and optionally applies further tests to the attribute. - - - - - Construct an AttributeOperator for a particular Type - - The Type of attribute tested - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Abstract base class for all binary operators - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Gets the left precedence of the operator - - - - - Gets the right precedence of the operator - - - - - Abstract method that produces a constraint by applying - the operator to its left and right constraint arguments. - - - - - Abstract base for operators that indicate how to - apply a constraint to items in a collection. - - - - - Constructs a CollectionOperator - - - - - The ConstraintOperator class is used internally by a - ConstraintBuilder to represent an operator that - modifies or combines constraints. - - Constraint operators use left and right precedence - values to determine whether the top operator on the - stack should be reduced before pushing a new operator. - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - The syntax element preceding this operator - - - - - The syntax element following this operator - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Represents a constraint that succeeds if the specified - count of members of a collection match a base constraint. - - - - - Construct an ExactCountOperator for a specified count - - The expected count - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Operator used to test for the presence of a Indexer - on an object and optionally apply further tests to the - value of that indexer. - - - - - Constructs a IndexerOperator for a particular set of indexer - parameters - - - - - Returns a IndexerConstraint applied to its argument. - - - - - Represents a constraint that succeeds if none of the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - none of them succeed. - - - - - Negates the test of the constraint it wraps. - - - - - Constructs a new NotOperator - - - - - Returns a NotConstraint applied to its argument. - - - - - Operator that requires at least one of its arguments to succeed - - - - - Construct an OrOperator - - - - - Apply the operator to produce an OrConstraint - - - - - PrefixOperator takes a single constraint and modifies - its action in some way. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Returns the constraint created by applying this - prefix to another constraint. - - - - - - - Operator used to test for the presence of a named Property - on an object and optionally apply further tests to the - value of that property. - - - - - Gets the name of the property to which the operator applies - - - - - Constructs a PropOperator for a particular named property - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Abstract base class for operators that are able to reduce to a - constraint whether or not another syntactic element follows. - - - - - Represents a constraint that succeeds if any of the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - any of them succeed. - - - - - Operator that tests that an exception is thrown and - optionally applies further tests to the exception. - - - - - Construct a ThrowsOperator - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Represents a constraint that simply wraps the - constraint provided as an argument, without any - further functionality, but which modifies the - order of evaluation because of its precedence. - - - - - Constructor for the WithOperator - - - - - Returns a constraint that wraps its argument - - - - - OrConstraint succeeds if either member succeeds - - - - - Create an OrConstraint from two other constraints - - The first constraint - The second constraint - - - - Gets text describing a constraint - - - - - Apply the member constraints to an actual value, succeeding - succeeding as soon as one of them succeeds. - - The actual value - True if either constraint succeeded - - - - PathConstraint serves as the abstract base of constraints - that operate on paths and provides several helper methods. - - - - - Construct a PathConstraint for a give expected path - - The expected path - - - - Modifies the current instance to be case-sensitive - and returns it. - - - - - Returns the string representation of this constraint - - - - - Canonicalize the provided path - - - The path in standardized form - - - - Test whether one path in canonical form is a subpath of another path - - The first path - supposed to be the parent path - The second path - supposed to be the child path - - - - - Predicate constraint wraps a Predicate in a constraint, - returning success if the predicate is true. - - - - - Construct a PredicateConstraint from a predicate - - - - - Gets text describing a constraint - - - - - Determines whether the predicate succeeds when applied - to the actual value. - - - - - Abstract base class used for prefixes - - - - - The base constraint - - - - - Prefix used in forming the constraint description - - - - - Construct given a base constraint - - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Formats a prefix constraint's description. - - - - - PropertyConstraint extracts a named property and uses - its value as the actual value for a chained constraint. - - - - - Initializes a new instance of the class. - - The name. - The constraint to apply to the property. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Returns the string representation of the constraint. - - - - - Contains the result of matching a against an actual value. - - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The base result with actual value to which the Constraint was applied. - - - - Write the additional failure message for a failing constraint to a - MessageWriter. - - The writer on which the actual value is displayed - - - - PropertyExistsConstraint tests that a named property - exists on the object provided through Match. - - Originally, PropertyConstraint provided this feature - in addition to making optional tests on the value - of the property. The two constraints are now separate. - - - - - Initializes a new instance of the class. - - The name of the property. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the property exists for a given object - - The object to be tested - True for success, false for failure - - - - Returns the string representation of the constraint. - - - - - - RangeConstraint tests whether two values are within a - specified range. - - - - - Initializes a new instance of the class. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use a and returns self. - - - - - RegexConstraint can test whether a string matches - the pattern provided. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Initializes a new instance of the class. - - The pattern. - - - - Initializes a new instance of the class. - - The Regex pattern object. - - - - Modify the constraint to ignore case in matching. - - - - - Applies the regex constraint to an actual value, returning a ConstraintResult. - - The string to be tested. - True for success, false for failure. - - - - ResolvableConstraintExpression is used to represent a compound - constraint being constructed at a point where the last operator - may either terminate the expression or may have additional - qualifying constraints added to it. - - It is used, for example, for a Property element or for - an Exception element, either of which may be optionally - followed by constraints that apply to the property or - exception. - - - - - Create a new instance of ResolvableConstraintExpression - - - - - Create a new instance of ResolvableConstraintExpression, - passing in a pre-populated ConstraintBuilder. - - - - - Appends an And Operator to the expression - - - - - Appends an Or operator to the expression. - - - - - Resolve the current expression to a Constraint - - - - - ReusableConstraint wraps a constraint expression after - resolving it so that it can be reused consistently. - - - - - Construct a ReusableConstraint from a constraint expression - - The expression to be resolved and reused - - - - Converts a constraint to a ReusableConstraint - - The constraint to be converted - A ReusableConstraint - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Return the top-level constraint for this expression - - - - - - SameAsConstraint tests whether an object is identical to - the object passed to its constructor - - - - - Initializes a new instance of the class. - - The expected object. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Summary description for SamePathConstraint. - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SamePathOrUnderConstraint tests that one path is under another - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SomeItemsConstraint applies another constraint to each - item in a collection, succeeding if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - succeeding if any item succeeds. - - - - - - - Flag the constraint to use the supplied object. - - The type of the elements in the collection. - The type of the member. - The comparison function to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - StartsWithConstraint can test whether a string starts - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - StringConstraint is the abstract base for constraints - that operate on strings. It supports the IgnoreCase - modifier for string operations. - - - - - The expected value - - - - - Indicates whether tests should be case-insensitive - - - - - Description of this constraint - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Constructs a StringConstraint without an expected value - - - - - Constructs a StringConstraint given an expected value - - The expected value - - - - Modify the constraint to ignore case in matching. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Test whether the constraint is satisfied by a given string - - The string to be tested - True for success, false for failure - - - - SubPathConstraint tests that the actual path is under the expected path - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SubstringConstraint can test whether a string contains - the expected substring. - - - - - Initializes a new instance of the class. - - The expected. - - - - Modify the constraint to ignore case in matching. - This will call Using(StringComparison.CurrentCultureIgnoreCase). - - Thrown when a comparison type different - than was already set. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Modify the constraint to the specified comparison. - - Thrown when a comparison type different - than was already set. - - - - ThrowsConstraint is used to test the exception thrown by - a delegate by applying a constraint to it. - - - - - Initializes a new instance of the class, - using a constraint to be applied to the exception. - - A constraint to apply to the caught exception. - - - - Get the actual exception thrown - used by Assert.Throws. - - - - - Gets text describing a constraint - - - - - Executes the code of the delegate and captures any exception. - If a non-null base constraint was provided, it applies that - constraint to the exception. - - A delegate representing the code to be tested - True if an exception is thrown and the constraint succeeds, otherwise false - - - - Converts an ActualValueDelegate to a TestDelegate - before calling the primary overload. - - - - - - - Write the actual value for a failing constraint test to a - MessageWriter. This override only handles the special message - used when an exception is expected but none is thrown. - - The writer on which the actual value is displayed - - - - ThrowsExceptionConstraint tests that an exception has - been thrown, without any further tests. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Executes the code and returns success if an exception is thrown. - - A delegate representing the code to be tested - True if an exception is thrown, otherwise false - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - - - - ThrowsNothingConstraint tests that a delegate does not - throw an exception. - - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True if no exception is thrown, otherwise false - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - The Tolerance class generalizes the notion of a tolerance - within which an equality test succeeds. Normally, it is - used with numeric types, but it can be used with any - type that supports taking a difference between two - objects and comparing that difference to a value. - - - - - Returns a default Tolerance object, equivalent to an exact match. - - - - - Returns an empty Tolerance object, equivalent to an exact match. - - - - - Constructs a linear tolerance of a specified amount - - - - - Constructs a tolerance given an amount and - - - - - Returns a new tolerance, using the current amount as a percentage. - - - - - Returns a new tolerance, using the current amount in Ulps - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of days. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of hours. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of minutes. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of seconds. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of milliseconds. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of clock ticks. - - - - - Gets the for the current Tolerance - - - - - Gets the magnitude of the current Tolerance instance. - - - - - Returns true if the current tolerance has not been set or is using the . - - - - - Apply the tolerance to an expected value and return - a Tolerance.Range that represents the acceptable values. - - - - - Tests that the current Tolerance is linear with a - numeric value, throwing an exception if it is not. - - - - - Tolerance.Range represents the range of values that match - a specific tolerance, when applied to a specific value. - - - - - The lower bound of the range - - - - - The upper bound of the range - - - - - Constructs a range - - - - - Modes in which the tolerance value for a comparison can be interpreted. - - - - - The tolerance was created with a value, without specifying - how the value would be used. This is used to prevent setting - the mode more than once and is generally changed to Linear - upon execution of the test. - - - - - The tolerance is used as a numeric range within which - two compared values are considered to be equal. - - - - - Interprets the tolerance as the percentage by which - the two compared values my deviate from each other. - - - - - Compares two values based in their distance in - representable numbers. - - - - - TrueConstraint tests that the actual value is true - - - - - Initializes a new instance of the class. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - TypeConstraint is the abstract base for constraints - that take a Type as their expected value. - - - - - The expected Type used by the constraint - - - - - The type of the actual argument to which the constraint was applied - - - - - Construct a TypeConstraint for a given Type - - The expected type for the constraint - Prefix used in forming the constraint description - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - UniqueItemsConstraint tests whether all the items in a - collection are unique. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Check that all items are unique. - - - - - - - - - - XmlSerializableConstraint tests whether - an object is serializable in XML format. - - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Returns the string representation of this constraint - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the dictionary. - - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the dictionary. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Asserts on Directories - - - - - DO NOT USE! Use DirectoryAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both point to the same directory. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if the directories are not equal - Arguments to be used in formatting the message - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both point to the same directory. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - A directory containing the actual value - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - The path to a directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - The path to a directory containing the actual value - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - A directory containing the actual value - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - The path to a directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - The path to a directory containing the actual value - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a constraint that succeeds if the value - is a file or directory and it exists. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new . This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - This overload is only used if the item sought is a string, - since any other type implies that we are looking for a - collection member. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the Dictionary key collection. - - The key to be matched in the Dictionary key collection - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the Dictionary value collection. - - The value to be matched in the Dictionary value collection - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - If throws, returns "SomeException was thrown by the Exception.StackTrace - property." See also . - - - - - If throws, returns "SomeException was thrown by the Exception.Message - property." - - - - - If throws, returns "SomeException was thrown by the Exception.Data property." - - - - - Thrown when an assertion failed. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when a test executes inconclusively. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - Construct based on the TestResult so far. This is the constructor - used normally, when exiting the multiple assert block with failures. - Not used internally but provided to facilitate debugging. - - - The current result, up to this point. The result is not used - internally by NUnit but is provided to facilitate debugging. - - - - - Serialization Constructor - - - - - Gets the provided by this exception. - - - - - Gets the of this test at the point the exception was thrown, - - - - - Abstract base for Exceptions that terminate a test and provide a ResultState. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Contains extension methods that do not require a special using directive. - - - - - Asserts on Files - - - - - DO NOT USE! Use FileAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - The message to be displayed when the two Stream are the same. - Arguments to be used in formatting the message - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Asserts that the file exists. If it does not exist - an is thrown. - - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file exists. If it does not exist - an is thrown. - - A file containing the actual value - - - - Asserts that the file exists. If it does not exist - an is thrown. - - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file exists. If it does not exist - an is thrown. - - The path to a file containing the actual value - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - A file containing the actual value - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - The path to a file containing the actual value - - - - Class used to guard against unexpected argument values - or operations by throwing an appropriate exception. - - - - - Throws an exception if an argument is null - - The value to be tested - The name of the argument - - - - Throws an exception if a string argument is null or empty - - The value to be tested - The name of the argument - - - - Throws an ArgumentOutOfRangeException if the specified condition is not met. - - The condition that must be met - The exception message to be used - The name of the argument - - - - Throws an ArgumentException if the specified condition is not met. - - The condition that must be met - The exception message to be used - The name of the argument - - - - Throws an InvalidOperationException if the specified condition is not met. - - The condition that must be met - The exception message to be used - - - - Throws an if the specified delegate is async void. - - - - - Throws an if the specified delegate is async void. - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a which will apply - the following constraint to only one member of the collection, - and fail if none or more than one match occurs. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new IndexerConstraintExpression, which will - apply any following constraint to that indexer value. - - Index accessor values. - - - - The AssertionResult class represents the result of a single assertion. - - - - - Construct an AssertionResult - - - - The pass/fail status of the assertion - - - The message produced by the assertion, or null - - - The stack trace associated with the assertion, or null - - - Determines whether the specified object is equal to the current object. - The object to compare with the current object. - - - Indicates whether the current object is equal to another object of the same type. - An object to compare with this object. - - - Serves as the default hash function. - - - - ToString Override - - - - - AssertionStatus enumeration represents the possible outcomes of an assertion. - The order of definition is significant, higher level values override lower - ones in determining the overall result of a test. - - - - - An assumption failed - - - - - The assertion succeeded - - - - - A warning message was issued - - - - - The assertion failed - - - - - An unexpected exception was thrown - - - - - The IApplyToContext interface is implemented by attributes - that want to make changes to the execution context before - a test is run. - - - - - Apply changes to the execution context - - The execution context - - - - The IApplyToTest interface is implemented by self-applying - attributes that modify the state of a test in some way. - - - - - Modifies a test as defined for the specific attribute. - - The test to modify - - - - CombiningStrategy is the abstract base for classes that - know how to combine values provided for individual test - parameters to create a set of test cases. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - ICommandWrapper is implemented by attributes and other - objects able to wrap a TestCommand with another command. - - - Attributes or other objects should implement one of the - derived interfaces, rather than this one, since they - indicate in which part of the command chain the wrapper - should be applied. - - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - Objects implementing this interface are used to wrap - the TestMethodCommand itself. They apply after SetUp - has been run and before TearDown. - - - - - Objects implementing this interface are used to wrap - the entire test, including SetUp and TearDown. - - - - - Objects implementing this interface are used to wrap - tests that can repeat. The implementing command is run once, - invoking the chained commands any number of times. - - - - - Any ITest that implements this interface is at a level that the implementing - class should be disposed at the end of the test run - - - - - The IFixtureBuilder interface is exposed by a class that knows how to - build test fixtures from a specified type. In general, it is exposed - by an attribute, but it may be implemented in a helper class used by the - attribute in some cases. - - - - - Builds any number of test fixtures from the specified type. - - The type info of the fixture to be used. - - - - The IFixtureBuilder2 interface extends IFixtureBuilder by allowing - use of a PreFilter, which is used to select methods as test cases. - - - - - Builds any number of test fixtures from the specified type. - - The type info of the fixture to be used. - PreFilter to be used to select methods. - - - - IImplyFixture is an empty marker interface used by attributes like - TestAttribute that cause the class where they are used to be treated - as a TestFixture even without a TestFixtureAttribute. - - Marker interfaces are not usually considered a good practice, but - we use it here to avoid cluttering the attribute hierarchy with - classes that don't contain any extra implementation. - - - - - The IMethodInfo class is used to encapsulate information - about a method in a platform-independent manner. - - - - - Gets the Type from which this method was reflected. - - - - - Gets the MethodInfo for this method. - - - - - Gets the name of the method. - - - - - Gets a value indicating whether the method is abstract. - - - - - Gets a value indicating whether the method is public. - - - - - Gets a value indicating whether the method is static. - - - - - Gets a value indicating whether the method contains unassigned generic type parameters. - - - - - Gets a value indicating whether the method is a generic method. - - - - - Gets a value indicating whether the MethodInfo represents the definition of a generic method. - - - - - Gets the return Type of the method. - - - - - Gets the parameters of the method. - - - - - - Returns the Type arguments of a generic method or the Type parameters of a generic method definition. - - - - - Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. - - The type arguments to be used - A new IMethodInfo with the type arguments replaced - - - - Invokes the method, converting any TargetInvocationException to an NUnitException. - - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - Provides data for a single test parameter. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test. - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - Provides data for a single test parameter. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - The IParameterInfo interface is an abstraction of a .NET parameter. - - - - - Gets a value indicating whether the parameter is optional - - - - - Gets an IMethodInfo representing the method for which this is a parameter - - - - - Gets the underlying .NET ParameterInfo - - - - - Gets the Type of the parameter - - - - - Implemented by filters for use in deciding which - Types and Methods should be used to generate tests. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - A PropertyBag represents a collection of name/value pairs - that allows duplicate entries with the same key. Methods - are provided for adding a new pair as well as for setting - a key to a single value. All keys are strings but values - may be of any type. Null values are not permitted, since - a null entry represents the absence of the key. - - The entries in a PropertyBag are of two kinds: those that - take a single value and those that take multiple values. - However, the PropertyBag has no knowledge of which entries - fall into each category and the distinction is entirely - up to the code using the PropertyBag. - - When working with multi-valued properties, client code - should use the Add method to add name/value pairs and - indexing to retrieve a list of all values for a given - key. For example: - - bag.Add("Tag", "one"); - bag.Add("Tag", "two"); - Assert.That(bag["Tag"], - Is.EqualTo(new string[] { "one", "two" })); - - When working with single-valued properties, client code - should use the Set method to set the value and Get to - retrieve the value. The GetSetting methods may also be - used to retrieve the value in a type-safe manner while - also providing default. For example: - - bag.Set("Priority", "low"); - bag.Set("Priority", "high"); // replaces value - Assert.That(bag.Get("Priority"), - Is.EqualTo("high")); - Assert.That(bag.GetSetting("Priority", "low"), - Is.EqualTo("high")); - - - - - Adds a key/value pair to the property bag - - The key - The value - - - - Sets the value for a key, removing any other - values that are already in the property set. - - - - - - - Gets a single value for a key, using the first - one if multiple values are present and returning - null if the value is not found. - - - - - Gets a flag indicating whether the specified key has - any entries in the property set. - - The key to be checked - True if their are values present, otherwise false - - - - Gets or sets the list of values for a particular key - - The key for which the values are to be retrieved or set - - - - Gets a collection containing all the keys in the property set - - - - - The IReflectionInfo interface is implemented by NUnit wrapper objects that perform reflection. - - - - - Returns an array of custom attributes of the specified type applied to this object - - - - - Returns a value indicating whether an attribute of the specified type is defined on this object. - - - - - The ISimpleTestBuilder interface is exposed by a class that knows how to - build a single tests from a specified method. In general, - it is exposed by an attribute, but it may be implemented in a helper class - used by the attribute in some cases. - - - - - Builds a single test from the specified method and context. - - The method to be used as a test - The TestSuite to which the method will be added - - - - The ISuiteBuilder interface is exposed by a class that knows how to - build a single test suite from a specified type. - - - - - Examine the type and determine if it is suitable for - this builder to use in building a TestSuite. - - Note that returning false will cause the type to be ignored - in loading the tests. If it is desired to load the suite - but label it as non-runnable, ignored, etc., then this - method must return true. - - The type of the fixture to be used - - - - Builds a single test suite from the specified type. - - The type of the fixture to be used - - - - Builds a single test suite from the specified type, subject - to a filter that decides which methods are included. - - The type of the fixture to be used - A PreFilter for selecting methods. - - - - Common interface supported by all representations - of a test. Only includes informational fields. - The Run method is specifically excluded to allow - for data-only representations of a test. - - - - - Gets the id of the test - - - - - Gets the name of the test - - - - - Gets the type of the test - - - - - Gets the fully qualified name of the test - - - - - Gets the name of the class containing this test. Returns - null if the test is not associated with a class. - - - - - Gets the name of the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - Gets the Type of the test fixture, if applicable, or - null if no fixture type is associated with this test. - - - - - Gets the method which declares the test, or - if no method is associated with this test. - - - - - Gets the RunState of the test, indicating whether it can be run. - - - - - Count of the test cases ( 1 if this is a test case ) - - - - - Gets the properties of the test - - - - - Gets the parent test, if any. - - The parent test or null if none exists. - - - - Returns true if this is a test suite - - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets this test's child tests - - A list of child tests - - - - Gets a fixture object for running this test. - - - - - The arguments to use in creating the test or empty array if none are required. - - - - - The ITestBuilder interface is exposed by a class that knows how to - build tests from a specified method. In general, it is exposed - by an attribute which has additional information available to provide - the necessary test parameters to distinguish the test cases built. - - - - - Builds any number of tests from the specified method and context. - - The method to be used as a test - The TestSuite to which the method will be added - - - - The ITestCaseBuilder interface is exposed by a class that knows how to - build a test from a specified method, possibly containing child test cases. - - - - - Examine the method and determine if it is suitable for - this builder to use in building a TestCase to be - included in the suite being populated. - - Note that returning false will cause the method to be ignored - in loading the tests. If it is desired to load the method - but label it as non-runnable, ignored, etc., then this - method must return true. - - The test method to examine - The suite being populated - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method to be used as a test case - The test suite being populated, or null - - - - The ITestCaseData interface is implemented by a class - that is able to return complete test cases for use by - a parameterized test method. - - - - - Gets the expected result of the test case - - - - - Returns true if an expected result has been set - - - - - The ITestData interface is implemented by a class that - represents a single instance of a parameterized test. - - - - - Gets the name to be used for the test - - - - - Gets the RunState for this test case. - - - - - Gets the argument list to be provided to the test - - - - - Gets the property dictionary for the test case - - - - - Interface to be implemented by filters applied to tests. - The filter applies when running the test, after it has been - loaded, since this is the only time an ITest exists. - - - - - Determine if a particular test passes the filter criteria. Pass - may examine the parents and/or descendants of a test, depending - on the semantics of the particular filter - - The test to which the filter is applied - True if the test passes the filter, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - The ITestCaseData interface is implemented by a class - that is able to return the data required to create an - instance of a parameterized test fixture. - - - - - Get the TypeArgs if separately set - - - - - The ITestListener interface is used internally to receive - notifications of significant events while a test is being - run. The events are propagated to clients by means of an - AsyncCallback. NUnit extensions may also monitor these events. - - - - - Called when a test has just started - - The test that is starting - - - - Called when a test has finished - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - The ITestResult interface represents the result of a test. - - - - - Gets the ResultState of the test result, which - indicates the success or failure of the test. - - - - - Gets the name of the test result - - - - - Gets the full name of the test result - - - - - Gets the elapsed time for running the test in seconds - - - - - Gets or sets the time the test started running. - - - - - Gets or sets the time the test finished running. - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - Gets the total number of tests executed - when running the test and all its children. - - - - - Gets the number of asserts executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - Accessing HasChildren should not force creation of the - Children collection in classes implementing this interface. - - - - - Gets the collection of child results. - - - - - Gets the Test to which this result applies. - - - - - Gets any text output written to this result. - - - - - Gets a list of AssertionResults associated with the test - - - - - Gets the collection of files attached to the test - - - - - The ITypeInfo interface is an abstraction of a .NET Type - - - - - Gets the underlying Type on which this ITypeInfo is based - - - - - Gets the base type of this type as an ITypeInfo - - - - - Returns true if the Type wrapped is equal to the argument - - - - - Gets the name of the Type - - - - - Gets the full name of the Type - - - - - Gets the assembly in which the type is declared - - - - - Gets the namespace of the Type - - - - - Gets a value indicating whether the type is abstract. - - - - - Gets a value indicating whether the Type is a generic Type - - - - - Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. - - - - - Gets a value indicating whether the Type is a generic Type definition - - - - - Gets a value indicating whether the type is sealed. - - - - - Gets a value indicating whether this type is a static class. - - - - - Get the display name for this typeInfo. - - - - - Get the display name for an object of this type, constructed with specific arguments - - - - - Returns a Type representing a generic type definition from which this Type can be constructed. - - - - - Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments - - - - - Returns a value indicating whether this type has a method with a specified public attribute - - - - - Returns an array of IMethodInfos for methods of this Type - that match the specified flags. - - - - - Gets the public constructor taking the specified argument Types - - - - - Returns a value indicating whether this Type has a public constructor taking the specified argument Types. - - - - - Construct an object of this Type, using the specified arguments. - - - - - Returns all methods declared by this type that have the specified attribute, optionally - including base classes. Methods from a base class are always returned before methods from a class that - inherits from it. - - Specifies whether to search the fixture type inheritance chain. - - - - An object implementing IXmlNodeBuilder is able to build - an XML representation of itself and any children. - - - - - Returns a TNode representing the current object. - - If true, children are included where applicable - A TNode representing the result - - - - Returns a TNode representing the current object after - adding it as a child of the supplied parent node. - - The parent node. - If true, children are included, where applicable - - - - - The ResultState class represents the outcome of running a test. - It contains two pieces of information. The Status of the test - is an enum indicating whether the test passed, failed, was - skipped or was inconclusive. The Label provides a more - detailed breakdown for use by client runners. - - - - - Initializes a new instance of the class. - - The TestStatus. - - - - Initializes a new instance of the class. - - The TestStatus. - The label. - - - - Initializes a new instance of the class. - - The TestStatus. - The stage at which the result was produced - - - - Initializes a new instance of the class. - - The TestStatus. - The label. - The stage at which the result was produced - - - - The result is inconclusive - - - - - The test has been skipped. - - - - - The test has been ignored. - - - - - The test was skipped because it is explicit - - - - - The test succeeded - - - - - The test issued a warning - - - - - The test failed - - - - - The test encountered an unexpected exception - - - - - The test was cancelled by the user - - - - - The test was not runnable. - - - - - A suite failed because one or more child tests failed or had errors - - - - - A suite failed because one or more child tests had warnings - - - - - A suite is marked ignored because one or more child tests were ignored - - - - - A suite failed in its OneTimeSetUp - - - - - A suite had an unexpected exception in its OneTimeSetUp - - - - - A suite had an unexpected exception in its OneTimeDown - - - - - Gets the TestStatus for the test. - - The status. - - - - Gets the label under which this test result is - categorized, or if none. - - - - - Gets the stage of test execution in which - the failure or other result took place. - - - - - Get a new ResultState, which is the same as the current - one but with the FailureSite set to the specified value. - - The FailureSite to use - A new ResultState - - - - Test whether this ResultState has the same Status and Label - as another one. In other words, the whether two are equal - ignoring the Site. - - - - - - Determines whether the specified object is equal to the current object. - The object to compare with the current object. - - - Indicates whether the current object is equal to another object of the same type. - An object to compare with this object. - - - Serves as the default hash function. - - - - Overload == operator for ResultStates - - - - - Overload != operator for ResultStates - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - The FailureSite enum indicates the stage of a test - in which an error or failure occurred. - - - - - Failure in the test itself - - - - - Failure in the SetUp method - - - - - Failure in the TearDown method - - - - - Failure of a parent test - - - - - Failure of a child test - - - - - The RunState enum indicates whether a test can be executed. - - - - - The test is not runnable. - - - - - The test is runnable. - - - - - The test can only be run explicitly - - - - - The test has been skipped. This value may - appear on a Test when certain attributes - are used to skip the test. - - - - - The test has been ignored. May appear on - a Test, when the IgnoreAttribute is used. - - - - - The TestAttachment class represents a file attached to a TestResult, - with an optional description. - - - - - Absolute file path to attachment file - - - - - User specified description of attachment. May be null. - - - - - Creates a TestAttachment class to represent a file attached to a test result. - - Absolute file path to attachment file - User specified description of attachment. May be null. - - - - The class holds a message sent by a test to all listeners - - - - - Construct with text, destination type and - the name of the test that produced the message. - - Destination of the message - Text to be sent - ID of the test that produced the message - - - - Converts object to string - - - - - The message to send to listeners - - - - - The Destination of the message. - - - - - The ID of the test that sent the message - - - - - Returns the XML representation of the object. - - - - - The TestOutput class holds a unit of output from - a test to a specific output stream - - - - - Construct with text, output destination type and - the name of the test that produced the output. - - Text to be output - Name of the stream or channel to which the text should be written - Id of the test that produced the output - FullName of test that produced the output - - - - Return string representation of the object for debugging - - - - - - Get the text - - - - - Get the output type - - - - - Get the name of the test that created the output - - - - - Get the id of the test that created the output - - - - - Convert the TestOutput object to an XML string - - - - - The TestStatus enum indicates the result of running a test - - - - - The test was inconclusive - - - - - The test has skipped - - - - - The test succeeded - - - - - There was a warning - - - - - The test failed - - - - - TNode represents a single node in the XML representation - of a Test or TestResult. It replaces System.Xml.XmlNode and - System.Xml.Linq.XElement, providing a minimal set of methods - for operating on the XML in a platform-independent manner. - - - - - Constructs a new instance of TNode - - The name of the node - - - - Constructs a new instance of TNode with a value - - The name of the node - The text content of the node - - - - Constructs a new instance of TNode with a value - - The name of the node - The text content of the node - Flag indicating whether to use CDATA when writing the text - - - - Gets the name of the node - - - - - Gets the value of the node - - - - - Gets a flag indicating whether the value should be output using CDATA. - - - - - Gets the dictionary of attributes - - - - - Gets a list of child nodes - - - - - Gets the first ChildNode - - - - - Gets the XML representation of this node. - - - - - Create a TNode from its XML text representation - - The XML text to be parsed - A TNode - - - - Adds a new element as a child of the current node and returns it. - - The element name. - The newly created child element - - - - Adds a new element with a value as a child of the current node and returns it. - - The element name - The text content of the new element - The newly created child element - - - - Adds a new element with a value as a child of the current node and returns it. - The value will be output using a CDATA section. - - The element name - The text content of the new element - The newly created child element - - - - Adds an attribute with a specified name and value to the XmlNode. - - The name of the attribute. - The value of the attribute. - - - - Finds a single descendant of this node matching an XPath - specification. The format of the specification is - limited to what is needed by NUnit and its tests. - - - - - - - Finds all descendants of this node matching an XPath - specification. The format of the specification is - limited to what is needed by NUnit and its tests. - - - - - Writes the XML representation of the node to an XmlWriter - - - - - - Class used to represent a list of XmlResults - - - - - Class used to represent the attributes of a node - - - - - Gets or sets the value associated with the specified key. - Overridden to return null if attribute is not found. - - The key. - Value of the attribute or null - - - - A production implementation that delegates directly to .NET's . - - - - - Returns whether a debugger is currently attached to the process - - - - - A layer of abstraction around to facilitate testing. - - - - - Whether a debugger is currently attached to the process. - - - - - AssemblyHelper provides static methods for working - with assemblies. - - - - - Gets the path from which an assembly was loaded. - For builds where this is not possible, returns - the name of the assembly. - - The assembly. - The path. - - - - Gets the path to the directory from which an assembly was loaded. - - The assembly. - The path. - - - - Gets the AssemblyName of an assembly. - - The assembly - An AssemblyName - - - - Loads an assembly given a string, which may be the - path to the assembly or the AssemblyName - - - - - Gets the assembly path from code base. - - Public for testing purposes - The code base. - - - - - Adapts various styles of asynchronous waiting to a common API. - - - - - CombinatorialStrategy creates test cases by using all possible - combinations of the parameter data. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - Provides data from fields marked with the DatapointAttribute or the - DatapointsAttribute. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - Built-in SuiteBuilder for all types of test classes. - - - - - Examine the type and determine if it is suitable for - this builder to use in building a TestSuite. - - Note that returning false will cause the type to be ignored - in loading the tests. If it is desired to load the suite - but label it as non-runnable, ignored, etc., then this - method must return true. - - The fixture type to check - - - - Builds a single test suite from the specified type. - - The fixture type to build - - - - Builds a single test suite from the specified type, subject - to a filter that decides which methods are included. - - The fixture type to build - A PreFilter for selecting methods. - - - - We look for attributes implementing IFixtureBuilder at one level - of inheritance at a time. Attributes on base classes are not used - unless there are no fixture builder attributes at all on the derived - class. This is by design. - - The type being examined for attributes - - - - Class to build ether a parameterized or a normal NUnitTestMethod. - There are four cases that the builder must deal with: - 1. The method needs no params and none are provided - 2. The method needs params and they are provided - 3. The method needs no params but they are provided in error - 4. The method needs params but they are not provided - This could have been done using two different builders, but it - turned out to be simpler to have just one. The BuildFrom method - takes a different branch depending on whether any parameters are - provided, but all four cases are dealt with in lower-level methods - - - - - Determines if the method can be used to build an NUnit test - test method of some kind. The method must normally be marked - with an identifying attribute for this to be true. - - Note that this method does not check that the signature - of the method for validity. If we did that here, any - test methods with invalid signatures would be passed - over in silence in the test run. Since we want such - methods to be reported, the check for validity is made - in BuildFrom rather than here. - - An IMethodInfo for the method being used as a test method - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method for which a test is to be built - - - - Determines if the method can be used to build an NUnit test - test method of some kind. The method must normally be marked - with an identifying attribute for this to be true. - - Note that this method does not check that the signature - of the method for validity. If we did that here, any - test methods with invalid signatures would be passed - over in silence in the test run. Since we want such - methods to be reported, the check for validity is made - in BuildFrom rather than here. - - An IMethodInfo for the method being used as a test method - The test suite being built, to which the new test would be added - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method for which a test is to be built - The test fixture being populated, or null - - - - Builds a ParameterizedMethodSuite containing individual test cases. - - The method for which a test is to be built. - The list of test cases to include. - - - - Build a simple, non-parameterized TestMethod for this method. - - The MethodInfo for which a test is to be built - The test suite for which the method is being built - - - - Class that can build a tree of automatic namespace - suites from a group of fixtures. - - - - - NamespaceDictionary of all test suites we have created to represent - namespaces. Used to locate namespace parent suites for fixtures. - - - - - Point in the tree where items in the global namespace are added - - - - - Initializes a new instance of the class. - - The root suite. - - - - Gets the root entry in the tree created by the NamespaceTreeBuilder. - - The root suite. - - - - Adds the specified fixtures to the tree. - - The fixtures to be added. - - - - Adds the specified fixture to the tree. - - The fixture to be added. - - - - NUnitTestCaseBuilder is a utility class used by attributes - that build test cases. - - - - - Constructs an - - - - - Builds a single NUnitTestMethod, either as a child of the fixture - or as one of a set of test cases under a ParameterizedTestMethodSuite. - - The MethodInfo from which to construct the TestMethod - The suite or fixture to which the new test will be added - The ParameterSet to be used, or null - - - - Checks to see if we have valid combinations of attributes. - - The TestMethod to be checked. If it - is found to be non-runnable, it will be modified. - True if the method signature is valid, false if not - - - - Helper method that checks the signature of a TestMethod and - any supplied parameters to determine if the test is valid. - - Currently, NUnitTestMethods are required to be public, - non-abstract methods, either static or instance, - returning void. They may take arguments but the values must - be provided or the TestMethod is not considered runnable. - - Methods not meeting these criteria will be marked as - non-runnable and the method will return false in that case. - - The TestMethod to be checked. If it - is found to be non-runnable, it will be modified. - Parameters to be used for this test, or null - True if the method signature is valid, false if not - - The return value is no longer used internally, but is retained - for testing purposes. - - - - - NUnitTestFixtureBuilder is able to build a fixture given - a class marked with a TestFixtureAttribute or an unmarked - class containing test methods. In the first case, it is - called by the attribute and in the second directly by - NUnitSuiteBuilder. - - - - - Build a TestFixture from type provided. A non-null TestSuite - must always be returned, since the method is generally called - because the user has marked the target class as a fixture. - If something prevents the fixture from being used, it should - be returned nonetheless, labeled as non-runnable. - - An ITypeInfo for the fixture to be used. - Filter used to select methods as tests. - A TestSuite object or one derived from TestSuite. - - - - Overload of BuildFrom called by tests that have arguments. - Builds a fixture using the provided type and information - in the ITestFixtureData object. - - The TypeInfo for which to construct a fixture. - Filter used to select methods as tests. - An object implementing ITestFixtureData or null. - - - - - Method to add test cases to the newly constructed fixture. - - - - - Method to create a test case from a MethodInfo and add - it to the fixture being built. It first checks to see if - any global TestCaseBuilder addin wants to build the - test case. If not, it uses the internal builder - collection maintained by this fixture builder. - - The default implementation has no test case builders. - Derived classes should add builders to the collection - in their constructor. - - The method for which a test is to be created - The test suite being built. - A newly constructed Test - - - - PairwiseStrategy creates test cases by combining the parameter - data so that all possible pairs of data items are used. - - - - The number of test cases that cover all possible pairs of test function - parameters values is significantly less than the number of test cases - that cover all possible combination of test function parameters values. - And because different studies show that most of software failures are - caused by combination of no more than two parameters, pairwise testing - can be an effective ways to test the system when it's impossible to test - all combinations of parameters. - - - The PairwiseStrategy code is based on "jenny" tool by Bob Jenkins: - https://burtleburtle.net/bob/math/jenny.html - - - - - - FleaRand is a pseudo-random number generator developed by Bob Jenkins: - https://burtleburtle.net/bob/rand/talksmall.html#flea - - - - - Initializes a new instance of the FleaRand class. - - The seed. - - - - FeatureInfo represents coverage of a single value of test function - parameter, represented as a pair of indices, Dimension and Feature. In - terms of unit testing, Dimension is the index of the test parameter and - Feature is the index of the supplied value in that parameter's list of - sources. - - - - - Initializes a new instance of FeatureInfo class. - - Index of a dimension. - Index of a feature. - - - - A FeatureTuple represents a combination of features, one per test - parameter, which should be covered by a test case. In the - PairwiseStrategy, we are only trying to cover pairs of features, so the - tuples actually may contain only single feature or pair of features, but - the algorithm itself works with triplets, quadruples and so on. - - - - - Initializes a new instance of FeatureTuple class for a single feature. - - Single feature. - - - - Initializes a new instance of FeatureTuple class for a pair of features. - - First feature. - Second feature. - - - - TestCase represents a single test case covering a list of features. - - - - - Initializes a new instance of TestCaseInfo class. - - A number of features in the test case. - - - - PairwiseTestCaseGenerator class implements an algorithm which generates - a set of test cases which covers all pairs of possible values of test - function. - - - - The algorithm starts with creating a set of all feature tuples which we - will try to cover (see method). This set - includes every single feature and all possible pairs of features. We - store feature tuples in the 3-D collection (where axes are "dimension", - "feature", and "all combinations which includes this feature"), and for - every two feature (e.g. "A" and "B") we generate both ("A", "B") and - ("B", "A") pairs. This data structure extremely reduces the amount of - time needed to calculate coverage for a single test case (this - calculation is the most time-consuming part of the algorithm). - - - Then the algorithm picks one tuple from the uncovered tuple, creates a - test case that covers this tuple, and then removes this tuple and all - other tuples covered by this test case from the collection of uncovered - tuples. - - - Picking a tuple to cover - - - There are no any special rules defined for picking tuples to cover. We - just pick them one by one, in the order they were generated. - - - Test generation - - - Test generation starts from creating a completely random test case which - covers, nevertheless, previously selected tuple. Then the algorithm - tries to maximize number of tuples which this test covers. - - - Test generation and maximization process repeats seven times for every - selected tuple and then the algorithm picks the best test case ("seven" - is a magic number which provides good results in acceptable time). - - Maximizing test coverage - - To maximize tests coverage, the algorithm walks through the list of mutable - dimensions (mutable dimension is a dimension that are not included in - the previously selected tuple). Then for every dimension, the algorithm - walks through the list of features and checks if this feature provides - better coverage than randomly selected feature, and if yes keeps this - feature. - - - This process repeats while it shows progress. If the last iteration - doesn't improve coverage, the process ends. - - - In addition, for better results, before start every iteration, the - algorithm "scrambles" dimensions - so for every iteration dimension - probes in a different order. - - - - - - Creates a set of test cases for specified dimensions. - - - An array which contains information about dimensions. Each element of - this array represents a number of features in the specific dimension. - - - A set of test cases. - - - - - Gets the test cases generated by this strategy instance. - - A set of test cases. - - - - The ParameterDataProvider class implements IParameterDataProvider - and hosts one or more individual providers. - - - - - Construct with a collection of individual providers - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - ParameterDataSourceProvider supplies individual argument values for - single parameters using attributes implementing IParameterDataSource. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - SequentialStrategy creates test cases by using all of the - parameter data sources in parallel, substituting - when any of them run out of data. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - TestActionAfterCommand handles the AfterTest method of a single - TestActionItem, provided the items BeforeTest has been run. - - - - - Initializes a new instance of the class. - - The inner command. - The TestActionItem to run before the inner command. - - - - AfterCommand is a DelegatingTestCommand that performs some - specific action after the inner command is run. - - - - - Construct an AfterCommand - - - - - Execute the command - - - - - Set this to perform action after the inner command. - - - - - ContextSettingsCommand applies specified changes to the - TestExecutionContext prior to running a test. No special - action is needed after the test runs, since the prior - context will be restored automatically. - - - - - TestActionCommand handles a single ITestAction applied - to a test. It runs the BeforeTest method, then runs the - test and finally runs the AfterTest method. - - - - - Initializes a new instance of the class. - - The inner command. - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Perform the before test action - - - - - Perform the after test action - - - - - TestActionBeforeCommand handles the BeforeTest method of a single - TestActionItem, relying on the item to remember it has been run. - - - - - Initializes a new instance of the class. - - The inner command. - The TestActionItem to run before the inner command. - - - - BeforeTestCommand is a DelegatingTestCommand that performs some - specific action before the inner command is run. - - - - - Construct a BeforeCommand - - - - - Execute the command - - - - - Action to perform before the inner command. - - - - - ConstructFixtureCommand constructs the user test object if necessary. - - - - - Constructs a OneTimeSetUpCommand for a suite - - The inner command to which the command applies - - - - DelegatingTestCommand wraps an inner TestCommand. - Derived classes may do what they like before or - after running the inner command. - - - - TODO: Documentation needed for field - - - - Initializes a new instance of the class. - - The inner command. - - - - OneTimeTearDownCommand performs any teardown actions - specified for a suite and calls Dispose on the user - test object, if any. - - - - - Construct a OneTimeTearDownCommand - - The command wrapped by this command - - - - EmptyTestCommand is a TestCommand that does nothing. It simply - returns the current result from the context when executed. We - use it to avoid testing for null when executing a chain of - DelegatingTestCommands. - - - - - Construct a NullCommand for a test - - - - - Execute the command - - - - - ConstructFixtureCommand constructs the user test object if necessary. - - - - - Handles the construction and disposement of a fixture per test case - - The inner command to which the command applies - - - - adjusts the result of a successful test - to a failure if the elapsed time has exceeded the specified maximum - time allowed. - - - - - Initializes a new instance of the class. - - The inner command. - The max time allowed in milliseconds - - - - OneTimeSetUpCommand runs any one-time setup methods for a suite, - constructing the user test object if necessary. - - - - - Constructs a OneTimeSetUpCommand for a suite - - The inner command to which the command applies - A SetUpTearDownList for use by the command - - - - OneTimeTearDownCommand performs any teardown actions - specified for a suite and calls Dispose on the user - test object, if any. - - - - - Construct a OneTimeTearDownCommand - - The command wrapped by this command - A SetUpTearDownList for use by the command - - - - SetUpTearDownCommand runs SetUp methods for a suite, - runs the test and then runs TearDown methods. - - - - - Initializes a new instance of the class. - - The inner command. - List of setup/teardown items - - - - SetUpTearDownItem holds the setup and teardown methods - for a single level of the inheritance hierarchy. - - - - - Construct a SetUpTearDownNode - - A list of setup methods for this level - A list teardown methods for this level - A method validator to validate each method before calling. - - - - Returns true if this level has any methods at all. - This flag is used to discard levels that do nothing. - - - - - Run SetUp on this level. - - The execution context to use for running. - - - - Run TearDown for this level. - - - - - - TODO: Documentation needed for class - - - - - Initializes a new instance of the class. - - The test being skipped. - - - - Overridden to simply set the CurrentResult to the - appropriate Skipped state. - - The execution context for the test - A TestResult - - - - TestActionCommand handles a single ITestAction applied - to a test. It runs the BeforeTest method, then runs the - test and finally runs the AfterTest method. - - - - - Initializes a new instance of the class. - - The inner command. - The TestAction with which to wrap the inner command. - - - - TestActionItem wraps a single execution of an ITestAction. - Its primary purpose is to track whether the BeforeTest - method has been called and suppress calling the - AfterTest method if it has not. This is necessary when - ITestActions are used before and after a CompositeWorkItem, - since the OneTimeSetUpCommand and OneTimeTearDownCommand - are separate command chains. By sharing a TestActionItem - between the setup and teardown chains, the two calls can - be coordinated. - - - - - Construct a TestActionItem - - The ITestAction to be included - - - - Get flag indicating if the BeforeTest entry was already called. - - - - - Run the BeforeTest method of the action and remember that it has been run. - - The test to which the action applies - - - - Run the AfterTest action, but only if the BeforeTest - action was actually run. - - The test to which the action applies - - - - TestCommand is the abstract base class for all test commands - in the framework. A TestCommand represents a single stage in - the execution of a test, e.g.: SetUp/TearDown, checking for - Timeout, verifying the returned result from a method, etc. - - TestCommands may decorate other test commands so that the - execution of a lower-level command is nested within that - of a higher level command. All nested commands are executed - synchronously, as a single unit. Scheduling test execution - on separate threads is handled at a higher level, using the - task dispatcher. - - - - - Construct a TestCommand for a test. - - The test to be executed - - - - Gets the test associated with this command. - - - - - Runs the test in a specified context, returning a TestResult. - - The TestExecutionContext to be used for running the test. - A TestResult - - - - TestMethodCommand is the lowest level concrete command - used to run actual test cases. - - - - - Initializes a new instance of the class. - - The test. - - - - Runs the test, saving a TestResult in the execution context, as - well as returning it. If the test has an expected result, it - is asserts on that value. Since failed tests and errors throw - an exception, this command must be wrapped in an outer command, - will handle that exception and records the failure. This role - is usually played by the SetUpTearDown command. - - The execution context - - - - TheoryResultCommand adjusts the result of a Theory so that - it fails if all the results were inconclusive. - - - - - Constructs a TheoryResultCommand - - The command to be wrapped by this one - - - - creates a timer in order to cancel - a test if it exceeds a specified time and adjusts - the test result if it did time out. - - - - - Initializes a new instance of the class. - - The inner command - Timeout value - - - - Initializes a new instance of the class. - - The inner command - Timeout value - An instance - - - - Provides methods to support consistent checking in constraints. - - - - - Requires that the provided object is actually of the type required. - - The object to verify. - Name of the parameter as passed into the checking method. - - If and can be null, returns null rather than throwing when is null. - If cannot be null, this parameter is ignored. - The type to require. - - - - CultureDetector is a helper class used by NUnit to determine - whether a test should be run based on the current culture. - - - - - Default constructor uses the current culture. - - - - - Construct a CultureDetector for a particular culture for testing. - - The culture to be used - - - - Test to determine if one of a collection of cultures - is being used currently. - - - - - - - Tests to determine if the current culture is supported - based on a culture attribute. - - The attribute to examine - - - - - Test to determine if the a particular culture or comma- - delimited set of cultures is in use. - - Name of the culture or comma-separated list of culture ids - True if the culture is in use on the system - - - - Return the last failure reason. Results are not - defined if called before IsSupported( Attribute ) - is called. - - - - - Useful when wrapping awaiters whose GetResult method does not block until complete. - Contains a default mechanism to implement - via and . - - - - - ExceptionHelper provides static methods for working with exceptions - - - - - Rethrows an exception, preserving its stack trace - - The exception to rethrow - - - - Builds up a message, using the Message field of the specified exception - as well as any InnerExceptions. Optionally excludes exception names, - creating a more readable message. - - The exception. - Flag indicating whether exception names should be excluded. - A combined message string. - - - - Builds up a message, using the Message field of the specified exception - as well as any InnerExceptions. - - The exception. - A combined stack trace. - - - - Executes a parameterless synchronous or async delegate and returns the exception it throws, if any. - - - - - A CompositeWorkItem represents a test suite and - encapsulates the execution of the suite as well - as all its child tests. - - - - - List of Child WorkItems - - - - - Indicates whether this work item should use a separate dispatcher. - - - - - Construct a CompositeWorkItem for executing a test suite - using a filter to select child tests. - - The TestSuite to be executed - A filter used to select child tests - - - - Method that actually performs the work. Overridden - in CompositeWorkItem to do one-time setup, run all child - items and then dispatch the one-time teardown work item. - - - - - - - - - - Cancel (abort or stop) a CompositeWorkItem and all of its children - - true if the CompositeWorkItem and all of its children should be aborted, false if it should allow all currently running tests to complete - - - - OneTimeTearDownWorkItem represents the cleanup - and one-time teardown phase of a CompositeWorkItem - - - - - Construct a OneTimeTearDownWOrkItem wrapping a CompositeWorkItem - - The CompositeWorkItem being wrapped - - - - The WorkItem name, overridden to indicate this is the teardown. - - - - - The ExecutionStrategy for use in running this work item - - - - - - - - - - PerformWork is not used in CompositeWorkItem - - - - - WorkItemCancelled is called directly by the parallel dispatcher - when a test suite is left hanging after a forced StopRun. We - simulate WorkItemComplete() but without the ripple effect to - higher level suites, since we are controlling it all directly. - - - - - A simplified implementation of .NET 4 CountdownEvent - for use in earlier versions of .NET. Only the methods - used by NUnit are implemented. - - - - - Construct a CountdownEvent - - The initial count - - - - Gets the initial count established for the CountdownEvent - - - - - Gets the current count remaining for the CountdownEvent - - - - - Decrement the count by one - - - - - Decrement the count by the specified amount - - - - - Block the thread until the count reaches zero - - - - - EventListenerTextWriter sends text output to the currently active - ITestEventListener in the form of a TestOutput object. If no event - listener is active in the context, or if there is no context, - the output is forwarded to the supplied default writer. - - - - - Construct an EventListenerTextWriter - - The name of the stream to use for events - The default writer to use if no listener is available - - - - Get the Encoding for this TextWriter - - - - - Write formatted string - - - - - Write formatted string - - - - - Write formatted string - - - - - Write an object - - - - - Write a string - - - - - Write a decimal - - - - - Write a double - - - - - Write formatted string - - - - - Write a ulong - - - - - Write a long - - - - - Write a uint - - - - - Write an int - - - - - Write a char - - - - - Write a boolean - - - - - Write chars - - - - - Write chars - - - - - Write a float - - - - - Write a string with newline - - - - - Write an object with newline - - - - - Write formatted string with newline - - - - - Write formatted string with newline - - - - - Write formatted string with newline - - - - - Write a decimal with newline - - - - - Write a formatted string with newline - - - - - Write a double with newline - - - - - Write a uint with newline - - - - - Write a ulong with newline - - - - - Write a long with newline - - - - - Write an int with newline - - - - - Write a bool with newline - - - - - Write chars with newline - - - - - Write chars with newline - - - - - Write a char with newline - - - - - Write a float with newline - - - - - Write newline - - - - - The EventPumpState enum represents the state of an - EventPump. - - - - - The pump is stopped - - - - - The pump is pumping events with no stop requested - - - - - The pump is pumping events but a stop has been requested - - - - - EventPump pulls events out of an EventQueue and sends - them to a listener. It is used to send events back to - the client without using the CallContext of the test - runner thread. - - - - - The downstream listener to which we send events - - - - - The queue that holds our events - - - - - Thread to do the pumping - - - - - The current state of the event pump - - - - - Constructor - - The EventListener to receive events - The event queue to pull events from - - - - Gets or sets the current state of the pump - - - - - Gets or sets the name of this EventPump - (used only internally and for testing). - - - - - Dispose stops the pump - Disposes the used WaitHandle, too. - - - - - Start the pump - - - - - Tell the pump to stop after emptying the queue. - - - - - Our thread proc for removing items from the event - queue and sending them on. Note that this would - need to do more locking if any other thread were - removing events from the queue. - - - - - NUnit.Core.Event is the abstract base for all stored events. - An Event is the stored representation of a call to the - ITestListener interface and is used to record such calls - or to queue them for forwarding on another thread or at - a later time. - - - - - The Send method is implemented by derived classes to send the event to the specified listener. - - The listener. - - - - TestStartedEvent holds information needed to call the TestStarted method. - - - - - Initializes a new instance of the class. - - The test. - - - - Calls TestStarted on the specified listener. - - The listener. - - - - TestFinishedEvent holds information needed to call the TestFinished method. - - - - - Initializes a new instance of the class. - - The result. - - - - Calls TestFinished on the specified listener. - - The listener. - - - - TestOutputEvent holds information needed to call the TestOutput method. - - - - - Initializes a new instance of the class. - - The output object. - - - - Calls TestOutput on the specified listener. - - The listener. - - - - TestMessageEvent holds information needed to call the SendMessage method. - - - - - Initializes a new instance of the class. - - The test message object. - - - - Calls on the specified listener. - - The listener. - - - - Holds object for sending to all listeners - - - - - Implements a queue of work items each of which - is queued as a WaitCallback. - - - - - Gets the count of items in the queue. - - - - - Enqueues the specified event - - The event to enqueue. - - - - Removes the first element from the queue and returns it (or ). - - - If and the queue is empty, the calling thread is blocked until - either an element is enqueued, or is called. - - - - - If the queue not empty - the first element. - - - otherwise, if == - or has been called - . - - - - - - - Stop processing of the queue - - - - - Validates method to execute. - - - - - Determines whether a method is allowed to execute and throws an exception otherwise. - - The method to validate. - - - - An IWorkItemDispatcher handles execution of work items. - - - - - The level of parallelism supported. Zero if not supported. - - - - - Start execution, performing any initialization. Sets - the top level work item and dispatches it. - - - - - Dispatch a single work item for execution. The first - work item dispatched is saved as the top-level - work item and used when stopping the run. - - The item to dispatch - - - - Cancel the ongoing run completely. - If no run is in process, the call has no effect. - - true if the IWorkItemDispatcher should abort all currently running WorkItems, false if it should allow all currently running WorkItems to complete - - - - MainThreadWorkItemDispatcher handles execution of WorkItems by - directly executing them on the main thread. This is different - from the SimpleWorkItemDispatcher where the work item is dispatched - onto its own thread. - - - - - The level of parallelism supported - - - - - Start execution, dispatching the top level - work into the main thread. - - - - - Dispatch a single work item for execution by - executing it directly. - - The item to dispatch - - - - This method is not supported for - this dispatcher. Using it will throw a - NotSupportedException. - - Not used - If used, it will always throw this. - - - - Enumeration representing the strategy to follow in executing a work item. - The value is only relevant when running under the parallel dispatcher. - - - - - Run directly on same thread - - - - - Enqueue for parallel execution - - - - - Enqueue for non-parallel execution - - - - - ParallelWorkItemDispatcher handles execution of work items by - queuing them for worker threads to process. - - - - - Event raised whenever a shift is starting. - - - - - Event raised whenever a shift has ended. - - - - - Construct a ParallelWorkItemDispatcher - - Number of workers to use - - - - Number of parallel worker threads - - - - - Enumerates all the shifts supported by the dispatcher - - - - - Enumerates all the Queues supported by the dispatcher - - - - - Start execution, setting the top level work, - enqueuing it and starting a shift to execute it. - - - - - Dispatch a single work item for execution. The first - work item dispatched is saved as the top-level - work item and used when stopping the run. - - The item to dispatch - - - - Cancel the ongoing run completely. - If no run is in process, the call has no effect. - - - - - Save the state of the queues and create a new isolated set - - - - - Try to remove isolated queues and restore old ones - - - - - QueuingEventListener uses an EventQueue to store any - events received on its EventListener interface. - - - - - The EventQueue created and filled by this listener - - - - - Construct a QueuingEventListener - - - - - A test has started - - The test that is starting - - - - A test case finished - - Result of the test case - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - A SimpleWorkItem represents a single test case and is - marked as completed immediately upon execution. This - class is also used for skipped or ignored test suites. - - - - - Construct a simple work item for a test. - - The test to be executed - The filter used to select this test - - - - Construct a simple work item for a test. - - The test to be executed - The filter used to select this test - An instance - - - - Method that performs actually performs the work. - - - - - Creates a test command for use in running this test. - - A TestCommand - - - - SimpleWorkItemDispatcher handles execution of WorkItems by - directly executing them. It is provided so that a dispatcher - is always available in the context, thereby simplifying the - code needed to run child tests. - - - - - The level of parallelism supported - - - - - Start execution, creating the execution thread, - setting the top level work and dispatching it. - - - - - Dispatch a single work item for execution by - executing it directly. - - The item to dispatch - - - - Cancel (abort or stop) the ongoing run. - If no run is in process, the call has no effect. - - true if the run should be aborted, false if it should allow its currently running test to complete - - - - Checks whether the method to execute is static. - - - - - Construct a StaticMethodValidator. - - The error message to output in case the validation fails. - - - - Determines whether a method to execute is static and throws an InvalidOperationException otherwise. - - The method to validate. - - - - A TestWorker pulls work items from a queue - and executes them. - - - - - Event handler for TestWorker events - - The TestWorker sending the event - The WorkItem that caused the event - - - - Event signaled immediately before executing a WorkItem - - - - - Event signaled immediately after executing a WorkItem - - - - - Construct a new TestWorker. - - The queue from which to pull work items - The name of this worker - - - - The WorkItemQueue from which this worker pulls WorkItems - - - - - The name of this worker - also used for the thread - - - - - Indicates whether the worker thread is running - - - - - Our ThreadProc, which pulls and runs tests in a loop - - - - - Create thread and start processing work items. - - - - - Stop the thread, either immediately or after finishing the current WorkItem - - true if the thread should be aborted, false if it should allow the currently running test to complete - - - - The TextCapture class intercepts console output and writes it - to the current execution context, if one is present on the thread. - If no execution context is found, the output is written to a - default destination, normally the original destination of the - intercepted output. - - - - - Construct a TextCapture object - - The default destination for non-intercepted output - - - - Gets the Encoding in use by this TextWriter - - - - - Writes a single character - - The char to write - - - - Writes a string - - The string to write - - - - Writes a string followed by a line terminator - - The string to write - - - - A WorkItem may be an individual test case, a fixture or - a higher level grouping of tests. All WorkItems inherit - from the abstract WorkItem class, which uses the template - pattern to allow derived classes to perform work in - whatever way is needed. - - A WorkItem is created with a particular TestExecutionContext - and is responsible for re-establishing that context in the - current thread before it begins or resumes execution. - - - - - Construct a WorkItem for a particular test. - - The test that the WorkItem will run - Filter used to include or exclude child items - - - - Construct a work Item that wraps another work Item. - Wrapper items are used to represent independently - dispatched tasks, which form part of the execution - of a single test, such as OneTimeTearDown. - - The WorkItem being wrapped - - - - Initialize the TestExecutionContext. This must be done - before executing the WorkItem. - - - Originally, the context was provided in the constructor - but delaying initialization of the context until the item - is about to be dispatched allows changes in the parent - context during OneTimeSetUp to be reflected in the child. - - The TestExecutionContext to use - - - - Event triggered when the item is complete - - - - - Gets the current state of the WorkItem - - - - - The test being executed by the work item - - - - - The name of the work item - defaults to the Test name. - - - - - Filter used to include or exclude child tests - - - - - The execution context - - - - - The worker executing this item. - - - - - The ParallelExecutionStrategy to use for this work item - - - - - Indicates whether this work item should use a separate dispatcher. - - - - - The test result - - - - - Gets the ParallelScope associated with the test, if any, - otherwise returning ParallelScope.Default; - - - - - Execute the current work item, including any - child work items. - - - - - Wait until the execution of this item is complete - - - - - Marks the WorkItem as NotRunnable. - - Reason for test being NotRunnable. - - - - Cancel (abort or stop) a WorkItem - - true if the WorkItem should be aborted, false if it should run to completion - - - - Standard Dispose - - - - - Method that performs actually performs the work. It should - set the State to WorkItemState.Complete when done. - - - - - Method called by the derived class when all work is complete - - - - - Builds the set up tear down list. - - Unsorted array of setup MethodInfos. - Unsorted array of teardown MethodInfos. - Method validator used before each method execution. - A list of SetUpTearDownItems - - - - Changes the result of the test, logging the old and new states - - The new ResultState - The new message - - - - Recursively walks up the test hierarchy to see if the - has been set on any of the parent tests. - - - - - WorkItemBuilder class knows how to build a tree of work items from a tree of tests - - - - - Creates a work item. - - The test for which this WorkItem is being created. - The filter to be used in selecting any child Tests. - True if child work items should be created and added. - - - - - Creates a work item. - - The test for which this WorkItem is being created. - The filter to be used in selecting any child Tests. - An instance. - True if child work items should be created and added. - if work item needs to be created unconditionally, if will be returned for tests that don't match the filter. - - - - - Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. - - - A signed integer that indicates the relative values of and , as shown in the following table.Value Meaning Less than zero is less than .Zero equals .Greater than zero is greater than . - - The first object to compare.The second object to compare. - - - - WorkItemQueueState indicates the current state of a WorkItemQueue - - - - - The queue is paused - - - - - The queue is running - - - - - The queue is stopped - - - - - A WorkItemQueue holds work items that are ready to - be run, either initially or after some dependency - has been satisfied. - - - - - Initializes a new instance of the class. - - The name of the queue. - Flag indicating whether this is a parallel queue - ApartmentState to use for items on this queue - - - - Gets the name of the work item queue. - - - - - Gets a flag indicating whether this queue is used for parallel execution - - - - - Gets the target ApartmentState for work items on this queue - - - - - Gets the total number of items processed so far - - - - - Gets the current state of the queue - - - - - Get a bool indicating whether the queue is empty. - - - - - Enqueue a WorkItem to be processed - - The WorkItem to process - - - - Enqueue a WorkItem to be processed - internal for testing - - The WorkItem to process - The priority at which to process the item - - - - Dequeue a WorkItem for processing - - A WorkItem or null if the queue has stopped - - - - Start or restart processing of items from the queue - - - - - Signal the queue to stop - - - - - Pause the queue for restarting later - - - - - Save the current inner queue and create new ones for use by - a non-parallel fixture with parallel children. - - - - - Restore the inner queue that was previously saved - - - - - The current state of a work item - - - - - Ready to run or continue - - - - - Work Item is executing - - - - - Complete - - - - - Handler for ShiftChange events. - - The shift that is starting or ending. - - - - The dispatcher needs to do different things at different, - non-overlapped times. For example, non-parallel tests may - not be run at the same time as parallel tests. We model - this using the metaphor of a working shift. The WorkShift - class associates one or more WorkItemQueues with one or - more TestWorkers. - - Work in the queues is processed until all queues are empty - and all workers are idle. Both tests are needed because a - worker that is busy may end up adding more work to one of - the queues. At that point, the shift is over and another - shift may begin. This cycle continues until all the tests - have been run. - - - - - Construct a WorkShift - - - - - Event that fires when the shift has ended - - - - - The Name of this shift - - - - - Gets a flag indicating whether the shift is currently active - - - - - Gets a bool indicating whether this shift has any work to do - - - - - Gets a list of the queues associated with this shift. - - Internal for testing - immutable once initialized - - - - Gets the list of workers associated with this shift. - - Internal for testing - immutable once initialized - - - - Add a WorkItemQueue to the shift, starting it if the - shift is currently active. - - - - - Assign a worker to the shift. - - - - - - Start or restart processing for the shift - - - - - End the shift, pausing all queues and raising - the EndOfShift event. - - - - - Shut down the shift. - - - - - Cancel (abort or stop) the shift without completing all work - - true if the WorkShift should be aborted, false if it should allow its currently running tests to complete - - - - TextMessageWriter writes constraint descriptions and messages - in displayable form as a text stream. It tailors the display - of individual message components to form the standard message - format of NUnit assertion failure messages. - - - - - Prefix used for the expected value line of a message - - - - - Prefix used for the actual value line of a message - - - - - Prefix used for the actual difference between actual and expected values if compared with a tolerance - - - - - Length of a message prefix - - - - - Construct a TextMessageWriter - - - - - Construct a TextMessageWriter, specifying a user message - and optional formatting arguments. - - - - - - - Gets or sets the maximum line length for this writer - - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a given - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The result of the constraint that failed - - - - Gets the unique type name between expected and actual. - - The expected value - The actual value causing the failure - Output of the unique type name for expected - Output of the unique type name for actual - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in string comparisons - If true, clip the strings to fit the max line length - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Write the generic 'Expected' line for a constraint - - The constraint that failed - - - - Write the generic 'Expected' line for a given value - and tolerance. - - The expected value - The tolerance within which the test was made - - - - Write the generic 'Actual' line for a constraint - - The ConstraintResult for which the actual value is to be written - - - - Write the generic 'Actual' line for a given value - - The actual value causing a failure - - - - Extensions to . - - - - - Adds the skip reason to tests that are ignored until a specific date. - - The test properties to add the skip reason to - The date that the test is being ignored until - The reason the test is being ignored until that date - - - - Combines multiple filters so that a test must pass all - of them in order to pass this filter. - - - - - Constructs an empty AndFilter - - - - - Constructs an AndFilter from an array of filters - - - - - - Checks whether the AndFilter is matched by a test - - The test to be matched - If set to we are carrying a negation through - True if all the component filters pass, otherwise false - - - - Checks whether the AndFilter is matched by a test - - The test to be matched - True if all the component filters match, otherwise false - - - - Checks whether the AndFilter is explicit matched by a test. - - The test to be matched - True if all the component filters explicit match, otherwise false - - - - Gets the element name - - Element name - - - - CategoryFilter is able to select or exclude tests - based on their categories. - - - - - Construct a CategoryFilter using a single category name - - A category name - - - - Check whether the filter matches a test - - The test to be matched - - - - - Gets the element name - - Element name - - - - ClassName filter selects tests based on the class FullName - - - - - Construct a FullNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - A base class for multi-part filters - - - - - Constructs an empty CompositeFilter - - - - - Constructs a CompositeFilter from an array of filters - - - - - - Return a list of the composing filters. - - - - - Checks whether the CompositeFilter is matched by a test. - - The test to be matched - If set to we are carrying a negation through - - - - Checks whether the CompositeFilter is matched by a test. - - The test to be matched - - - - Checks whether the CompositeFilter is explicit matched by a test. - - The test to be matched - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - FullName filter selects tests based on their FullName - - - - - Construct a FullNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - IdFilter selects tests based on their id - - - - - Construct an IdFilter for a single value - - The id the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - FullName filter selects tests based on their FullName - - - - - Construct a MethodNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - ClassName filter selects tests based on the class FullName - - - - - Construct a NamespaceFilter for a single namespace - - The namespace the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - NotFilter negates the operation of another filter - - - - - Construct a not filter on another filter - - The filter to be negated - - - - Gets the base filter - - - - - Determine if a particular test passes the filter criteria. - - The test to which the filter is applied - If set to we are carrying a negation through - True if the test passes the filter, otherwise false - - - - Check whether the filter matches a test - - The test to be matched - True if it matches, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Combines multiple filters so that a test must pass one - of them in order to pass this filter. - - - - - Constructs an empty OrFilter - - - - - Constructs an OrFilter from an array of filters - - - - - - Checks whether the OrFilter is matched by a test - - The test to be matched - If set to we are carrying a negation through - True if any of the component filters pass, otherwise false - - - - Checks whether the OrFilter is matched by a test - - The test to be matched - True if any of the component filters match, otherwise false - - - - Checks whether the OrFilter is explicit matched by a test - - The test to be matched - True if any of the component filters explicit match, otherwise false - - - - Gets the element name - - Element name - - - - PropertyFilter is able to select or exclude tests - based on their properties. - - - - - Construct a PropertyFilter using a property name and expected value - - A property name - The expected value of the property - - - - Check whether the filter matches a test - - The test to be matched - - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - TestName filter selects tests based on their Name - - - - - Construct a TestNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - ValueMatchFilter selects tests based on some value, which - is expected to be contained in the test. - - - - - Returns the value matched by the filter - used for testing - - - - - Indicates whether the value is a regular expression - - - - - Construct a ValueMatchFilter for a single value. - - The value to be included. - - - - Match the input provided by the derived class - - The value to be matched - True for a match, false otherwise. - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - GenericMethodHelper is able to deduce the Type arguments for - a generic method from the actual arguments provided. - - - - - A special value, which is used to indicate that BestCommonType() method - was unable to find a common type for the specified arguments. - - - - - Construct a GenericMethodHelper for a method - - MethodInfo for the method to examine - - - - Return the type arguments for the method, deducing them - from the arguments actually provided. - - The arguments to the method - If successful, an array of type arguments. - - - - A minimalistic implementation of an immutable stack. Add members as needed. - - - - - Represents an empty stack. may be used instead. - - - - - Returns a new immutable stack which begins with the specified value and continues with the values in the - current stack. - - The beginning value of the new stack. - - - - InvalidTestFixtureException is thrown when an appropriate test - fixture constructor using the provided arguments cannot be found. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - InvalidPlatformException is thrown when the platform name supplied - to a test is not recognized. - - - - - Instantiates a new instance of the class. - - - - - Instantiates a new instance of the class - - The message. - - - - Instantiates a new instance of the class - - The message. - The inner. - - - - Serialization constructor for the class - - - - - InvalidTestFixtureException is thrown when an appropriate test - fixture constructor using the provided arguments cannot be found. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - Interface for logging within the engine - - - - - Logs the specified message at the error level. - - The message. - - - - Logs the specified message at the error level. - - The message. - The arguments. - - - - Logs the specified message at the warning level. - - The message. - - - - Logs the specified message at the warning level. - - The message. - The arguments. - - - - Logs the specified message at the info level. - - The message. - - - - Logs the specified message at the info level. - - The message. - The arguments. - - - - Logs the specified message at the debug level. - - The message. - - - - Logs the specified message at the debug level. - - The message. - The arguments. - - - - InternalTrace provides facilities for tracing the execution - of the NUnit framework. Tests and classes under test may make use - of Console writes, System.Diagnostics.Trace or various loggers and - NUnit itself traps and processes each of them. For that reason, a - separate internal trace is needed. - - Note: - InternalTrace uses a global lock to allow multiple threads to write - trace messages. This can easily make it a bottleneck so it must be - used sparingly. Keep the trace Level as low as possible and only - insert InternalTrace writes where they are needed. - TODO: add some buffering and a separate writer thread as an option. - TODO: figure out a way to turn on trace in specific classes only. - - - - - Gets a flag indicating whether the InternalTrace is initialized - - - - - Initialize the internal trace facility using the name of the log - to be written to and the trace level. - - The log name - The trace level - - - - Initialize the internal trace using a provided TextWriter and level - - A TextWriter - The InternalTraceLevel - - - - Get a named Logger - - - - - - Get a logger named for a particular Type. - - - - - InternalTraceLevel is an enumeration controlling the - level of detailed presented in the internal log. - - - - - Use the default settings as specified by the user. - - - - - Do not display any trace messages - - - - - Display Error messages only - - - - - Display Warning level and higher messages - - - - - Display informational and higher messages - - - - - Display debug messages and higher - i.e. all messages - - - - - Display debug messages and higher - i.e. all messages - - - - - A trace listener that writes to a separate file per domain - and process using it. - - - - - Construct an InternalTraceWriter that writes to a file. - - Path to the file to use - - - - Construct an InternalTraceWriter that writes to a - TextWriter provided by the caller. - - - - - - Returns the character encoding in which the output is written. - - The character encoding in which the output is written. - - - - Writes a character to the text string or stream. - - The character to write to the text stream. - - - - Writes a string to the text string or stream. - - The string to write. - - - - Writes a string followed by a line terminator to the text string or stream. - - The string to write. If is null, only the line terminator is written. - - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Clears all buffers for the current writer and causes any buffered data to be written to the underlying device. - - - - - Provides internal logging to the NUnit framework - - - - - Initializes a new instance of the class. - - The name. - The log level. - The writer where logs are sent. - - - - Logs the message at error level. - - The message. - - - - Logs the message at error level. - - The message. - The message arguments. - - - - Logs the message at warm level. - - The message. - - - - Logs the message at warning level. - - The message. - The message arguments. - - - - Logs the message at info level. - - The message. - - - - Logs the message at info level. - - The message. - The message arguments. - - - - Logs the message at debug level. - - The message. - - - - Logs the message at debug level. - - The message. - The message arguments. - - - - The MethodWrapper class wraps a MethodInfo so that it may - be used in a platform-independent manner. - - - - - Construct a MethodWrapper for a Type and a MethodInfo. - - - - - Construct a MethodInfo for a given Type and method name. - - - - - Gets the Type from which this method was reflected. - - - - - Gets the MethodInfo for this method. - - - - - Gets the name of the method. - - - - - Gets a value indicating whether the method is abstract. - - - - - Gets a value indicating whether the method is public. - - - - - Gets a value indicating whether the method is static. - - - - - Gets a value indicating whether the method contains unassigned generic type parameters. - - - - - Gets a value indicating whether the method is a generic method. - - - - - Gets a value indicating whether the MethodInfo represents the definition of a generic method. - - - - - Gets the return Type of the method. - - - - - Gets the parameters of the method. - - - - - - Returns the Type arguments of a generic method or the Type parameters of a generic method definition. - - - - - Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. - - The type arguments to be used - A new IMethodInfo with the type arguments replaced - - - - Returns an array of custom attributes of the specified type applied to this method - - - - - Gets a value indicating whether one or more attributes of the specified type are defined on the method. - - - - - Invokes the method, converting any TargetInvocationException to an NUnitException. - - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - Override ToString() so that error messages in NUnit's own tests make sense - - - - - This class ensures the is correctly cleared - or restored around framework actions. This is important if running multiple assemblies within the same - process, to ensure no leakage from one assembly to the next. See https://github.com/nunit/nunit-console/issues/325 - - - - - Thrown when an assertion failed. Here to preserve the inner - exception and hence its stack trace. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The error message that explains - the reason for the exception - - - - Initializes a new instance of the class. - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Enables the syntax. - - - - - Wraps an action so that it is executed when the returned object is disposed. - This disposal is thread-safe and the action will be executed at most once. - - - - - OSPlatform represents a particular operating system platform - - - - - Platform ID for Unix as defined by .NET - - - - - Platform ID for Unix as defined by Mono - - - - - Platform ID for XBox as defined by .NET and Mono - - - - - Platform ID for MacOSX as defined by .NET and Mono - - - - - Get the OSPlatform under which we are currently running - - - - - Gets the actual OS Version, not the incorrect value that might be - returned for Win 8.1 and Win 10 - - - If an application is not manifested as Windows 8.1 or Windows 10, - the version returned from Environment.OSVersion will not be 6.3 and 10.0 - respectively, but will be 6.2 and 6.3. The correct value can be found in - the registry. - - The original version - The correct OS version - - - - Product Type Enumeration used for Windows - - - - - Product type is unknown or unspecified - - - - - Product type is Workstation - - - - - Product type is Domain Controller - - - - - Product type is Server - - - - - Construct from a platform ID and version - - - - - Construct from a platform ID, version and product type - - - - - Get the platform ID of this instance - - - - - Implemented to use in place of Environment.OSVersion.ToString() - - A representation of the platform ID and version in an approximation of the format used by Environment.OSVersion.ToString() - - - - Get the Version of this instance - - - - - Get the Product Type of this instance - - - - - Return true if this is a windows platform - - - - - Return true if this is a Unix or Linux platform - - - - - Return true if the platform is Win32S - - - - - Return true if the platform is Win32Windows - - - - - Return true if the platform is Win32NT - - - - - Return true if the platform is Windows CE - - - - - Return true if the platform is Xbox - - - - - Return true if the platform is MacOSX - - - - - Return true if the platform is Windows 95 - - - - - Return true if the platform is Windows 98 - - - - - Return true if the platform is Windows ME - - - - - Return true if the platform is NT 3 - - - - - Return true if the platform is NT 4 - - - - - Return true if the platform is NT 5 - - - - - Return true if the platform is Windows 2000 - - - - - Return true if the platform is Windows XP - - - - - Return true if the platform is Windows 2003 Server - - - - - Return true if the platform is NT 6 - - - - - Return true if the platform is NT 6.0 - - - - - Return true if the platform is NT 6.1 - - - - - Return true if the platform is NT 6.2 - - - - - Return true if the platform is NT 6.3 - - - - - Return true if the platform is Vista - - - - - Return true if the platform is Windows 2008 Server (original or R2) - - - - - Return true if the platform is Windows 2008 Server (original) - - - - - Return true if the platform is Windows 2008 Server R2 - - - - - Return true if the platform is Windows 2012 Server (original or R2) - - - - - Return true if the platform is Windows 2012 Server (original) - - - - - Return true if the platform is Windows 2012 Server R2 - - - - - Return true if the platform is Windows 7 - - - - - Return true if the platform is Windows 8 - - - - - Return true if the platform is Windows 8.1 - - - - - Return true if the platform is Windows 10 - - - - - Return true if the platform is Windows Server. This is named Windows - Server 10 to distinguish it from previous versions of Windows Server. - - - - - - Examines an attribute argument and tries to simulate what that value would have been if the literal syntax - which might have defined the value in C# had instead been used as an argument to a given method parameter in a direct call. - - - For example, since you can’t apply attributes using arguments, we allow the C# syntax - 10 ( value) or 0.1 ( value) to be specified. - NUnit then converts it to match the method’s parameters, just as if you were actually - using the syntax TestMethod(10) or TestMethod(0.1). - - - For another example, you might have written the syntax 10 and picked up the attribute - constructor overload; however, the test method for which this value is intended only has a - signature. Again, NUnit simulates what would have happened if the inferred C# syntax was transplanted - and you were actually using the syntax TestMethod(10). - - - - - - Converts an array of objects to the , if it is supported. - - - - - Converts a single value to the , if it is supported. - - - - - Performs several special conversions allowed by NUnit in order to - permit arguments with types that cannot be used in the constructor - of an Attribute such as TestCaseAttribute or to simplify their use. - - The value to be converted - The target in which the should be converted - If conversion was successfully applied, the converted into - - if was converted and should be used; - is no conversion was applied and should be ignored - - - - - The ParameterWrapper class wraps a ParameterInfo so that it may - be used in a platform-independent manner. - - - - - Construct a ParameterWrapper for a given method and parameter - - - - - - - Gets a value indicating whether the parameter is optional - - - - - Gets an IMethodInfo representing the method for which this is a parameter. - - - - - Gets the underlying ParameterInfo - - - - - Gets the Type of the parameter - - - - - Returns an array of custom attributes of the specified type applied to this method - - - - - Gets a value indicating whether one or more attributes of the specified type are defined on the parameter. - - - - - PlatformHelper class is used by the PlatformAttribute class to - determine whether a platform is supported. - - - - - Comma-delimited list of all supported OS platform constants - - - - - Comma-delimited list of all supported Runtime platform constants - - - - - Default constructor uses the operating system and - common language runtime of the system. - - - - - Construct a PlatformHelper for a particular operating - system and common language runtime. Used in testing. - - RuntimeFramework to be used - OperatingSystem to be used - - - - Test to determine if one of a collection of platforms - is being used currently. - - - - - - - Tests to determine if the current platform is supported - based on a platform attribute. - - The attribute to examine - - - - - Tests to determine if the current platform is supported - based on a platform attribute. - - The attribute to examine - - - - - Test to determine if a particular platform or comma-delimited set of platforms is in use. - - Name of the platform or comma-separated list of platform ids - True if the platform is in use on the system - - - - Return the last failure reason. Results are not - defined if called before IsSupported( Attribute ) - is called. - - - - - Implements a simplified filter for use in deciding which - Types and Methods should be used to generate tests. It is constructed with a - list of strings, each of which may end up being interpreted in various ways. - - - - - Return a new PreFilter, without elements, which is considered - empty and always matches. - - - - - Return true if the filter is empty, in which case it - always succeeds. Technically, this is just a filter and - you can add elements but it's best to use Empty when - you need an empty filter and new when you plan to add. - - - - - Add a new filter element to the filter - - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - A PropertyBag represents a collection of name value pairs - that allows duplicate entries with the same key. Methods - are provided for adding a new pair as well as for setting - a key to a single value. All keys are strings but values - may be of any type. Null values are not permitted, since - a null entry represents the absence of the key. - - - - - Adds a key/value pair to the property set - - The key - The value - - - - Sets the value for a key, removing any other - values that are already in the property set. - - - - - - - Gets a single value for a key, using the first - one if multiple values are present and returning - null if the value is not found. - - - - - - - Gets a flag indicating whether the specified key has - any entries in the property set. - - The key to be checked - - True if their are values present, otherwise false - - - - - Gets a collection containing all the keys in the property set - - - - - - Gets or sets the list of values for a particular key - - - - - Returns an XmlNode representing the current PropertyBag. - - Not used - An XmlNode representing the PropertyBag - - - - Returns an XmlNode representing the PropertyBag after - adding it as a child of the supplied parent node. - - The parent node. - Not used - - - - - The PropertyNames class provides static constants for the - standard property ids that NUnit uses on tests. - - - - - The FriendlyName of the AppDomain in which the assembly is running - - - - - The selected strategy for joining parameter data into test cases - - - - - The process ID of the executing assembly - - - - - The stack trace from any data provider that threw - an exception. - - - - - The reason a test was not run - - - - - The author of the tests - - - - - The ApartmentState required for running the test - - - - - The categories applying to a test - - - - - The Description of a test - - - - - The number of threads to be used in running tests - - - - - The maximum time in ms, above which the test is considered to have failed - - - - - The ParallelScope associated with a test - - - - - The number of times the test should be repeated - - - - - Indicates that the test should be run on a separate thread - - - - - The culture to be set for a test - - - - - The UI culture to be set for a test - - - - - The type that is under test - - - - - The timeout value for the test - - - - - The test will be ignored until the given date - - - - - The optional Order the test will run in - - - - - Randomizer returns a set of random values in a repeatable - way, to allow re-running of tests if necessary. It extends - the .NET Random class, providing random values for a much - wider range of types. - - The class is used internally by the framework to generate - test case data and is also exposed for use by users through - the TestContext.Random property. - - - For consistency with the underlying Random Type, methods - returning a single value use the prefix "Next..." Those - without an argument return a non-negative value up to - the full positive range of the Type. Overloads are provided - for specifying a maximum or a range. Methods that return - arrays or strings use the prefix "Get..." to avoid - confusion with the single-value methods. - - - - - Initial seed used to create randomizers for this run - - - - - Get a Randomizer for a particular member, returning - one that has already been created if it exists. - This ensures that the same values are generated - each time the tests are reloaded. - - - - - Get a randomizer for a particular parameter, returning - one that has already been created if it exists. - This ensures that the same values are generated - each time the tests are reloaded. - - - - - Create a new Randomizer using the next seed - available to ensure that each randomizer gives - a unique sequence of values. - - - - - - Default constructor - - - - - Construct based on seed value - - - - - - Returns a random unsigned int. - - - - - Returns a random unsigned int less than the specified maximum. - - - - - Returns a random unsigned int within a specified range. - - - - - Returns a non-negative random short. - - - - - Returns a non-negative random short less than the specified maximum. - - - - - Returns a non-negative random short within a specified range. - - - - - Returns a random unsigned short. - - - - - Returns a random unsigned short less than the specified maximum. - - - - - Returns a random unsigned short within a specified range. - - - - - Returns a random long. - - - - - Returns a random long less than the specified maximum. - - - - - Returns a non-negative random long within a specified range. - - - - - Returns a random ulong. - - - - - Returns a random ulong less than the specified maximum. - - - - - Returns a non-negative random long within a specified range. - - - - - Returns a random Byte - - - - - Returns a random Byte less than the specified maximum. - - - - - Returns a random Byte within a specified range - - - - - Returns a random SByte - - - - - Returns a random sbyte less than the specified maximum. - - - - - Returns a random sbyte within a specified range - - - - - Returns a random bool - - - - - Returns a random bool based on the probability a true result - - - - - Returns a random double between 0.0 and the specified maximum. - - - - - Returns a random double within a specified range. - - - - - Returns a random float. - - - - - Returns a random float between 0.0 and the specified maximum. - - - - - Returns a random float within a specified range. - - - - - Returns a random enum value of the specified Type as an object. - - - - - Returns a random enum value of the specified Type. - - - - - Default characters for random functions. - - Default characters are the English alphabet (uppercase & lowercase), Arabic numerals, and underscore - - - - Generate a random string based on the characters from the input string. - - desired length of output string. - string representing the set of characters from which to construct the resulting string - A random string of arbitrary length - - - - Generate a random string based on the characters from the input string. - - desired length of output string. - A random string of arbitrary length - Uses DefaultStringChars as the input character set - - - - Generate a random string based on the characters from the input string. - - A random string of the default length - Uses DefaultStringChars as the input character set - - - - Returns a random decimal. - - - - - Returns a random decimal between positive zero and the specified maximum. - - - - - Returns a random decimal within a specified range, which is not - permitted to exceed decimal.MaxVal in the current implementation. - - - A limitation of this implementation is that the range from min - to max must not exceed decimal.MaxVal. - - - - - Generates a valid version 4 . - - - - - Helper methods for inspecting a type by reflection. - - Many of these methods take ICustomAttributeProvider as an - argument to avoid duplication, even though certain attributes can - only appear on specific types of members, like MethodInfo or Type. - - In the case where a type is being examined for the presence of - an attribute, interface or named member, the Reflect methods - operate with the full name of the member being sought. This - removes the necessity of the caller having a reference to the - assembly that defines the item being sought and allows the - NUnit core to inspect assemblies that reference an older - version of the NUnit framework. - - - - - Examine a fixture type and return true if it has a method with - a particular attribute. - - The type to examine - The attribute Type to look for - True if found, otherwise false - - - - Invoke the default constructor on a Type - - The Type to be constructed - An instance of the Type - - - - Invoke a constructor on a Type with arguments - - The Type to be constructed - Arguments to the constructor - An instance of the Type - - - - Returns an array of types from an array of objects. - Differs from by returning - for null elements rather than throwing . - - - - - Gets the constructors to which the specified argument types can be coerced. - - - - - Determines if the given types can be coerced to match the given parameters. - - - - - Determines whether the current type can be implicitly converted to the specified type. - - - - - Invoke a parameterless method returning void on an object. - - A MethodInfo for the method to be invoked - The object on which to invoke the method - - - - Invoke a method, converting any TargetInvocationException to an NUnitException. - - A MethodInfo for the method to be invoked - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - - Selects the ultimate shadowing property just like dynamic would, - rather than throwing - for properties that shadow properties of a different property type - which is what does. - - - If you request both public and nonpublic properties, every public property is preferred - over every nonpublic property. It would violate the principle of least surprise for a - derived class’s implementation detail to be chosen over the public API for a type. - - - See . - See . - See . - - - - Same as GetMethod(, | - , , , - ) except that it also chooses only non-generic methods. - Useful for avoiding the you can have with GetMethod. - - - - - Returns the get accessor for the indexer. - - Type to reflect on for the indexer. - List of indexer types that matches the indexer type order. - The Get accessor - - - - Represents the result of running a single test case. - - - - - Construct a TestCaseResult based on a TestMethod - - A TestMethod to which the result applies. - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that executed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - The TestResult class represents the result of a test. - - - - - Error message for when child tests have errors - - - - - Error message for when child tests have warnings - - - - - Error message for when child tests are ignored - - - - - Error message for when user has cancelled the test run - - - - - The minimum duration for tests - - - - - Aggregate assertion count - - - - - ReaderWriterLock - - - - - Construct a test result given a Test - - The test to be used - - - - Gets the test with which this result is associated. - - - - - Gets the ResultState of the test result, which - indicates the success or failure of the test. - - - - - Gets the name of the test result - - - - - Gets the full name of the test result - - - - - Gets or sets the elapsed time for running the test in seconds - - - - - Gets or sets the time the test started running. - - - - - Gets or sets the time the test finished running. - - - - - Adds a test attachment to the test result - - The TestAttachment object to attach - - - - Gets the collection of files attached to the test - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - - Gets or sets the count of asserts executed - when running the test. - - - - - Gets the number of test cases executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - Gets a TextWriter, which will write output to be included in the result. - - - - - Gets any text output written to this result. - - - - - Gets a list of assertion results associated with the test. - - - - - Returns the XML representation of the result. - - If true, descendant results are included - An XmlNode representing the result - - - - Adds the XML representation of the result as a child of the - supplied parent node.. - - The parent node. - If true, descendant results are included - - - - - Gets a count of pending failures (from Multiple Assert) - - - - - Gets the worst assertion status (highest enum) in all the assertion results - - - - - Set the result of the test - - The ResultState to use in the result - - - - Set the result of the test - - The ResultState to use in the result - A message associated with the result state - - - - Set the result of the test - - The ResultState to use in the result - A message associated with the result state - Stack trace giving the location of the command - - - - Set the test result based on the type of exception thrown - - The exception that was thrown - - - - Set the test result based on the type of exception thrown - - The exception that was thrown - The FailureSite to use in the result - - - - RecordTearDownException appends the message and stack trace - from an exception arising during teardown of the test - to any previously recorded information, so that any - earlier failure information is not lost. Note that - calling Assert.Ignore, Assert.Inconclusive, etc. during - teardown is treated as an error. If the current result - represents a suite, it may show a teardown error even - though all contained tests passed. - - The Exception to be recorded - - - - Update overall test result, including legacy Message, based - on AssertionResults that have been saved to this point. - - - - - Record an assertion result - - - - - Record an assertion result - - - - - Record an assertion result - - - - - Creates a failure message incorporating failures - from a Multiple Assert block for use by runners - that don't know about AssertionResults. - - Message as a string - - - - Adds a failure element to a node and returns it. - - The target node. - The new failure element. - - - - Adds an attachments element to a node and returns it. - - The target node. - The new attachments element. - - - - Represents the result of running a test suite - - - - - Construct a TestSuiteResult base on a TestSuite - - The TestSuite to which the result applies - - - - Gets the number of test cases that executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - Adds a child result to this result, setting this result's - ResultState to Failure if the child result failed. - - The result to be added - - - - RuntimeFramework represents a particular version - of a common language runtime implementation. - - - - - DefaultVersion is an empty Version, used to indicate that - NUnit should select the CLR version to use for the test. - - - - - Construct from a runtime type and version. If the version has - two parts, it is taken as a framework version. If it has three - or more, it is taken as a CLR version. In either case, the other - version is deduced based on the runtime type and provided version. - - The runtime type of the framework - The version of the framework - - - - Static method to return a RuntimeFramework object - for the framework that is currently in use. - - - - - The type of this runtime framework - - - - - The framework version for this runtime framework - - - - - The CLR version for this runtime framework - - - - - Return true if any CLR version may be used in - matching this RuntimeFramework object. - - - - - Returns the Display name for this framework - - - - - Parses a string representing a RuntimeFramework. - The string may be just a RuntimeType name or just - a Version or a hyphenated RuntimeType-Version or - a Version prefixed by 'versionString'. - - - - - - - Overridden to return the short name of the framework - - - - - - Returns true if the current framework matches the - one supplied as an argument. Two frameworks match - if their runtime types are the same or either one - is RuntimeType.Any and all specified version components - are equal. Negative (i.e. unspecified) version - components are ignored. - - The RuntimeFramework to be matched. - True on match, otherwise false - - - - Enumeration identifying a common language - runtime implementation. - - - - Any supported runtime framework - - - Microsoft .NET Framework - - - Microsoft .NET Framework - - - Microsoft Shared Source CLI - - - Mono - - - MonoTouch - - - Microsoft .NET Core, including .NET 5+ - - - - Holds thread state which is captured and restored in order to sandbox user code. - - - - - Thread principal. - This will be null on platforms that don't support . - - - - - Captures a snapshot of the tracked state of the current thread to be restored later. - - - - - Restores the tracked state of the current thread to the previously captured state. - - - - - Returns a copy with the specified culture. - - - - - Returns a copy with the specified UI culture. - - - - - Returns a copy with the specified principal. - - - - - May be called from any thread. - - - - - May be called from any thread. - - - - - May be called from any thread. - - - - - May be called from any thread, but may only be called once. - - - - - StackFilter class is used to remove internal NUnit - entries from a stack trace so that the resulting - trace provides better information about the test. - - - - - Single instance of our default filter - - - - - Construct a stack filter instance - - Regex pattern used to delete lines from the top of the stack - Regex pattern used to delete lines from the bottom of the stack - - - - Construct a stack filter instance - - Regex pattern used to delete lines from the top of the stack - - - - Construct a stack filter instance - - - - - Filters a raw stack trace and returns the result. - - The original stack trace - A filtered stack trace - - - - Provides methods to support legacy string comparison methods. - - - - - Compares two strings for equality, ignoring case if requested. - - The first string. - The second string.. - if set to , the case of the letters in the strings is ignored. - Zero if the strings are equivalent, a negative number if strA is sorted first, a positive number if - strB is sorted first - - - - Compares two strings for equality, ignoring case if requested. - - The first string. - The second string.. - if set to , the case of the letters in the strings is ignored. - True if the strings are equivalent, false if not. - - - - The TestCaseParameters class encapsulates method arguments and - other selected parameters needed for constructing - a parameterized test case. - - - - - The expected result to be returned - - - - - Default Constructor creates an empty parameter set - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a ParameterSet from an object implementing ITestCaseData - - - - - - The expected result of the test, which - must match the method return type. - - - - - Gets a value indicating whether an expected result was specified. - - - - - TestCaseTimeoutException is thrown when a test running directly - on a TestWorker thread is cancelled due to timeout. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - Helper class used to save and restore certain static or - singleton settings in the environment that affect tests - or which might be changed by the user tests. - - - - - Link to a prior saved context - - - - - Indicates that a stop has been requested - - - - - The event listener currently receiving notifications - - - - - The number of assertions for the current test - - - - - The current test result - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - An existing instance of TestExecutionContext. - - - - Gets and sets the current context. - - - - - Gets or sets the current test - - - - - The time the current test started execution - - - - - The time the current test started in Ticks - - - - - Gets the elapsed time for running the test in seconds - - - - - Gets or sets the current test result - - - - - Gets a TextWriter that will send output to the current test result. - - - - - The current test object - that is the user fixture - object on which tests are being executed. - - - - - Get or set indicator that run should stop on the first error - - - - - Gets an enum indicating whether a stop has been requested. - - - - - The current test event listener - - - - - The current WorkItemDispatcher. Made public for - use by nunitlite.tests - - - - - The ParallelScope to be used by tests running in this context. - For builds with out the parallel feature, it has no effect. - - - - - Default tolerance value used for floating point equality - when no other tolerance is specified. - - - - - The worker that spawned the context. - For builds without the parallel feature, it is null. - - - - - Gets the RandomGenerator specific to this Test - - - - - Gets the assert count. - - The assert count. - - - - The current nesting level of multiple assert blocks - - - - - Gets or sets the test case timeout value - - - - - Gets a list of ITestActions set by upstream tests - - - - - Saves or restores the CurrentCulture - - - - - Saves or restores the CurrentUICulture - - - - - Gets or sets the current for the Thread. - - - - - The current head of the ValueFormatter chain, copied from MsgUtils.ValueFormatter - - - - - If true, all tests must run on the same thread. No new thread may be spawned. - - - - - The number of times the current test has been scheduled for execution. - Currently only being executed in a test using the - - - - - Record any changes in the environment made by - the test code in the execution context so it - will be passed on to lower level tests. - - - - - Set up the execution environment to match a context. - Note that we may be running on the same thread where the - context was initially created or on a different thread. - - - - - Increments the assert count by one. - - - - - Increments the assert count by a specified amount. - - - - - Adds a new ValueFormatterFactory to the chain of formatters - - The new factory - - - - Sends a message from test to listeners. This message is not kind of test output and doesn't go to test result. - - A name recognized by the intended listeners. - A message to be sent - - - - Obtain lifetime service object - - - - - - An IsolatedContext is used when running code - that may effect the current result in ways that - should not impact the final result of the test. - A new TestExecutionContext is created with an - initially clear result, which is discarded on - exiting the context. - - - using (new TestExecutionContext.IsolatedContext()) - { - // Code that should not impact the result - } - - - - - Save the original current TestExecutionContext and - make a new isolated context current. - - - - - Restore the original TestExecutionContext. - - - - - An AdhocTestExecutionContext is created whenever a context is needed - but not available in CurrentContext. This happens when tests are run - on an ad-hoc basis or Asserts are used outside of tests. - - - - - Construct an AdhocTestExecutionContext, which is used - whenever the current TestExecutionContext is found to be null. - - - - - Enumeration indicating whether the tests are - running normally or being cancelled. - - - - - Running normally with no stop requested - - - - - A graceful stop has been requested - - - - - A forced stop has been requested - - - - - Interface to be implemented by filters applied to tests. - The filter applies when running the test, after it has been - loaded, since this is the only time an ITest exists. - - - - - Unique Empty filter. - - - - - Indicates whether this is the EmptyFilter - - - - - Indicates whether this is a top-level filter, - not contained in any other filter. - - - - - Determine if a particular test passes the filter criteria. The default - implementation checks the test itself, its parents and any descendants. - - Derived classes may override this method or any of the Match methods - to change the behavior of the filter. - - The test to which the filter is applied - True if the test passes the filter, otherwise false - - - - Determine if a particular test passes the filter criteria. The default - implementation checks the test itself, its parents and any descendants. - - Derived classes may override this method or any of the Match methods - to change the behavior of the filter. - - The test to which the filter is applied - If set to we are carrying a negation through - True if the test passes the filter, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - Determine whether the test itself matches the filter criteria, without - examining either parents or descendants. This is overridden by each - different type of filter to perform the necessary tests. - - The test to which the filter is applied - True if the filter matches the any parent of the test - - - - Determine whether any ancestor of the test matches the filter criteria - - The test to which the filter is applied - True if the filter matches the an ancestor of the test - - - - Determine whether any descendant of the test matches the filter criteria. - - The test to be matched - True if at least one descendant matches the filter criteria - - - - Create a TestFilter instance from an XML representation. - - - - - Create a TestFilter from its TNode representation - - - - - Nested class provides an empty filter - one that always - returns true when called. It never matches explicitly. - - - - - Adds an XML node - - True if recursive - The added XML node - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - The TestCaseParameters class encapsulates method arguments and - other selected parameters needed for constructing - a parameterized test case. - - - - - Default Constructor creates an empty parameter set - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a ParameterSet from an object implementing ITestCaseData - - - - - - Type arguments used to create a generic fixture instance - - - - - TestListener provides an implementation of ITestListener that - does nothing. It is used only through its NULL property. - - - - - Called when a test has just started - - The test that is starting - - - - Called when a test case has finished - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the message to send - - - - Construct a new TestListener - private so it may not be used. - - - - - Get a listener that does nothing - - - - - TestNameGenerator is able to create test names according to - a coded pattern. - - - - - Default pattern used to generate names - - - - - Construct a TestNameGenerator - - - - - Construct a TestNameGenerator - - The pattern used by this generator. - - - - Get the display name for a TestMethod and its arguments - - A TestMethod - The display name - - - - Get the display name for a TestMethod and its arguments - - A TestMethod - Arguments to be used - The display name - - - - TestParameters is the abstract base class for all classes - that know how to provide data for constructing a test. - - - - - Default Constructor creates an empty parameter set - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a ParameterSet from an object implementing ITestData - - - - - - The RunState for this set of parameters. - - - - - The arguments to be used in running the test, - which must match the method signature. - - - - - A name to be used for this test case in lieu - of the standard generated name containing - the argument list. - - - - - Gets the property dictionary for this test - - - - - Applies ParameterSet values to the test itself. - - A test. - - - - The original arguments provided by the user, - used for display purposes. - - - - - The list of display names to use as the parameters in the test name. - - - - - TestProgressReporter translates ITestListener events into - the async callbacks that are used to inform the client - software about the progress of a test run. - - - - - Initializes a new instance of the class. - - The callback handler to be used for reporting progress. - - - - Called when a test has just started - - The test that is starting - - - - Called when a test has finished. Sends a result summary to the callback. - to - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - Returns the parent test item for the target test item if it exists - - - parent test item - - - - Makes a string safe for use as an attribute, replacing - characters that can't be used with their - corresponding XML representations. - - The string to be used - A new string with the values replaced - - - - ParameterizedFixtureSuite serves as a container for the set of test - fixtures created from a given Type using various parameters. - - - - - Initializes a new instance of the class. - - The ITypeInfo for the type that represents the suite. - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets a string representing the type of test - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - ParameterizedMethodSuite holds a collection of individual - TestMethods with their arguments applied. - - - - - Initializes a new instance of the class. - - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets a MethodInfo for the method implementing this test. - - - - - Gets a string representing the type of test - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - SetUpFixture extends TestSuite and supports - Setup and TearDown methods. - - - - - Initializes a new instance of the class. - - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the TypeInfo of the fixture used in running this test. - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - The Test abstract class represents a test within the framework. - - - - - Static value to seed ids. It's started at 1000 so any - uninitialized ids will stand out. - - - - - Used to cache the declaring type for this MethodInfo - - - - - Method property backing field - - - - - Constructs a test given its name - - The name of the test - - - - Constructs a test given the path through the - test hierarchy to its parent and a name. - - The parent tests full name - The name of the test - - - - Constructs a test for a specific type. - - - - - Constructs a test for a specific method. - - - - - Gets or sets the id of the test - - - - - - Gets or sets the name of the test - - - - - Gets or sets the fully qualified name of the test - - - - - - Gets the name of the class where this test was declared. - Returns null if the test is not associated with a class. - - - - - Gets the name of the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - The arguments to use in creating the test or empty array if none required. - - - - - Gets the TypeInfo of the fixture used in running this test - or null if no fixture type is associated with it. - - - - - Gets a MethodInfo for the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - Whether or not the test should be run - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Gets a string representing the type of test. Used as an attribute - value in the XML representation of a test and has no other - function in the framework. - - - - - Gets a count of test cases represented by - or contained under this test. - - - - - Gets the properties for this test - - - - - Returns true if this is a TestSuite - - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets the parent as a Test object. - Used by the core to set the parent. - - - - - Gets this test's child tests - - A list of child tests - - - - Gets or sets a fixture object for running this test. - - - - - Static prefix used for ids in this AppDomain. - Set by FrameworkController. - - - - - Gets or Sets the Int value representing the seed for the RandomGenerator - - - - - - The SetUp methods. - - - - - The teardown methods - - - - - Creates a TestResult for this test. - - A TestResult suitable for this type of test. - - - - Modify a newly constructed test by applying any of NUnit's common - attributes, based on a supplied , which is - usually the reflection element from which the test was constructed, - but may not be in some instances. The attributes retrieved are - saved for use in subsequent operations. - - - - - Mark the test as Invalid (not runnable) specifying a reason - - The reason the test is not runnable - - - - Get custom attributes applied to a test - - - - - Add standard attributes and members to a test node. - - - - - - - Returns the XML representation of the test - - If true, include child tests recursively - - - - - Returns an XmlNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - An object to compare with this instance. - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - An object to compare with this instance. - - - - TestAssembly is a TestSuite that represents the execution - of tests in a managed assembly. - - - - - Initializes a new instance of the class - specifying the Assembly and the suite name. - - The assembly this test represents. - - This becomes the full name of the suite and the filename part is used as the suite name. - - - - - Initializes a new instance of the class - specifying the suite name for an assembly that could not be loaded. - - - This becomes the full name of the suite and the filename part is used as the suite name. - - - - - Creates a copy of the given assembly with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the Assembly represented by this instance. - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Get custom attributes specified on the assembly - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - TestFixture is a surrogate for a user test fixture class, - containing one or more tests. - - - - - The life cycle specified for the current test fixture. - - - - - Initializes a new instance of the class. - - Type of the fixture. - Arguments used to instantiate the test fixture, or null if none used - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the TypeInfo of the fixture used in running this test. - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - The TestMethod class represents a Test implemented as a method. - - - - - The ParameterSet used to create this test method - - - - - Initializes a new instance of the class. - - The method to be used as a test. - - - - Initializes a new instance of the class. - - The method to be used as a test. - The suite or fixture to which the new test will be added - - - - Gets a MethodInfo for the method implementing this test. - - - - - The arguments to use in executing the test method, or empty array if none are provided. - - - - - Overridden to return a TestCaseResult. - - A TestResult for this test. - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Returns a TNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - - Gets this test's child tests - - A list of child tests - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Returns the name of the method - - - - - TestSuite represents a composite test, which contains other tests. - - - - - Our collection of child tests - - - - - Initializes a new instance of the class. - - The name of the suite. - - - - Initializes a new instance of the class. - - Name of the parent suite. - The name of the suite. - - - - Initializes a new instance of the class. - - Type of the fixture. - Arguments used to instantiate the test fixture, or null if none used. - - - - Initializes a new instance of the class. - - Type of the fixture. - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Sorts tests under this suite. - - - - - Adds a test to the suite. - - The test. - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - Gets this test's child tests - - The list of child tests - - - - Gets a count of test cases represented by - or contained under this test. - - - - - - The arguments to use in creating the fixture, or empty array if none are provided. - - - - - Set to true to suppress sorting this suite's contents - - - - - OneTimeSetUp methods for this suite - - - - - OneTimeTearDown methods for this suite - - - - - Overridden to return a TestSuiteResult. - - A TestResult for this test. - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Returns an XmlNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - - Check that setup and teardown methods marked by certain attributes - meet NUnit's requirements and mark the tests not runnable otherwise. - - - - - ThreadUtility provides a set of static methods convenient - for working with threads. - - - - - Pre-Task compatibility - - - - - Abort a thread, helping to dislodging it if it is blocked in native code - - The thread to abort - The native thread id (if known), otherwise 0. - If provided, allows the thread to be killed if it's in a message pump native blocking wait. - This must have previously been captured by calling from the running thread itself. - - - - Do our best to kill a thread - - The thread to kill - The native thread id (if known), otherwise 0. - If provided, allows the thread to be killed if it's in a message pump native blocking wait. - This must have previously been captured by calling from the running thread itself. - - - - Do our best to kill a thread, passing state info - - The thread to kill - Info for the ThreadAbortException handler - The native thread id (if known), otherwise 0. - If provided, allows the thread to be killed if it's in a message pump native blocking wait. - This must have previously been captured by calling from the running thread itself. - - - - Schedule a thread pool thread to check on the aborting thread in case it's in a message pump native blocking wait - - - - - Captures the current thread's native id. If provided to later, allows the thread to be killed if it's in a message pump native blocking wait. - - - - - Sends a message to the thread to dislodge it from native code and allow a return to managed code, where a ThreadAbortException can be generated. - The message is meaningless (WM_CLOSE without a window handle) but it will end any blocking message wait. - - - - Gets or if the current platform does not support it. - - - Sets if current platform supports it. - Value to set. If the current platform does not support then the only allowed value is . - - - - TypeHelper provides static methods that operate on Types. - - - - - Gets the display name for a Type as used by NUnit. - - The Type for which a display name is needed. - The display name for the Type - - - - Gets the display name for a Type as used by NUnit. - - The Type for which a display name is needed. - The arglist provided. - The display name for the Type - - - - Returns the best fit for a common type to be used in - matching actual arguments to a methods Type parameters. - - - - - Determines whether the specified type is numeric. - - The type to be examined. - - if the specified type is numeric; otherwise, . - - - - - Convert an argument list to the required parameter types. - Currently, only widening numeric conversions are performed. - - An array of args to be converted - A ParameterInfo[] whose types will be used as targets - - - - Determines whether this instance can deduce type args for a generic type from the supplied arguments. - - The type to be examined. - The arglist. - The type args to be used. - - if this the provided args give sufficient information to determine the type args to be used; otherwise, . - - - - - Return the interfaces implemented by a Type. - - The Type to be examined. - An array of Types for the interfaces. - - - - Return whether or not the given type is a ValueTuple. - - Type. - Whether or not the given type is a ValueTuple. - - - - Return whether or not the given type is a Tuple. - - Type. - Whether or not the given type is a Tuple. - - - - Determines whether the cast to the given type would succeed. - If is and - can be , the cast succeeds just like the C# language feature. - - The object to cast. - - - - Casts to a value of the given type if possible. - If is and - can be , the cast succeeds just like the C# language feature. - - The object to cast. - The value of the object, if the cast succeeded. - - - - Used for resolving the type difference between objects. - - - - - Gets the shortened type name difference between and . - - The expected object. - The actual object. - Output of the unique type name for the expected object. - Output of the unique type name for actual object. - - - - Gets the shortened type name difference between and . - - The expected object . - The actual object . - Output of the unique type name for the expected object. - Output of the unique type name for actual object. - - - - Obtain the shortened generic template parameters of the given and , - if they are generic. - - The expected . - The actual . - Shortened generic parameters of the expected . - Shortened generic parameters of the actual . - - - - Obtain a shortened name of the given . - - - - - Shorten the given names by only including the relevant differing namespaces/types, if they differ. - - The expected . - The actual . - The shortened expected name. - The shortened actual name. - - - - Returns whether or not the is generic. - - - - - Returns the fully qualified generic name of a given . - - - - - Reconstruct a generic type name using the provided generic type name, and a - of the template parameters. - - The name of the generic type, including the number of template parameters expected. - A of names of the template parameters of the provided generic type. - - - - Obtain the shortened generic names of the given expected and actual s. - - The expected . - The actual . - The shortened expected generic name. - The shortened actual generic name. - - - - The TypeWrapper class wraps a Type so it may be used in - a platform-independent manner. - - - - - Construct a TypeWrapper for a specified Type. - - - - - Gets the underlying Type on which this TypeWrapper is based. - - - - - Gets the base type of this type as an ITypeInfo - - - - - Gets the Name of the Type - - - - - Gets the FullName of the Type - - - - - Gets the assembly in which the type is declared - - - - - Gets the namespace of the Type - - - - - Gets a value indicating whether the type is abstract. - - - - - Gets a value indicating whether the Type is a generic Type - - - - - Returns true if the Type wrapped is T - - - - - Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. - - - - - Gets a value indicating whether the Type is a generic Type definition - - - - - Gets a value indicating whether the type is sealed. - - - - - Gets a value indicating whether this type represents a static class. - - - - - Get the display name for this type - - - - - Get the display name for an object of this type, constructed with the specified args. - - - - - Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments - - - - - Returns a Type representing a generic type definition from which this Type can be constructed. - - - - - Returns an array of custom attributes of the specified type applied to this type - - - - - Returns a value indicating whether the type has an attribute of the specified type. - - - - - - - - Returns a flag indicating whether this type has a method with an attribute of the specified type. - - - - - - - Returns an array of IMethodInfos for methods of this Type - that match the specified flags. - - - - - Gets the public constructor taking the specified argument Types - - - - - Returns a value indicating whether this Type has a public constructor taking the specified argument Types. - - - - - Construct an object of this Type, using the specified arguments. - - - - - Override ToString() so that error messages in NUnit's own tests make sense - - - - - Returns all methods declared by this type that have the specified attribute, optionally - including base classes. Methods from a base class are always returned before methods from a class that - inherits from it. - - Specifies whether to search the fixture type inheritance chain. - - - - Encapsulates the ability to increment a value by an amount which may be of a different type. - - - - - Creates a from the specified value if the current instance is able to - use it to increment the on values which it operates. If the creation fails, - is thrown. - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values on which it operates. A return value indicates - whether the creation succeeded. - - - - - Provides a convenient shorthand when is - and the default value of represents zero. - - - - - Initializes a new instance of the class. - - The amount by which to increment each time this step is applied. - - Must increment the given value and return the result. - If the result is outside the range representable by , - must throw . If the result does not change due to lack - of precision representable by , must throw . - - - - - Increments the given value and returns the result. - If the result is outside the range representable by , - throws . If the result does not change due to lack - of precision representable by , throws . - - - - - - - Encapsulates the ability to increment a value by an amount - which may be of a different type. - - - - - Increments the given value and returns the result. - If the result is outside the range representable by , - throws . If the result does not change due to lack - of precision representable by , throws . - - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values of type . If the creation fails, - is thrown. - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values of type . A return value indicates - whether the creation succeeded. - - - - - The IgnoredTestCaseData class represents a ignored TestCaseData. It adds - the ability to set a date until which the test will be ignored. - - - - - The previous RunState - - - - - Set the date that the test is being ignored until - - The date that the test is being ignored until - A modified TestCaseData. - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for equality with zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable to the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable to the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - inclusively within a specified range. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - - Returns a constraint that tests if an item is equal to any of parameters - - Expected values - - - - When implemented by an attribute, this interface implemented to provide actions to execute before and after tests. - - - - - Executed before each test is run - - The test that is going to be run. - - - - Executed after each test is run - - The test that has just been run. - - - - Provides the target for the action attribute - - The target for the action attribute - - - - The Iz class is a synonym for Is intended for use in VB, - which regards Is as a keyword. - - - - - The List class is a helper class with properties and methods - that supply a number of constraints used with lists and collections. - - - - - List.Map returns a ListMapper, which can be used to map - the original collection to another collection. - - - - - - - ListMapper is used to transform a collection used as an actual argument - producing another collection to be used in the assertion. - - - - - Construct a ListMapper based on a collection - - The collection to be transformed - - - - Produces a collection containing all the values of a property - - The collection of property values - - - - - Basic Asserts on strings. - - - - - DO NOT USE! Use StringAssert.AreEqualIgnoringCase(...) or Assert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string is not found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - - - - Asserts that two strings are not equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are not equal, without regard to case. - - The expected string - The actual string - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - - - - The TestCaseData class represents a set of arguments - and other parameter info to be used for a parameterized - test case. It is derived from TestCaseParameters and adds a - fluent syntax for use in initializing the test case. - - - - - Initializes a new instance of the class. - - The arguments. - - - - Initializes a new instance of the class. - - The argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - The third argument. - - - - Sets the expected result for the test - - The expected result - A modified TestCaseData - - - - Sets the name of the test case - - The modified TestCaseData instance - - - - Sets the list of display names to use as the parameters in the test name. - - - - - Sets the description for the test case - being constructed. - - The description. - The modified TestCaseData instance. - - - - Applies a category to the test - - - - - - - Applies a named property to the test - - - - - - - - Applies a named property to the test - - - - - - - - Applies a named property to the test - - - - - - - - Marks the test case as explicit. - - - - - Marks the test case as explicit, specifying the reason. - - - - - Ignores this TestCase, specifying the reason. - - The reason. - - - - - Provide the context information of the current test. - This is an adapter for the internal ExecutionContext - class, hiding the internals from the user test. - - - - - Construct a TestContext for an ExecutionContext - - The ExecutionContext to adapt - - - - Get the current test context. This is created - as needed. The user may save the context for - use within a test, but it should not be used - outside the test for which it is created. - - - - - Gets a TextWriter that will send output to the current test result. - - - - - Gets a TextWriter that will send output directly to Console.Error - - - - - Gets a TextWriter for use in displaying immediate progress messages - - - - - TestParameters object holds parameters for the test run, if any are specified - - - - - Static DefaultWorkDirectory is now used as the source - of the public instance property WorkDirectory. This is - a bit odd but necessary to avoid breaking user tests. - - - - - Get a representation of the current test. - - - - - Gets a Representation of the TestResult for the current test. - - - - - Gets the unique name of the Worker that is executing this test. - - - - - Gets the directory containing the current test assembly. - - - - - Gets the directory to be used for outputting files created - by this test run. - - - - - Gets the random generator. - - - The random generator. - - - - - Gets the number of assertions executed - up to this point in the test. - - - - - Get the number of times the current Test has been repeated - when using the or . - - - - Write the string representation of a boolean value to the current result - - - Write a char to the current result - - - Write a char array to the current result - - - Write the string representation of a double to the current result - - - Write the string representation of an Int32 value to the current result - - - Write the string representation of an Int64 value to the current result - - - Write the string representation of a decimal value to the current result - - - Write the string representation of an object to the current result - - - Write the string representation of a Single value to the current result - - - Write a string to the current result - - - Write the string representation of a UInt32 value to the current result - - - Write the string representation of a UInt64 value to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a line terminator to the current result - - - Write the string representation of a boolean value to the current result followed by a line terminator - - - Write a char to the current result followed by a line terminator - - - Write a char array to the current result followed by a line terminator - - - Write the string representation of a double to the current result followed by a line terminator - - - Write the string representation of an Int32 value to the current result followed by a line terminator - - - Write the string representation of an Int64 value to the current result followed by a line terminator - - - Write the string representation of a decimal value to the current result followed by a line terminator - - - Write the string representation of an object to the current result followed by a line terminator - - - Write the string representation of a Single value to the current result followed by a line terminator - - - Write a string to the current result followed by a line terminator - - - Write the string representation of a UInt32 value to the current result followed by a line terminator - - - Write the string representation of a UInt64 value to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - - This method adds the a new ValueFormatterFactory to the - chain of responsibility used for formatting values in messages. - The scope of the change is the current TestContext. - - The factory delegate - - - - Attach a file to the current test result - - Relative or absolute file path to attachment - Optional description of attachment - - - - This method provides a simplified way to add a ValueFormatter - delegate to the chain of responsibility, creating the factory - delegate internally. It is useful when the Type of the object - is the only criterion for selection of the formatter, since - it can be used without getting involved with a compound function. - - The type supported by this formatter - The ValueFormatter delegate - - - - TestAdapter adapts a Test for consumption by - the user test code. - - - - - Construct a TestAdapter for a Test - - The Test to be adapted - - - - Gets the unique Id of a test - - - - - The name of the test, which may or may not be - the same as the method name. - - - - - The name of the method representing the test. - - - - - The FullName of the test - - - - - The ClassName of the test - - - - - A shallow copy of the properties of the test. - - - - - The arguments to use in creating the test or empty array if none are required. - - - - - ResultAdapter adapts a TestResult for consumption by - the user test code. - - - - - Construct a ResultAdapter for a TestResult - - The TestResult to be adapted - - - - Gets a ResultState representing the outcome of the test - up to this point in its execution. - - - - - Gets a list of the assertion results generated - up to this point in the test. - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - adapts an - for consumption by the user. - - - - - Construct a from a source - . - - - - - Get the first property with the given , if it can be found, otherwise - returns null. - - - - - Indicates whether is found in this - . - - - - - Returns a collection of properties - with the given . - - - - - Returns the count of elements with the given . - - - - - Returns a collection of the property keys. - - - - - The TestFixtureData class represents a set of arguments - and other parameter info to be used for a parameterized - fixture. It is derived from TestFixtureParameters and adds a - fluent syntax for use in initializing the fixture. - - - - - Initializes a new instance of the class. - - The arguments. - - - - Initializes a new instance of the class. - - The argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - The third argument. - - - - Sets the name of the test fixture - - The modified TestFixtureData instance - - - - Sets the list of display names to use as the parameters in the test name. - - - - - Marks the test fixture as explicit. - - - - - Marks the test fixture as explicit, specifying the reason. - - - - - Ignores this TestFixture, specifying the reason. - - The reason. - - - - - TestParameters class holds any named parameters supplied to the test run - - - - - Gets the number of test parameters - - - - - Gets a collection of the test parameter names - - - - - Gets a flag indicating whether a parameter with the specified name exists. - - Name of the parameter - True if it exists, otherwise false - - - - Indexer provides access to the internal dictionary - - Name of the parameter - Value of the parameter or null if not present - - - - Get method is a simple alternative to the indexer - - Name of the parameter - Value of the parameter or null if not present - - - - Get the value of a parameter or a default string - - Name of the parameter - Default value of the parameter - Value of the parameter or default value if not present - - - - Get the value of a parameter or return a default - - The return Type - Name of the parameter - Default value of the parameter - Value of the parameter or default value if not present - - - - Adds a parameter to the list - - Name of the parameter - Value of the parameter - - - - Helper class with properties and methods that supply - constraints that operate on exceptions. - - - - - Creates a constraint specifying an expected exception - - - - - Creates a constraint specifying an exception with a given InnerException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying an expected ArgumentException - - - - - Creates a constraint specifying an expected ArgumentNullException - - - - - Creates a constraint specifying an expected InvalidOperationException - - - - - Creates a constraint specifying that no exception is thrown - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Provides static methods to express conditions - that must be met for the test to succeed. If - any test fails, a warning is issued. - - - - - DO NOT USE! - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - Not applicable - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on success. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on success. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - The message to display if the condition is true - Arguments to be used in formatting the message - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning if it succeeds. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning if it succeeds. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - FrameworkPackageSettings is a static class containing constant values that - are used as keys in setting up a TestPackage. These values are used in - the framework, and set in the runner. Setting values may be a string, int or bool. - - - - - Flag (bool) indicating whether tests are being debugged. - - - - - Flag (bool) indicating whether to pause execution of tests to allow - the user to attach a debugger. - - - - - The InternalTraceLevel for this run. Values are: "Default", - "Off", "Error", "Warning", "Info", "Debug", "Verbose". - Default is "Off". "Debug" and "Verbose" are synonyms. - - - - - Full path of the directory to be used for work and result files. - This path is provided to tests by the framework TestContext. - - - - - Integer value in milliseconds for the default timeout value - for test cases. If not specified, there is no timeout except - as specified by attributes on the tests themselves. - - - - - A string representing the default thread culture to be used for - running tests. String should be a valid BCP-47 culture name. If - culture is unset, tests run on the machine's default culture. - - - - - A string representing the default thread UI culture to be used for - running tests. String should be a valid BCP-47 culture name. If - culture is unset, tests run on the machine's default culture. - - - - - A TextWriter to which the internal trace will be sent. - - - - - A list of tests to be loaded. - - - - - The number of test threads to run for the assembly. If set to - 1, a single queue is used. If set to 0, tests are executed - directly, without queuing. - - - - - The random seed to be used for this assembly. If specified - as the value reported from a prior run, the framework should - generate identical random values for tests as were used for - that run, provided that no change has been made to the test - assembly. Default is a random value itself. - - - - - If true, execution stops after the first error or failure. - - - - - If true, use of the event queue is suppressed and test events are synchronous. - - - - - The default naming pattern used in generating test names - - - - - Parameters to be passed on to the tests, serialized to a single string which needs parsing. Obsoleted by ; kept for backward compatibility. - - - - - Parameters to be passed on to the tests, already parsed into an IDictionary<string, string>. Replaces . - - - - - If true, the tests will run on the same thread as the NUnit runner itself - - - - - Provides a platform-independent methods for getting attributes - for use by AttributeConstraint and AttributeExistsConstraint. - - - - - Gets the custom attributes from the given object. - - The actual. - Type of the attribute. - if set to [inherit]. - A list of the given attribute on the given object. - - - - A MarshalByRefObject that lives forever - - - - - Obtains a lifetime service object to control the lifetime policy for this instance. - - - - - Provides NUnit specific extensions to aid in Reflection - across multiple frameworks - - - This version of the class supplies GetTypeInfo() on platforms - that don't support it. - - - - - GetTypeInfo gives access to most of the Type information we take for granted - on .NET Core and Windows Runtime. Rather than #ifdef different code for different - platforms, it is easiest to just code all platforms as if they worked this way, - thus the simple passthrough. - - - - - - - See . - - - - - Extensions for Assembly that are not available in pre-4.5 .NET releases - - - - - An easy way to get a single custom attribute from an assembly - - The attribute Type - The assembly - An attribute of Type T - - - - Extensions for MethodInfo that are not available in pre-4.5 .NET releases - - - - - See . - - - - - See . - - - - - Represents a thread-safe first-in, first-out collection of objects. - - Specifies the type of elements in the queue. - - All public and protected members of are thread-safe and may be used - concurrently from multiple threads. - - - - - Initializes a new instance of the class. - - - - - Initializes the contents of the queue from an existing collection. - - A collection from which to copy elements. - - - - Initializes a new instance of the - class that contains elements copied from the specified collection - - The collection whose elements are copied to the new . - The argument is - null. - - - - Get the data array to be serialized - - - - - Construct the queue from a previously serialized one. - - - - - Copies the elements of the to an , starting at a particular - index. - - The one-dimensional Array that is the - destination of the elements copied from the - . The Array must have zero-based indexing. - The zero-based index in at which copying - begins. - is a null reference (Nothing in - Visual Basic). - is less than - zero. - - is multidimensional. -or- - does not have zero-based indexing. -or- - is equal to or greater than the length of the - -or- The number of elements in the source is - greater than the available space from to the end of the destination - . -or- The type of the source cannot be cast automatically to the type of the - destination . - - - - - Gets a value indicating whether access to the is - synchronized with the SyncRoot. - - true if access to the is synchronized - with the SyncRoot; otherwise, false. For , this property always - returns false. - - - - Gets an object that can be used to synchronize access to the . This property is not supported. - - The SyncRoot property is not supported. - - - - Returns an enumerator that iterates through a collection. - - An that can be used to iterate through the collection. - - - - Attempts to add an object to the . - - The object to add to the . The value can be a null - reference (Nothing in Visual Basic) for reference types. - - true if the object was added successfully; otherwise, false. - For , this operation will always add the object to the - end of the - and return true. - - - - Attempts to remove and return an object from the . - - - When this method returns, if the operation was successful, contains the - object removed. If no object was available to be removed, the value is unspecified. - - true if an element was removed and returned successfully; otherwise, false. - For , this operation will attempt to remove the object - from the beginning of the . - - - - - Gets a value that indicates whether the is empty. - - true if the is empty; otherwise, false. - - For determining whether the collection contains any items, use of this property is recommended - rather than retrieving the number of items from the property and comparing it - to 0. However, as this collection is intended to be accessed concurrently, it may be the case - that another thread will modify the collection after returns, thus invalidating - the result. - - - - - Copies the elements stored in the to a new array. - - A new array containing a snapshot of elements copied from the . - - - - Copies the elements to a new . - - A new containing a snapshot of - elements copied from the . - - - - Store the position of the current head and tail positions. - - return the head segment - return the tail segment - return the head offset, value range [0, SEGMENT_SIZE] - return the tail offset, value range [-1, SEGMENT_SIZE-1] - - - - Gets the number of elements contained in the . - - The number of elements contained in the . - - For determining whether the collection contains any items, use of the - property is recommended rather than retrieving the number of items from the - property and comparing it to 0. - - - - - Copies the elements to an existing one-dimensional Array, starting at the specified array index. - - The one-dimensional Array that is the - destination of the elements copied from the - . The Array must have zero-based - indexing. - The zero-based index in at which copying - begins. - is a null reference (Nothing in - Visual Basic). - is less than - zero. - is equal to or greater than the - length of the - -or- The number of elements in the source is greater than the - available space from to the end of the destination . - - - - - Returns an enumerator that iterates through the . - - An enumerator for the contents of the . - - The enumeration represents a moment-in-time snapshot of the contents - of the queue. It does not reflect any updates to the collection after - GetEnumerator was called. The enumerator is safe to use - concurrently with reads from and writes to the queue. - - - - - Helper method of GetEnumerator to separate out yield return statement, and prevent lazy evaluation. - - - - - Adds an object to the end of the . - - The object to add to the end of the . The value can be a null reference - (Nothing in Visual Basic) for reference types. - - - - - Attempts to remove and return the object at the beginning of the . - - - When this method returns, if the operation was successful, contains the - object removed. If no object was available to be removed, the value is unspecified. - - true if an element was removed and returned from the beginning of the - successfully; otherwise, false. - - - - Attempts to return an object from the beginning of the - without removing it. - - When this method returns, contains an object from - the beginning of the or an - unspecified value if the operation failed. - true if and object was returned successfully; otherwise, false. - - - - private class for ConcurrentQueue. - a queue is a linked list of small arrays, each node is called a segment. - A segment contains an array, a pointer to the next segment, and m_low, m_high indices recording - the first and last valid elements of the array. - - - - - Create and initialize a segment with the specified index. - - - - - return the next segment - - - - - return true if the current segment is empty (doesn't have any element available to dequeue, - false otherwise - - - - - Add an element to the tail of the current segment - exclusively called by ConcurrentQueue.InitializedFromCollection. - InitializeFromCollection is responsible to guarantee that there is no index overflow - and no contention. - - - - - - Create a new segment and append to the current one - Does not update the m_tail pointer - exclusively called by ConcurrentQueue.InitializedFromCollection - InitializeFromCollection is responsible to guarantee that there is no index overflow, - and there is no contention - - the reference to the new Segment - - - - Create a new segment and append to the current one - Update the m_tail pointer - This method is called when there is no contention - - - - - Try to append an element at the end of this segment. - - the element to append - true if the element is appended, false if the current segment is full - if appending the specified element succeeds, and after which the segment is full, - then grow the segment - - - - try to remove an element from the head of current segment - - The result. - return false only if the current segment is empty - - - - try to peek the current segment - - holds the return value of the element at the head position, - value set to default(T) if there is no such an element - true if there are elements in the current segment, false otherwise - - - - Adds part or all of the current segment into a List. - - the list to which to add - the start position - the end position - - - - return the position of the head of the current segment - Value range [0, SEGMENT_SIZE], if it's SEGMENT_SIZE, it means this segment is exhausted and thus empty - - - - - return the logical position of the tail of the current segment - Value range [-1, SEGMENT_SIZE-1]. When it's -1, it means this is a new segment and has no element yet - - - - - A wrapper struct for volatile bool. Please note that a copy of the struct itself will not be volatile, e.g. - volatileBool1 = volatileBool2. - - - - - Defines methods to manipulate thread-safe collections intended for producer/consumer usage. - - Specifies the type of elements in the collection. - - All implementations of this interface must enable all members of this interface - to be used concurrently from multiple threads. - - - - - Copies the elements of the to - an - , starting at a specified index. - - The one-dimensional that is the destination of - the elements copied from the . - The array must have zero-based indexing. - The zero-based index in at which copying - begins. - is a null reference (Nothing in - Visual Basic). - is less than - zero. - is equal to or greater than the - length of the - -or- The number of elements in the source is greater than the - available space from to the end of the destination . - - - - - Attempts to add an object to the . - - The object to add to the . - true if the object was added successfully; otherwise, false. - The was invalid for this collection. - - - - Attempts to remove and return an object from the . - - - When this method returns, if the object was removed and returned successfully, contains the removed object. If no object was available to be removed, the value is - unspecified. - - true if an object was removed and returned successfully; otherwise, false. - - - - Copies the elements contained in the to a new array. - - A new array containing the elements copied from the . - - - - A debugger view of the IProducerConsumerCollection that makes it simple to browse the - collection's contents at a point in time. - - The type of elements stored within. - - - - Constructs a new debugger view object for the provided collection object. - - A collection to browse in the debugger. - - - - Returns a snapshot of the underlying collection's elements. - - - - Specifies that null is allowed as an input even if the corresponding type disallows it. - - - Specifies that null is disallowed as an input even if the corresponding type allows it. - - - Specifies that an output may be null even if the corresponding type disallows it. - - - Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns. - - - Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter may be null. - - - - Gets the return value condition. - - - Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - - Gets the return value condition. - - - Specifies that the output will be non-null if the named parameter is non-null. - - - Initializes the attribute with the associated parameter name. - - The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. - - - - Gets the associated parameter name. - - - Applied to a method that will never return under any circumstance. - - - Specifies that the method will not return if the associated Boolean parameter is passed the specified value. - - - Initializes the attribute with the specified parameter value. - - The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to - the associated parameter matches this value. - - - - Gets the condition parameter value. - - - - - - - - - - - - - - - - - - - - - - - - Compatibility polyfill based on . - - - - - Provides support for spin-based waiting. - - - - encapsulates common spinning logic. On single-processor machines, yields are - always used instead of busy waits, and on computers with Intel� processors employing Hyper-Threading� - technology, it helps to prevent hardware thread starvation. SpinWait encapsulates a good mixture of - spinning and true yielding. - - - is a value type, which means that low-level code can utilize SpinWait without - fear of unnecessary allocation overheads. SpinWait is not generally useful for ordinary applications. - In most cases, you should use the synchronization classes provided by the .NET Framework, such as - . For most purposes where spin waiting is required, however, - the type should be preferred over the method. - - - While SpinWait is designed to be used in concurrent applications, it is not designed to be - used from multiple threads concurrently. SpinWait's members are not thread-safe. If multiple - threads must spin, each should use its own instance of SpinWait. - - - - - - Gets the number of times has been called on this instance. - - - - - Gets whether the next call to will yield the processor, triggering a - forced context switch. - - Whether the next call to will yield the processor, triggering a - forced context switch. - - On a single-CPU machine, always yields the processor. On machines with - multiple CPUs, may yield after an unspecified number of calls. - - - - - Performs a single spin. - - - This is typically called in a loop, and may change in behavior based on the number of times a - has been called thus far on this instance. - - - - - Resets the spin counter. - - - This makes and behave as though no calls - to had been issued on this instance. If a instance - is reused many times, it may be useful to reset it to avoid yielding too soon. - - - - - Spins until the specified condition is satisfied. - - A delegate to be executed over and over until it returns true. - The argument is null. - - - - Spins until the specified condition is satisfied or until the specified timeout is expired. - - A delegate to be executed over and over until it returns true. - - A that represents the number of milliseconds to wait, - or a TimeSpan that represents -1 milliseconds to wait indefinitely. - True if the condition is satisfied within the timeout; otherwise, false - The argument is null. - is a negative number - other than -1 milliseconds, which represents an infinite time-out -or- timeout is greater than - . - - - - Spins until the specified condition is satisfied or until the specified timeout is expired. - - A delegate to be executed over and over until it returns true. - The number of milliseconds to wait, or (-1) to wait indefinitely. - True if the condition is satisfied within the timeout; otherwise, false - The argument is null. - is a - negative number other than -1, which represents an infinite time-out. - - - - A helper class to get the number of processors, it updates the numbers of processors every sampling interval. - - - - - Gets the number of available processors - - - - - Gets whether the current machine has only a single processor. - - - - - A helper class to capture a start time using Environment.TickCount as a time in milliseconds, also updates a given timeout bu subtracting the current time from - the start time - - - - - Returns the Environment.TickCount as a start time in milliseconds as a uint, TickCount tools over from positive to negative every ~ 25 days - then ~25 days to back to positive again, uint is sued to ignore the sign and double the range to 50 days - - - - - - Helper function to measure and update the elapsed time - - The first time (in milliseconds) observed when the wait started - The original wait timeout in milliseconds - The new wait time in milliseconds, -1 if the time expired - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/NUnit.3.13.2/lib/net40/nunit.framework.dll b/packages/NUnit.3.13.2/lib/net40/nunit.framework.dll deleted file mode 100644 index f9b733a67fd7f84afcd21c2a46cdfdf8c688e80f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482816 zcmeFad7Kp%;w+Jp#aKQ!K5ma1o7lRw37yhv;~htReaDlY zyS6cWQ9XK2{j3XypLN!S7e*HkpMCCdef@>QYcCvr%CRR7Ul5&h?uy>t(k?OS;|}q> zqdEd_sLe;}N+>*4XW=M}t@GT_I39Zp#{)FR=-GKp4P zeC`V_CR{u*E|}`-4Y~_s^YcM2T7>{EMtzs`)GBq5F7m^@0M(~>ZS2k4 zrNz+x9hE^<`qYw>wCSVr)*^}@WcHQ!oWnkFOAFj z;p!yvRL>8t{TSsAhXXI4>kKJn%^Ph64-90%7?u>9LMPZM80-xAjtn+pNU&2d*ctFA zGS~cSjQ=B``E@gqi&IsSc8DnR}nS#O2fK8k+c1D~j80-w##2I5}#F>J@&VWsvF?L3r zDH!Yw*u)uQXT+I;!Onn9oH2I0lm!MmBjp$|Bjp&UUCKMoE@gqC*e>N5J0nh$a*Uk; zn>b_aj5t#;v@>86XN;W@X9@;812%ES*coxAV6Zb_6K9N_5oZbpI|DW;$Jp&s78vY| zlw-tj5tloF?I%Q;*7B~;!MHN&VWsvF?L3rDH!Yw*u)uQ zXT+I;!Onn9oH2GroGBRW4A`U`W4B9LV6Zb%juA6bj&U61V9yT+NEGBkI&h3i22g4N zK(-YFKr6<7N@HO=A2FbrivTTr#DG?e7C!z>8Yd%cmCvCifPWKXk)z?%K{Nz_Mk@ejaO>jQj4@I`;{_!v8lAYqFaR`~fb$&&U3rWl z02mICO5-n1MlM|oG^N%8g{@gAq;&VAID-@?oR{QlK~lLkp2p*y$7K^b@vc>;@#Xe- z*N)Tp1?};!<)-od?eVUyrtt&q@lN__{KEEl*B*~abn8#ZEiPm#AHmX+wqm;Cwqv?7 zw_>`2w`01}w_-XGv|~Csv|>78v|~Dnv|>83v|~Eiv|>5|wPQLdNs5(LEl@C(O&Z_S zf;hgZ1(v?41#x^+3oO2=1#x^+3oO2=1#x^+3oO2=1#x^+3oO2=1#x_{eAU+SDcDjz zi*J@Mj&GLF;+y4*MGcP}4O3_`Y zu8AH%I~W^B!yS5V8OTJQ5=TDhbZC5jKKiT_>NKZNXd61U2!KJ)5h3^9_=YPIBQ)Bg z@9pY!uk>gYj<>7+UEa3lcY(Rafv9cxb6WiJ|1O&ekCi7n9#=4490Vv`_B$k}MtBvM7nwE!~63g8LQ_3&$!_82Op6w)Lg330{4jOGw zK01u(#^;>mL~9AO@I6{-4Q6SLuA3g{@N&~TFl!Rtrz~!PhW(66*1oqK8h9C4yzpRn zEp1uc?G>UY^BO&cpZas86Ngv~(;}|E`1QI<-r^cB`#1%Pel6Cq5Pp#B?8}8eGU4o_ zAe!ewCwTt6j_^=uWl-q75@3pWs3t#_QIAY!IF~Mkfa4%&w|SF(^mn@V6tNYYVq5y5 z859Lcahgg0F*`+pQ*6oq7-Wanh3yNUN~y++es~zqT1OS*TMhhcZJ42gNF+3#npYdn zf^&uuy%=3dF|1y4-X74#S<`%!7tEsH1*)m!ZSnFxWv_~K-X@Wxs~)qhl|^1b^&>v% zjx_BGpFwQEAEJ7axvZQiwTo|j3|6SYFhx-M!8E;#Zzm$0rQo1MWv@ByMcs#wkkQS1 zqG~QTH;+a4>2Up+5*gHDgoKvyvsopuDYVA-U`zy4#-O3Lr#3JvZuszAWfZBlGWwo) zie+H&ndH`PcOt&6d@Vd>3n{*a=fXF_O>71ljc;SNDcT}4+Xr}wRDNS^2s%rUFU>|g zN*{vyH`FNqB}3h~zSqmsB7(#`7ka#+^upVM%_tP2#VDlrU`9)NYhIVyF($$DDqi=F zPEUMqp;xKNG&wspQ)hlRmpl`lNfEZ8Gc7oC=*;i8OJ^w9_UcTUsg-S8I`imUWlVG? zC8au^p)<|okE=5x)YJl}%fs+DtB!>t+{Di4OkSPxXj5nY4&t_F8cKSu z0Yh{+s*=oDIII>Zrq4mK;~CtTfM!giAJeixL$x63+WNR;u41{^Qus}AnD-+pzt&xd zb|*v4$+5 z`Sm$@9sUn^oso8SUTJtSODV6`X^qb4v;;}Jp>^4HhEP!y&(WG0m8NQTb$P^}X4nc& zv8Us~bLL!W~l` zAe~doSa}m2b?Z(z%Cx7(0Z1uccj_?1&9D()P;+ca-=2j(Mt?CIe8C*}9dp3_7C8PV zy$JdGVUR>5>tnbj@ELYy;p$)v9_AA;w$kzG;DtHh#W~h>{#8f#JHQ!U zWZ;sm@fFx`(-I_gy|eIx#w|$(3EbomG)0iWcX9Y%Nf>=RxXCMMq@qgjM;x7BwbPjk z&Uie9*=NXxFY25(wN^9!@}CAozz?a7ItMN?@Fo=KY` zWb)n3rCrmW*5H}6DMBVK-LT4gQ8umksX6#-+u>sl{-!Kk`as`^KD;ymr+U1?;iuCN z*>X$Iw-qlwc6aIb&dOBqJskY=?fNtm?%KA&8{dP!a0@>{R7of{>kofIvbdw2=Jvx~ zUWT8|Yj9>>D_veMOkxrp+J3mp%kZ;#ElDUg%eBho^~UycZ9m-QW%${=hGyoqm&@zj z?Ro9(;Gb!S@8jU_ZNl9ihbI_3*LYPDk@l`kY!-6K#3q5MG?4W%u}?F7%?C|^c}Z)7^z#mI zKnw^%3?m3Fo;R+6!)k%1X-{bN#~p!D9NiEj7(109W8ny>%m-1936;6M9K)cr_~c8y zT&GQG^%lC^lvbBbX~pGwJh{xE*Cv-Zz2?vQjGyduG;=83^?YYC^{Op7N1FS!#SiaM z6?(zo)(*xF^~*r2Z{jEXhsMNy_(h`YcLNBnrTuh7A1DH5Yg2uTVBu#i_2@bmuKz~B zTzHhm4{_AVe)wTSVo-B5@F~GL3@?g~C5B=Q`wm!f zkLWnSLtUpt$ETE=ZFyhG!Qq)HeKzWR90R8M00jN;SYs%!dlbN!v= z&hhViTb|m_RK>0M%l(CNp%PUokXJ55JE&mGDOfolok*6^ZBSrvI4S;v92ge@h)yDk zq{S_3kc`UG72P2C(}4GP)pjX&MJMaE)J$2r_$`{VZYBo@SEMxltu4LfuCXFPJU3=W zM7QRZ*?pDFiR|L-exmo(%SrBg@Avlnk!{JsR^&V;M7`Cne#AwTR(vU6KOm`Z+jv&V zTO}`Zb&Mpf3i-Jx@5(qj?KjvbnV-V{qNbh>FH@K_Uf=0z^2#~lgYaDr0bVp_Juu-Z zh>k>bW4-3zerEp^9Nx@&CIyHzRslavZsO1BoEWVcu{MWo3J!NBp=?wVK7 z9=N=>9zOP$oL%Fa-w_OrMQadIWor%&$bM(6TlKn6QDq~Qp|P8yQ-};-3rVD(tM=3; zyxN}ViX$tE=_zr^zIHFXz#U!?#iH==svT zRw5XXm|r)Zjcp#TaL#PrOR3!{h3LYbNmUIU7oN_eaRxtAINM6B_V^+4ev;D@={{zv zl;8Jl06qUQp@nCX0F8KF5iNcjWPG@-MfZ|Vz*Ko9;GQe}Eqpe}G!#|Jf%FTBkX!7Kl9#{T$7|w=w{~xQ=at0DdB39=oo8xDSWUAceb=2TY7{f^lWQk z6EA6{)5ai1i#ewCA0V&s?qL0Uc+&1Mf9k8pdV>19nxtw^%;Y<)t<}xE)uWFsjVVE) zKVQx(`Cu{S1m~6YJ25`YLX>w#bf4L>6a2>4)Z@{EHoLi#v%qZMrZwspQKEyJ?R#t% zTlQ?P(v6`vn$b5P-|cPLxyK7C*;Z}sujo7sa|O5TUO@VYWO>>*#=50G(UFV31vTet zp~ALK?Ri69c@J;r4G0fU>lZ2w{S>8%J*`QFnCSZvG2ZB#w}Ij`cRTRZLB#YB;EXIy zPw_*{FPSAi_j}KX+!_|`n65$R6@n>y$(kHG ztla47X|*vC+js*rT~l=U?eLrCfNz=u{?0kz@0|mF`yB9(&H=x34*1=3!0$=n&OdlN zX6q2wrrt}fQ0Xc(`-Qp-`}Py(`{@+- zWrq9NR^0A#H-2?o6Q56TYp3To@7#*mQ|@UZel1VZ%I;mcV5?7Gg!mv;e;>VQePvfVli|FxsRJcY=j}`#r1wtiKc)`meRL(+ zR>L1;@?)sfmfzN(zCTnmq{+9FeCwAA%#3L=cM@EyMxEqn?{SXyZaFfApn~SA>uUbO zb>R==tgWmw^Im6#Eq7MdJ$`9rCX&4EJodV0=B$?WK zoTT>q^RxWEo`L1*|`C?OMb8B1|wf2UV0cSb)UU9VTn;}AT|Yd?FJ%FG71 zao&+U_Z44DuKNf@8DU;R{DnAs`As9$`cF{bO(TOYw-~x8hAwuTJ7{=5*2`R&nFF0C zLy-(Mrd>dOWPsoAPYT@l21dz}9pG25{TwWW@p$Pkt>Kml$=@{_)f^L&M|eRsI*a0J zuGU5dEn{umD~&^1`4O;jU&0TAo|jTbErXs@{kmUj&KcnU(BCufr_$)H(zpOAL`;R^ zqk_!hMLNL%G71nQ>n%op$dJ?F8}iZkh$%bosV1k!-jt%0w<#!w;kcJeyn&uzfgk>X zhDx2|8x-@!c&LJl`3Gs1bw|u1<-O{4x8cf-RPvkRi4>#%Rp=jP`WS5mA2JZuZ1?{X z!agr%1jIhei~Q&>BFEB1>G(?T#Op}rSFT$`Jwb6-DHfjsXd1gZK zNXnf|5#3X@jaR7%8H`nQF*T0v5vnpdy7mHq z2IBzs0)V+~2e6mKulG&1lT@LbJ785Jm{Q2EP9gVr+#h&JxyPd?%~jceeZ1Qb|4Gf;5L0tb$?TFaT$CGc#|bqrpC;UzCZxKPgu?JcMYSZn z6&75=K0jmtkRJ%oqbA%4IhimJl8cQll)td2`Li>S2aUXt zN2SiZ zr9ud1K!Q;kmM9!Cdm*jc*Ju5NAI=BOrcR^VF%9e0Z5XL5F&WS9L2dsgIvKnmp8uJR zj%nw1&=Fpfjw?&x+St>QvV5?WfnZ88F(1;?AfuvmN2yHWa_tD)RuHy6WeXC7JDFfi z4)bDtqI|tTStYY1YTo1WP6wTOneHtCH!CwufNYPyWw0)%y~!7;`b{lHJ-KKb%M2*RSpM z8}G+1(K+AFV{9>VT0Dd3ZL|yPh8N__G1CA}Lv4I2=3SgAD^~XG?kZMKv1Jz_(3|bM zsDo?^KVnzpiTdd{JYR+C-{EF8~J9ajJ6fCYG_~vwB6dNBw=3{&H=g+*f8f zQAp+T#!cliop8BaF793^m%Fy+#Lj~9g7F8sil-1WuiRCh=Q5jL>F=*CEpvuNX^Z9l zHE>q$ce$4PLGCa2m*=slIZz%LzrWmv2+H#}<;#81A`*DTUN~`yuU}gPZDD!gzV8%! zS~Qgb?`Ou%_==y`uMJ<=EYkIB`>VBQd4+OyWAttbb+9}*)>E#OtJ9Z)wW)TXSFR@X zA-|}+Xl%ZsW1`iKn`%4M>lnA9jSjo)*Os*#lMsMNxk@Rj<*HkoU0hx~{>ps0;@J0! z)m6)!{!}(vt!`${$6a7y6G4*PlJb(V{ z=9qUV?=Uv#<6Ah{BmNXei*qBv)O$T`ept-g)Qz^b5nWHUCp$8&ibBkoxE;;sEw` z?fVkdlvj*~iRjNw97_-zvrM5*51Z3f?p(hUyAf*hoQ5>sM~%z6$l%}v$-eA+hiD97 zVLI3EuZqT~K;5j#l$W0rBj&})h|rd>9hE(ID)*L4(KH#Ys+N0Vy#|7Il)_j)ZQ5!- zFUE5XwX4D$)PQV5xm2DPT@L!D@;tK_K#U+QaDI9I_zx&bmsrHcjLl;pqlP|GDR*w_ z?;^&PM4rYzsI>US_>4U@4!8G4{r#2xf!dCknSqU%k9_nU?11h3C@*xKQh5L-us`K~ z#uWD#K-mCqCe9_i?056l#~#~KDd*fQdZk=pt3xH(>QEcvXxA0OFVr8yPS`n5Yh5uF zZ_ASYYKl{?X5+Sah5kXB-{7cs5F;(r!DDRfolRZd%>N4S$se3}?9lNZ;=kULc6l*j zTs`%Rdn1jJ@t);D^oFD#DseN9$w-F*7U0M)MG4j~N1VMA`;!tcTk%7eMORV;wxz7C zB6bFL`z|KdD^xbB|62bf>4wxMd=Y4coKU~Fgtf#(H zUjpkTS@aSxFLv4916@cSD3WO7K=@LT)THf!&O9=Oocp##$ ziYeDFgzQq0MY9LOt3_7b;t6!0GYIY%6C5J)8ZfV4>j2lUUC~p&v7F@54<#27UE9p4 z(;KjXr>$pF9NcL3_h>6lDIagd$v5}m#H*my>)t{QYdCHboBR3G?3B)hPefkHoTmIM z{rQdOQ-M=w$*?8MVAb#-Vfw+ycwu=wb~#4~ZcrW`VzF*9>)hBtot+pYd%;pYD*@OG z08x-BOHw>LL9mxLzx~N%u|58Oir4gITl_qW-wyvj#cR@O@&BI#v*v`)@c$L#hnD`< z$M^q_qg+O3hW~%OgzDzZ)#mnf?ab(Ihfkm4weug-IVQ>X(iVprKR&MN@YrVlneoSg zKxY|$SfWv#Yr7p@8NtaW7!T&pYrRlANi^S680eX}9wgQh)JkaC=B9RGiaM(+^0oef zp4#(JWpGM1&g-e2?Qm_fu$Qelq#ah;LTwQatGb>^8+W9|o@3k**nA|TCS(+Z-=j3) z)05gz$Ne+cagWje(Q)slM{cUdLw<@i&gYtnrGCmfH5|N;+2YOmm+@}5l^UVz( zKOT?751&a^>a3*#>Z}!>(OH)&{oQodrE>R1e2&gcXWbKb*4-!}9=(pasROw*}%O*_4w8l7I!M%C}(u4oMoUBX1p+V7cP z;KtY0>)w&=`%dudO|zVA4`y4Q0h2IJzqaBIUZ*X!BbCO}2r!ps)AE}dmk~<#+0I;d zxIoRu_WkKC`T_Ogjh>M9rPlLKT_~hyr@+L^WOmPDE=gnBrt&QIrD^Oe^LB=j*^!v( zvMoye>MG>N91J=%DHzkFn#*7}j;#+x)O&Yrz{SO|Ph+Lbbzm+g=Y5{^jB=!d7lBOL zJ$QW$)fwKv4?E7~p;yL3oLT zSF>vvOs*2lX~Z@DqA?lVTnxg!Ga<>^OL3sT zb3!9Hzp}BEH%o#kcXmY5Uyd!89g%?^>n~(%2Sqlw zf|9(fN;s%;z{1R_m7k^oO}obT99)L1>}JkThc1ICKDFAXAyVcL_q3s{qe6ui={!?% zX<9q#21C_x5=QJg%IXj@dA`Un4uy$a%*BgiF5*izq8HJ_aB|h9JX>9X-MtZA4_qfy zXOMhpOcKl$YIbqt5ZB3uMMK^Iq+_1X1V(uS-!4~RL>lw-q0jPyJ{(5<9yPjmCf0q zxMtsINjN2B2#uYYl9>hTO@<|%*;8dnD!57Jrj$cNh^|HfXRGA57#`!@BWXdLr_bC% zWNoE~c6++ng2v%6Z0#gj<2l2@&u)kB;o#}Hzb19BerzSv!2Xa4pxd3{{d5p^vMOn9 z?>6@06Vwm1$KGnOlGUf-A^en+=x%LI@qM#mVU$}M><0{s2HT{S2)~`+?Q^5HQ~i*k zBE!V)ER<}T=kro|c7t=K#i=OH9A)cbncvX)%C!((!@zlmfa|CW@%8(o2lhu_Y;f5*L>Zm9m5B`JH; z3;cMRVSAFcrDe(4O;P+G()J{2H))A+poWF~vAkZ#eNewj<#kK0!PN8Q-dKU+LP)=7 zDFYsnp^6`7^-75t-jI2JqkG>jmfOlZKjGQnJ0e3mI_lE-a2p}aVJa7R69F7LYb@Z& z&%qsy@tX&*gXl&O9hQ7Ijej#VgK&(>j){l{LpSdn%QH)ZRubP8Ub8mqd_ad+3CEix z;KSwN;*8axiEt`&1AlX4?1SAH`zab+4N$NZ(LW z&Drb&-^{`xtLP>bIIst;S~s{DV(aZgZQHivG3z|9Z>ig>?Q>#jr&0Hw@gaT|XW5o# z_-4z~9{=?`SxPkzt?hEL8RGcW?7Yn)55xSg$m2J&=Q)c!{(E`;&hkuq$xpgoa(B~? zro-_2S+Uytvp*PC+DnR7(o41z{L|d1?Nt9_sI-Ng*KEVC|ELD_YtZhX{uX{irnF0q zxAJqTY^~ZKzDC?WgV;EkA7y6+>3*tl>dz&q1NXrI+c(i{+io;m%mt0N#l(|#>DqoA z&-wDbGx6m#Zx>$(T#M8&AY>ex55ldkWNsWd0e;c7xlNGS{N;26dmcf!^=nJ~@TWL* z&|`|nul3X)Q{hvd-PmO=A3|MEChj3zzSK8pi+gw*agQ|Pd<;Z=%1#5!sY+l*f>{nbK&3f=d?hkSmk#UwJJ7!Gmk2Mv|T7+j&^Y}=Ct*nQ( zA%Vb-%y)%5@uL{+`v`4g2LWvc2|uXGCIUl38;;R*C_7vl2Pz8Kac$5RE3m|3a#M9T zNuhRk1)Q)5LzyN8wR4zb7ciQ8JE|GJgC7)Uk-X}?G@J!kiA(NKAPHAVq|Hp64 ze*cf(*slA3RPW5Ki~j8Q!T62OwCe-DqwwF`glF!9@q^}lFjfY4w=PShq;Y+EDc)j% zefJwjVSsIxH8qaBJVBN)9qSIb{L;J9Qp|(nX$$P%RKwXa`L-`2-{&e#<7V}%m^4L3 z!!lyEL*443#&X912!{5GZsDmJ#dq?wndt@f@6vG;1Gn+&U4SpmcNN`yWb|%=TDGE9 zl*T`}WnsM1sC{=j1+iGs59Zlv?v?XyEbDVS>j}?xYdah-eh(NdzJ<5yDPMW&y}U7p z{5}CZn7E#C4MYC{*}_hT{}(-YX~ezNf5_Ma#43;mhPRY{!l zALpS%=bH`%v0u~FuWX!iS!R!O&QTHFTq2%)gA3$Yp*Mq(HLsUA^P2i*7mA+UZ{E0w6vmwTH2LgN8W(*Y zor&WDkG{^k$oQCiKIBHm7ca*@6y@kn@EY7mlpiTgDK1`lbn;g^W|3rPUeK0Km(n-7 zTsp;N()o5T*uE~EW%6y1lYOpta~+72sMEt^$pcSSc?j2`Ee*w&doPEFA-gzv^jDNb zYlgRD%W#al^5Kt=LQkzX{2-7x!1v%zp1#be^(?R7pISI)ZR!3x)R1~-zC~jMl1-QC)qw< zdZl$5zDeST-*eHdNcYs2ErUYi0U(#U?;faavdcJVEXBo(4mEbnw~+m!k(C?Y2U+`& zf51~ak00dO_!qC?jb!7E-dn#EqTvq(K9B~x;e|A&`b%43mjY{i5d003yytvJs3mu<#K(QboyDD7HpVz-mHos@U_y-8=&U0h28KWA$&pt404|D%@p>^!)|2hl@K1eF_4E#9vf zgzuv=nzWt&@9c08-b$QS7kXSiLG*Adods=lM#lZ+Zb`%S1uKY03rzNw57crT|7i}P zrl%-h_y}a}wsp6IBQBOMa3&(&V|fI$&>s4+X9A3V!q3I~&>M5k=BK>dL}K(a;b#Fq zZwLIs0G7`&e&d&frX<2-Np(edyOdL0VfZC0`4d&;YjbLi=P`~7A8eb4Qa@@q;fF~b z{W6J8#*NFBelxv8ya(pa7MZ&-t;0EIJ8-_R9XO}WiK96e+8*W6R}d1NcJpAygO$OL zIMSTai!6_OG6->dd0NZiXzXfrBsuuD-J+>mvyR=vPbRWRJy`}AZ@_A#3nt%71BYtv zEWY!84;yVbJsYP?{mM7F^Zr4Iih-pdwcM|1ciw+qv94ct`d+fMv))G<(t8=Q{K1vm zoljqUKmI`IGSlM!0NJvri1^$vDY=l;0W=M57&>nZLd(^oX|fh5cZ|BUZ5NU{0;95c ztBjVG`Q#nv-tsDnvR?dVWv{VC?bUvBX5cfg}Z6`8M(4&hs1)k@>N`TAZ-K)1mZ*jVg` zzb7jEAAZD3_y>E@C!WoQSD@MF@)Ege=;xw8@)k2B9eNHp8-(Lxj}so@oZTzBMqilv z6QH5pZLwz&=hz0H}B<8XT}KX?igTlwhEP>AnaIC=Un z1U871>A&htc{!UD=nlMuU#&fbe?)-e<9;Rj8=+~YOBnK0mrozf%hvo51FFXV5;3wt zG5St5XF#i2S(j6Kw$f#*R!O|}YdnqkD@;E110-78I1v7VTwy!zfyUI|Ac<@FMc4* zeUdLGqA_e=*(rou0Z$!Eu?my=9oxY@Z8mW8327&{7BtEXTZc7vBq>}?9S^?OwKLTC z+vULUF>o3iacrlKBc^Lozu_-o+3VVx-$_E`d}Aqm1%;uG@|=8&uNXzUI*73=HIIad zR(+;?Ak2BXJq7se^2G#;zkp5?2?)hwbCq`qTx9X09PzDaW(VlU;=0GKbb=G^PldYL zO4=17BERs7MCiMM$rcA|tJO4p_)iL_Z)A;Aq*Nosi`qlrX#5KtZ7XGGAy{d9@U_p? zdx_yN)rerb>qns)@l;{>k2D!mxEfsR*x^{GB)8mOPp`z1sP^+~qP0{AuW~}|uHPUU zU6krlG$XY#TGKj*{9bDLai8v!DAZUvH{PAU7FtW71pjOZfe$LMx3<5}RuNNz=qalD z&idiQ-bLN@6ZvgAmljuF3#<^9$TMD=?Hb+WO`k~ZTO&Gwm#z5`)jv0p(TEh|hkuu1 zxc2DV_wHW?Z;c)>GzQ{6XWXO9`gpi6%QGIDN5Du7xWxHMMVqIo`}>Zdd{?P_;cGS2 z^1}JV>O@}sau{@S?RL}CJsx*Xgk|FORjJ}wp_rUf*dp)tbsC&`55in>7NK{~WM4++2QcpqoW&lUumeYEb8h86u9Vx!HBVW-m2na`w{D5Pzb7zI~f4 z)}1Da&aegrLsDJhc6nDT-)UNSj?DABNxlmxQPj_mA+Bf)@VY@5T+VF%`xJ_uxZ>#d z)2Z4i+DvZr%Gu(B#zF`<1Xo^-H)s@?yOukIb&;~PbB;TNl{U~Cgm;b729a)GW{=IS zJh=a`hg+PRS23f3701;fW8RYU=s+At4zPG ze%bZgld27?DmI2;3hWRPEZdXjU{6%qo~W7bPRi^165h3@b74hQ?d2EU(4DW`kgwj5 zAH1P3O!S5`Sg|e)%|GXxjUI|(nZH>^Rhh7~qCEW0DP`gJ<))N{-`6>1S)_G!o#kO2 z60-1Xr}|s_CsDebonxb#4)z+H4k?xV%LHZm??8+SD@X1OE0+`bG+ORfD4E@ley;|P zqe%nfcxy@DTjX_#US+8MlGp>ay>}=dwKOmJ9-xl?Go;wEXj;KHP^U{=WV8H z-FPV<;)azjR(J!dmfNyqISm{)h^c&R&`Pxtj$xH7a+EyW{={9pr3ZPP*yD}^ylJKL zqh(^tzf`<@6}(rNENt_p>$@96Vng?#!NY=l{aBduqbHNQK3i8>PLsD&dOIqBeh*L$ zbZg;4p3zPKduk_gm(w*u!f=*ni$mC1k!SC;`KIVn~e zf5(=23;eB>V-ZBM1ZQ74h`0U6{=%`|nIEvJb=#|oyuDXCy}Fy}uEuf*A%iB%-L<0^ zbQsI*!E0eTN?GPcEE9q{jkrKr%wj0gF2aMDG5a2v?U;qxcmssr@;L~>> z8s8Fd^O-Qo!MrrdzevJ`a$}(J80V2puH&ono?l+?-wDN7LCkX9HGsQQ8o#}HGG1p+ ziX01H44jVuBx|kbcqe|$o#m7t`Y2q!MrCd64xN&}{w&xqM*`b*Aln@y1|y|tPk!WY zD$t+f7M0qPa<1IDu|H2PP9Y41^Qvp)fs}I`2mB$TKifnvzeJ~Aj^omiXl0XN99Si) z#afla-+Sq`D_`!)5{<9UeTeTG6e&{LH`n&?qrFKW@;d3Vqb48(i1y(p31leYXVT}E zyAxTw$lK+e?%M}i7rz-<++g*d?3J^AyS}5u%>AmR2vbnf(XjgNfHK}t{bs_p`!0yT z&k(sp`Mm+r}}^IwWjl*XUeL?3=v0wqB}Jk-C6$t*>@gS z|434y$M@w7)|blyS)ZrK1JR$FW$x6Rz1zPSjO~^iTOOG9xKC(==fT@pe_(esx?3G> zXzj$e%;PpXtBoM%Uq*A}7e(YFj^dh}I>Y5wj$F8#o*eqs{ewN?p)(vcBr97^et`En zlY8_#c$>z4=T2cP+}EiD^E&4F`Oa_&(qfAM*NW%ocjVj?QWbrwPq4tB#(d>mEg(c) zLg@m1IV4Xd-H}$3@0OFO1IL=HE{sRf$3+!uqoeQ{{naGJtWK8Ps3xZ<0$=)#GZ?*) zlRnwZqdiIJs+J;}-cWZ=Z(1=kZ2FUuCMsn+>?BafKEv5=rnt!sl|uH&grm>(2b!hH zMUN1hA(e|B2Ea*SQc(7)U;ioC4tni7I1B66<9L2f>Nk1`{L^v983ul|mkOT5awVc4 ztuj%lEWYhC@3Z>Kq(WSOu~aR^kVeGCNXR*Pd=PoOUNkx#uPgf8i~DqtD`w}!E5Pcs z(yhM?12H~;;0-_ACn<5Qhi1GlIa~Ql`JG9^-`^hN0}$c9w03LqNP%jbhF+o}aoxq) zo2bl7iG}6h8DYijd!tt({6`Vz(6}jTux5}8s~TLyQHnO3G`~A^%m$gP`oF;1Aibzp zcjiqJuJ5TgvEdX(^G6$`?@mwLdXkfExI2m{BU4NE?+j9|z~pXman~B|-5gT|I+Ni_4xACu1;$)~Z8a<`EqGA<1CPJERZk{ts@V{?ivu(|xCeiNr!Xzu`RnpTk;2oE3! zn*unE`+|fQ?Im}TDT;jbB;x9Cgt6#AVbOEDa#`2hUH>sLZctp#4-G~KfrGpL1d=xn z<~_visBKU#F0X2QqiCFsB)2Jg3Wx*AUKf9p9a!%!*i@GDuryYEDeP{fyvgpgAUcF( z^{aMai`G~8NxIM}lse~g8z_|*9SX`6wIRSN0NgjW2sNHUaCBmZat&f))-Z`73*B1H zg)w`BU*HD3=&2Cdlw5kZ6fQN<4P#yq$cB^r}N*7Xm=Cq z6XKg#xwXO7(>Pb`Ok>=0@m*zAyPLI(YCpchH==f6Lml21)oQn~eg?6K*zr~3xTZ;S z-Z_sx(!0^h5gmpwFp;cN)9NRTtBKo*4xF|ePBa(hzXb?R>3U>4UJOiwb%m8=&uyA^ zBi^PSz61w0En&d(i{ieD@jHX?_@MkhC}Bw8bN6<$uoAOB(EyX0(5;wD$NBcZ6vmdGf-F&0Gr6=FL4 z0R6l<6gv832qx1_ZcX6#l=jVz#!;d{LuIDnjA9qpL*R`yOJa@eVENr@_F~!QzH;_! zef!t|u%n60*>BR{TWc#)clI?CZpx^x>FuICE8i3gUUITC-rShrh~wMNLcBB^aow=Q ztV>aP=$JhQayo~u30u2-kZXR6I9dfvJ>rQ!4R-M6U(%P^8si43n6sfIMINX?d4ace z;Ykc0^P|hrmnp6{(_F0E2dQ}awMhXR$LZ&Ie$3V$Q)!&Q`-uNMC7wEwcN$iBlAcU} zK8+{!w;iY7Kt8#N{4UBuIy+$ZbO*NgHSYc2qP%#T`c`w_U{A^`-?YxNsB(oTAtdyL zmU4_2Y@qGrrctuocxhVi)vdnkV0UG&?x~<|P^4khPsc78(zQ(M_^wCus^QbX!jx7V z(rq9G83Y8c{Lh^w|EF&&e;m@rX|4IMTJBwRxtQEqF$Oelv;lAIDJQIurR7=S`Bs(L zH?EDp#@Wzx-6lA0AB4lPelA?oj3z#3>$Pu#hTk}n+@`1~THh&FEx`_hgN;*pZJfqW ziQ7@0A-JEPdM8-A$!A6qG|l3~pUZob@i!@G^h}Yl9v$667x#ewx4U@d%e|+02JWXT z6P5~;B#1t2nzMzjypRviP}GB?Za$&pE#AeAmqe?!Em}c%*DPe>Ih2yOaHvUVdw9Yo z!{N4hQd?uRV`DQf80&WB!KFd_P|Y3V0!C+=NS%DnviAWKq5ST%6*m3K>~l^DL4{2x zCRiil`U{$^hkKFs)ovTM<_h1BJbmsz>z=xmw}Lil^Pxoj4y}luMOIwCW=4(7@8k&jzp;Smx5T>^VE_-Hve)(L5WkP!pvvK?lEJbJ@%vXiZ9aOuvVp zCGlk|_Bl3Yk*41bFr;OdxHuFhTxQYZDz>0u|jK%2)pRlL4I6MS@ zZDf4j^6&_I$uFONuEnr|E19i<2D(sgaGRip$W!cY%b9BmmG1fv$Ykr!LiIH&CKA__3 zW-faHa9aYfm(+gjYjqSpAL7=fCiWw-FMXN#bEU+weVHx(*-89L-x0iusbjx2HsBOgMKQ0z2vG7A2_xG z8xS-aKvTY2&U1_R%z19fCcBr;$~NOnITK=@-{gn3zO&Z%;<25R{oM83CAoQ6BlvYA zt6fPw&Bjf)I(Z2%Tk~g2U)NI5kqwFo52nY~BExyekQQ(j#dL$Yp3Q$u9H+!9E^dm> zBV`iY{9L)6G|ChbBW#M!H?%?Xr5P<72q?8;E%LeQr0 z)RXo;PI;WJO$zE39(x^b1g=*rTfn#I@FIc!J@3oa%Mkfs43V45qPu=P>^L*vH=YH% zZb4HzGap8!mXsrXUp8=JqAq*R&Gw2`}Mhx{k6mc;T z?$SfuYrLM&@_hYAY0N3~{Wt5UKbNofhe?7axRcAjFCo=f7t`o^(a1xS(ThA{o(}-H z9$k$W@XIH7kIvVhniBd5l_T%Iel8&M;mtSi^>$d4CfK2EhSuBCNuRTY3;J5VyDQDU z>t5#@K-K%fgI;Him($bw4W>ShwCH2+Q0*R}f!S+lA!tPB)F%YOun9wbv#)tR59`L< zy{$d@;cLO|DRvhQ$q}=R|EdLAiZ{mp+C;v7fr@3TO0@&>_18B;d*th1Y=(Bq*Z;Q} z8lW+Y^0n*WHF_a3T251|@4Q<~%MV{qtc%D;axzV8Vbw~((^z*pBu-+xD4K&S_~4{o zsw?{43$Bd;7O87?TWVBRO+{tWP23rYAnqi|FKN`655N>Uuuu?(iWBg7M8dNF}d#rxp#Z{3#5+7 z<8<(8?6k!l+-4}2xR3SSCve@A6T{X6hP`2~6}yzAa)!gVK^RHc(6vfeJ1KpaZttqP zyv*egPVw{#@q(E0TG3iI?of}bd>YKftLDd{%L&B}m5JJ9wtIWpp_a7xm8LvOJ5+Ms zSXxj2PTEu3(o*hheGH~tif7X;ch!l?w@q9`Di={qJudE&R$ST3SSQ|%NA#XkeS|L zgN(8H?Y=ic+^J?)>w9Aq-QJF%{-pGsarE5?IA#%9xjR-^gRyThXq)QBfN2MPfPs-O zgP+2tc(OP4t$*mJzI9;VaDg@Kc)%V4CBnPRu{yA)Kh|G=8reE0)wi?Oj1gZBsQwy$ z0=v!9=5ySvy|&)MPp5~+a+>N$jx`t3pMW+9Y3tl{!z+(3Y$OMinB|h?E|Uf z3kowoG-*@6ee4^cN;|BdI>~KmvECPj~m0<3xK;4fW1(+E`4D7 z5?Xq#Xf$=PWo)JRZH=v5JPw)L%=(^q!{4XLG<8VBS3+d!lLopReVF=`Sh{*P)WD(T z9E#cn;~LlI1NJ<86GDxb!fp8EBuC-kI(sz5_C0{Kn(#hS*eY2Y-p<;S6GS6Cx@X|6 zfnLGrF`E^H$~B$j(KbA`e#9+jN(E(osFq{0|T zbJ6oK9Pm6e7Lg%dk7klcy40WX^`-D$Sm>Q-kS2(Z2ALJYmmvnVG&ySFRqUOT+7DlN z@1koCX4Z#goZ(0Je(a=!nNQOD^$#C^@ZL}5W#|11i}xPlWx>r~o4=avam-T2;MLr9 z?M?htCC?8ZaMV#tS93DgMJxI0Cn@?1F8aQCzdy{#{Ntpqr>Tf61e{x!N-Rj>{cB3w0tA8S7?krb{)(n1W%7|X{!Chal zdO=chfma_Ryk9d$0`KJy9rohYYZIdWrt7X+&4D^cRN`H|RxE$YA#Z*7^`Ac&+pC0E z?>qHQWB-%)cD&wlTJniyuUq{{!jZtM?}gOF6)tiA$kfKwd>_Wqe$k7b{I=CkPeLNL z`X1$Ul0$yr6_0+@h(7k}J3q4e@(G3pYQbCuifHJ0}|{q0{f>PMDu`|9d1CkX^zeV(|u*Cp7p;I^-=W;Mo9f8M}t zUti7MF&7fC)oj@ICf??dpKc_i@m*DRh;f!w$MWg{}~^J>B1l{7G?@OUWf?|b*dq)agEa(Rv^qv&DP|zD4^u822U(lC2=mROVThNOf^x+hm z7nG$S<@U=I+9Bvu9Q4mA^q;Dq6%N`_OQiExK?falX$s|TId8&u(2*4STS0#VadO); zg>uKAH}PEuJvxQ{SkSv2^nw(+MbP&+=*v^+F9p59LEoK1en=1r>Wh4@sfx1pT;!9-Bf>5_FS;o|Zz75|rDRMd92O`V>JganMEz-Cxi%9rTJ6 zx?IpB9P}+IbcvvQIq3URXs4jd9Q3Ox^zUkLMF;&+3jK|sf8fWTR0kcsk&dQ&;@3^U zn+)*%CIGbtLlz=Va+3i*-UPhE0Pk!9ZZ^Q{nt)pjfZLMLc&7p6bH+s9WdK%y5`YH3 z-4n7rF~)lgzy^~9aH|1uZxXq}4saYNfZ7XVqIX&7yg2kp3q3Oq zZM4v_ap)};Iw%gk)k3Snt8fgKvDvW}+ADJp-L<9R%Yk;+7TOa(qr1i?myoX0rdt7+ zLtOUje?&FnBL?zqk|`YX8+%}RUzC`VDb8F*jTOEF9A8`Cd~Lce<2OajpEA#V{aVJ} z_%+@7^wj*0LUkj%GM)Q^>(bj*Uo;-K%JC<6)ptw-2Y1!?OaljX)t{IK_Ufu1o(5KR z)lW-6R&4=HiTx>5s$X}8Vzw6%j_6Jk=ZvLY5eW|}VeJ|Ia10`4b2J@f!OS#OR zvT1IGIacrEDr0V}m}^{(G;5vH|Bw`dd}9)?meo}GwT0+v0&ZiL)&P$n9aETYe=5VW zUA+41$waGm8&MIP>a0HoBxh%x8rMMi(!eMiS-zqxviT<274={RYjvLm8jlCM$pZ~! z4)=#J?L2w$JOJE{dnZ2+c62SYscJ*e9Qt>OXPCeoy6+IK1EEwqfI;N-yisA3uVfhP zPNGnQoj-ghDFO#|+m#QYitR`yu(WOYKfltJ^&!oy9c$&>6% z$XBP4$U|k?vNKf?v-rUoENVbwTsj_?c_&=tc;t44*HGjs2|OObjh;G~d<{0dX{0)| z|4kb{XUeBB)j^a81x3Fz-;ebt?*W0yi0B4rkriUD#5cvoarx-AswHj~i|80i%c(Bf zSzvovF)oaY>c^wzZtf&Y+ub*pBulBiUev5TxI2*UHW|0@!3{$0Y{eejjZug{h2>V8 zTpM2i4{>`j{-ZZQG#(fyAU)%o>e0?%WE8VJJN2q9~DcTQueAB}!mj+06mmDnqI@9WdIW=ZpPfEOT;}fV)9mAwH@bB#bZ{f0ol+$vI+&h6xO!m2_knwj zH-Qq}$WQni%H%a};&sD=QcTsAY@)4&Ow)P0uIhBp-=Kg&8gCZ5D7ig*6X2ustTl>+ zAH9WWwrcdn!M76Zt_^zOqvX}&fW_!-K)qr-rg!ry4Xdwc6EWd$!Hw0&`p<>rVe!+- z*LZLIPlB`D4^^UgC!4slO^MP2bkai>=s{&+$Z#bg+7=hI#~nkuFDM;bPdaIZ_19Cc z^}_BnD_mc8@3Y_~yB%PQm*;|0N(&d}Pd}v_?OCKg%qte$QQ-047W1bEeE*HAbA68c zX4w}VPs5L0&H~Y2XYv)t2kmiMS95V}!FW3*eQwfcIl5m;=spJBzt5x_#|Q0kqU+*f zy7x8dsx5ul(OtJA9~9Hy<>9|l;*zD(CpetFX^A_IxUa;rRJXG&S%xOdbqm+U(puzoe>ZQ;7m1Kk);cuL}eW|Y~R<4O0mn5Wt5S8U`f>zb9k%fjtr3cAW$_VDYD zuVJdf3xk9+7caexCNR@#(V{fzK=4f|-)g$HtHuS5GTn715gEfiY*kK3C?rYLN zFPpdI;NpVw!!BeL$0~1}xil_!e#n$Z5-YxQ-Z1gsG#S`;!8jGqSEi?B)zuK~3%;>E zbNl%}A~cMFH3{3r6bsb$;zgZakI~iUi{pbYYs2 zYAIwsO7?zN!tYl2J^a*vEk$VBON;5A_#N4>G5S_8IQkuSV<&nzB3t4q!?5QbaL$}e z-kZSD#0m4mqD8smiz^ZUPAm(AVv#-Mdi2xT=~*s@6&`1Bkh69gsS9yxeGqUrr51qH z>`l+4E|=m|I$6omg%I-&k@ZTW+wCy)sZZf7$n#y#a%ZIyN;G9$i}&($+q=t*3%k5( zKc5uFP|{!PjQ9ph!Y27`qQ7seG3z8^@=QnSQTzX@46 z0oz@8Y*qOH@zg^u=w{@fI$P_kidxZX;g_Ka`M2@bCc2-m)2ZA8z6WwpSO2g(m1v z{|Ju(_UuHB8rTw!qR>MJmFOcRQ7^7Fr}T2A|G-@f&ZXG2?_en`&8`J~cb zw2vx7ymQ~J;{|)7yob_^=8Q5l$B#Wb4vnT|Xg|h~PKFj!*j&774^C)Kscdk60- zcrC7Ir8|;z55;_NWXH~=NjDMy-i+~f^n&6>zvxZ`g*#Gcnm;w6_=S9JkFAgtfFmZ1 zRmZ>OmVS(%+oAig_-VxaFhz>AC-v~7JK=;HDO7tVt_IO}r!JtoB1UmXGVTIxyy_CU zx_cvnwXrxYiy`eaS#ZuvM59lFJT{nxd;1kK20RD-aL@mHp%|^K;L=t9jc# z92r)VV=}Vson?j+JA%-pqglC_66bfuKkG`ab}0KtJ+ziBK2&(OYMZ`gIV!1z>}223 z-f0?_!)oF2eRq80eDoOt;{)yh;^q;gX>0S%T{8#pnWXio#E3ujMpQ~|O6T3L;rSEz zXiUYryphO!Zt6`usP|C&Vk3|-phpy<-FU%j4OQI9z{wlI8W|s4o~Id3C;B$hpPNzy z4g0BRUiuwM6LnXAe#;V0#4Ul+`1@PNmIJN#!SCdq`~o+glrBud=TF7wSk zK7B5s@CtDCIfRg(e2Z~aF|Ia75e1D?CiCA*nZ*9P2D%Zie_;sLAmdaAo(> z>c1uVET**&)!WZhZ)!Z&CQ4ftG1F$vA)HTh@ao?|S>1MwyqzndGQ6H%Z;^Cd=SrmC zF%9=sljt5Y-99?=%Z`rh8)nm;Ps+BB%)wM`@z@{A&b%D7k|uN-V%I(@H5qn>xb4fw zW7`S=2MAN!>6;HcQ$I7G<5{Z;To89V*EDIzH=yY}gk<$|)A4Y3)QGNSXs>|*#P$V~ zv049u`>3gzr=(r{!qQa3!>Ot82!2X-9cn%wevyQB>&0it(72UuXr1ksq#4?OgSy#@ z9ZcNt5U-6dNwE3m=8*;qA5?F1V@mWD0A6PAN&>h$X+jC$GwpznwF8)6cC9W+az{Jh z6YT(|-dd7GUllv~=BAkcw==vMA9>air11aGmLRRHqy+Lg&8jB#J3}RAXuw?cn`%Zv zn|Z=k+A}iyZz$wk?4*1r?99l0Mp5S?m9~n6)PJL7b7hutm1H)9@3~T@(wr-0+!8lD zj2W@RsrzBVY)TK`#NEesv9oRatBah+JnP~WL8aMWcW4ii8)u|8arShJTGGvqGq@c% z)fODLx3rzdu_lX@!|`Z#KK|-sGCum1%2v5SN*M}NMZHJHM*=lsUkFj!N+ zwb!rf^>=!$HtyB?qk0c3xF_l^r+%;Cw7#J^1$hn*PKre18=!`ph5tu_I^G~ed=Bl2 zS0C~$lk=pgMfZURu}KjqZNcwz;BOlELD%2vrtMPIt%ul2Wg$aPWuxPc=ODt>s<%(- zBL!}&`mFJvZj0C0(ajr8(oMN3C2p_?cE0YnA9?Fvzi`_DyLYFrwT@s)NGj6*=&7@5 z_5$D!3BX>s6J=783!-nSBz$Aof{kwz8cpP|?<{ioHHo%c4njr_+oJcIe}|rsGxVIU zwbm2;^7iv5WC_dkKz#akuN`dTCx<7?hiE;|EB&!Gjh>d1v+ROR&hrlLl=zTt+z-pp znv}xEdOgQFO?0ZVGtJO_VE^NL9*M+<^oDVJNh>w^`d9Hp{4liv-MX|4J##C=ZmA`X zo=*b1Z!x(+rJAol&`ho97W^^*yGLw{!%jbKA`0H0Tfm9#T5CS}`lE(*Fbwv0F6gXx zuEOOz7e~#}&DXmC_~BFLj9+5$2P!_#{dMC?{~c5?{4PHUb1MJ(+h~Lg@-)EN_Z_qe z4g)<&iKAnbxVWGg-k&DP*N?QQ<7bOH#iEX#E$TTIb=+)GFSMu=XN!7`MV&A+3Krk4 zxR9M_?JQ<$P`Ub>XEy@ZY(ghV+TUC5WyF^c*C`i2T%)+}AwbCX_m%rB z?mUY#yAVAP$IUCxv$zWs$JPcvI*B(;3Cu6gA6tzYK24<9|5NHO*ZRxl=m&aTP+q_a ztTcEzARCMQgp1Y6tpAnMl|B`}pXMF6rMvv$2mM}EwZz*bsHSYg}GV_wDBT5Y0`$ z3OF55nMIYL622G~eKty5!IQ_8?(rfXj+bl=?%5wBPWRLEg;j)3{V+rH6u$gu+GKYj z+K(ST7q)CCNzAB8XmM*EjjItx#J*HYCVn*r+Lb5Wrtz11T>jj-{tuIe?ufa-@L6O# zzr(eH>4AjL@q+QpP8oriueL7pOXSXURxv*qEub)^`e#sfgi>bkYjcmxSF4f8JZOB) zM7Dxfz=BrBnAk=1xof7j8u;w9T6wfQ~_g41r4hhBjgLkxU%Jg?GOL-p6F5i zQPH#cA%Fcf)Hi2$)}x*sob|DhIlQ=GFE^&|jo`X#IVKG}?d9&YyNKv=5`DCW*Ii(Y z%*jm-CC;xM=TFaML*|7r)QtM7Z>MN*Nk-AwFB%JP&w2DOD<`b zvljPm>FydUbS1XJ`rvfZ*7d!6dHbwO`rg3iZ~kn$RzHO-+&%}V7;_m@nh1T6zSrmQ zBD0-ND@bG7(Qbe#DQVV{LmY2u;+s8Xx0vH`doqIh6~c06SXfD4ALvY__ZP?OD^gyw z66>zLpkNYX+kXA#1cj||at4Z~5UztRwRX@&lcw5*DR`F^&H-KFijlNL2-=LXpvy|) zfDR#Vg zeXd?qY0+<}K2{`RAH*--;yw?+|-%i;KLlwL!yH{%M;%r zr+rB=FE&na{p+AiPM-V6g6M}bv6qS@Lt>4Ag6L;})=cRgkm@jqerX`R1CnY4(a#NJ zy6aD>mV)RP1~NVNCnfYC`jvr9r~OIEFo=F_Ak%MuQmX36#}wlvFjkN>%%fQ>Y z!}Cal-(b@oGAh+m?7o2yQBs)~joQ!T|HMD|$@tdPfcm0rcRKOCRur9(PDfLA>Q^_Y zm;LD~HfUNcIJBN};;p0$B8{5r574CD&Pw?k{k}=K{#!v^uNr1(#^>W@fuULvRauA_ z^XQo5&if=JWr_FBq@RVsc=Pr2poqz|#KiEK+r)eM z38Kr%U6QcAOV#5S3ZB16kS0$rLxz&+A4prGQ8^-S}87@rC_y8B5(A1ufB@9_Olmjn-^PO3)p=r znBvLDelyR4$=-?D6*d-y*YYOHNJD)vH}POa5@GEy0ePZjiV*CB12hJA{+d81Ty z0)K>CBdg&bpnbDIrDB!)7CCYALN&z+z~(iLu!qt1?|0{`tNIG2^GlLjyiE1{C3rTq z6aD%m3715FR7&0TLYt}D&0{XP$Iap4wUo(pZApd?Kg)&3J{mtxkuTVu{^nhpf%b!X z2vlQ-mq3fA%(sZFUj6V20O57~M1O*Z?%Gkr2`cwXDWn)W%$e!G!qNfYl&IdRCDO9>AUP&6qu5R-b+uCu!Id#?npYK~e z2a#$!d<8#_Lv4yUEoNV4CWx#gdS!}2W>=~AogHJ<(ikr7j#KJ2sWw*})3+gbE2=!< zpFzmfE|OIa;)7uuxPdneuIXk|g~Gp($`Aj_Z+LWb&cU7k*w^Hwn>3cJ>T+#v$?o&! zamYdXX0@UV*!~~h-ULprqT1uXxwoggr)NnzGwI1bLy`%X^mGUb%Oqh-SQJ4(We1T> zkVP(ZC!jPPqw-wXL|loW5&=3eT2r%s(Zb*k#rsZ(%`TMMYqzk)L84ze?&JLMefOI`=ovOU!Ud^f1gwk8a= z6C;=e#A(f2PG^D-!1YOeeDfdY`kK|-VYuRDz6k{<8dect}=stC#a+ zL1WJzJvX%tXi9+3BE{pUNYT1Oq*uvktDM>PAt7kjW2tlacYuetY3PD^OO1EJXNJ-r z+`UwO_;x~~=SY3h={s@E(4Q+)T_=M0`<{%9&4lSvi3pDvL|(l4Zp>d7h?q z#gRjR|E07JIQ~vmdPF$WR-;^Lg(KvGF*g-|C=SsoSFi?RpUx2jBcPz z4;_EbdznxdjoK3$fqZ7JxMsxSJHo5K#9Pf>v%*3?$Q9ZEVOb#>IZu*_)jqQaH!mIY zW*_X00soXTQ?7HKu!5 zfFO%wxkS9nH7882_KZp-dA-W&tfISCDQ(O5 zZg%yNe6B&;yy|0j9b?4dSEuJgU3oma{vHSyoh8<{S0krMLQoIiuW%>hR{%rfK_Y4} zTa>{U%cl8_9x!Un05{zo!E~w5&&7ci0+;OT2lboA>2MzsIB&_}etnOX*sHdOna=p* zlu;0#u}!4hslSh~put{csbm_p9;8nnUl{o|RisoET0$(U7Ly3Zz^N`0wOK!DMNn1` zwXM|^w1;p~0zKOjXlCM9=V1ov6l@7Jra3A@?yVp2--t)=)`^LqUI z+T9;Z8#hzajf1MZ=wBhWsCr>&X&cjikPoMVSUTQ1dviDDu-v$n>~M=o;sr6qZ@)yu-Ds(!2GyZ{u-u2z;%`gC#5V z#RTk=mY5M|rfQ>&Q+olKqfNg3EB>NI1NCqHVc!i}EresXBR$xfrO!(Em`dHYgX23jIQ|v;oY9Sn34d;>D&a5e89oe?gx}MB zL|-I*c((xvBK3{%%kjro_3<_L(G=ni`yl!+MSML@^&@?_3Ix%Q`DmcDi>nbdhm}n~ zs2RSil!hK3KhuZ9KZtM+kq^Ja4-F7)(Z@sa$5Z;S>Me2Ytp3PYU-mLLl3x zDX66+E@9kl4Ms-CAWjj3upVdGgXkNEXxiVHtEfz|lGPPa8yHWiE{h2@Qrimwn0~kb zdm$i90_=r=U6KHMadq33y7jqo<`L~0xq=Qrd>)-ZAG9NLEk*iG{kmEu?Xk|a$6O)| zM~Yd(yJ2Q81XPm%dm%u5*7#Ee({`?Wv3;a@qyfT6!?*4bMDGz<6>CnG12@gwL4M64 zC+2_eg#0!uZOhMaDLPyEno(N*^Rx1=OY(DKL$XrjuO)S|7Xp?h0ro<`u1SEs?1@Cv zjh0pq-CFI6dpAMEd_j*Tt33Zw5i(@=PA7CF52XPz-p2cXTV!(068*ULOMzoDED;fH zL)tkx;bht>@>~D+8+Q?pBO^7e8-J(g-B)xvwTeuPG5`L)z&y-PECx1#-#7Ujtp$s# z`1_7oV?VLRe6)Gdj~OgteV4OOvTCYMpq@WMbyckHPSClS-*h#HQ0KWri-}w<+c{WqSU#FT zBlqag$Zi}#%0(zPQJDDUE(f`!w-{;DlIT9niq7J5F0`C0aLj?3NbM`YvPDM~67Fg0>u9OeuhUm03L5DFdg>#5H}*pYUy_ejs6|oT>PW<_ z!qC!UK73ZB>&ZvE6Xia-HtbHr^%jSsKN9E39$Uvhw8!+-fK4jHAzH4o&H;9Gpx!P} zsV7nj=OBcJremr~=1l7s_pH2XkJIJZ>H0f&*`vlw;iPr>)t66U{Uq;6w>+@R)YYG* zlJ=!UtH00J_&8+}{p300d#!#niN0)?-Cw?%^}0(e(5q3;d*kx|L*l0{+;Y1W@sFN; zZ(GfR+NE3ee+S*R`iIGv60N>LxgHiz=SMDn)la^*bSEqRgO_~!!K}1r%KJXL8kM~_ zew$L}9F0}mRTla#7rHK?!K$Aqt-MN+_R=(zVaOYozbiuDkcOV6(3iQ;%hS+TDRdtf zdSg#a+f`>MbY~Z;W93HiRhE`{hTuM^+jP#v0H2xsfHSm5NHm@C4sPRS#9F3;MN zY#0`{Rbb|1!>|y|BckzpB+fwh_$w2@_yueOTmo>(0q!Z5d)fh)GQgz{z(ohRQZT>_ zw?Is}yfM`Uvt2{*u5fH4??Qf-g#?6*=A%VCJaGGZ7Bk!#b9)xk-5K+)Ean+%m_e&< zh>Pv*$WT2i4*qjz>LY#EQ6v8n~hg1jhid11O{^@grp{af*4LEaZBOOvo|BWJ|Y}Lah`8F zMm58{^>uS|VYEqF1wux|?@z(+-12%!#_vwyoE|5P*Xql?;g=+PlwICbHg#AyVn4DI zKu`sZ|7T9kGu$jh3shtgcP+N!?Ha#_7=O4`w1~cLMQD?(YaGu}ayr04DHgSryk965 zj*ngfJsUTJVT9906hg)BA{V?_u*9`Y=45i`#5UG)BhRdP;qGg1rf}ZBxasN@_&w|$ zc}3r4EAU0vJ96IlU$bKM^@tv%rVC#EC&`BwNe=gpEIR4R6|28RfJH0&>Kcj1t1f!x zHP1LO8;^O{iq+30=@h(rKY8`zH+g?jAG7PW#)6V0oKbl}z|Ifq5m%dEdRQ82?R26GJt_@l4dRU-x5pGhKgy&?{}eB zrlD_B=xzMu8@Hz2VEj}H$~SJx0*>FVJa*bbkHep1$| z)AHs1Hq@)T3OsRT>{2Z*t3(xn(+%=u$PllVHSui|HOyo=X6zMwGqXiXVfMOemuEQ- zpN0&S2gU{vRBm4|lT!JCLHgC;lBM-`(vBM?=ee9}Xu~Q=<{3z4Bw*udSuW1g$C8u% zp!vK|e0 z0UT}tlVbtB#g!6{EL88MzV*8VUP}b7U)OGaHLO2K(3V?8Q0@G?qqpE)iV(FW`E@Rt z=jFcPzNbbkFz3ms-dSh#K;9WK>hI(5IH7({;QV*ABG*8Yx-%Lx1Ak4Ig}ke>L8#G?sWnx&ua7 z)Nve@>1MIRzW;AUc5w=ee_PBC?u)T;+I$6TzKF%9whe_|KH7tv369m?4iujdG@J}h%~X^WhALp*hPxD;6E0wWpb*ZSOt(YeaK!Ajm^CKI+E zc`2}*+^pXRF7>bQ6NQkxzD1wkPd|UE&tIgUf70hO>8HORpLu>PuSwsv^=W+DWsn=i zNlV_uxbzIA2hl(H4X>c#p?nZM%UA0FrLg-tueNYl%H$OiFvhQ`BnXUEK*cQM3?5dF z(&>aBGRSBWG-^PwsI5SMFVLgESh1Vhiw$3-a`4SAZ~oQRfdFTl>D>zKz=L~j4k0kX zXLrgm`wzdVEReide*>sUFBmQ-Vf21VK?_%`Ut__=`p4|)>1;tKp1YAet^#$)ne80< zS;p_d@Jb;f>WE_DT7CK98Xj&{$aU-A2W)#p+YO5{@SlN>UFnnS72~9SxEFy#(GgTS ze6N8`f{s+sra0(5Ji`yfAJ?TH6G`(zVz#T-o&;LG_VhX3KN#*KFy4|qF-^$6PVV3a zY8Dn2ghi28SS9IWR8(@Zb1Gjmmq$)FDb+Qm7F<;BVJ%S%dsHGh34jz zG-n+-JkU~gwGI^naM`_M3!BTeUhJ5{hI+qp74rcYwvQ!G-BJdrZd> zwt4ilLPjk@i|apanW^fPqYi&+3o>sDTPai8lR-7aJvRk1Pte+zmc-W-nF`l zw6RkpuFgl)XL)!Bd3OUVxi}-6nbJH(x-YvA|mN@vhjQr9jpFFg-P) zvlrLT5yEjlH}5|YbI8P1r@>aanp1l2>@-l+IBpL@iX-&;l$*>qtZ334o|I%S1RRkB z*vsq+NAwgos)KF_tNdniSM@EjDe93D2A^0R6@t_q2{P=4dSM$ zP6qm(=J)KkLhpnD5rf>jCTk?YVXIU8SaQ_V13((vn1s2NIyS3KncyIsUIE8yS9EfCll2B_m|dDLCGmqY@Xw; zLi8d8btjCPo4_}=|TfFuQEk3~7 z*ytZb)(X2)Sar$_gS2$yY1C#W{FWSy1ik|;Lvcy$rcr!m)?;##eC^WrHE8hI{Es+%t5cw?TIo!nQAQt z5gUdPIBMq+%3xxj<}H}oB+W0?fi+h$200s!#%>8*g=_pUJX60G&adaF$sIp>F+k!& zi1}RjDiJ4Ne~}4=6L{qqfBOOU#D2x`AQlqX)gMP)5`Jpu&7%O4g(Iw!ac-lE)ST2} zSzt3}_!|Xg$*=v!Zgh;+34B0|l|lzke_DLE&~##>YruuFxyWuW~;60gY~ZB8RZ)Ys)k{ zbFhT3b$8Ivn5lr8oDOh)U-j?}TDd#oau5aw{6fYd?3!B$o8n#J9=z7x#dc5Ew#w@u zWsKmGDIqYu3%s4)p6H2=@=m(L>4|(iBuC>@G=;J`#aTQ<>uce=DA_5!j*E+n_O!xq zB0yBcb^?}ziwn^>FY7c|;0n%WU~XqnoBtdMew!+goKyX7hYpK*jGK#u-trS1J}1i! zSzDb0SHbPp7#b&BuW~YiKJQsSbcC@e&5<-$VJkpqPuOK`!+WR$?|d;j0*J@q`pY%v zPdX5F2ZkN4)4YW%QXQK*qo%Yc>8WADUI=)35@0U`oSX#Mi^(x!$+RPG-=n;R7dx71{5*^Pjj5LAt=d>*W=%ho_tWTo zbPOg|^V#j)1ZqVSkG5_K&!jN+O_=YJ?t0SIrWM`tW|fgg#yP^vG8flOn)zoCs2FV~ z^VK*~vE54*b;;zZ(KC`-E2!|PfbOV0%{n1B5@K`p3EuClN6+%>znBbMb&s};;h%sP z)@XD3mv#Lizkc}I$#AYNZ!a;;Bma^+%#%8e-S6gY|Mgh{b*nJ&f9*x4UfoQC%ndbWq&Iz)}>AN=I!eBzDdHC`N7pbjNf zkfR?VXOAjAv{5mYo~@qwIh{rZw%WUAdcALn>&U?3v7ZNi!_zjb1uOdrKMDj_>G@uG z0KuSo6I=7P9U;OM8V3@3N!&J5>;V5%>s#SLMA((lgYL@cR8QH>;{UCbtF}~|8f{^c zgULWc&0DWX=fAbI*xl<+Gs$bK)AdRYPT{|vMP8R=n9lfp6RNSV3jPtpx2(Hx-+}Ng z_1czin-|Ky?v)pjn1tsOtu8x!qTQIN{uti@!~XwRFE_%l1@e+4(bDL20JkNQZ=F7Q zyvBOq&z8zLupG#9m%ABB3=}H^-P+ttjvH3pB}N0i6+B@-1`_4oa^I$bezqM4wEx&w zF4kWLTe1uO_d@)@6cVxhzjPEQ(8u0U_mR{L!DH7rp@U4ot5M z3{>~Rk&Zn143-D2$fpL<^jx@6mN(>q!lv-!G`<5vdV<)TEKg_Kaz=SZ?H-De(lw5+ zmO!9CN!&+bJP4J0uReRf+4%b|JC%5Ewd#nTsS0<+Ly(%G%Be9u6K!Gae>3ntNmIe% zw5y?03dRZn!c)6xVn1%Nyp|OC24gRcUOzS^9>UlpJLFeYWdYJ#sAn||%DGJ@fxDsM z8llitKV-za05RL;ZgK79!D+TEEc2wfkEKfbhx;!uXXg$>-xFVzX%^IXg>IJr59Hh~qI) zvG`ZF#UDmI!-r6}4e-4+&qD;2hC^r}2Tql8zA`*&++A;EIZf+MVN$-^S__;Du&dsWfG^ZPvmjxFjsqcD&+7)h-K_nB@N5u3I`y!Az{TtM5k$q_sA)<< z1BI?66m6{1G7=|g7b$DrnX$_m?{Us@ai3v2A zCPjXg1b*f?)XFx7Ng&8fCYYE&C&Cj5ml=eGoj8a)5(uXogb4{GWfBO8TyRjEw$(yS zpFohAOfWHl+CG866dMTQnl=dXof{qeQOdwuJAlyp=f6HB+5G0lo2sapn2?=B> zkwCcAAbhS9g6t&{2+UW(VL}4TAW{e{^T6T$P6)D!NFcC@2ZRX;B*+pRo-uy7uM+|y zD~0ew5(HZ&B&d`tDTL1&gim)u7%C5?5Z+}FCM1|yo;g-@Ow6g}Ee~{NpH-fvSTTO} z_+Vn}?DFh1FY{hb;b^FtQ=XIN8D&{wfpg1q)1=dKnN~0MmaIPa1JLU?UB?8jUj=_b zT?w^}M^?#7$lub*o2#y|z)o(eZSW^FUF|%70wHTBOyuI)3n%haZO@4>Dj4KgC?CeW@nKu{;;G%9FZSyr%XzH18$>qW5IoWlD1^c*Ox z7mw7yOI3--kuIcnZell-FbQKY&zHSMcEQh@&<3K)|y|Zsw8%ugod(ci+SXzVU+hkr(x* zrUIXZxN%oA9d29v2eyw7OnX+3Y z^8&ai-rMoLwZO+(j`p!Uv@J6bG!(wwIrMsEBJoZfTh^-p`tG&Z2GF1_h_`x|oF)M+ zxstQrE;eoNrf$+@cbRS;c|>_Zcpss5kGo!^jLwhkt`+d~DcDATSy}WEa18q%eRTPS z?(hNLUecfQ(eJr;ugbY$1I312&R*0@WT7=gmLTNjaLbW%Z(f!2(m3b?t1k&ED=gW+ zbkV0*3NO~fDWB%D_nxlC5i}P?yJr=*e>fC8lCXk%O!v9|(JI3GkKF2NE0Tdj7#{j^2i?$A-HK)5T@JcWIwCe{xH=phD=cG@#bGpn$(srcn zj&9t|a-6-*7S~nhAmrW<(ycMuh}u^$0=B+Hn(o53{5|Ap90e_+qeURUSZFHB8W$PR z0~{?=lU;7zi}XG4TkYCP{V82NE_JI%_-?Xb#B)VgF(G=n%&7}u#Uqbn2391Sn8R;! zK5J|t#B!idr<1s%Wg*g2>G6(4a#q00xw^?MgEht0dGC9QCX{Plm+i!`6-XK7-0|Tt z)Ci8T&_XvQcE@2JvbZa6m~0|J!I0VX5_nPlcrNwp*Zd@CzemM*QF<{GJxaG1>7a3E zy0|mAUTjSOi-{h+*kjedgy3l)lS`N2b6I1VbR#QWS;2uQZL|Q)MaP18_%@Q&3j~^} zRxI$;hlL-VM14g~488T}VE|2g6}r~&Q1W|AE=nvwf_jf&#ojc+uc`A%HG4*)c(oVR zYZu_}YrGYHl~mavpbL~VHPP-=K5zRMCVEIOy=ytCi*Nb1vr(8BFRH}VviueD?>Dhr z0+K|Nm4TH*5}m@ZwsSZ*+&5(f35LqqE)5Kw01^$RcczIKhw{kl>N+V5Oj9x#J1FP= ze<98L5`34(wRjA(9k-u2frd`$;LxJ}4sYWpmy=t>Xu*_s+`WPDA9BOmD2UDlA8SdM zD4{Xy*(8l)vI%9Jk;Mn$ap#+@ z)px^*Bp9vXA^IdWuU$_yx=}IV3DA^VggDw#YP>=LClU~z#7}Rr&vY~xJ%~gd zSE+3{m85M@Pg8dADvfSbj6vOiGN3)p8A|g?g>6)frs&nyS-d&;cI8ocvO|ZnlcmNv zO7)61bleeH=+I>{6GKIG!LLN_4B6E)qZNO1bfC5ImdlytxP`-Prk?BciTpedh{>L^ z?@gg0NM81`YZ@o4#gM+!8jmuvtz#81r)T^jW*2RVJ6Fa`0jD*-o+ZAiGx2>LOBr-N z(;DB)5?|bz`2LQ>w%;$JuXv*hTc+LN>RZeO!$$v3U>lPtOPer?b@*P1p0_cb0%lUGk^OFKdP zrBzX1Sy*Q(}Em#S{ZC+55EAEr=z0J>cu&;`MY}+O^${pSWA{0e}uxiWAG8^%{^$3^5EV+ zJwRl(A3jGOZfegAX#e{oxo|1aQc9PI&r8;k4f zFxxZ2%CcybL%>@0SRK&@%br7Xxv!!Ds^bjk0y`2TZv}GF^a55KBh;$5I^S7etb^63 z^!eT4V&IsB;VR6ot&3taj31?D7!nWJ{p9$nLMdQ(L^@h5@Rl6r>>WCB)#>u>an%^Q zC%6{Hm$=jc*Rg?M{YPn=8g4js#KIQ0L-Ye}?@eV5szAdso+NgbqZ98|&P)Ap8*~Pe zomX$2sZM%K8W=R1w6+Unx@xhaUEm!7K1{j5$B%r7;WqTecPwL#@r+||$Xzs!;qdQ} zGewMP_4L*r_GpTUp-QsGar7DS=I-tGd=;Q%wNpW63 z?W`{|v1euI+R_cf$dGpamY)KHy*6vM7G?})`(aPbfl`^{htsHSpnJt9`WQh+mdwp9 zP142VDp|Rc*{Urj-=W3}=C~na1&mMyh?du(_{Gk(QYO|U%bMgxIVSr)C*gc;;RUT% zQ2{f-s2=a^FSPIGYuBecS_n+gk9T>vr`T_vO>%q_H7*sq>ca(fM{3%rMd)It$((95 zz*P=fa@w-MoOSt)(t!lJkHTX;gDh{VXnN9tCPnAcmnLzw(mQ@X8Irikysh+(%K-;7 z;xW2PTaSRz7hsG~C>nL_P=d(nGuuQ^}lEX73rz&-;NaC_>)fWh-Z=#kEmN`#hw4jj?N#uNsaAsYTlxk zxW2FQnL1214xs}~#vzRp8YG7L(n08_9fMHfCMJg8?=4uC*!#5iBY7e*PM1}%8z-=t zItOM@9~Ca=@N63|{H7xRKOQigJY484d2upc1l|Jh;EaIg9l3C47#ywYRd~LL5i&!n z>>O2l9p$IQ>ewz;ZBEiI%j_WH4&|y!G8ha9EMQH{oTsNu%Ho6~i&G|!DI4(!B3J~>z|no_98d62SB4*KgqfvC}BI3Hca)X(|yh8~50 z*Iur2u@iPoz2%3BwfeUdt~s0}!D+rTe6EiiM5!BT4ySOEp6WvD1uAcp^4$0vJqr3W zS8%)3!@QVZzUU3SVNoG{cB-=o%+8T)%rRaM)RutxjYFwctC78~(<}V^4M31IXuVni ze)t&Q>)%UA>wE%CkN&+Wo`+!`{2%US1+oBG`2_;~@Vk7Q!R^cy72J986^H$h!PJcz z&|{{*VJhzLF+C%}V7M2*-uP=f0hllPF0f{YK-=f`ua9?5gJ5yx5VOliqL*t1<%czu z{RV0%n-X*&EAOyMhsy=t5BG477-M6y3u7=*dWnGeL*u|fDj7Q4zoc}1SNF!BmEpUE zFWt=}0vUi=cEwTsV45!uwX2K{g3#f(vQ$MOYpe&s80V}SbhOkg_~9xg@T$AT^%mUSr0szWQ==YS)e*Y|!7-8c5voDhqW62rQ+ z3VEzWfOT>|6SHw+UB(Oe?ZZ#n4bWSx{VXQZ3n7w;75wBgdwmPZ5pL7j!FsD+ zyFjn8T-gb^oDg&V!^ME~?Zg_q4N|m?q~cGlqzd`QF3KtXwHA#|hgSy*+BUAROIzGD z(2bLg#sVcuwt35JEG++NegH{SF2#GBM|i{MyL}wZ`JSN89AoRObBsf02Vi~y4u=W+ z_B0t*a2rh!tUuck0ahsO^ATYEbPijLE#Jae;FLn`bom1iOz(mBB}WWnZ^vEE6Le!K^DFCZU5-VjyQi!tZ}*hZ$l66^ zSmDgObTv*eFv~wxf-tkg1buJ8LT@>82YXI*IrK}8Dkbzbv+qpEXxxrPOfOPmJE>X{ zJJ1k4_17LuC*GURc8Q;FTmdV!>M%0AVG{UC0{W`2WJB^Q@twjYb4}p-)nm#ze_MVZ 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 z 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 - - - nunit.framework - - - -

- The different targets a test action attribute can be applied to - - - - - Default target, which is determined by where the action attribute is attached - - - - - Target a individual test case - - - - - Target a suite of test cases - - - - - DefaultTestAssemblyBuilder loads a single assembly and builds a TestSuite - containing test fixtures present in the assembly. - - - - - The default suite builder used by the test assembly builder. - - - - - Initializes a new instance of the class. - - - - - Build a suite of tests from a provided assembly - - The assembly from which tests are to be built - A dictionary of options to use in building the suite - - A TestSuite containing the tests found in the assembly - - - - - Build a suite of tests given the name or the location of an assembly - - The name or the location of the assembly. - A dictionary of options to use in building the suite - - A TestSuite containing the tests found in the assembly - - - - - FrameworkController provides a facade for use in loading, browsing - and running tests without requiring a reference to the NUnit - framework. All calls are encapsulated in constructors for - this class and its nested classes, which only require the - types of the Common Type System as arguments. - - The controller supports four actions: Load, Explore, Count and Run. - They are intended to be called by a driver, which should allow for - proper sequencing of calls. Load must be called before any of the - other actions. The driver may support other actions, such as - reload on run, by combining these calls. - - - - - Construct a FrameworkController using the default builder and runner. - - The AssemblyName or path to the test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - - - - Construct a FrameworkController using the default builder and runner. - - The test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - - - - Construct a FrameworkController, specifying the types to be used - for the runner and builder. This constructor is provided for - purposes of development. - - The full AssemblyName or the path to the test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - The Type of the test runner - The Type of the test builder - - - - Construct a FrameworkController, specifying the types to be used - for the runner and builder. This constructor is provided for - purposes of development. - - The test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - The Type of the test runner - The Type of the test builder - - - - Gets the ITestAssemblyBuilder used by this controller instance. - - The builder. - - - - Gets the ITestAssemblyRunner used by this controller instance. - - The runner. - - - - Gets the AssemblyName or the path for which this FrameworkController was created - - - - - Gets the Assembly for which this - - - - - Gets a dictionary of settings for the FrameworkController - - - - - Loads the tests in the assembly - - - - - - Returns info about the tests in an assembly - - A string containing the XML representation of the filter to use - The XML result of exploring the tests - - - - Runs the tests in an assembly - - A string containing the XML representation of the filter to use - The XML result of the test run - - - - Runs the tests in an assembly synchronously reporting back the test results through the callback - or through the return value - - The callback that receives the test results - A string containing the XML representation of the filter to use - The XML result of the test run - - - - Runs the tests in an assembly asynchronously reporting back the test results through the callback - - The callback that receives the test results - A string containing the XML representation of the filter to use - - - - Stops the test run - - True to force the stop, false for a cooperative stop - - - - Counts the number of test cases in the loaded TestSuite - - A string containing the XML representation of the filter to use - The number of tests - - - - Inserts the environment and settings elements - - Target node - The updated target node - - - - Inserts environment element - - Target node - The new node - - - - Inserts settings element - - Target node - Settings dictionary - The new node - - - - FrameworkControllerAction is the base class for all actions - performed against a FrameworkController. - - - - - LoadTestsAction loads a test into the FrameworkController - - - - - LoadTestsAction loads the tests in an assembly. - - The controller. - The callback handler. - - - - ExploreTestsAction returns info about the tests in an assembly - - - - - Initializes a new instance of the class. - - The controller for which this action is being performed. - Filter used to control which tests are included (NYI) - The callback handler. - - - - CountTestsAction counts the number of test cases in the loaded TestSuite - held by the FrameworkController. - - - - - Construct a CountsTestAction and perform the count of test cases. - - A FrameworkController holding the TestSuite whose cases are to be counted - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - RunTestsAction runs the loaded TestSuite held by the FrameworkController. - - - - - Construct a RunTestsAction and run all tests in the loaded TestSuite. - - A FrameworkController holding the TestSuite to run - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - RunAsyncAction initiates an asynchronous test run, returning immediately - - - - - Construct a RunAsyncAction and run all tests in the loaded TestSuite. - - A FrameworkController holding the TestSuite to run - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - StopRunAction stops an ongoing run. - - - - - Construct a StopRunAction and stop any ongoing run. If no - run is in process, no error is raised. - - The FrameworkController for which a run is to be stopped. - True the stop should be forced, false for a cooperative stop. - >A callback handler used to report results - A forced stop will cause threads and processes to be killed as needed. - - - - The ITestAssemblyBuilder interface is implemented by a class - that is able to build a suite of tests given an assembly or - an assembly filename. - - - - - Build a suite of tests from a provided assembly - - The assembly from which tests are to be built - A dictionary of options to use in building the suite - A TestSuite containing the tests found in the assembly - - - - Build a suite of tests given the filename of an assembly - - The filename of the assembly from which tests are to be built - A dictionary of options to use in building the suite - A TestSuite containing the tests found in the assembly - - - - The ITestAssemblyRunner interface is implemented by classes - that are able to execute a suite of tests loaded - from an assembly. - - - - - Gets the tree of loaded tests, or null if - no tests have been loaded. - - - - - Gets the tree of test results, if the test - run is completed, otherwise null. - - - - - Indicates whether a test has been loaded - - - - - Indicates whether a test is currently running - - - - - Indicates whether a test run is complete - - - - - Loads the tests found in an Assembly, returning an - indication of whether or not the load succeeded. - - File name of the assembly to load - Dictionary of options to use in loading the test - An ITest representing the loaded tests - - - - Loads the tests found in an Assembly, returning an - indication of whether or not the load succeeded. - - The assembly to load - Dictionary of options to use in loading the test - An ITest representing the loaded tests - - - - Count Test Cases using a filter - - The filter to apply - The number of test cases found - - - - Explore the test cases using a filter - - The filter to apply - Test Assembly with test cases that matches the filter - - - - Run selected tests and return a test result. The test is run synchronously, - and the listener interface is notified as it progresses. - - Interface to receive ITestListener notifications. - A test filter used to select tests to be run - - - - Run selected tests asynchronously, notifying the listener interface as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - - - - Wait for the ongoing run to complete. - - Time to wait in milliseconds - True if the run completed, otherwise false - - - - Signal any test run that is in process to stop. Return without error if no test is running. - - If true, kill any test-running threads - - - - Implementation of ITestAssemblyRunner - - - - - Initializes a new instance of the class. - - The builder. - - - - Gets the default level of parallel execution (worker threads) - - - - - The tree of tests that was loaded by the builder - - - - - The test result, if a run has completed - - - - - Indicates whether a test is loaded - - - - - Indicates whether a test is running - - - - - Indicates whether a test run is complete - - - - - Our settings, specified when loading the assembly - - - - - The top level WorkItem created for the assembly as a whole - - - - - The TestExecutionContext for the top level WorkItem - - - - - Loads the tests found in an Assembly - - File name or path of the assembly to load - Dictionary of option settings for loading the assembly - A Test Assembly containing all loaded tests - - - - Loads the tests found in an Assembly - - The assembly to load - Dictionary of option settings for loading the assembly - A Test Assembly containing all loaded tests - - - - Count Test Cases using a filter - - The filter to apply - The number of test cases found - - - - Explore the test cases using a filter - - The filter to apply - Test Assembly with test cases that matches the filter - - - - Run selected tests and return a test result. The test is run synchronously, - and the listener interface is notified as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - The test results from the run - - - - Run selected tests asynchronously, notifying the listener interface as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - - RunAsync is a template method, calling various abstract and - virtual methods to be overridden by derived classes. - - - - - Wait for the ongoing run to complete. - - Time to wait in milliseconds - True if the run completed, otherwise false - - - - Signal any test run that is in process to stop. Return without error if no test is running. - - If true, kill any tests that are currently running - - - - Initiate the test run. - - - - - Create the initial TestExecutionContext used to run tests - - The ITestListener specified in the RunAsync call - - - - Handle the Completed event for the top level work item - - - - - Executes the action within an - which ensures the is cleaned up - suitably at the end of the test run. This method only has an effect running - the full .NET Framework. - - - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - - - Verifies that the first int is greater than the second - int. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first int is greater than the second - int. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the double that is passed in is an NaN. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - - - - Assert that a string is empty. Returns without throwing an exception when inside a multiple assert block. - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is empty. Returns without throwing an exception when inside a multiple assert block. - - The string to be tested - - - - Assert that an array, list or other collection is empty. Returns without throwing an exception when inside a - multiple assert block. - - An array, list or other collection implementing ICollection - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that an array, list or other collection is empty. Returns without throwing an exception when inside a - multiple assert block. - - An array, list or other collection implementing ICollection - - - - Assert that a string is not empty. Returns without throwing an exception when inside a multiple assert - block. - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is not empty. Returns without throwing an exception when inside a multiple assert - block. - - The string to be tested - - - - Assert that an array, list or other collection is not empty. Returns without throwing an exception when - inside a multiple assert block. - - An array, list or other collection implementing ICollection - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that an array, list or other collection is not empty. Returns without throwing an exception when - inside a multiple assert block. - - An array, list or other collection implementing ICollection - - - - Asserts that an int is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that an unsigned int is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that an unsigned Long is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a decimal is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a double is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a decimal is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a double is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - DO NOT USE! Use Assert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - The message to initialize the with. - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - - - - Marks the test as failed with the message and arguments that are passed in. Returns without throwing an - exception when inside a multiple assert block. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Marks the test as failed with the message that is passed in. Returns without throwing an exception when - inside a multiple assert block. - - The message to initialize the with. - - - - Marks the test as failed. Returns without throwing an exception when inside a multiple assert block. - - - - - Issues a warning using the message and arguments provided. - - The message to display. - Arguments to be used in formatting the message - - - - Issues a warning using the message provided. - - The message to display. - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as ignored. - - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as inconclusive. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as inconclusive. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as Inconclusive. - - - - - Asserts that an object is contained in a collection. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The collection to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is contained in a collection. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The collection to be examined - - - - Wraps code containing a series of assertions, which should all - be executed, even if they fail. Failed results are saved and - reported at the end of the code block. - - A TestDelegate to be executed in Multiple Assertion mode. - - - - Wraps code containing a series of assertions, which should all - be executed, even if they fail. Failed results are saved and - reported at the end of the code block. - - A TestDelegate to be executed in Multiple Assertion mode. - - - - If throws, returns "SomeException was thrown by the - Environment.StackTrace property." See also . - - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - - - - Verifies that two objects are equal. Two objects are considered equal if both are null, or if both have the - same value. NUnit has special semantics for some object types. Returns without throwing an exception when - inside a multiple assert block. - - The value that is expected - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two objects are equal. Two objects are considered equal if both are null, or if both have the - same value. NUnit has special semantics for some object types. Returns without throwing an exception when - inside a multiple assert block. - - The value that is expected - The actual value - - - - Verifies that two objects are not equal. Two objects are considered equal if both are null, or if both have - the same value. NUnit has special semantics for some object types. Returns without throwing an exception - when inside a multiple assert block. - - The value that is expected - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two objects are not equal. Two objects are considered equal if both are null, or if both have - the same value. NUnit has special semantics for some object types. Returns without throwing an exception - when inside a multiple assert block. - - The value that is expected - The actual value - - - - Asserts that two objects refer to the same object. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The actual object - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that two objects refer to the same object. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The actual object - - - - Asserts that two objects do not refer to the same object. Returns without throwing an exception when inside - a multiple assert block. - - The expected object - The actual object - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that two objects do not refer to the same object. Returns without throwing an exception when inside - a multiple assert block. - - The expected object - The actual object - - - - Helper for Assert.AreEqual(double expected, double actual, ...) - allowing code generation to work consistently. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - The exception Type expected - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - The exception Type expected - A TestDelegate - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - - - - Verifies that an async delegate throws an exception when called and returns it. The returned exception may - be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws an exception when called and returns it. The returned exception may - be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that an async delegate does not throw an exception - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate does not throw an exception. - - A TestDelegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - The exception Type expected - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - The exception Type expected - A TestDelegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - - - - Verifies that a delegate throws an exception when called and returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception when called and returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that a delegate does not throw an exception - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate does not throw an exception. - - A TestDelegate - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. Used as a synonym for That in rare cases where a private setter causes a Visual Basic compilation - error. - - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. Used as a synonym for That in rare cases where a private setter causes a Visual Basic compilation - error. - - - This method is provided for use by VB developers needing to test the value of properties with private - setters. - - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - - - - Delegate used by tests that execute code and - capture any thrown exception. - - - - - Delegate used by tests that execute async code and - capture any thrown exception. - - - - - AssertionHelper is an optional base class for user tests, - allowing the use of shorter names in making asserts. - - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to - . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to . - - The evaluated condition - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - The actual value to test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Returns a ListMapper based on a collection. - - The original collection - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for equality with zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - To search for a substring instead of a collection element, use the - overload. - - - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - - - To search for a collection element instead of a substring, use the - overload. - - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that fails if the actual - value matches the pattern supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - within a specified range. - - - - - Provides static methods to express the assumptions - that must be met for a test to give a meaningful - result. If an assumption is not met, the test - should produce an inconclusive result. - - - - - DO NOT USE! - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - Not applicable - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, the - method throws an . - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A ThrowsConstraint used in the test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Marks a test as needing to be run in a particular threading apartment state. This will cause it - to run in a separate thread if necessary. - - - - - Construct an ApartmentAttribute - - The apartment state that this test must be run under. You must pass in a valid apartment state. - - - - Provides the author of a test or test fixture. - - - - - Initializes a new instance of the class. - - The name of the author. - - - - Initializes a new instance of the class. - - The name of the author. - The email address of the author. - - - - Applies a category to a test - - - - - The name of the category - - - - - Construct attribute for a given category based on - a name. The name may not contain the characters ',', - '+', '-' or '!'. However, this is not checked in the - constructor since it would cause an error to arise at - as the test was loaded without giving a clear indication - of where the problem is located. The error is handled - in NUnitFramework.cs by marking the test as not - runnable. - - The name of the category - - - - Protected constructor uses the Type name as the name - of the category. - - - - - The name of the category - - - - - Modifies a test by adding a category to it. - - The test to modify - - - - Marks a test to use a combinatorial join of any argument data provided. - Since this is the default, the attribute is optional. - - - - - Default constructor - - - - - Marks a test as using a particular CombiningStrategy to join any supplied parameter data. - Since this is the default, the attribute is optional. - - - - - Construct a CombiningStrategyAttribute incorporating an - ICombiningStrategy and an IParameterDataProvider. - - Combining strategy to be used in combining data - An IParameterDataProvider to supply data - - - - Construct a CombiningStrategyAttribute incorporating an object - that implements ICombiningStrategy and an IParameterDataProvider. - This constructor is provided for CLS compliance. - - Combining strategy to be used in combining data - An IParameterDataProvider to supply data - - - - Builds any number of tests from the specified method and context. - - The MethodInfo for which tests are to be constructed. - The suite to which the tests will be added. - - - - Modify the test by adding the name of the combining strategy - to the properties. - - The test to modify - - - - Marks an assembly, test fixture or test method as applying to a specific Culture. - - - - - Constructor with no cultures specified, for use - with named property syntax. - - - - - Constructor taking one or more cultures - - Comma-delimited list of cultures - - - - Causes a test to be skipped if this CultureAttribute is not satisfied. - - The test to modify - - - - Tests to determine if the current culture is supported - based on the properties of this attribute. - - True, if the current culture is supported - - - - Test to determine if the a particular culture or comma- - delimited set of cultures is in use. - - Name of the culture or comma-separated list of culture ids - True if the culture is in use on the system - - - - Test to determine if one of a collection of cultures - is being used currently. - - - - - - - Abstract base class for all data-providing attributes defined by NUnit. - Used to select all data sources for a method, class or parameter. - - - - - Default constructor - - - - - Marks a field for use as a datapoint when executing a theory within - the same fixture that requires an argument of the field's Type. - - - - - Marks a field, property or method as providing a set of datapoints for use - in executing any theories within the same fixture that require an argument of - the provided Type. The data source may provide an array of the required Type - or an . Synonymous with . - - - - - Marks a field, property or method as providing a set of datapoints for use - in executing any theories within the same fixture that require an argument - of the provided type. The data source may provide an array of the required - Type or an . Synonymous with . - - - - - Sets the tolerance used by default when checking the equality of floating point values - within the test assembly, fixture or method. - - - - - Construct specifying an amount - - - - - - Apply changes to the TestExecutionContext - - The TestExecutionContext - - - - Provides the descriptive text relating to the assembly, test fixture or test method. - - - - - Construct a description Attribute - - The text of the description - - - - Marks an assembly, test fixture or test method such that it will only run if explicitly - executed from the GUI, command line or included within a test filter. - The test will not be run simply because an enclosing suite is run. - - - - - Default constructor - - - - - Constructor with a reason - - The reason test is marked explicit - - - - Modifies a test by marking it as explicit. - - The test to modify - - - - Specify the life cycle of a Fixture - - - - - Construct a FixtureLifeCycleAttribute with a specified . - - - - - Defines the life cycle for this test fixture or assembly. - - - - - Overridden to set a TestFixture's . - - - - - Marks an assembly, test fixture or test method as being ignored. Ignored tests result in a warning message when the tests are run. - - - - - Constructs the attribute giving a reason for ignoring the test - - The reason for ignoring the test - - - - The date in the future to stop ignoring the test as a string in UTC time. - For example for a date and time, "2014-12-25 08:10:00Z" or for just a date, - "2014-12-25". If just a date is given, the Ignore will expire at midnight UTC. - - - Once the ignore until date has passed, the test will be marked - as runnable. Tests with an ignore until date will have an IgnoreUntilDate - property set which will appear in the test results. - - The string does not contain a valid string representation of a date and time. - - - - Modifies a test by marking it as Ignored. - - The test to modify - - - - Abstract base for attributes that are used to include tests in - the test run based on environmental settings. - - - - - Constructor with no included items specified, for use - with named property syntax. - - - - - Constructor taking one or more included items - - Comma-delimited list of included items - - - - Name of the item that is needed in order for - a test to run. Multiple items may be given, - separated by a comma. - - - - - Name of the item to be excluded. Multiple items - may be given, separated by a comma. - - - - - The reason for including or excluding the test - - - - - Sets the number of worker threads that may be allocated by the framework - for running tests. - - - - - Construct a LevelOfParallelismAttribute. - - The number of worker threads to be created by the framework. - - - - Specifies the life cycle for a test fixture. - - - - - A single instance is created and shared for all test cases. - - - - - A new instance is created for each test case. - - - - - Specifies the maximum time (in milliseconds) for a test case to succeed. - - - - - Construct a MaxTimeAttribute, given a time in milliseconds. - - The maximum elapsed time in milliseconds - - - - Marks tests that should NOT be run in parallel. - - - - - Construct a NonParallelizableAttribute. - - - - - Used by third-party frameworks, or other software, that reference - the NUnit framework but do not contain any tests. Applying the - attribute indicates that the assembly is not a test assembly and - may prevent errors if certain runners attempt to load the assembly. - Note that recognition of the attribute depends on each individual runner. - - - - - Abstract base class for all custom attributes defined by NUnit. - - - - - Default constructor - - - - - Identifies a method that is called once to perform setup before any child tests are run. - - - - - Identifies a method to be called once after all the child tests have run. - The method is guaranteed to be called, even if an exception is thrown. - - - - - Defines the order that the test will run in - - - - - Defines the order that the test will run in - - - - - Defines the order that the test will run in - - - - - - Modifies a test as defined for the specific attribute. - - The test to modify - - - - Marks a test as using a pairwise join of any supplied argument data. Arguments will be - combined in such a way that all possible pairs of arguments are used. - - - - - Default constructor - - - - - Marks a test assembly, fixture or method that may be run in parallel. - - - - - Construct a ParallelizableAttribute using default ParallelScope.Self. - - - - - Construct a ParallelizableAttribute with a specified scope. - - The ParallelScope associated with this attribute. - - - - Defines the degree to which this test and its descendants may be run in parallel - - - - - Overridden to check for invalid combinations of settings - - - - - - Modify the context to be used for child tests - - The current TestExecutionContext - - - - Specifies the degree to which a test, and its descendants, - may be run in parallel. - - - - - No ParallelScope was specified on the test - - - - - The test may be run in parallel with others at the same level. - Valid on classes and methods but has no effect on assemblies. - - - - - Test may not be run in parallel with any others. Valid on - classes and methods but not assemblies. - - - - - Mask used to extract the flags that apply to the item on which a - ParallelizableAttribute has been placed, as opposed to descendants. - - - - - Descendants of the test may be run in parallel with one another. - Valid on assemblies and classes but not on non-parameterized methods. - - - - - Descendants of the test down to the level of TestFixtures may be - run in parallel with one another. Valid on assemblies and classes - but not on methods. - - - - - Mask used to extract all the flags that impact descendants of a - test and place them in the TestExecutionContext. - - - - - The test and its descendants may be run in parallel with others at - the same level. Valid on classes and parameterized methods. - For assemblies it is recommended to use - instead, as has no effect on assemblies. - - - - - Marks an assembly, test fixture or test method as applying to a specific platform. - - - - - Constructor with no platforms specified, for use - with named property syntax. - - - - - Constructor taking one or more platforms - - Comma-delimited list of platforms - - - - Causes a test to be skipped if this PlatformAttribute is not satisfied. - - The test to modify - - - - Attaches information to a test assembly, fixture or method as a name/value pair. - - - - - Construct a PropertyAttribute with a name and string value - - The name of the property - The property value - - - - Construct a PropertyAttribute with a name and int value - - The name of the property - The property value - - - - Construct a PropertyAttribute with a name and double value - - The name of the property - The property value - - - - Constructor for derived classes that set the - property dictionary directly. - - - - - Constructor for use by derived classes that use the - name of the type as the property name. Derived classes - must ensure that the Type of the property value is - a standard type supported by the BCL. Any custom - types will cause a serialization Exception when - in the client. - - - - - Gets the property dictionary for this attribute - - - - - Modifies a test by adding properties to it. - - The test to modify - - - - Supplies a set of random values to a single parameter of a parameterized test. - - - - - If true, no value will be repeated. - - - - - Construct a random set of values appropriate for the Type of the - parameter on which the attribute appears, specifying only the count. - - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - Supplies a range of values to an individual parameter of a parameterized test. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using a default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values with the specified step size. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - Returns a string that represents the current object. - - - - Specifies that a test should be run multiple times. - - - - - Construct a RepeatAttribute - - The number of times to run the test - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - The test command for the RepeatAttribute - - - - - Initializes a new instance of the class. - - The inner command. - The number of repetitions - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Marks a test that must run on a separate thread. - - - - - Construct a RequiresThreadAttribute - - - - - Construct a RequiresThreadAttribute, specifying the apartment - - - - - Specifies that a test method should be rerun on failure up to the specified - maximum number of times. - - - - - Construct a - - The maximum number of times the test should be run if it fails - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - The test command for the - - - - - Initializes a new instance of the class. - - The inner command. - The maximum number of repetitions - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Marks a test to use a sequential join of any provided argument data. - Arguments will be combined into test cases, taking the next value of - each argument until all are used. - - - - - Default constructor - - - - - Sets the current Culture on an assembly, test fixture or test method for - the duration of a test. The culture remains set until the test or fixture - completes and is then reset to its original value. - - - - - - Construct given the name of a culture - - - - - - Sets the current UI Culture on an assembly, test fixture or test method - for the duration of a test. The UI culture remains set until the test or - fixture completes and is then reset to its original value. - - - - - - Construct given the name of a culture - - - - - - Identifies a method to be called immediately before each test is run. - - - - - Identifies a class as containing or - methods for all the test fixtures - under a given namespace. - - - - - Builds a from the specified type. - - The type info of the fixture to be used. - - - - Marks a test fixture as requiring all child tests to be run on the - same thread as the OneTimeSetUp and OneTimeTearDown. A flag in the - is set forcing all child tests - to be run sequentially on the current thread. - Any setting is ignored. - - - - - Apply changes to the TestExecutionContext - - The TestExecutionContext - - - - Identifies a method to be called immediately after each test is run. - The method is guaranteed to be called, even if an exception is thrown. - - - - - Abstract attribute providing actions to execute before and after tests. - - - - - Executed before each test is run - - The test that is going to be run. - - - - Executed after each test is run - - The test that has just been run. - - - - Provides the target for the action attribute - - - - - Marks a test assembly as needing a special assembly resolution hook that will - explicitly search the test assembly's directory for dependent assemblies. - This works around a conflict between mixed-mode assembly initialization and - tests running in their own AppDomain in some cases. - - - - - Marks the method as callable from the NUnit test runner. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - public void TestDescriptionMethod() - {} - } - - - - - - Descriptive text for this test - - - - - The author of this test - - - - - The type that this test is testing - - - - - Gets or sets the expected result. Not valid if the test - method has parameters. - - The result. - - - - Modifies a test by adding a description, if not already set. - - The test to modify - - - - Builds a single test from the specified method and context. - - The method for which a test is to be constructed. - The suite to which the test will be added. - - - - Marks a method as a parameterized test suite and provides arguments for each test case. - - - - - Construct a TestCaseAttribute with a list of arguments. - This constructor is not CLS-Compliant - - - - - - Construct a TestCaseAttribute with a single argument - - - - - - Construct a TestCaseAttribute with a two arguments - - - - - - - Construct a TestCaseAttribute with a three arguments - - - - - - - - Gets or sets the name of the test. - - The name of the test. - - - - Gets or sets the RunState of this test case. - - - - - Gets the list of arguments to a test case - - - - - Gets the properties of the test case - - - - - Gets or sets the expected result. - - The result. - - - - Returns true if the expected result has been set - - - - - Gets or sets the description. - - The description. - - - - The author of this test - - - - - The type that this test is testing - - - - - Gets or sets the reason for ignoring the test - - - - - Gets or sets a value indicating whether this is explicit. - - - if explicit; otherwise, . - - - - - Gets or sets the reason for not running the test. - - The reason. - - - - Gets or sets the ignore reason. When set to a non-null - non-empty value, the test is marked as ignored. - - The ignore reason. - - - - Comma-delimited list of platforms to run the test for - - - - - Comma-delimited list of platforms to not run the test for - - - - - Gets and sets the category for this test case. - May be a comma-separated list of categories. - - - - - Gets and sets the ignore until date for this test case. - - - - - Performs several special conversions allowed by NUnit in order to - permit arguments with types that cannot be used in the constructor - of an Attribute such as TestCaseAttribute or to simplify their use. - - The arguments to be converted - The ParameterInfo array for the method - - - - Builds a single test from the specified method and context. - - The MethodInfo for which tests are to be constructed. - The suite to which the tests will be added. - - - - Indicates the source to be used to provide test fixture instances for a test class. - - - - - Construct with the name of the method, property or field that will provide data - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - Construct with a name - - The name of a static method, property or field that will provide data. - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - Construct with a Type - - The type that will provide data - - - - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Gets or sets the category associated with every fixture created from - this attribute. May be a single category or a comma-separated list. - - - - - Builds any number of tests from the specified method and context. - - The IMethod for which tests are to be constructed. - The suite to which the tests will be added. - - - - Marks the class as a TestFixture. - - - - - Default constructor - - - - - Construct with a object[] representing a set of arguments. - The arguments may later be separated into type arguments and constructor arguments. - - - - - - Gets or sets the name of the test. - - The name of the test. - - - - Gets or sets the RunState of this test fixture. - - - - - The arguments originally provided to the attribute - - - - - Properties pertaining to this fixture - - - - - Get or set the type arguments. If not set - explicitly, any leading arguments that are - Types are taken as type arguments. - - - - - Descriptive text for this fixture - - - - - The author of this fixture - - - - - The type that this fixture is testing - - - - - Gets or sets the ignore reason. May set RunState as a side effect. - - The ignore reason. - - - - Gets or sets the reason for not running the fixture. - - The reason. - - - - Gets or sets the ignore reason. When set to a non-null - non-empty value, the test is marked as ignored. - - The ignore reason. - - - - Gets or sets a value indicating whether this is explicit. - - - if explicit; otherwise, . - - - - - Gets and sets the category for this fixture. - May be a comma-separated list of categories. - - - - - Builds a single test fixture from the specified type. - - - - - Builds a single test fixture from the specified type. - - The type info of the fixture to be used. - Filter used to select methods as tests. - - - - Identifies the source used to provide test fixture instances for a test class. - - - - - Error message string is public so the tests can use it - - - - - Construct with the name of the method, property or field that will provide data - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - Construct with a Type - - The type that will provide data - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Gets or sets the category associated with every fixture created from - this attribute. May be a single category or a comma-separated list. - - - - - Builds any number of test fixtures from the specified type. - - The TypeInfo for which fixtures are to be constructed. - - - - Builds any number of test fixtures from the specified type. - - The TypeInfo for which fixtures are to be constructed. - PreFilter used to select methods as tests. - - - - Returns a set of ITestFixtureData items for use as arguments - to a parameterized test fixture. - - The type for which data is needed. - - - - - Indicates the method or class the assembly, test fixture or test method is testing. - - - - - Initializes a new instance of the class. - - The type that is being tested. - - - - Initializes a new instance of the class. - - The type that is being tested. - - - - Adding this attribute to a method within a - class makes the method callable from the NUnit test runner. There is a property - called Description which is optional which you can provide a more detailed test - description. This class cannot be inherited. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - public void TestDescriptionMethod() - {} - } - - - - - - Construct the attribute, specifying a combining strategy and source of parameter data. - - - - - Applies a timeout in milliseconds to a test. - When applied to a method, the test is cancelled if the timeout is exceeded. - When applied to a class or assembly, the default timeout is set for all contained test methods. - - - - - Construct a TimeoutAttribute given a time in milliseconds - - The timeout value in milliseconds - - - - Provides literal arguments for an individual parameter of a test. - - - - - The collection of data to be returned. Must - be set by any derived attribute classes. - We use an object[] so that the individual - elements may have their type changed in GetData - if necessary - - - - - Constructs for use with an Enum parameter. Will pass every enum - value in to the test. - - - - - Construct with one argument - - - - - - Construct with two arguments - - - - - - - Construct with three arguments - - - - - - - - Construct with an array of arguments - - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - To generate data for Values attribute, in case no data is provided. - - - - - To Check if type is nullable enum. - - - - - Indicates the source used to provide data for one parameter of a test method. - - - - - Construct with the name of the factory - for use with languages - that don't support params arrays. - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - for use with languages - that don't support params arrays. - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - A set of Assert methods operating on one or more collections - - - - - DO NOT USE! Use CollectionAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable containing objects to be considered - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - - - - Asserts that the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the subset does not contain the superset - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that the subset does not contain the superset - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the subset contains the superset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that the subset contains the superset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - - - - AllItemsConstraint applies another constraint to each - item in a collection, succeeding if they all succeed. - - - - - Construct an AllItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - AndConstraint succeeds only if both members succeed. - - - - - Create an AndConstraint from two other constraints - - The first constraint - The second constraint - - - - Gets text describing a constraint - - - - - Apply both member constraints to an actual value, succeeding - succeeding only if both of them succeed. - - The actual value - True if the constraints both succeeded - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - is used to determine whether the value is equal to any of the expected values. - - - - - Construct a - - Collection of expected values - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether item is present in expected collection - - Actual item type - Actual item - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IEqualityComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - AssignableFromConstraint is used to test that an object - can be assigned from a given Type. - - - - - Construct an AssignableFromConstraint for the type provided - - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - AssignableToConstraint is used to test that an object - can be assigned to a given Type. - - - - - Construct an AssignableToConstraint for the type provided - - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - AttributeConstraint tests that a specified attribute is present - on a Type or other provider and that the value of the attribute - satisfies some other constraint. - - - - - Constructs an AttributeConstraint for a specified attribute - Type and base constraint. - - - - - - - Determines whether the Type or other provider has the - expected attribute and if its value matches the - additional constraint specified. - - - - - Returns a string representation of the constraint. - - - - - AttributeExistsConstraint tests for the presence of a - specified attribute on a Type. - - - - - Constructs an AttributeExistsConstraint for a specific attribute Type - - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Tests whether the object provides the expected attribute. - - A Type, MethodInfo, or other ICustomAttributeProvider - True if the expected attribute is present, otherwise false - - - - BinaryConstraint is the abstract base of all constraints - that combine two other constraints in some fashion. - - - - - The first constraint being combined - - - - - The second constraint being combined - - - - - Construct a BinaryConstraint from two other constraints - - The first constraint - The second constraint - - - - BinarySerializableConstraint tests whether - an object is serializable in binary format. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Returns the string representation - - - - - CollectionConstraint is the abstract base class for - constraints that operate on collections. - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Determines whether the specified enumerable is empty. - - The enumerable. - - if the specified enumerable is empty; otherwise, . - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Protected method to be implemented by derived classes - - - - - - - CollectionContainsConstraint is used to test whether a collection - contains an expected object as a member. - - - - - Construct a CollectionContainsConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Test whether the expected item is contained in the collection - - - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - CollectionEquivalentConstraint is used to determine whether two - collections are equivalent. - - - - The result of the from the collections - under comparison. - - - Construct a CollectionEquivalentConstraint - Expected collection. - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether two collections are equivalent - - - - - - - Test whether the collection is equivalent to the expected. - - - Actual collection type. - - - Actual collection to compare. - - - A indicating whether or not - the two collections are equivalent. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - Provides a for the . - - - Result of a of the collections to compare for equivalence. - - - Construct a using a . - Source . - Result of the collection comparison. - Actual collection to compare. - Whether or not the succeeded. - - - Write any additional lines (following Expected: and But was:) for a failing constraint. - The to write the failure message to. - - - - CollectionItemsEqualConstraint is the abstract base class for all - collection constraints that apply some notion of item equality - as a part of their operation. - - - - - The NUnitEqualityComparer in use for this constraint - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Get a flag indicating whether the user requested us to ignore case. - - - - - Get a flag indicating whether any external comparers are in use. - - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - Compares two collection members for equality - - - - - Return a new CollectionTally for use in making tests - - The collection to be included in the tally - - - - CollectionOrderedConstraint is used to test whether a collection is ordered. - - - - - Construct a CollectionOrderedConstraint - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - If used performs a default ascending comparison - - - - - If used performs a reverse comparison - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use a and returns self. - - - - - Modifies the constraint to test ordering by the value of - a specified property and returns self. - - - - - Then signals a break between two ordering steps - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Test whether the collection is ordered - - - - - Returns the string representation of the constraint. - - - - - - An OrderingStep represents one stage of the sort - - - - - Constructor for success result. - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - - - - Constructor for failure result. - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - Index at which collection order breaks. - Value at which collection order breaks. - - - - CollectionSubsetConstraint is used to determine whether - one collection is a subset of another - - - - - Construct a CollectionSubsetConstraint - - The collection that the actual value is expected to be a subset of - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the actual collection is a subset of - the expected collection provided. - - - - - - - Test whether the constraint is satisfied by a given value. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - CollectionSupersetConstraint is used to determine whether - one collection is a superset of another - - - - - Construct a CollectionSupersetConstraint - - The collection that the actual value is expected to be a superset of - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the actual collection is a superset of - the expected collection provided. - - - - - - - Test whether the constraint is satisfied by a given value. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - counts (tallies) the number of occurrences - of each object in one or more enumerations. - - - The result of a . - - - Items that were not in the expected collection. - - - Items that were not accounted for in the expected collection. - - - Initializes a new instance of the class with the given fields. - - - The result of the comparison between the two collections. - - - Construct a CollectionTally object from a comparer and a collection. - The comparer to use for equality. - The expected collection to compare against. - - - Try to remove an object from the tally. - The object to remove. - - - Try to remove a set of objects from the tally. - The objects to remove. - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Flag indicating whether or not this is the top level comparison. - - - - - A list of tracked comparisons - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two types related by . - - - - - Interface for comparing two s. - - - - - Method for comparing two objects with a tolerance. - - The first object to compare. - The second object to compare. - The tolerance to use when comparing the objects. - The evaluation state of the comparison. - - if the objects cannot be compared using the method. - Otherwise the result of the comparison is returned. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two types related by . - - - - - Comparator for two s or s. - - - - - Comparator for two Tuples. - - - - - Base class for comparators for tuples (both regular Tuples and ValueTuples). - - - - - Comparator for two ValueTuples. - - - - - ComparisonAdapter class centralizes all comparisons of - values in NUnit, adapting to the use of any provided - , - or . - - - - - Gets the default ComparisonAdapter, which wraps an - NUnitComparer object. - - - - - Returns a ComparisonAdapter that wraps an - - - - - Returns a ComparisonAdapter that wraps an - - - - - Returns a ComparisonAdapter that wraps a - - - - - Compares two objects - - - - - Construct a default ComparisonAdapter - - - - - Construct a ComparisonAdapter for an - - - - - Compares two objects - - - - - - - - ComparerAdapter extends and - allows use of an or - to actually perform the comparison. - - - - - Construct a ComparisonAdapter for an - - - - - Compare a Type T to an object - - - - - Construct a ComparisonAdapter for a - - - - - Compare a Type T to an object - - - - - Abstract base class for constraints that compare values to - determine if one is greater than, equal to or less than - the other. - - - - - The value against which a comparison is to be made - - - - - Tolerance used in making the comparison - - - - - ComparisonAdapter to be used in making the comparison - - - - - Initializes a new instance of the class. - - The value against which to make a comparison. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - A ConstraintResult - - - - Protected function overridden by derived class to actually perform the comparison - - - - - Modifies the constraint to use an and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Modifies the constraint to use an and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Modifies the constraint to use a and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Set the tolerance for use in this comparison - - - - - Switches the .Within() modifier to interpret its tolerance as - a percentage that the actual values is allowed to deviate from - the expected value. - - Self - - - - Provides standard description of what the constraint tests - based on comparison text. - - Describes the comparison being tested, throws - if null - Is thrown when null passed to a method - - - - Delegate used to delay evaluation of the actual value - to be used in evaluating a constraint - - - - - The Constraint class is the base of all built-in constraints - within NUnit. It provides the operator overloads used to combine - constraints. - - - - - Construct a constraint with optional arguments - - Arguments to be saved - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Arguments provided to this Constraint, for use in - formatting the description. - - - - - The ConstraintBuilder holding this constraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - The default implementation simply dereferences the value but - derived classes may override it to provide for delayed processing. - - A reference to the value to be tested - A ConstraintResult - - - - Retrieves the value to be tested from an ActualValueDelegate. - The default implementation simply evaluates the delegate but derived - classes may override it to provide for delayed processing. - - An ActualValueDelegate - Delegate evaluation result - - - - Default override of ToString returns the constraint DisplayName - followed by any arguments within angle brackets. - - - - - - Returns the string representation of this constraint - - - - - This operator creates a constraint that is satisfied only if both - argument constraints are satisfied. - - - - - This operator creates a constraint that is satisfied if either - of the argument constraints is satisfied. - - - - - This operator creates a constraint that is satisfied if the - argument constraint is not satisfied. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending Or - to the current constraint. - - - - - Returns a DelayedConstraint.WithRawDelayInterval with the specified delay time. - - The delay, which defaults to milliseconds. - - - - - Returns a DelayedConstraint with the specified delay time - and polling interval. - - The delay in milliseconds. - The interval at which to test the constraint. - - - - - Resolves any pending operators and returns the resolved constraint. - - - - - ConstraintBuilder maintains the stacks that are used in - processing a ConstraintExpression. An OperatorStack - is used to hold operators that are waiting for their - operands to be reorganized. a ConstraintStack holds - input constraints as well as the results of each - operator applied. - - - - - OperatorStack is a type-safe stack for holding ConstraintOperators - - - - - Initializes a new instance of the class. - - The ConstraintBuilder using this stack. - - - - Gets a value indicating whether this is empty. - - if empty; otherwise, . - - - - Gets the topmost operator without modifying the stack. - - - - - Pushes the specified operator onto the stack. - - The operator to put onto the stack. - - - - Pops the topmost operator from the stack. - - The topmost operator on the stack - - - - ConstraintStack is a type-safe stack for holding Constraints - - - - - Initializes a new instance of the class. - - The ConstraintBuilder using this stack. - - - - Gets a value indicating whether this is empty. - - if empty; otherwise, . - - - - Pushes the specified constraint. As a side effect, - the constraint's Builder field is set to the - ConstraintBuilder owning this stack. - - The constraint to put onto the stack - - - - Pops this topmost constraint from the stack. - As a side effect, the constraint's Builder - field is set to null. - - The topmost constraint on the stack - - - - Initializes a new instance of the class. - - - - - Appends the specified operator to the expression by first - reducing the operator stack and then pushing the new - operator on the stack. - - The operator to push. - - - - Appends the specified constraint to the expression by pushing - it on the constraint stack. - - The constraint to push. - - - - Sets the top operator right context. - - The right context. - - - - Reduces the operator stack until the topmost item - precedence is greater than or equal to the target precedence. - - The target precedence. - - - - Resolves this instance, returning a Constraint. If the Builder - is not currently in a resolvable state, an exception is thrown. - - The resolved constraint - - - - Gets a value indicating whether this instance is resolvable. - - - if this instance is resolvable; otherwise, . - - - - - ConstraintExpression represents a compound constraint in the - process of being constructed from a series of syntactic elements. - - Individual elements are appended to the expression as they are - reorganized. When a constraint is appended, it is returned as the - value of the operation so that modifiers may be applied. However, - any partially built expression is attached to the constraint for - later resolution. When an operator is appended, the partial - expression is returned. If it's a self-resolving operator, then - a ResolvableConstraintExpression is returned. - - - - - The ConstraintBuilder holding the elements recognized so far - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the - class passing in a ConstraintBuilder, which may be pre-populated. - - The builder. - - - - Returns a string representation of the expression as it - currently stands. This should only be used for testing, - since it has the side-effect of resolving the expression. - - - - - - Appends an operator to the expression and returns the - resulting expression itself. - - - - - Appends a self-resolving operator to the expression and - returns a new ResolvableConstraintExpression. - - - - - Appends a constraint to the expression and returns that - constraint, which is associated with the current state - of the expression being built. Note that the constraint - is not reduced at this time. For example, if there - is a NotOperator on the stack we don't reduce and - return a NotConstraint. The original constraint must - be returned because it may support modifiers that - are yet to be applied. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a , which will - apply the following constraint to a collection of length one, succeeding - only if exactly one of them succeeds. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - With is currently a NOP - reserved for future use. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests if item is equal to zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - To search for a substring instead of a collection element, use the - overload. - - - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - - - To search for a collection element instead of a substring, use the - overload. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - This overload is only used if the item sought is a string, - since any other type implies that we are looking for a - collection member. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the Dictionary key collection. - - The key to be matched in the Dictionary key collection - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the Dictionary value collection. - - The value to be matched in the Dictionary value collection - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - inclusively within a specified range. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - Returns a constraint that succeeds if the value - is a file or directory and it exists. - - - - - Returns a constraint that tests if an item is equal to any of parameters - - Expected values - - - - Returns a new IndexerConstraintExpression, which will - apply any following constraint to that indexer value. - - Index accessor values. - - - - ConstraintStatus represents the status of a ConstraintResult - returned by a Constraint being applied to an actual value. - - - - - The status has not yet been set - - - - - The constraint succeeded - - - - - The constraint failed - - - - - An error occurred in applying the constraint (reserved for future use) - - - - - Contains the result of matching a against an actual value. - - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - The status of the new ConstraintResult. - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - If true, applies a status of Success to the result, otherwise Failure. - - - - The actual value that was passed to the method. - - - - - Gets and sets the ResultStatus for this result. - - - - - True if actual value meets the Constraint criteria otherwise false. - - - - - Display friendly name of the constraint. - - - - - Description of the constraint may be affected by the state the constraint had - when was performed against the actual value. - - - - - Write the failure message to the MessageWriter provided - as an argument. The default implementation simply passes - the result and the actual value to the writer, which - then displays the constraint description and the value. - - Constraints that need to provide additional details, - such as where the error occurred, can override this. - - The MessageWriter on which to display the message - - - - Write some additional failure message. - - The MessageWriter on which to display the message - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - ContainsConstraint tests a whether a string contains a substring - or a collection contains an object. It postpones the decision of - which test to use until the type of the actual argument is known. - This allows testing whether a string is contained in a collection - or as a substring of another string using the same syntax. - - - - - Initializes a new instance of the class. - - The expected value contained within the string/collection. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Flag the constraint to ignore case and return self. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - The DateTimes class contains common operations on Date and Time values. - - - - - Applies a delay to the match so that a match can be evaluated in the future. - - - - - Allows only changing the time dimension of delay interval and setting a polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithRawDelayInterval - - Parent DelayedConstraint on which delay interval dimension is required to be set - - - - Changes delay interval dimension to minutes - - - - - Changes delay interval dimension to seconds - - - - - Changes delay interval dimension to milliseconds - - - - - Set polling interval, in milliseconds - - A time interval, in milliseconds - - - - - Allows only setting the polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithDimensionedDelayInterval - - Parent DelayedConstraint on which polling interval is required to be set - - - - Set polling interval, in milliseconds - - A time interval, in milliseconds - - - - - Allows only changing the time dimension of the polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithRawPollingInterval - - Parent DelayedConstraint on which polling dimension is required to be set - - - - Changes polling interval dimension to minutes - - - - - Changes polling interval dimension to seconds - - - - - Changes polling interval dimension to milliseconds - - - - - Delay value store as an Interval object - - - - - Polling value stored as an Interval object - - - - - Creates a new DelayedConstraint - - The inner constraint to decorate - The time interval after which the match is performed - If the value of is less than 0 - - - - Creates a new DelayedConstraint - - The inner constraint to decorate - The time interval after which the match is performed, in milliseconds - The time interval used for polling, in milliseconds - If the value of is less than 0 - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - Test whether the constraint is satisfied by a delegate - - The delegate whose value is to be tested - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - Overridden to wait for the specified delay period before - calling the base constraint with the dereferenced value. - - A reference to the value to be tested - True for success, false for failure - - - - Returns the string representation of the constraint. - - - - - Adjusts a Timestamp by a given TimeSpan - - - - - - - - Returns the difference between two Timestamps as a TimeSpan - - - - - - - - DictionaryContainsKeyConstraint is used to test whether a dictionary - contains an expected object as a key. - - - - - Construct a DictionaryContainsKeyConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Returns a new DictionaryContainsKeyValuePairConstraint checking for the - presence of a particular key-value-pair in the dictionary. - - - - - Flag the constraint to ignore case and return self. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Test whether the expected key is contained in the dictionary - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - DictionaryContainsKeyValuePairConstraint is used to test whether a dictionary - contains an expected object as a key-value-pair. - - - - - Construct a DictionaryContainsKeyValuePairConstraint - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Test whether the expected key is contained in the dictionary - - - - - DictionaryContainsValueConstraint is used to test whether a dictionary - contains an expected object as a value. - - - - - Construct a DictionaryContainsValueConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Test whether the expected value is contained in the dictionary - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - Provides a for the constraints - that are applied to each item in the collection - - - - - Constructs a for a particular - Only used for Failure - - The Constraint to which this result applies - The actual value to which the Constraint was applied - Actual item that does not match expected condition - Non matching item index - - - - Write constraint description, actual items, and non-matching item - - The MessageWriter on which to display the message - - - - EmptyCollectionConstraint tests whether a collection is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Check that the collection is empty - - - - - - - EmptyConstraint tests a whether a string or collection is empty, - postponing the decision about which test is applied until the - type of the actual argument is known. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyDirectoryConstraint is used to test that a directory is empty - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyGuidConstraint tests whether a Guid is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyStringConstraint tests whether a string is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EndsWithConstraint can test whether a string ends - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - EqualConstraint is able to compare an actual value with the - expected value provided in its constructor. Two objects are - considered equal if both are null, or if both have the same - value. NUnit has special semantics for some object types. - - - - - NUnitEqualityComparer used to test equality. - - - - - Initializes a new instance of the class. - - The expected value. - - - - Gets the tolerance for this comparison. - - - The tolerance. - - - - - Gets a value indicating whether to compare case insensitive. - - - if comparing case insensitive; otherwise, . - - - - - Gets a value indicating whether or not to clip strings. - - - if set to clip strings otherwise, . - - - - - Gets the failure points. - - - The failure points. - - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to suppress string clipping - and return self. - - - - - Flag the constraint to compare arrays as collections - and return self. - - - - - Flag the constraint to use a tolerance when determining equality. - - Tolerance value to be used - Self. - - - - Flags the constraint to include - property in comparison of two values. - - - Using this modifier does not allow to use the - constraint modifier. - - - - - Switches the .Within() modifier to interpret its tolerance as - a distance in representable values (see remarks). - - Self. - - Ulp stands for "unit in the last place" and describes the minimum - amount a given value can change. For any integers, an ulp is 1 whole - digit. For floating point values, the accuracy of which is better - for smaller numbers and worse for larger numbers, an ulp depends - on the size of the number. Using ulps for comparison of floating - point results instead of fixed tolerances is safer because it will - automatically compensate for the added inaccuracy of larger numbers. - - - - - Switches the .Within() modifier to interpret its tolerance as - a percentage that the actual values is allowed to deviate from - the expected value. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in days. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in hours. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in minutes. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in seconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in milliseconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in clock ticks. - - Self - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The boolean-returning delegate to use. - Self. - - - - Flag the constraint to use the supplied Comparison object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - The EqualConstraintResult class is tailored for formatting - and displaying the result of an EqualConstraint. - - - - - Construct an EqualConstraintResult - - - - - Write a failure message. Overridden to provide custom - failure messages for EqualConstraint. - - The MessageWriter to write to - - - - Display the failure information for two collections that did not match. - - The MessageWriter on which to display - The expected collection. - The actual collection - The depth of this failure in a set of nested collections - - - - Displays a single line showing the types and sizes of the expected - and actual collections or arrays. If both are identical, the value is - only shown once. - - The MessageWriter on which to display - The expected collection or array - The actual collection or array - The indentation level for the message line - - - - Displays a single line showing the point in the expected and actual - arrays at which the comparison failed. If the arrays have different - structures or dimensions, both values are shown. - - The MessageWriter on which to display - The expected array - The actual array - Index of the failure point in the underlying collections - The indentation level for the message line - - - - Display the failure information for two IEnumerables that did not match. - - The MessageWriter on which to display - The expected enumeration. - The actual enumeration - The depth of this failure in a set of nested collections - - - - EqualityAdapter class handles all equality comparisons - that use an , - or a . - - - - - Compares two objects, returning true if they are equal - - - - - Returns true if the two objects can be compared by this adapter. - The base adapter cannot handle IEnumerables except for strings. - - - - - Returns an that wraps an . - - - - - that wraps an . - - - - - Returns an that wraps an . - - - - - Returns an EqualityAdapter that uses a predicate function for items comparison. - - - - - - - - - Returns true if the two objects can be compared by this adapter. - The base adapter cannot handle IEnumerables except for strings. - - - - - Compares two objects, returning true if they are equal - - - - - Returns true if the two objects can be compared by this adapter. - Generic adapter requires objects of the specified type. - - - - - Returns an that wraps an . - - - - - Returns an that wraps an . - - - - - that wraps an . - - - - - Returns an that wraps a . - - - - - ExactCountConstraint applies another constraint to each - item in a collection, succeeding only if a specified - number of items succeed. - - - - - Construct a standalone ExactCountConstraint - - - - - - Construct an ExactCountConstraint on top of an existing constraint - - - - - - - Apply the item constraint to each item in the collection, - succeeding only if the expected number of items pass. - - The value to be tested - A ConstraintResult - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Contain the result of matching a against an actual value. - - - - - The count of matched items of the - - - - - A list with maximum count (+1) of items of the - - - - - Constructs a for a . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - If true, applies a status of Success to the result, otherwise Failure. - Count of matched items of the - A list with maximum count (+1) of items of the - - - - Write the actual value for a failing constraint test to a MessageWriter. - - The writer on which the actual value is displayed - - - - ExactTypeConstraint is used to test that an object - is of the exact type provided in the constructor - - - - - Construct an ExactTypeConstraint for a given Type - - The expected Type. - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - ExceptionTypeConstraint is a special version of ExactTypeConstraint - used to provided detailed info about the exception thrown in - an error message. - - - - - Constructs an ExceptionTypeConstraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - FalseConstraint tests that the actual value is false - - - - - Initializes a new instance of the class. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - FileExistsConstraint is used to determine if a file exists - - - - - Initializes a new instance of the class. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - FileOrDirectoryExistsConstraint is used to determine if a file or directory exists - - - - - If true, the constraint will only check if files exist, not directories - - - - - If true, the constraint will only check if directories exist, not files - - - - - Initializes a new instance of the class that - will check files and directories. - - - - - Initializes a new instance of the class that - will only check files if ignoreDirectories is true. - - if set to [ignore directories]. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - Helper routines for working with floating point numbers - - - The floating point comparison code is based on this excellent article: - https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ - - - "ULP" means Unit in the Last Place and in the context of this library refers to - the distance between two adjacent floating point numbers. IEEE floating point - numbers can only represent a finite subset of natural numbers, with greater - accuracy for smaller numbers and lower accuracy for very large numbers. - - - If a comparison is allowed "2 ulps" of deviation, that means the values are - allowed to deviate by up to 2 adjacent floating point values, which might be - as low as 0.0000001 for small numbers or as high as 10.0 for large numbers. - - - - - Union of a floating point variable and an integer - - - The union's value as a floating point variable - - - The union's value as an integer - - - The union's value as an unsigned integer - - - Union of a double precision floating point variable and a long - - - The union's value as a double precision floating point variable - - - The union's value as a long - - - The union's value as an unsigned long - - - Compares two floating point values for equality - First floating point value to be compared - Second floating point value t be compared - - Maximum number of representable floating point values that are allowed to - be between the left and the right floating point values - - True if both numbers are equal or close to being equal - - - Floating point values can only represent a finite subset of natural numbers. - For example, the values 2.00000000 and 2.00000024 can be stored in a float, - but nothing between them. - - - This comparison will count how many possible floating point values are between - the left and the right number. If the number of possible values between both - numbers is less than or equal to maxUlps, then the numbers are considered as - being equal. - - - Implementation partially follows the code outlined here: - http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ - - - - - Compares two double precision floating point values for equality - First double precision floating point value to be compared - Second double precision floating point value t be compared - - Maximum number of representable double precision floating point values that are - allowed to be between the left and the right double precision floating point values - - True if both numbers are equal or close to being equal - - - Double precision floating point values can only represent a limited series of - natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004 - can be stored in a double, but nothing between them. - - - This comparison will count how many possible double precision floating point - values are between the left and the right number. If the number of possible - values between both numbers is less than or equal to maxUlps, then the numbers - are considered as being equal. - - - Implementation partially follows the code outlined here: - http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ - - - - - - Tests whether a value is greater than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Tests whether a value is greater than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Interface for all constraints - - - - - The display name of this Constraint for use by ToString(). - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Arguments provided to this Constraint, for use in - formatting the description. - - - - - The ConstraintBuilder holding this constraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - The default implementation simply dereferences the value but - derived classes may override it to provide for delayed processing. - - A reference to the value to be tested - A ConstraintResult - - - - IndexerConstraint extracts a named property and uses - its value as the actual value for a chained constraint. - - - - - Initializes a new instance of the class. - - The argument list for the indexer. - The constraint to apply to the indexer. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Returns the string representation of the constraint. - - - - - InstanceOfTypeConstraint is used to test that an object - is of the same type provided or derived from it. - - - - - Construct an InstanceOfTypeConstraint for the type provided - - The expected Type - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - Keeps track of an interval time which can be represented in - Minutes, Seconds or Milliseconds - - - - - Constructs a interval given an value in milliseconds - - - - - Gets Interval value represented as a TimeSpan object - - - - - Returns the interval with the current value as a number of minutes. - - - - - Returns the interval with the current value as a number of seconds. - - - - - Returns the interval with the current value as a number of milliseconds. - - - - - Is true for intervals created with a non-zero value - - - - - Returns a string that represents the current object. - - - A string that represents the current object. - - - - - IntervalUnit provides the semantics to the value stored in Interval class. - - - - - Unit representing an Interval in minutes - - - - - Unit representing an Interval in seconds - - - - - Unit representing an Interval in milliseconds - - - - - The IResolveConstraint interface is implemented by all - complete and resolvable constraints and expressions. - - - - - Return the top-level constraint for this expression - - - - - - An extension of ResolvableConstraintExpression that adds a no-op Items property for readability. - - - - - Create a new instance of ItemsConstraintExpression - - - - - Create a new instance of ResolvableConstraintExpression, - passing in a pre-populated ConstraintBuilder. - - - - - - No-op property for readability. - - - - - Tests whether a value is less than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Tests whether a value is less than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - MessageWriter is the abstract base for classes that write - constraint descriptions and messages in some form. The - class has separate methods for writing various components - of a message, allowing implementations to tailor the - presentation as needed. - - - - - Construct a MessageWriter given a culture - - - - - Abstract method to get the max line length - - - - - Method to write single line message with optional args, usually - written to precede the general failure message. - - The message to be written - Any arguments used in formatting the message - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a given - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The failing constraint result - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the Expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in locating the point where the strings differ - If true, the strings should be clipped to fit the line - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Custom value formatter function - - The value - - - - - Custom value formatter factory function - - The next formatter function - ValueFormatter - If the given formatter is unable to handle a certain format, it must call the next formatter in the chain - - - - Static methods used in creating messages - - - - - Default amount of items used by method. - - - - - Static string used when strings are clipped - - - - - Formatting strings used for expected and actual values - - - - - Current head of chain of value formatters. Public for testing. - - - - - Add a formatter to the chain of responsibility. - - - - - - Formats text to represent a generalized value. - - The value - The formatted text - - - - Formats text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Returns the representation of a type as used in NUnitLite. - This is the same as Type.ToString() except for arrays, - which are displayed with their declared sizes. - - - - - - - Converts any control characters in a string - to their escaped representation. - - The string to be converted - The converted string - - - - Converts any null characters in a string - to their escaped representation. - - The string to be converted - The converted string - - - - Return the a string representation for a set of indices into an array - - Array of indices for which a string is needed - - - - Get an array of indices representing the point in a collection or - array corresponding to a single int index into the collection. - - The collection to which the indices apply - Index in the collection - Array of indices - - - - Clip a string to a given length, starting at a particular offset, returning the clipped - string with ellipses representing the removed parts - - The string to be clipped - The maximum permitted length of the result string - The point at which to start clipping - The clipped string - - - - Clip the expected and actual strings in a coordinated fashion, - so that they may be displayed together. - - - - - - - - - Shows the position two strings start to differ. Comparison - starts at the start index. - - The expected string - The actual string - The index in the strings at which comparison should start - Boolean indicating whether case should be ignored - -1 if no mismatch found, or the index where mismatch found - - - - NaNConstraint tests that the actual value is a double or float NaN - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test that the actual value is an NaN - - - - - - - NoItemConstraint applies another constraint to each - item in a collection, failing if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - NotConstraint negates the effect of some other constraint - - - - - Initializes a new instance of the class. - - The base constraint to be negated. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - NullConstraint tests that the actual value is null - - - - - Initializes a new instance of the class. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - The Numerics class contains common operations on numeric values. - - - - - Checks the type of the object, returning true if - the object is a numeric type. - - The object to check - true if the object is a numeric type - - - - Checks the type of the object, returning true if - the object is a floating point numeric type. - - The object to check - true if the object is a floating point numeric type - - - - Checks the type of the object, returning true if - the object is a fixed point numeric type. - - The object to check - true if the object is a fixed point numeric type - - - - Test two numeric values for equality, performing the usual numeric - conversions and using a provided or default tolerance. If the tolerance - provided is Empty, this method may set it to a default tolerance. - - The expected value - The actual value - A reference to the tolerance in effect - True if the values are equal - - - - Compare two numeric values, performing the usual numeric conversions. - - The expected value - The actual value - The relationship of the values to each other - - - - Calculates the difference between 2 values in absolute/percent mode. - - The expected value - The actual value - Tolerance mode to specify difference representation - The difference between the values - - - - NUnitComparer encapsulates NUnit's default behavior - in comparing two objects. - - - - - Returns the default NUnitComparer. - - - - - Compares two objects - - - - - - - - NUnitEqualityComparer encapsulates NUnit's handling of - equality tests between objects. - - - - - If true, all string comparisons will ignore case - - - - - If true, arrays will be treated as collections, allowing - those of different dimensions to be compared - - - - - Comparison objects used in comparisons for some constraints. - - - - - List of points at which a failure occurred. - - - - - List of comparers used to compare pairs of objects. - - - - - Initializes a new instance of the class. - - - - - Returns the default NUnitEqualityComparer - - - - - Gets and sets a flag indicating whether case should - be ignored in determining equality. - - - - - Gets and sets a flag indicating that arrays should be - compared as collections, without regard to their shape. - - - - - Gets the list of external comparers to be used to - test for equality. They are applied to members of - collections, in place of NUnit's own logic. - - - - - Gets the list of failure points for the last Match performed. - The list consists of objects to be interpreted by the caller. - This generally means that the caller may only make use of - objects it has placed on the list at a particular depth. - - - - - Flags the comparer to include - property in comparison of two values. - - - Using this modifier does not allow to use the - modifier. - - - - - Compares two objects for equality within a tolerance. - - - - - Compares two objects for equality within a tolerance. - - - - - FailurePoint class represents one point of failure - in an equality test. - - - - - The location of the failure - - - - - The expected value - - - - - The actual value - - - - - Indicates whether the expected value is valid - - - - - Indicates whether the actual value is valid - - - - - Represents a constraint that succeeds if all the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - they all succeed. - - - - - Operator that requires both its arguments to succeed - - - - - Construct an AndOperator - - - - - Apply the operator to produce an AndConstraint - - - - - Operator that tests for the presence of a particular attribute - on a type and optionally applies further tests to the attribute. - - - - - Construct an AttributeOperator for a particular Type - - The Type of attribute tested - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Abstract base class for all binary operators - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Gets the left precedence of the operator - - - - - Gets the right precedence of the operator - - - - - Abstract method that produces a constraint by applying - the operator to its left and right constraint arguments. - - - - - Abstract base for operators that indicate how to - apply a constraint to items in a collection. - - - - - Constructs a CollectionOperator - - - - - The ConstraintOperator class is used internally by a - ConstraintBuilder to represent an operator that - modifies or combines constraints. - - Constraint operators use left and right precedence - values to determine whether the top operator on the - stack should be reduced before pushing a new operator. - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - The syntax element preceding this operator - - - - - The syntax element following this operator - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Represents a constraint that succeeds if the specified - count of members of a collection match a base constraint. - - - - - Construct an ExactCountOperator for a specified count - - The expected count - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Operator used to test for the presence of a Indexer - on an object and optionally apply further tests to the - value of that indexer. - - - - - Constructs a IndexerOperator for a particular set of indexer - parameters - - - - - Returns a IndexerConstraint applied to its argument. - - - - - Represents a constraint that succeeds if none of the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - none of them succeed. - - - - - Negates the test of the constraint it wraps. - - - - - Constructs a new NotOperator - - - - - Returns a NotConstraint applied to its argument. - - - - - Operator that requires at least one of its arguments to succeed - - - - - Construct an OrOperator - - - - - Apply the operator to produce an OrConstraint - - - - - PrefixOperator takes a single constraint and modifies - its action in some way. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Returns the constraint created by applying this - prefix to another constraint. - - - - - - - Operator used to test for the presence of a named Property - on an object and optionally apply further tests to the - value of that property. - - - - - Gets the name of the property to which the operator applies - - - - - Constructs a PropOperator for a particular named property - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Abstract base class for operators that are able to reduce to a - constraint whether or not another syntactic element follows. - - - - - Represents a constraint that succeeds if any of the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - any of them succeed. - - - - - Operator that tests that an exception is thrown and - optionally applies further tests to the exception. - - - - - Construct a ThrowsOperator - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Represents a constraint that simply wraps the - constraint provided as an argument, without any - further functionality, but which modifies the - order of evaluation because of its precedence. - - - - - Constructor for the WithOperator - - - - - Returns a constraint that wraps its argument - - - - - OrConstraint succeeds if either member succeeds - - - - - Create an OrConstraint from two other constraints - - The first constraint - The second constraint - - - - Gets text describing a constraint - - - - - Apply the member constraints to an actual value, succeeding - succeeding as soon as one of them succeeds. - - The actual value - True if either constraint succeeded - - - - PathConstraint serves as the abstract base of constraints - that operate on paths and provides several helper methods. - - - - - Construct a PathConstraint for a give expected path - - The expected path - - - - Modifies the current instance to be case-sensitive - and returns it. - - - - - Returns the string representation of this constraint - - - - - Canonicalize the provided path - - - The path in standardized form - - - - Test whether one path in canonical form is a subpath of another path - - The first path - supposed to be the parent path - The second path - supposed to be the child path - - - - - Predicate constraint wraps a Predicate in a constraint, - returning success if the predicate is true. - - - - - Construct a PredicateConstraint from a predicate - - - - - Gets text describing a constraint - - - - - Determines whether the predicate succeeds when applied - to the actual value. - - - - - Abstract base class used for prefixes - - - - - The base constraint - - - - - Prefix used in forming the constraint description - - - - - Construct given a base constraint - - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Formats a prefix constraint's description. - - - - - PropertyConstraint extracts a named property and uses - its value as the actual value for a chained constraint. - - - - - Initializes a new instance of the class. - - The name. - The constraint to apply to the property. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Returns the string representation of the constraint. - - - - - Contains the result of matching a against an actual value. - - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The base result with actual value to which the Constraint was applied. - - - - Write the additional failure message for a failing constraint to a - MessageWriter. - - The writer on which the actual value is displayed - - - - PropertyExistsConstraint tests that a named property - exists on the object provided through Match. - - Originally, PropertyConstraint provided this feature - in addition to making optional tests on the value - of the property. The two constraints are now separate. - - - - - Initializes a new instance of the class. - - The name of the property. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the property exists for a given object - - The object to be tested - True for success, false for failure - - - - Returns the string representation of the constraint. - - - - - - RangeConstraint tests whether two values are within a - specified range. - - - - - Initializes a new instance of the class. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use a and returns self. - - - - - RegexConstraint can test whether a string matches - the pattern provided. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Initializes a new instance of the class. - - The pattern. - - - - Initializes a new instance of the class. - - The Regex pattern object. - - - - Modify the constraint to ignore case in matching. - - - - - Applies the regex constraint to an actual value, returning a ConstraintResult. - - The string to be tested. - True for success, false for failure. - - - - ResolvableConstraintExpression is used to represent a compound - constraint being constructed at a point where the last operator - may either terminate the expression or may have additional - qualifying constraints added to it. - - It is used, for example, for a Property element or for - an Exception element, either of which may be optionally - followed by constraints that apply to the property or - exception. - - - - - Create a new instance of ResolvableConstraintExpression - - - - - Create a new instance of ResolvableConstraintExpression, - passing in a pre-populated ConstraintBuilder. - - - - - Appends an And Operator to the expression - - - - - Appends an Or operator to the expression. - - - - - Resolve the current expression to a Constraint - - - - - ReusableConstraint wraps a constraint expression after - resolving it so that it can be reused consistently. - - - - - Construct a ReusableConstraint from a constraint expression - - The expression to be resolved and reused - - - - Converts a constraint to a ReusableConstraint - - The constraint to be converted - A ReusableConstraint - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Return the top-level constraint for this expression - - - - - - SameAsConstraint tests whether an object is identical to - the object passed to its constructor - - - - - Initializes a new instance of the class. - - The expected object. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Summary description for SamePathConstraint. - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SamePathOrUnderConstraint tests that one path is under another - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SomeItemsConstraint applies another constraint to each - item in a collection, succeeding if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - succeeding if any item succeeds. - - - - - - - Flag the constraint to use the supplied object. - - The type of the elements in the collection. - The type of the member. - The comparison function to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - StartsWithConstraint can test whether a string starts - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - StringConstraint is the abstract base for constraints - that operate on strings. It supports the IgnoreCase - modifier for string operations. - - - - - The expected value - - - - - Indicates whether tests should be case-insensitive - - - - - Description of this constraint - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Constructs a StringConstraint without an expected value - - - - - Constructs a StringConstraint given an expected value - - The expected value - - - - Modify the constraint to ignore case in matching. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Test whether the constraint is satisfied by a given string - - The string to be tested - True for success, false for failure - - - - SubPathConstraint tests that the actual path is under the expected path - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SubstringConstraint can test whether a string contains - the expected substring. - - - - - Initializes a new instance of the class. - - The expected. - - - - Modify the constraint to ignore case in matching. - This will call Using(StringComparison.CurrentCultureIgnoreCase). - - Thrown when a comparison type different - than was already set. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Modify the constraint to the specified comparison. - - Thrown when a comparison type different - than was already set. - - - - ThrowsConstraint is used to test the exception thrown by - a delegate by applying a constraint to it. - - - - - Initializes a new instance of the class, - using a constraint to be applied to the exception. - - A constraint to apply to the caught exception. - - - - Get the actual exception thrown - used by Assert.Throws. - - - - - Gets text describing a constraint - - - - - Executes the code of the delegate and captures any exception. - If a non-null base constraint was provided, it applies that - constraint to the exception. - - A delegate representing the code to be tested - True if an exception is thrown and the constraint succeeds, otherwise false - - - - Converts an ActualValueDelegate to a TestDelegate - before calling the primary overload. - - - - - - - Write the actual value for a failing constraint test to a - MessageWriter. This override only handles the special message - used when an exception is expected but none is thrown. - - The writer on which the actual value is displayed - - - - ThrowsExceptionConstraint tests that an exception has - been thrown, without any further tests. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Executes the code and returns success if an exception is thrown. - - A delegate representing the code to be tested - True if an exception is thrown, otherwise false - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - - - - ThrowsNothingConstraint tests that a delegate does not - throw an exception. - - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True if no exception is thrown, otherwise false - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - The Tolerance class generalizes the notion of a tolerance - within which an equality test succeeds. Normally, it is - used with numeric types, but it can be used with any - type that supports taking a difference between two - objects and comparing that difference to a value. - - - - - Returns a default Tolerance object, equivalent to an exact match. - - - - - Returns an empty Tolerance object, equivalent to an exact match. - - - - - Constructs a linear tolerance of a specified amount - - - - - Constructs a tolerance given an amount and - - - - - Returns a new tolerance, using the current amount as a percentage. - - - - - Returns a new tolerance, using the current amount in Ulps - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of days. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of hours. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of minutes. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of seconds. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of milliseconds. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of clock ticks. - - - - - Gets the for the current Tolerance - - - - - Gets the magnitude of the current Tolerance instance. - - - - - Returns true if the current tolerance has not been set or is using the . - - - - - Apply the tolerance to an expected value and return - a Tolerance.Range that represents the acceptable values. - - - - - Tests that the current Tolerance is linear with a - numeric value, throwing an exception if it is not. - - - - - Tolerance.Range represents the range of values that match - a specific tolerance, when applied to a specific value. - - - - - The lower bound of the range - - - - - The upper bound of the range - - - - - Constructs a range - - - - - Modes in which the tolerance value for a comparison can be interpreted. - - - - - The tolerance was created with a value, without specifying - how the value would be used. This is used to prevent setting - the mode more than once and is generally changed to Linear - upon execution of the test. - - - - - The tolerance is used as a numeric range within which - two compared values are considered to be equal. - - - - - Interprets the tolerance as the percentage by which - the two compared values my deviate from each other. - - - - - Compares two values based in their distance in - representable numbers. - - - - - TrueConstraint tests that the actual value is true - - - - - Initializes a new instance of the class. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - TypeConstraint is the abstract base for constraints - that take a Type as their expected value. - - - - - The expected Type used by the constraint - - - - - The type of the actual argument to which the constraint was applied - - - - - Construct a TypeConstraint for a given Type - - The expected type for the constraint - Prefix used in forming the constraint description - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - UniqueItemsConstraint tests whether all the items in a - collection are unique. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Check that all items are unique. - - - - - - - - - - XmlSerializableConstraint tests whether - an object is serializable in XML format. - - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Returns the string representation of this constraint - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the dictionary. - - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the dictionary. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Asserts on Directories - - - - - DO NOT USE! Use DirectoryAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both point to the same directory. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if the directories are not equal - Arguments to be used in formatting the message - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both point to the same directory. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - A directory containing the actual value - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - The path to a directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - The path to a directory containing the actual value - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - A directory containing the actual value - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - The path to a directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - The path to a directory containing the actual value - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a constraint that succeeds if the value - is a file or directory and it exists. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new . This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - This overload is only used if the item sought is a string, - since any other type implies that we are looking for a - collection member. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the Dictionary key collection. - - The key to be matched in the Dictionary key collection - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the Dictionary value collection. - - The value to be matched in the Dictionary value collection - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - If throws, returns "SomeException was thrown by the Exception.StackTrace - property." See also . - - - - - If throws, returns "SomeException was thrown by the Exception.Message - property." - - - - - If throws, returns "SomeException was thrown by the Exception.Data property." - - - - - Thrown when an assertion failed. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when a test executes inconclusively. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - Construct based on the TestResult so far. This is the constructor - used normally, when exiting the multiple assert block with failures. - Not used internally but provided to facilitate debugging. - - - The current result, up to this point. The result is not used - internally by NUnit but is provided to facilitate debugging. - - - - - Serialization Constructor - - - - - Gets the provided by this exception. - - - - - Gets the of this test at the point the exception was thrown, - - - - - Abstract base for Exceptions that terminate a test and provide a ResultState. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Contains extension methods that do not require a special using directive. - - - - - Asserts on Files - - - - - DO NOT USE! Use FileAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - The message to be displayed when the two Stream are the same. - Arguments to be used in formatting the message - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Asserts that the file exists. If it does not exist - an is thrown. - - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file exists. If it does not exist - an is thrown. - - A file containing the actual value - - - - Asserts that the file exists. If it does not exist - an is thrown. - - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file exists. If it does not exist - an is thrown. - - The path to a file containing the actual value - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - A file containing the actual value - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - The path to a file containing the actual value - - - - Class used to guard against unexpected argument values - or operations by throwing an appropriate exception. - - - - - Throws an exception if an argument is null - - The value to be tested - The name of the argument - - - - Throws an exception if a string argument is null or empty - - The value to be tested - The name of the argument - - - - Throws an ArgumentOutOfRangeException if the specified condition is not met. - - The condition that must be met - The exception message to be used - The name of the argument - - - - Throws an ArgumentException if the specified condition is not met. - - The condition that must be met - The exception message to be used - The name of the argument - - - - Throws an InvalidOperationException if the specified condition is not met. - - The condition that must be met - The exception message to be used - - - - Throws an if the specified delegate is async void. - - - - - Throws an if the specified delegate is async void. - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a which will apply - the following constraint to only one member of the collection, - and fail if none or more than one match occurs. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new IndexerConstraintExpression, which will - apply any following constraint to that indexer value. - - Index accessor values. - - - - The AssertionResult class represents the result of a single assertion. - - - - - Construct an AssertionResult - - - - The pass/fail status of the assertion - - - The message produced by the assertion, or null - - - The stack trace associated with the assertion, or null - - - Determines whether the specified object is equal to the current object. - The object to compare with the current object. - - - Indicates whether the current object is equal to another object of the same type. - An object to compare with this object. - - - Serves as the default hash function. - - - - ToString Override - - - - - AssertionStatus enumeration represents the possible outcomes of an assertion. - The order of definition is significant, higher level values override lower - ones in determining the overall result of a test. - - - - - An assumption failed - - - - - The assertion succeeded - - - - - A warning message was issued - - - - - The assertion failed - - - - - An unexpected exception was thrown - - - - - The IApplyToContext interface is implemented by attributes - that want to make changes to the execution context before - a test is run. - - - - - Apply changes to the execution context - - The execution context - - - - The IApplyToTest interface is implemented by self-applying - attributes that modify the state of a test in some way. - - - - - Modifies a test as defined for the specific attribute. - - The test to modify - - - - CombiningStrategy is the abstract base for classes that - know how to combine values provided for individual test - parameters to create a set of test cases. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - ICommandWrapper is implemented by attributes and other - objects able to wrap a TestCommand with another command. - - - Attributes or other objects should implement one of the - derived interfaces, rather than this one, since they - indicate in which part of the command chain the wrapper - should be applied. - - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - Objects implementing this interface are used to wrap - the TestMethodCommand itself. They apply after SetUp - has been run and before TearDown. - - - - - Objects implementing this interface are used to wrap - the entire test, including SetUp and TearDown. - - - - - Objects implementing this interface are used to wrap - tests that can repeat. The implementing command is run once, - invoking the chained commands any number of times. - - - - - Any ITest that implements this interface is at a level that the implementing - class should be disposed at the end of the test run - - - - - The IFixtureBuilder interface is exposed by a class that knows how to - build test fixtures from a specified type. In general, it is exposed - by an attribute, but it may be implemented in a helper class used by the - attribute in some cases. - - - - - Builds any number of test fixtures from the specified type. - - The type info of the fixture to be used. - - - - The IFixtureBuilder2 interface extends IFixtureBuilder by allowing - use of a PreFilter, which is used to select methods as test cases. - - - - - Builds any number of test fixtures from the specified type. - - The type info of the fixture to be used. - PreFilter to be used to select methods. - - - - IImplyFixture is an empty marker interface used by attributes like - TestAttribute that cause the class where they are used to be treated - as a TestFixture even without a TestFixtureAttribute. - - Marker interfaces are not usually considered a good practice, but - we use it here to avoid cluttering the attribute hierarchy with - classes that don't contain any extra implementation. - - - - - The IMethodInfo class is used to encapsulate information - about a method in a platform-independent manner. - - - - - Gets the Type from which this method was reflected. - - - - - Gets the MethodInfo for this method. - - - - - Gets the name of the method. - - - - - Gets a value indicating whether the method is abstract. - - - - - Gets a value indicating whether the method is public. - - - - - Gets a value indicating whether the method is static. - - - - - Gets a value indicating whether the method contains unassigned generic type parameters. - - - - - Gets a value indicating whether the method is a generic method. - - - - - Gets a value indicating whether the MethodInfo represents the definition of a generic method. - - - - - Gets the return Type of the method. - - - - - Gets the parameters of the method. - - - - - - Returns the Type arguments of a generic method or the Type parameters of a generic method definition. - - - - - Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. - - The type arguments to be used - A new IMethodInfo with the type arguments replaced - - - - Invokes the method, converting any TargetInvocationException to an NUnitException. - - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - Provides data for a single test parameter. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test. - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - Provides data for a single test parameter. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - The IParameterInfo interface is an abstraction of a .NET parameter. - - - - - Gets a value indicating whether the parameter is optional - - - - - Gets an IMethodInfo representing the method for which this is a parameter - - - - - Gets the underlying .NET ParameterInfo - - - - - Gets the Type of the parameter - - - - - Implemented by filters for use in deciding which - Types and Methods should be used to generate tests. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - A PropertyBag represents a collection of name/value pairs - that allows duplicate entries with the same key. Methods - are provided for adding a new pair as well as for setting - a key to a single value. All keys are strings but values - may be of any type. Null values are not permitted, since - a null entry represents the absence of the key. - - The entries in a PropertyBag are of two kinds: those that - take a single value and those that take multiple values. - However, the PropertyBag has no knowledge of which entries - fall into each category and the distinction is entirely - up to the code using the PropertyBag. - - When working with multi-valued properties, client code - should use the Add method to add name/value pairs and - indexing to retrieve a list of all values for a given - key. For example: - - bag.Add("Tag", "one"); - bag.Add("Tag", "two"); - Assert.That(bag["Tag"], - Is.EqualTo(new string[] { "one", "two" })); - - When working with single-valued properties, client code - should use the Set method to set the value and Get to - retrieve the value. The GetSetting methods may also be - used to retrieve the value in a type-safe manner while - also providing default. For example: - - bag.Set("Priority", "low"); - bag.Set("Priority", "high"); // replaces value - Assert.That(bag.Get("Priority"), - Is.EqualTo("high")); - Assert.That(bag.GetSetting("Priority", "low"), - Is.EqualTo("high")); - - - - - Adds a key/value pair to the property bag - - The key - The value - - - - Sets the value for a key, removing any other - values that are already in the property set. - - - - - - - Gets a single value for a key, using the first - one if multiple values are present and returning - null if the value is not found. - - - - - Gets a flag indicating whether the specified key has - any entries in the property set. - - The key to be checked - True if their are values present, otherwise false - - - - Gets or sets the list of values for a particular key - - The key for which the values are to be retrieved or set - - - - Gets a collection containing all the keys in the property set - - - - - The IReflectionInfo interface is implemented by NUnit wrapper objects that perform reflection. - - - - - Returns an array of custom attributes of the specified type applied to this object - - - - - Returns a value indicating whether an attribute of the specified type is defined on this object. - - - - - The ISimpleTestBuilder interface is exposed by a class that knows how to - build a single tests from a specified method. In general, - it is exposed by an attribute, but it may be implemented in a helper class - used by the attribute in some cases. - - - - - Builds a single test from the specified method and context. - - The method to be used as a test - The TestSuite to which the method will be added - - - - The ISuiteBuilder interface is exposed by a class that knows how to - build a single test suite from a specified type. - - - - - Examine the type and determine if it is suitable for - this builder to use in building a TestSuite. - - Note that returning false will cause the type to be ignored - in loading the tests. If it is desired to load the suite - but label it as non-runnable, ignored, etc., then this - method must return true. - - The type of the fixture to be used - - - - Builds a single test suite from the specified type. - - The type of the fixture to be used - - - - Builds a single test suite from the specified type, subject - to a filter that decides which methods are included. - - The type of the fixture to be used - A PreFilter for selecting methods. - - - - Common interface supported by all representations - of a test. Only includes informational fields. - The Run method is specifically excluded to allow - for data-only representations of a test. - - - - - Gets the id of the test - - - - - Gets the name of the test - - - - - Gets the type of the test - - - - - Gets the fully qualified name of the test - - - - - Gets the name of the class containing this test. Returns - null if the test is not associated with a class. - - - - - Gets the name of the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - Gets the Type of the test fixture, if applicable, or - null if no fixture type is associated with this test. - - - - - Gets the method which declares the test, or - if no method is associated with this test. - - - - - Gets the RunState of the test, indicating whether it can be run. - - - - - Count of the test cases ( 1 if this is a test case ) - - - - - Gets the properties of the test - - - - - Gets the parent test, if any. - - The parent test or null if none exists. - - - - Returns true if this is a test suite - - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets this test's child tests - - A list of child tests - - - - Gets a fixture object for running this test. - - - - - The arguments to use in creating the test or empty array if none are required. - - - - - The ITestBuilder interface is exposed by a class that knows how to - build tests from a specified method. In general, it is exposed - by an attribute which has additional information available to provide - the necessary test parameters to distinguish the test cases built. - - - - - Builds any number of tests from the specified method and context. - - The method to be used as a test - The TestSuite to which the method will be added - - - - The ITestCaseBuilder interface is exposed by a class that knows how to - build a test from a specified method, possibly containing child test cases. - - - - - Examine the method and determine if it is suitable for - this builder to use in building a TestCase to be - included in the suite being populated. - - Note that returning false will cause the method to be ignored - in loading the tests. If it is desired to load the method - but label it as non-runnable, ignored, etc., then this - method must return true. - - The test method to examine - The suite being populated - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method to be used as a test case - The test suite being populated, or null - - - - The ITestCaseData interface is implemented by a class - that is able to return complete test cases for use by - a parameterized test method. - - - - - Gets the expected result of the test case - - - - - Returns true if an expected result has been set - - - - - The ITestData interface is implemented by a class that - represents a single instance of a parameterized test. - - - - - Gets the name to be used for the test - - - - - Gets the RunState for this test case. - - - - - Gets the argument list to be provided to the test - - - - - Gets the property dictionary for the test case - - - - - Interface to be implemented by filters applied to tests. - The filter applies when running the test, after it has been - loaded, since this is the only time an ITest exists. - - - - - Determine if a particular test passes the filter criteria. Pass - may examine the parents and/or descendants of a test, depending - on the semantics of the particular filter - - The test to which the filter is applied - True if the test passes the filter, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - The ITestCaseData interface is implemented by a class - that is able to return the data required to create an - instance of a parameterized test fixture. - - - - - Get the TypeArgs if separately set - - - - - The ITestListener interface is used internally to receive - notifications of significant events while a test is being - run. The events are propagated to clients by means of an - AsyncCallback. NUnit extensions may also monitor these events. - - - - - Called when a test has just started - - The test that is starting - - - - Called when a test has finished - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - The ITestResult interface represents the result of a test. - - - - - Gets the ResultState of the test result, which - indicates the success or failure of the test. - - - - - Gets the name of the test result - - - - - Gets the full name of the test result - - - - - Gets the elapsed time for running the test in seconds - - - - - Gets or sets the time the test started running. - - - - - Gets or sets the time the test finished running. - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - Gets the total number of tests executed - when running the test and all its children. - - - - - Gets the number of asserts executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - Accessing HasChildren should not force creation of the - Children collection in classes implementing this interface. - - - - - Gets the collection of child results. - - - - - Gets the Test to which this result applies. - - - - - Gets any text output written to this result. - - - - - Gets a list of AssertionResults associated with the test - - - - - Gets the collection of files attached to the test - - - - - The ITypeInfo interface is an abstraction of a .NET Type - - - - - Gets the underlying Type on which this ITypeInfo is based - - - - - Gets the base type of this type as an ITypeInfo - - - - - Returns true if the Type wrapped is equal to the argument - - - - - Gets the name of the Type - - - - - Gets the full name of the Type - - - - - Gets the assembly in which the type is declared - - - - - Gets the namespace of the Type - - - - - Gets a value indicating whether the type is abstract. - - - - - Gets a value indicating whether the Type is a generic Type - - - - - Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. - - - - - Gets a value indicating whether the Type is a generic Type definition - - - - - Gets a value indicating whether the type is sealed. - - - - - Gets a value indicating whether this type is a static class. - - - - - Get the display name for this typeInfo. - - - - - Get the display name for an object of this type, constructed with specific arguments - - - - - Returns a Type representing a generic type definition from which this Type can be constructed. - - - - - Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments - - - - - Returns a value indicating whether this type has a method with a specified public attribute - - - - - Returns an array of IMethodInfos for methods of this Type - that match the specified flags. - - - - - Gets the public constructor taking the specified argument Types - - - - - Returns a value indicating whether this Type has a public constructor taking the specified argument Types. - - - - - Construct an object of this Type, using the specified arguments. - - - - - Returns all methods declared by this type that have the specified attribute, optionally - including base classes. Methods from a base class are always returned before methods from a class that - inherits from it. - - Specifies whether to search the fixture type inheritance chain. - - - - An object implementing IXmlNodeBuilder is able to build - an XML representation of itself and any children. - - - - - Returns a TNode representing the current object. - - If true, children are included where applicable - A TNode representing the result - - - - Returns a TNode representing the current object after - adding it as a child of the supplied parent node. - - The parent node. - If true, children are included, where applicable - - - - - The ResultState class represents the outcome of running a test. - It contains two pieces of information. The Status of the test - is an enum indicating whether the test passed, failed, was - skipped or was inconclusive. The Label provides a more - detailed breakdown for use by client runners. - - - - - Initializes a new instance of the class. - - The TestStatus. - - - - Initializes a new instance of the class. - - The TestStatus. - The label. - - - - Initializes a new instance of the class. - - The TestStatus. - The stage at which the result was produced - - - - Initializes a new instance of the class. - - The TestStatus. - The label. - The stage at which the result was produced - - - - The result is inconclusive - - - - - The test has been skipped. - - - - - The test has been ignored. - - - - - The test was skipped because it is explicit - - - - - The test succeeded - - - - - The test issued a warning - - - - - The test failed - - - - - The test encountered an unexpected exception - - - - - The test was cancelled by the user - - - - - The test was not runnable. - - - - - A suite failed because one or more child tests failed or had errors - - - - - A suite failed because one or more child tests had warnings - - - - - A suite is marked ignored because one or more child tests were ignored - - - - - A suite failed in its OneTimeSetUp - - - - - A suite had an unexpected exception in its OneTimeSetUp - - - - - A suite had an unexpected exception in its OneTimeDown - - - - - Gets the TestStatus for the test. - - The status. - - - - Gets the label under which this test result is - categorized, or if none. - - - - - Gets the stage of test execution in which - the failure or other result took place. - - - - - Get a new ResultState, which is the same as the current - one but with the FailureSite set to the specified value. - - The FailureSite to use - A new ResultState - - - - Test whether this ResultState has the same Status and Label - as another one. In other words, the whether two are equal - ignoring the Site. - - - - - - Determines whether the specified object is equal to the current object. - The object to compare with the current object. - - - Indicates whether the current object is equal to another object of the same type. - An object to compare with this object. - - - Serves as the default hash function. - - - - Overload == operator for ResultStates - - - - - Overload != operator for ResultStates - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - The FailureSite enum indicates the stage of a test - in which an error or failure occurred. - - - - - Failure in the test itself - - - - - Failure in the SetUp method - - - - - Failure in the TearDown method - - - - - Failure of a parent test - - - - - Failure of a child test - - - - - The RunState enum indicates whether a test can be executed. - - - - - The test is not runnable. - - - - - The test is runnable. - - - - - The test can only be run explicitly - - - - - The test has been skipped. This value may - appear on a Test when certain attributes - are used to skip the test. - - - - - The test has been ignored. May appear on - a Test, when the IgnoreAttribute is used. - - - - - The TestAttachment class represents a file attached to a TestResult, - with an optional description. - - - - - Absolute file path to attachment file - - - - - User specified description of attachment. May be null. - - - - - Creates a TestAttachment class to represent a file attached to a test result. - - Absolute file path to attachment file - User specified description of attachment. May be null. - - - - The class holds a message sent by a test to all listeners - - - - - Construct with text, destination type and - the name of the test that produced the message. - - Destination of the message - Text to be sent - ID of the test that produced the message - - - - Converts object to string - - - - - The message to send to listeners - - - - - The Destination of the message. - - - - - The ID of the test that sent the message - - - - - Returns the XML representation of the object. - - - - - The TestOutput class holds a unit of output from - a test to a specific output stream - - - - - Construct with text, output destination type and - the name of the test that produced the output. - - Text to be output - Name of the stream or channel to which the text should be written - Id of the test that produced the output - FullName of test that produced the output - - - - Return string representation of the object for debugging - - - - - - Get the text - - - - - Get the output type - - - - - Get the name of the test that created the output - - - - - Get the id of the test that created the output - - - - - Convert the TestOutput object to an XML string - - - - - The TestStatus enum indicates the result of running a test - - - - - The test was inconclusive - - - - - The test has skipped - - - - - The test succeeded - - - - - There was a warning - - - - - The test failed - - - - - TNode represents a single node in the XML representation - of a Test or TestResult. It replaces System.Xml.XmlNode and - System.Xml.Linq.XElement, providing a minimal set of methods - for operating on the XML in a platform-independent manner. - - - - - Constructs a new instance of TNode - - The name of the node - - - - Constructs a new instance of TNode with a value - - The name of the node - The text content of the node - - - - Constructs a new instance of TNode with a value - - The name of the node - The text content of the node - Flag indicating whether to use CDATA when writing the text - - - - Gets the name of the node - - - - - Gets the value of the node - - - - - Gets a flag indicating whether the value should be output using CDATA. - - - - - Gets the dictionary of attributes - - - - - Gets a list of child nodes - - - - - Gets the first ChildNode - - - - - Gets the XML representation of this node. - - - - - Create a TNode from its XML text representation - - The XML text to be parsed - A TNode - - - - Adds a new element as a child of the current node and returns it. - - The element name. - The newly created child element - - - - Adds a new element with a value as a child of the current node and returns it. - - The element name - The text content of the new element - The newly created child element - - - - Adds a new element with a value as a child of the current node and returns it. - The value will be output using a CDATA section. - - The element name - The text content of the new element - The newly created child element - - - - Adds an attribute with a specified name and value to the XmlNode. - - The name of the attribute. - The value of the attribute. - - - - Finds a single descendant of this node matching an XPath - specification. The format of the specification is - limited to what is needed by NUnit and its tests. - - - - - - - Finds all descendants of this node matching an XPath - specification. The format of the specification is - limited to what is needed by NUnit and its tests. - - - - - Writes the XML representation of the node to an XmlWriter - - - - - - Class used to represent a list of XmlResults - - - - - Class used to represent the attributes of a node - - - - - Gets or sets the value associated with the specified key. - Overridden to return null if attribute is not found. - - The key. - Value of the attribute or null - - - - A production implementation that delegates directly to .NET's . - - - - - Returns whether a debugger is currently attached to the process - - - - - A layer of abstraction around to facilitate testing. - - - - - Whether a debugger is currently attached to the process. - - - - - AssemblyHelper provides static methods for working - with assemblies. - - - - - Gets the path from which an assembly was loaded. - For builds where this is not possible, returns - the name of the assembly. - - The assembly. - The path. - - - - Gets the path to the directory from which an assembly was loaded. - - The assembly. - The path. - - - - Gets the AssemblyName of an assembly. - - The assembly - An AssemblyName - - - - Loads an assembly given a string, which may be the - path to the assembly or the AssemblyName - - - - - Gets the assembly path from code base. - - Public for testing purposes - The code base. - - - - - Adapts various styles of asynchronous waiting to a common API. - - - - - CombinatorialStrategy creates test cases by using all possible - combinations of the parameter data. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - Provides data from fields marked with the DatapointAttribute or the - DatapointsAttribute. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - Built-in SuiteBuilder for all types of test classes. - - - - - Examine the type and determine if it is suitable for - this builder to use in building a TestSuite. - - Note that returning false will cause the type to be ignored - in loading the tests. If it is desired to load the suite - but label it as non-runnable, ignored, etc., then this - method must return true. - - The fixture type to check - - - - Builds a single test suite from the specified type. - - The fixture type to build - - - - Builds a single test suite from the specified type, subject - to a filter that decides which methods are included. - - The fixture type to build - A PreFilter for selecting methods. - - - - We look for attributes implementing IFixtureBuilder at one level - of inheritance at a time. Attributes on base classes are not used - unless there are no fixture builder attributes at all on the derived - class. This is by design. - - The type being examined for attributes - - - - Class to build ether a parameterized or a normal NUnitTestMethod. - There are four cases that the builder must deal with: - 1. The method needs no params and none are provided - 2. The method needs params and they are provided - 3. The method needs no params but they are provided in error - 4. The method needs params but they are not provided - This could have been done using two different builders, but it - turned out to be simpler to have just one. The BuildFrom method - takes a different branch depending on whether any parameters are - provided, but all four cases are dealt with in lower-level methods - - - - - Determines if the method can be used to build an NUnit test - test method of some kind. The method must normally be marked - with an identifying attribute for this to be true. - - Note that this method does not check that the signature - of the method for validity. If we did that here, any - test methods with invalid signatures would be passed - over in silence in the test run. Since we want such - methods to be reported, the check for validity is made - in BuildFrom rather than here. - - An IMethodInfo for the method being used as a test method - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method for which a test is to be built - - - - Determines if the method can be used to build an NUnit test - test method of some kind. The method must normally be marked - with an identifying attribute for this to be true. - - Note that this method does not check that the signature - of the method for validity. If we did that here, any - test methods with invalid signatures would be passed - over in silence in the test run. Since we want such - methods to be reported, the check for validity is made - in BuildFrom rather than here. - - An IMethodInfo for the method being used as a test method - The test suite being built, to which the new test would be added - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method for which a test is to be built - The test fixture being populated, or null - - - - Builds a ParameterizedMethodSuite containing individual test cases. - - The method for which a test is to be built. - The list of test cases to include. - - - - Build a simple, non-parameterized TestMethod for this method. - - The MethodInfo for which a test is to be built - The test suite for which the method is being built - - - - Class that can build a tree of automatic namespace - suites from a group of fixtures. - - - - - NamespaceDictionary of all test suites we have created to represent - namespaces. Used to locate namespace parent suites for fixtures. - - - - - Point in the tree where items in the global namespace are added - - - - - Initializes a new instance of the class. - - The root suite. - - - - Gets the root entry in the tree created by the NamespaceTreeBuilder. - - The root suite. - - - - Adds the specified fixtures to the tree. - - The fixtures to be added. - - - - Adds the specified fixture to the tree. - - The fixture to be added. - - - - NUnitTestCaseBuilder is a utility class used by attributes - that build test cases. - - - - - Constructs an - - - - - Builds a single NUnitTestMethod, either as a child of the fixture - or as one of a set of test cases under a ParameterizedTestMethodSuite. - - The MethodInfo from which to construct the TestMethod - The suite or fixture to which the new test will be added - The ParameterSet to be used, or null - - - - Checks to see if we have valid combinations of attributes. - - The TestMethod to be checked. If it - is found to be non-runnable, it will be modified. - True if the method signature is valid, false if not - - - - Helper method that checks the signature of a TestMethod and - any supplied parameters to determine if the test is valid. - - Currently, NUnitTestMethods are required to be public, - non-abstract methods, either static or instance, - returning void. They may take arguments but the values must - be provided or the TestMethod is not considered runnable. - - Methods not meeting these criteria will be marked as - non-runnable and the method will return false in that case. - - The TestMethod to be checked. If it - is found to be non-runnable, it will be modified. - Parameters to be used for this test, or null - True if the method signature is valid, false if not - - The return value is no longer used internally, but is retained - for testing purposes. - - - - - NUnitTestFixtureBuilder is able to build a fixture given - a class marked with a TestFixtureAttribute or an unmarked - class containing test methods. In the first case, it is - called by the attribute and in the second directly by - NUnitSuiteBuilder. - - - - - Build a TestFixture from type provided. A non-null TestSuite - must always be returned, since the method is generally called - because the user has marked the target class as a fixture. - If something prevents the fixture from being used, it should - be returned nonetheless, labeled as non-runnable. - - An ITypeInfo for the fixture to be used. - Filter used to select methods as tests. - A TestSuite object or one derived from TestSuite. - - - - Overload of BuildFrom called by tests that have arguments. - Builds a fixture using the provided type and information - in the ITestFixtureData object. - - The TypeInfo for which to construct a fixture. - Filter used to select methods as tests. - An object implementing ITestFixtureData or null. - - - - - Method to add test cases to the newly constructed fixture. - - - - - Method to create a test case from a MethodInfo and add - it to the fixture being built. It first checks to see if - any global TestCaseBuilder addin wants to build the - test case. If not, it uses the internal builder - collection maintained by this fixture builder. - - The default implementation has no test case builders. - Derived classes should add builders to the collection - in their constructor. - - The method for which a test is to be created - The test suite being built. - A newly constructed Test - - - - PairwiseStrategy creates test cases by combining the parameter - data so that all possible pairs of data items are used. - - - - The number of test cases that cover all possible pairs of test function - parameters values is significantly less than the number of test cases - that cover all possible combination of test function parameters values. - And because different studies show that most of software failures are - caused by combination of no more than two parameters, pairwise testing - can be an effective ways to test the system when it's impossible to test - all combinations of parameters. - - - The PairwiseStrategy code is based on "jenny" tool by Bob Jenkins: - https://burtleburtle.net/bob/math/jenny.html - - - - - - FleaRand is a pseudo-random number generator developed by Bob Jenkins: - https://burtleburtle.net/bob/rand/talksmall.html#flea - - - - - Initializes a new instance of the FleaRand class. - - The seed. - - - - FeatureInfo represents coverage of a single value of test function - parameter, represented as a pair of indices, Dimension and Feature. In - terms of unit testing, Dimension is the index of the test parameter and - Feature is the index of the supplied value in that parameter's list of - sources. - - - - - Initializes a new instance of FeatureInfo class. - - Index of a dimension. - Index of a feature. - - - - A FeatureTuple represents a combination of features, one per test - parameter, which should be covered by a test case. In the - PairwiseStrategy, we are only trying to cover pairs of features, so the - tuples actually may contain only single feature or pair of features, but - the algorithm itself works with triplets, quadruples and so on. - - - - - Initializes a new instance of FeatureTuple class for a single feature. - - Single feature. - - - - Initializes a new instance of FeatureTuple class for a pair of features. - - First feature. - Second feature. - - - - TestCase represents a single test case covering a list of features. - - - - - Initializes a new instance of TestCaseInfo class. - - A number of features in the test case. - - - - PairwiseTestCaseGenerator class implements an algorithm which generates - a set of test cases which covers all pairs of possible values of test - function. - - - - The algorithm starts with creating a set of all feature tuples which we - will try to cover (see method). This set - includes every single feature and all possible pairs of features. We - store feature tuples in the 3-D collection (where axes are "dimension", - "feature", and "all combinations which includes this feature"), and for - every two feature (e.g. "A" and "B") we generate both ("A", "B") and - ("B", "A") pairs. This data structure extremely reduces the amount of - time needed to calculate coverage for a single test case (this - calculation is the most time-consuming part of the algorithm). - - - Then the algorithm picks one tuple from the uncovered tuple, creates a - test case that covers this tuple, and then removes this tuple and all - other tuples covered by this test case from the collection of uncovered - tuples. - - - Picking a tuple to cover - - - There are no any special rules defined for picking tuples to cover. We - just pick them one by one, in the order they were generated. - - - Test generation - - - Test generation starts from creating a completely random test case which - covers, nevertheless, previously selected tuple. Then the algorithm - tries to maximize number of tuples which this test covers. - - - Test generation and maximization process repeats seven times for every - selected tuple and then the algorithm picks the best test case ("seven" - is a magic number which provides good results in acceptable time). - - Maximizing test coverage - - To maximize tests coverage, the algorithm walks through the list of mutable - dimensions (mutable dimension is a dimension that are not included in - the previously selected tuple). Then for every dimension, the algorithm - walks through the list of features and checks if this feature provides - better coverage than randomly selected feature, and if yes keeps this - feature. - - - This process repeats while it shows progress. If the last iteration - doesn't improve coverage, the process ends. - - - In addition, for better results, before start every iteration, the - algorithm "scrambles" dimensions - so for every iteration dimension - probes in a different order. - - - - - - Creates a set of test cases for specified dimensions. - - - An array which contains information about dimensions. Each element of - this array represents a number of features in the specific dimension. - - - A set of test cases. - - - - - Gets the test cases generated by this strategy instance. - - A set of test cases. - - - - The ParameterDataProvider class implements IParameterDataProvider - and hosts one or more individual providers. - - - - - Construct with a collection of individual providers - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - ParameterDataSourceProvider supplies individual argument values for - single parameters using attributes implementing IParameterDataSource. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - SequentialStrategy creates test cases by using all of the - parameter data sources in parallel, substituting - when any of them run out of data. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - TestActionAfterCommand handles the AfterTest method of a single - TestActionItem, provided the items BeforeTest has been run. - - - - - Initializes a new instance of the class. - - The inner command. - The TestActionItem to run before the inner command. - - - - AfterCommand is a DelegatingTestCommand that performs some - specific action after the inner command is run. - - - - - Construct an AfterCommand - - - - - Execute the command - - - - - Set this to perform action after the inner command. - - - - - ContextSettingsCommand applies specified changes to the - TestExecutionContext prior to running a test. No special - action is needed after the test runs, since the prior - context will be restored automatically. - - - - - TestActionCommand handles a single ITestAction applied - to a test. It runs the BeforeTest method, then runs the - test and finally runs the AfterTest method. - - - - - Initializes a new instance of the class. - - The inner command. - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Perform the before test action - - - - - Perform the after test action - - - - - TestActionBeforeCommand handles the BeforeTest method of a single - TestActionItem, relying on the item to remember it has been run. - - - - - Initializes a new instance of the class. - - The inner command. - The TestActionItem to run before the inner command. - - - - BeforeTestCommand is a DelegatingTestCommand that performs some - specific action before the inner command is run. - - - - - Construct a BeforeCommand - - - - - Execute the command - - - - - Action to perform before the inner command. - - - - - ConstructFixtureCommand constructs the user test object if necessary. - - - - - Constructs a OneTimeSetUpCommand for a suite - - The inner command to which the command applies - - - - DelegatingTestCommand wraps an inner TestCommand. - Derived classes may do what they like before or - after running the inner command. - - - - TODO: Documentation needed for field - - - - Initializes a new instance of the class. - - The inner command. - - - - OneTimeTearDownCommand performs any teardown actions - specified for a suite and calls Dispose on the user - test object, if any. - - - - - Construct a OneTimeTearDownCommand - - The command wrapped by this command - - - - EmptyTestCommand is a TestCommand that does nothing. It simply - returns the current result from the context when executed. We - use it to avoid testing for null when executing a chain of - DelegatingTestCommands. - - - - - Construct a NullCommand for a test - - - - - Execute the command - - - - - ConstructFixtureCommand constructs the user test object if necessary. - - - - - Handles the construction and disposement of a fixture per test case - - The inner command to which the command applies - - - - adjusts the result of a successful test - to a failure if the elapsed time has exceeded the specified maximum - time allowed. - - - - - Initializes a new instance of the class. - - The inner command. - The max time allowed in milliseconds - - - - OneTimeSetUpCommand runs any one-time setup methods for a suite, - constructing the user test object if necessary. - - - - - Constructs a OneTimeSetUpCommand for a suite - - The inner command to which the command applies - A SetUpTearDownList for use by the command - - - - OneTimeTearDownCommand performs any teardown actions - specified for a suite and calls Dispose on the user - test object, if any. - - - - - Construct a OneTimeTearDownCommand - - The command wrapped by this command - A SetUpTearDownList for use by the command - - - - SetUpTearDownCommand runs SetUp methods for a suite, - runs the test and then runs TearDown methods. - - - - - Initializes a new instance of the class. - - The inner command. - List of setup/teardown items - - - - SetUpTearDownItem holds the setup and teardown methods - for a single level of the inheritance hierarchy. - - - - - Construct a SetUpTearDownNode - - A list of setup methods for this level - A list teardown methods for this level - A method validator to validate each method before calling. - - - - Returns true if this level has any methods at all. - This flag is used to discard levels that do nothing. - - - - - Run SetUp on this level. - - The execution context to use for running. - - - - Run TearDown for this level. - - - - - - TODO: Documentation needed for class - - - - - Initializes a new instance of the class. - - The test being skipped. - - - - Overridden to simply set the CurrentResult to the - appropriate Skipped state. - - The execution context for the test - A TestResult - - - - TestActionCommand handles a single ITestAction applied - to a test. It runs the BeforeTest method, then runs the - test and finally runs the AfterTest method. - - - - - Initializes a new instance of the class. - - The inner command. - The TestAction with which to wrap the inner command. - - - - TestActionItem wraps a single execution of an ITestAction. - Its primary purpose is to track whether the BeforeTest - method has been called and suppress calling the - AfterTest method if it has not. This is necessary when - ITestActions are used before and after a CompositeWorkItem, - since the OneTimeSetUpCommand and OneTimeTearDownCommand - are separate command chains. By sharing a TestActionItem - between the setup and teardown chains, the two calls can - be coordinated. - - - - - Construct a TestActionItem - - The ITestAction to be included - - - - Get flag indicating if the BeforeTest entry was already called. - - - - - Run the BeforeTest method of the action and remember that it has been run. - - The test to which the action applies - - - - Run the AfterTest action, but only if the BeforeTest - action was actually run. - - The test to which the action applies - - - - TestCommand is the abstract base class for all test commands - in the framework. A TestCommand represents a single stage in - the execution of a test, e.g.: SetUp/TearDown, checking for - Timeout, verifying the returned result from a method, etc. - - TestCommands may decorate other test commands so that the - execution of a lower-level command is nested within that - of a higher level command. All nested commands are executed - synchronously, as a single unit. Scheduling test execution - on separate threads is handled at a higher level, using the - task dispatcher. - - - - - Construct a TestCommand for a test. - - The test to be executed - - - - Gets the test associated with this command. - - - - - Runs the test in a specified context, returning a TestResult. - - The TestExecutionContext to be used for running the test. - A TestResult - - - - TestMethodCommand is the lowest level concrete command - used to run actual test cases. - - - - - Initializes a new instance of the class. - - The test. - - - - Runs the test, saving a TestResult in the execution context, as - well as returning it. If the test has an expected result, it - is asserts on that value. Since failed tests and errors throw - an exception, this command must be wrapped in an outer command, - will handle that exception and records the failure. This role - is usually played by the SetUpTearDown command. - - The execution context - - - - TheoryResultCommand adjusts the result of a Theory so that - it fails if all the results were inconclusive. - - - - - Constructs a TheoryResultCommand - - The command to be wrapped by this one - - - - creates a timer in order to cancel - a test if it exceeds a specified time and adjusts - the test result if it did time out. - - - - - Initializes a new instance of the class. - - The inner command - Timeout value - - - - Initializes a new instance of the class. - - The inner command - Timeout value - An instance - - - - Provides methods to support consistent checking in constraints. - - - - - Requires that the provided object is actually of the type required. - - The object to verify. - Name of the parameter as passed into the checking method. - - If and can be null, returns null rather than throwing when is null. - If cannot be null, this parameter is ignored. - The type to require. - - - - CultureDetector is a helper class used by NUnit to determine - whether a test should be run based on the current culture. - - - - - Default constructor uses the current culture. - - - - - Construct a CultureDetector for a particular culture for testing. - - The culture to be used - - - - Test to determine if one of a collection of cultures - is being used currently. - - - - - - - Tests to determine if the current culture is supported - based on a culture attribute. - - The attribute to examine - - - - - Test to determine if the a particular culture or comma- - delimited set of cultures is in use. - - Name of the culture or comma-separated list of culture ids - True if the culture is in use on the system - - - - Return the last failure reason. Results are not - defined if called before IsSupported( Attribute ) - is called. - - - - - Useful when wrapping awaiters whose GetResult method does not block until complete. - Contains a default mechanism to implement - via and . - - - - - ExceptionHelper provides static methods for working with exceptions - - - - - Rethrows an exception, preserving its stack trace - - The exception to rethrow - - - - Builds up a message, using the Message field of the specified exception - as well as any InnerExceptions. Optionally excludes exception names, - creating a more readable message. - - The exception. - Flag indicating whether exception names should be excluded. - A combined message string. - - - - Builds up a message, using the Message field of the specified exception - as well as any InnerExceptions. - - The exception. - A combined stack trace. - - - - Executes a parameterless synchronous or async delegate and returns the exception it throws, if any. - - - - - A CompositeWorkItem represents a test suite and - encapsulates the execution of the suite as well - as all its child tests. - - - - - List of Child WorkItems - - - - - Indicates whether this work item should use a separate dispatcher. - - - - - Construct a CompositeWorkItem for executing a test suite - using a filter to select child tests. - - The TestSuite to be executed - A filter used to select child tests - - - - Method that actually performs the work. Overridden - in CompositeWorkItem to do one-time setup, run all child - items and then dispatch the one-time teardown work item. - - - - - - - - - - Cancel (abort or stop) a CompositeWorkItem and all of its children - - true if the CompositeWorkItem and all of its children should be aborted, false if it should allow all currently running tests to complete - - - - OneTimeTearDownWorkItem represents the cleanup - and one-time teardown phase of a CompositeWorkItem - - - - - Construct a OneTimeTearDownWOrkItem wrapping a CompositeWorkItem - - The CompositeWorkItem being wrapped - - - - The WorkItem name, overridden to indicate this is the teardown. - - - - - The ExecutionStrategy for use in running this work item - - - - - - - - - - PerformWork is not used in CompositeWorkItem - - - - - WorkItemCancelled is called directly by the parallel dispatcher - when a test suite is left hanging after a forced StopRun. We - simulate WorkItemComplete() but without the ripple effect to - higher level suites, since we are controlling it all directly. - - - - - EventListenerTextWriter sends text output to the currently active - ITestEventListener in the form of a TestOutput object. If no event - listener is active in the context, or if there is no context, - the output is forwarded to the supplied default writer. - - - - - Construct an EventListenerTextWriter - - The name of the stream to use for events - The default writer to use if no listener is available - - - - Get the Encoding for this TextWriter - - - - - Write formatted string - - - - - Write formatted string - - - - - Write formatted string - - - - - Write an object - - - - - Write a string - - - - - Write a decimal - - - - - Write a double - - - - - Write formatted string - - - - - Write a ulong - - - - - Write a long - - - - - Write a uint - - - - - Write an int - - - - - Write a char - - - - - Write a boolean - - - - - Write chars - - - - - Write chars - - - - - Write a float - - - - - Write a string with newline - - - - - Write an object with newline - - - - - Write formatted string with newline - - - - - Write formatted string with newline - - - - - Write formatted string with newline - - - - - Write a decimal with newline - - - - - Write a formatted string with newline - - - - - Write a double with newline - - - - - Write a uint with newline - - - - - Write a ulong with newline - - - - - Write a long with newline - - - - - Write an int with newline - - - - - Write a bool with newline - - - - - Write chars with newline - - - - - Write chars with newline - - - - - Write a char with newline - - - - - Write a float with newline - - - - - Write newline - - - - - The EventPumpState enum represents the state of an - EventPump. - - - - - The pump is stopped - - - - - The pump is pumping events with no stop requested - - - - - The pump is pumping events but a stop has been requested - - - - - EventPump pulls events out of an EventQueue and sends - them to a listener. It is used to send events back to - the client without using the CallContext of the test - runner thread. - - - - - The downstream listener to which we send events - - - - - The queue that holds our events - - - - - Thread to do the pumping - - - - - The current state of the event pump - - - - - Constructor - - The EventListener to receive events - The event queue to pull events from - - - - Gets or sets the current state of the pump - - - - - Gets or sets the name of this EventPump - (used only internally and for testing). - - - - - Dispose stops the pump - Disposes the used WaitHandle, too. - - - - - Start the pump - - - - - Tell the pump to stop after emptying the queue. - - - - - Our thread proc for removing items from the event - queue and sending them on. Note that this would - need to do more locking if any other thread were - removing events from the queue. - - - - - NUnit.Core.Event is the abstract base for all stored events. - An Event is the stored representation of a call to the - ITestListener interface and is used to record such calls - or to queue them for forwarding on another thread or at - a later time. - - - - - The Send method is implemented by derived classes to send the event to the specified listener. - - The listener. - - - - TestStartedEvent holds information needed to call the TestStarted method. - - - - - Initializes a new instance of the class. - - The test. - - - - Calls TestStarted on the specified listener. - - The listener. - - - - TestFinishedEvent holds information needed to call the TestFinished method. - - - - - Initializes a new instance of the class. - - The result. - - - - Calls TestFinished on the specified listener. - - The listener. - - - - TestOutputEvent holds information needed to call the TestOutput method. - - - - - Initializes a new instance of the class. - - The output object. - - - - Calls TestOutput on the specified listener. - - The listener. - - - - TestMessageEvent holds information needed to call the SendMessage method. - - - - - Initializes a new instance of the class. - - The test message object. - - - - Calls on the specified listener. - - The listener. - - - - Holds object for sending to all listeners - - - - - Implements a queue of work items each of which - is queued as a WaitCallback. - - - - - Gets the count of items in the queue. - - - - - Enqueues the specified event - - The event to enqueue. - - - - Removes the first element from the queue and returns it (or ). - - - If and the queue is empty, the calling thread is blocked until - either an element is enqueued, or is called. - - - - - If the queue not empty - the first element. - - - otherwise, if == - or has been called - . - - - - - - - Stop processing of the queue - - - - - Validates method to execute. - - - - - Determines whether a method is allowed to execute and throws an exception otherwise. - - The method to validate. - - - - An IWorkItemDispatcher handles execution of work items. - - - - - The level of parallelism supported. Zero if not supported. - - - - - Start execution, performing any initialization. Sets - the top level work item and dispatches it. - - - - - Dispatch a single work item for execution. The first - work item dispatched is saved as the top-level - work item and used when stopping the run. - - The item to dispatch - - - - Cancel the ongoing run completely. - If no run is in process, the call has no effect. - - true if the IWorkItemDispatcher should abort all currently running WorkItems, false if it should allow all currently running WorkItems to complete - - - - MainThreadWorkItemDispatcher handles execution of WorkItems by - directly executing them on the main thread. This is different - from the SimpleWorkItemDispatcher where the work item is dispatched - onto its own thread. - - - - - The level of parallelism supported - - - - - Start execution, dispatching the top level - work into the main thread. - - - - - Dispatch a single work item for execution by - executing it directly. - - The item to dispatch - - - - This method is not supported for - this dispatcher. Using it will throw a - NotSupportedException. - - Not used - If used, it will always throw this. - - - - Enumeration representing the strategy to follow in executing a work item. - The value is only relevant when running under the parallel dispatcher. - - - - - Run directly on same thread - - - - - Enqueue for parallel execution - - - - - Enqueue for non-parallel execution - - - - - ParallelWorkItemDispatcher handles execution of work items by - queuing them for worker threads to process. - - - - - Event raised whenever a shift is starting. - - - - - Event raised whenever a shift has ended. - - - - - Construct a ParallelWorkItemDispatcher - - Number of workers to use - - - - Number of parallel worker threads - - - - - Enumerates all the shifts supported by the dispatcher - - - - - Enumerates all the Queues supported by the dispatcher - - - - - Start execution, setting the top level work, - enqueuing it and starting a shift to execute it. - - - - - Dispatch a single work item for execution. The first - work item dispatched is saved as the top-level - work item and used when stopping the run. - - The item to dispatch - - - - Cancel the ongoing run completely. - If no run is in process, the call has no effect. - - - - - Save the state of the queues and create a new isolated set - - - - - Try to remove isolated queues and restore old ones - - - - - QueuingEventListener uses an EventQueue to store any - events received on its EventListener interface. - - - - - The EventQueue created and filled by this listener - - - - - Construct a QueuingEventListener - - - - - A test has started - - The test that is starting - - - - A test case finished - - Result of the test case - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - A SimpleWorkItem represents a single test case and is - marked as completed immediately upon execution. This - class is also used for skipped or ignored test suites. - - - - - Construct a simple work item for a test. - - The test to be executed - The filter used to select this test - - - - Construct a simple work item for a test. - - The test to be executed - The filter used to select this test - An instance - - - - Method that performs actually performs the work. - - - - - Creates a test command for use in running this test. - - A TestCommand - - - - SimpleWorkItemDispatcher handles execution of WorkItems by - directly executing them. It is provided so that a dispatcher - is always available in the context, thereby simplifying the - code needed to run child tests. - - - - - The level of parallelism supported - - - - - Start execution, creating the execution thread, - setting the top level work and dispatching it. - - - - - Dispatch a single work item for execution by - executing it directly. - - The item to dispatch - - - - Cancel (abort or stop) the ongoing run. - If no run is in process, the call has no effect. - - true if the run should be aborted, false if it should allow its currently running test to complete - - - - Checks whether the method to execute is static. - - - - - Construct a StaticMethodValidator. - - The error message to output in case the validation fails. - - - - Determines whether a method to execute is static and throws an InvalidOperationException otherwise. - - The method to validate. - - - - A TestWorker pulls work items from a queue - and executes them. - - - - - Event handler for TestWorker events - - The TestWorker sending the event - The WorkItem that caused the event - - - - Event signaled immediately before executing a WorkItem - - - - - Event signaled immediately after executing a WorkItem - - - - - Construct a new TestWorker. - - The queue from which to pull work items - The name of this worker - - - - The WorkItemQueue from which this worker pulls WorkItems - - - - - The name of this worker - also used for the thread - - - - - Indicates whether the worker thread is running - - - - - Our ThreadProc, which pulls and runs tests in a loop - - - - - Create thread and start processing work items. - - - - - Stop the thread, either immediately or after finishing the current WorkItem - - true if the thread should be aborted, false if it should allow the currently running test to complete - - - - The TextCapture class intercepts console output and writes it - to the current execution context, if one is present on the thread. - If no execution context is found, the output is written to a - default destination, normally the original destination of the - intercepted output. - - - - - Construct a TextCapture object - - The default destination for non-intercepted output - - - - Gets the Encoding in use by this TextWriter - - - - - Writes a single character - - The char to write - - - - Writes a string - - The string to write - - - - Writes a string followed by a line terminator - - The string to write - - - - A WorkItem may be an individual test case, a fixture or - a higher level grouping of tests. All WorkItems inherit - from the abstract WorkItem class, which uses the template - pattern to allow derived classes to perform work in - whatever way is needed. - - A WorkItem is created with a particular TestExecutionContext - and is responsible for re-establishing that context in the - current thread before it begins or resumes execution. - - - - - Construct a WorkItem for a particular test. - - The test that the WorkItem will run - Filter used to include or exclude child items - - - - Construct a work Item that wraps another work Item. - Wrapper items are used to represent independently - dispatched tasks, which form part of the execution - of a single test, such as OneTimeTearDown. - - The WorkItem being wrapped - - - - Initialize the TestExecutionContext. This must be done - before executing the WorkItem. - - - Originally, the context was provided in the constructor - but delaying initialization of the context until the item - is about to be dispatched allows changes in the parent - context during OneTimeSetUp to be reflected in the child. - - The TestExecutionContext to use - - - - Event triggered when the item is complete - - - - - Gets the current state of the WorkItem - - - - - The test being executed by the work item - - - - - The name of the work item - defaults to the Test name. - - - - - Filter used to include or exclude child tests - - - - - The execution context - - - - - The worker executing this item. - - - - - The ParallelExecutionStrategy to use for this work item - - - - - Indicates whether this work item should use a separate dispatcher. - - - - - The test result - - - - - Gets the ParallelScope associated with the test, if any, - otherwise returning ParallelScope.Default; - - - - - Execute the current work item, including any - child work items. - - - - - Wait until the execution of this item is complete - - - - - Marks the WorkItem as NotRunnable. - - Reason for test being NotRunnable. - - - - Cancel (abort or stop) a WorkItem - - true if the WorkItem should be aborted, false if it should run to completion - - - - Standard Dispose - - - - - Method that performs actually performs the work. It should - set the State to WorkItemState.Complete when done. - - - - - Method called by the derived class when all work is complete - - - - - Builds the set up tear down list. - - Unsorted array of setup MethodInfos. - Unsorted array of teardown MethodInfos. - Method validator used before each method execution. - A list of SetUpTearDownItems - - - - Changes the result of the test, logging the old and new states - - The new ResultState - The new message - - - - Recursively walks up the test hierarchy to see if the - has been set on any of the parent tests. - - - - - WorkItemBuilder class knows how to build a tree of work items from a tree of tests - - - - - Creates a work item. - - The test for which this WorkItem is being created. - The filter to be used in selecting any child Tests. - True if child work items should be created and added. - - - - - Creates a work item. - - The test for which this WorkItem is being created. - The filter to be used in selecting any child Tests. - An instance. - True if child work items should be created and added. - if work item needs to be created unconditionally, if will be returned for tests that don't match the filter. - - - - - Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. - - - A signed integer that indicates the relative values of and , as shown in the following table.Value Meaning Less than zero is less than .Zero equals .Greater than zero is greater than . - - The first object to compare.The second object to compare. - - - - WorkItemQueueState indicates the current state of a WorkItemQueue - - - - - The queue is paused - - - - - The queue is running - - - - - The queue is stopped - - - - - A WorkItemQueue holds work items that are ready to - be run, either initially or after some dependency - has been satisfied. - - - - - Initializes a new instance of the class. - - The name of the queue. - Flag indicating whether this is a parallel queue - ApartmentState to use for items on this queue - - - - Gets the name of the work item queue. - - - - - Gets a flag indicating whether this queue is used for parallel execution - - - - - Gets the target ApartmentState for work items on this queue - - - - - Gets the total number of items processed so far - - - - - Gets the current state of the queue - - - - - Get a bool indicating whether the queue is empty. - - - - - Enqueue a WorkItem to be processed - - The WorkItem to process - - - - Enqueue a WorkItem to be processed - internal for testing - - The WorkItem to process - The priority at which to process the item - - - - Dequeue a WorkItem for processing - - A WorkItem or null if the queue has stopped - - - - Start or restart processing of items from the queue - - - - - Signal the queue to stop - - - - - Pause the queue for restarting later - - - - - Save the current inner queue and create new ones for use by - a non-parallel fixture with parallel children. - - - - - Restore the inner queue that was previously saved - - - - - The current state of a work item - - - - - Ready to run or continue - - - - - Work Item is executing - - - - - Complete - - - - - Handler for ShiftChange events. - - The shift that is starting or ending. - - - - The dispatcher needs to do different things at different, - non-overlapped times. For example, non-parallel tests may - not be run at the same time as parallel tests. We model - this using the metaphor of a working shift. The WorkShift - class associates one or more WorkItemQueues with one or - more TestWorkers. - - Work in the queues is processed until all queues are empty - and all workers are idle. Both tests are needed because a - worker that is busy may end up adding more work to one of - the queues. At that point, the shift is over and another - shift may begin. This cycle continues until all the tests - have been run. - - - - - Construct a WorkShift - - - - - Event that fires when the shift has ended - - - - - The Name of this shift - - - - - Gets a flag indicating whether the shift is currently active - - - - - Gets a bool indicating whether this shift has any work to do - - - - - Gets a list of the queues associated with this shift. - - Internal for testing - immutable once initialized - - - - Gets the list of workers associated with this shift. - - Internal for testing - immutable once initialized - - - - Add a WorkItemQueue to the shift, starting it if the - shift is currently active. - - - - - Assign a worker to the shift. - - - - - - Start or restart processing for the shift - - - - - End the shift, pausing all queues and raising - the EndOfShift event. - - - - - Shut down the shift. - - - - - Cancel (abort or stop) the shift without completing all work - - true if the WorkShift should be aborted, false if it should allow its currently running tests to complete - - - - TextMessageWriter writes constraint descriptions and messages - in displayable form as a text stream. It tailors the display - of individual message components to form the standard message - format of NUnit assertion failure messages. - - - - - Prefix used for the expected value line of a message - - - - - Prefix used for the actual value line of a message - - - - - Prefix used for the actual difference between actual and expected values if compared with a tolerance - - - - - Length of a message prefix - - - - - Construct a TextMessageWriter - - - - - Construct a TextMessageWriter, specifying a user message - and optional formatting arguments. - - - - - - - Gets or sets the maximum line length for this writer - - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a given - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The result of the constraint that failed - - - - Gets the unique type name between expected and actual. - - The expected value - The actual value causing the failure - Output of the unique type name for expected - Output of the unique type name for actual - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in string comparisons - If true, clip the strings to fit the max line length - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Write the generic 'Expected' line for a constraint - - The constraint that failed - - - - Write the generic 'Expected' line for a given value - and tolerance. - - The expected value - The tolerance within which the test was made - - - - Write the generic 'Actual' line for a constraint - - The ConstraintResult for which the actual value is to be written - - - - Write the generic 'Actual' line for a given value - - The actual value causing a failure - - - - Extensions to . - - - - - Adds the skip reason to tests that are ignored until a specific date. - - The test properties to add the skip reason to - The date that the test is being ignored until - The reason the test is being ignored until that date - - - - Combines multiple filters so that a test must pass all - of them in order to pass this filter. - - - - - Constructs an empty AndFilter - - - - - Constructs an AndFilter from an array of filters - - - - - - Checks whether the AndFilter is matched by a test - - The test to be matched - If set to we are carrying a negation through - True if all the component filters pass, otherwise false - - - - Checks whether the AndFilter is matched by a test - - The test to be matched - True if all the component filters match, otherwise false - - - - Checks whether the AndFilter is explicit matched by a test. - - The test to be matched - True if all the component filters explicit match, otherwise false - - - - Gets the element name - - Element name - - - - CategoryFilter is able to select or exclude tests - based on their categories. - - - - - Construct a CategoryFilter using a single category name - - A category name - - - - Check whether the filter matches a test - - The test to be matched - - - - - Gets the element name - - Element name - - - - ClassName filter selects tests based on the class FullName - - - - - Construct a FullNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - A base class for multi-part filters - - - - - Constructs an empty CompositeFilter - - - - - Constructs a CompositeFilter from an array of filters - - - - - - Return a list of the composing filters. - - - - - Checks whether the CompositeFilter is matched by a test. - - The test to be matched - If set to we are carrying a negation through - - - - Checks whether the CompositeFilter is matched by a test. - - The test to be matched - - - - Checks whether the CompositeFilter is explicit matched by a test. - - The test to be matched - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - FullName filter selects tests based on their FullName - - - - - Construct a FullNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - IdFilter selects tests based on their id - - - - - Construct an IdFilter for a single value - - The id the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - FullName filter selects tests based on their FullName - - - - - Construct a MethodNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - ClassName filter selects tests based on the class FullName - - - - - Construct a NamespaceFilter for a single namespace - - The namespace the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - NotFilter negates the operation of another filter - - - - - Construct a not filter on another filter - - The filter to be negated - - - - Gets the base filter - - - - - Determine if a particular test passes the filter criteria. - - The test to which the filter is applied - If set to we are carrying a negation through - True if the test passes the filter, otherwise false - - - - Check whether the filter matches a test - - The test to be matched - True if it matches, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Combines multiple filters so that a test must pass one - of them in order to pass this filter. - - - - - Constructs an empty OrFilter - - - - - Constructs an OrFilter from an array of filters - - - - - - Checks whether the OrFilter is matched by a test - - The test to be matched - If set to we are carrying a negation through - True if any of the component filters pass, otherwise false - - - - Checks whether the OrFilter is matched by a test - - The test to be matched - True if any of the component filters match, otherwise false - - - - Checks whether the OrFilter is explicit matched by a test - - The test to be matched - True if any of the component filters explicit match, otherwise false - - - - Gets the element name - - Element name - - - - PropertyFilter is able to select or exclude tests - based on their properties. - - - - - Construct a PropertyFilter using a property name and expected value - - A property name - The expected value of the property - - - - Check whether the filter matches a test - - The test to be matched - - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - TestName filter selects tests based on their Name - - - - - Construct a TestNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - ValueMatchFilter selects tests based on some value, which - is expected to be contained in the test. - - - - - Returns the value matched by the filter - used for testing - - - - - Indicates whether the value is a regular expression - - - - - Construct a ValueMatchFilter for a single value. - - The value to be included. - - - - Match the input provided by the derived class - - The value to be matched - True for a match, false otherwise. - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - GenericMethodHelper is able to deduce the Type arguments for - a generic method from the actual arguments provided. - - - - - A special value, which is used to indicate that BestCommonType() method - was unable to find a common type for the specified arguments. - - - - - Construct a GenericMethodHelper for a method - - MethodInfo for the method to examine - - - - Return the type arguments for the method, deducing them - from the arguments actually provided. - - The arguments to the method - If successful, an array of type arguments. - - - - A minimalistic implementation of an immutable stack. Add members as needed. - - - - - Represents an empty stack. may be used instead. - - - - - Returns a new immutable stack which begins with the specified value and continues with the values in the - current stack. - - The beginning value of the new stack. - - - - InvalidTestFixtureException is thrown when an appropriate test - fixture constructor using the provided arguments cannot be found. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - InvalidPlatformException is thrown when the platform name supplied - to a test is not recognized. - - - - - Instantiates a new instance of the class. - - - - - Instantiates a new instance of the class - - The message. - - - - Instantiates a new instance of the class - - The message. - The inner. - - - - Serialization constructor for the class - - - - - InvalidTestFixtureException is thrown when an appropriate test - fixture constructor using the provided arguments cannot be found. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - Interface for logging within the engine - - - - - Logs the specified message at the error level. - - The message. - - - - Logs the specified message at the error level. - - The message. - The arguments. - - - - Logs the specified message at the warning level. - - The message. - - - - Logs the specified message at the warning level. - - The message. - The arguments. - - - - Logs the specified message at the info level. - - The message. - - - - Logs the specified message at the info level. - - The message. - The arguments. - - - - Logs the specified message at the debug level. - - The message. - - - - Logs the specified message at the debug level. - - The message. - The arguments. - - - - InternalTrace provides facilities for tracing the execution - of the NUnit framework. Tests and classes under test may make use - of Console writes, System.Diagnostics.Trace or various loggers and - NUnit itself traps and processes each of them. For that reason, a - separate internal trace is needed. - - Note: - InternalTrace uses a global lock to allow multiple threads to write - trace messages. This can easily make it a bottleneck so it must be - used sparingly. Keep the trace Level as low as possible and only - insert InternalTrace writes where they are needed. - TODO: add some buffering and a separate writer thread as an option. - TODO: figure out a way to turn on trace in specific classes only. - - - - - Gets a flag indicating whether the InternalTrace is initialized - - - - - Initialize the internal trace facility using the name of the log - to be written to and the trace level. - - The log name - The trace level - - - - Initialize the internal trace using a provided TextWriter and level - - A TextWriter - The InternalTraceLevel - - - - Get a named Logger - - - - - - Get a logger named for a particular Type. - - - - - InternalTraceLevel is an enumeration controlling the - level of detailed presented in the internal log. - - - - - Use the default settings as specified by the user. - - - - - Do not display any trace messages - - - - - Display Error messages only - - - - - Display Warning level and higher messages - - - - - Display informational and higher messages - - - - - Display debug messages and higher - i.e. all messages - - - - - Display debug messages and higher - i.e. all messages - - - - - A trace listener that writes to a separate file per domain - and process using it. - - - - - Construct an InternalTraceWriter that writes to a file. - - Path to the file to use - - - - Construct an InternalTraceWriter that writes to a - TextWriter provided by the caller. - - - - - - Returns the character encoding in which the output is written. - - The character encoding in which the output is written. - - - - Writes a character to the text string or stream. - - The character to write to the text stream. - - - - Writes a string to the text string or stream. - - The string to write. - - - - Writes a string followed by a line terminator to the text string or stream. - - The string to write. If is null, only the line terminator is written. - - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Clears all buffers for the current writer and causes any buffered data to be written to the underlying device. - - - - - Provides internal logging to the NUnit framework - - - - - Initializes a new instance of the class. - - The name. - The log level. - The writer where logs are sent. - - - - Logs the message at error level. - - The message. - - - - Logs the message at error level. - - The message. - The message arguments. - - - - Logs the message at warm level. - - The message. - - - - Logs the message at warning level. - - The message. - The message arguments. - - - - Logs the message at info level. - - The message. - - - - Logs the message at info level. - - The message. - The message arguments. - - - - Logs the message at debug level. - - The message. - - - - Logs the message at debug level. - - The message. - The message arguments. - - - - The MethodWrapper class wraps a MethodInfo so that it may - be used in a platform-independent manner. - - - - - Construct a MethodWrapper for a Type and a MethodInfo. - - - - - Construct a MethodInfo for a given Type and method name. - - - - - Gets the Type from which this method was reflected. - - - - - Gets the MethodInfo for this method. - - - - - Gets the name of the method. - - - - - Gets a value indicating whether the method is abstract. - - - - - Gets a value indicating whether the method is public. - - - - - Gets a value indicating whether the method is static. - - - - - Gets a value indicating whether the method contains unassigned generic type parameters. - - - - - Gets a value indicating whether the method is a generic method. - - - - - Gets a value indicating whether the MethodInfo represents the definition of a generic method. - - - - - Gets the return Type of the method. - - - - - Gets the parameters of the method. - - - - - - Returns the Type arguments of a generic method or the Type parameters of a generic method definition. - - - - - Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. - - The type arguments to be used - A new IMethodInfo with the type arguments replaced - - - - Returns an array of custom attributes of the specified type applied to this method - - - - - Gets a value indicating whether one or more attributes of the specified type are defined on the method. - - - - - Invokes the method, converting any TargetInvocationException to an NUnitException. - - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - Override ToString() so that error messages in NUnit's own tests make sense - - - - - This class ensures the is correctly cleared - or restored around framework actions. This is important if running multiple assemblies within the same - process, to ensure no leakage from one assembly to the next. See https://github.com/nunit/nunit-console/issues/325 - - - - - Thrown when an assertion failed. Here to preserve the inner - exception and hence its stack trace. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The error message that explains - the reason for the exception - - - - Initializes a new instance of the class. - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Enables the syntax. - - - - - Wraps an action so that it is executed when the returned object is disposed. - This disposal is thread-safe and the action will be executed at most once. - - - - - OSPlatform represents a particular operating system platform - - - - - Platform ID for Unix as defined by .NET - - - - - Platform ID for Unix as defined by Mono - - - - - Platform ID for XBox as defined by .NET and Mono - - - - - Platform ID for MacOSX as defined by .NET and Mono - - - - - Get the OSPlatform under which we are currently running - - - - - Gets the actual OS Version, not the incorrect value that might be - returned for Win 8.1 and Win 10 - - - If an application is not manifested as Windows 8.1 or Windows 10, - the version returned from Environment.OSVersion will not be 6.3 and 10.0 - respectively, but will be 6.2 and 6.3. The correct value can be found in - the registry. - - The original version - The correct OS version - - - - Product Type Enumeration used for Windows - - - - - Product type is unknown or unspecified - - - - - Product type is Workstation - - - - - Product type is Domain Controller - - - - - Product type is Server - - - - - Construct from a platform ID and version - - - - - Construct from a platform ID, version and product type - - - - - Get the platform ID of this instance - - - - - Implemented to use in place of Environment.OSVersion.ToString() - - A representation of the platform ID and version in an approximation of the format used by Environment.OSVersion.ToString() - - - - Get the Version of this instance - - - - - Get the Product Type of this instance - - - - - Return true if this is a windows platform - - - - - Return true if this is a Unix or Linux platform - - - - - Return true if the platform is Win32S - - - - - Return true if the platform is Win32Windows - - - - - Return true if the platform is Win32NT - - - - - Return true if the platform is Windows CE - - - - - Return true if the platform is Xbox - - - - - Return true if the platform is MacOSX - - - - - Return true if the platform is Windows 95 - - - - - Return true if the platform is Windows 98 - - - - - Return true if the platform is Windows ME - - - - - Return true if the platform is NT 3 - - - - - Return true if the platform is NT 4 - - - - - Return true if the platform is NT 5 - - - - - Return true if the platform is Windows 2000 - - - - - Return true if the platform is Windows XP - - - - - Return true if the platform is Windows 2003 Server - - - - - Return true if the platform is NT 6 - - - - - Return true if the platform is NT 6.0 - - - - - Return true if the platform is NT 6.1 - - - - - Return true if the platform is NT 6.2 - - - - - Return true if the platform is NT 6.3 - - - - - Return true if the platform is Vista - - - - - Return true if the platform is Windows 2008 Server (original or R2) - - - - - Return true if the platform is Windows 2008 Server (original) - - - - - Return true if the platform is Windows 2008 Server R2 - - - - - Return true if the platform is Windows 2012 Server (original or R2) - - - - - Return true if the platform is Windows 2012 Server (original) - - - - - Return true if the platform is Windows 2012 Server R2 - - - - - Return true if the platform is Windows 7 - - - - - Return true if the platform is Windows 8 - - - - - Return true if the platform is Windows 8.1 - - - - - Return true if the platform is Windows 10 - - - - - Return true if the platform is Windows Server. This is named Windows - Server 10 to distinguish it from previous versions of Windows Server. - - - - - - Examines an attribute argument and tries to simulate what that value would have been if the literal syntax - which might have defined the value in C# had instead been used as an argument to a given method parameter in a direct call. - - - For example, since you can’t apply attributes using arguments, we allow the C# syntax - 10 ( value) or 0.1 ( value) to be specified. - NUnit then converts it to match the method’s parameters, just as if you were actually - using the syntax TestMethod(10) or TestMethod(0.1). - - - For another example, you might have written the syntax 10 and picked up the attribute - constructor overload; however, the test method for which this value is intended only has a - signature. Again, NUnit simulates what would have happened if the inferred C# syntax was transplanted - and you were actually using the syntax TestMethod(10). - - - - - - Converts an array of objects to the , if it is supported. - - - - - Converts a single value to the , if it is supported. - - - - - Performs several special conversions allowed by NUnit in order to - permit arguments with types that cannot be used in the constructor - of an Attribute such as TestCaseAttribute or to simplify their use. - - The value to be converted - The target in which the should be converted - If conversion was successfully applied, the converted into - - if was converted and should be used; - is no conversion was applied and should be ignored - - - - - The ParameterWrapper class wraps a ParameterInfo so that it may - be used in a platform-independent manner. - - - - - Construct a ParameterWrapper for a given method and parameter - - - - - - - Gets a value indicating whether the parameter is optional - - - - - Gets an IMethodInfo representing the method for which this is a parameter. - - - - - Gets the underlying ParameterInfo - - - - - Gets the Type of the parameter - - - - - Returns an array of custom attributes of the specified type applied to this method - - - - - Gets a value indicating whether one or more attributes of the specified type are defined on the parameter. - - - - - PlatformHelper class is used by the PlatformAttribute class to - determine whether a platform is supported. - - - - - Comma-delimited list of all supported OS platform constants - - - - - Comma-delimited list of all supported Runtime platform constants - - - - - Default constructor uses the operating system and - common language runtime of the system. - - - - - Construct a PlatformHelper for a particular operating - system and common language runtime. Used in testing. - - RuntimeFramework to be used - OperatingSystem to be used - - - - Test to determine if one of a collection of platforms - is being used currently. - - - - - - - Tests to determine if the current platform is supported - based on a platform attribute. - - The attribute to examine - - - - - Tests to determine if the current platform is supported - based on a platform attribute. - - The attribute to examine - - - - - Test to determine if a particular platform or comma-delimited set of platforms is in use. - - Name of the platform or comma-separated list of platform ids - True if the platform is in use on the system - - - - Return the last failure reason. Results are not - defined if called before IsSupported( Attribute ) - is called. - - - - - Implements a simplified filter for use in deciding which - Types and Methods should be used to generate tests. It is constructed with a - list of strings, each of which may end up being interpreted in various ways. - - - - - Return a new PreFilter, without elements, which is considered - empty and always matches. - - - - - Return true if the filter is empty, in which case it - always succeeds. Technically, this is just a filter and - you can add elements but it's best to use Empty when - you need an empty filter and new when you plan to add. - - - - - Add a new filter element to the filter - - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - A PropertyBag represents a collection of name value pairs - that allows duplicate entries with the same key. Methods - are provided for adding a new pair as well as for setting - a key to a single value. All keys are strings but values - may be of any type. Null values are not permitted, since - a null entry represents the absence of the key. - - - - - Adds a key/value pair to the property set - - The key - The value - - - - Sets the value for a key, removing any other - values that are already in the property set. - - - - - - - Gets a single value for a key, using the first - one if multiple values are present and returning - null if the value is not found. - - - - - - - Gets a flag indicating whether the specified key has - any entries in the property set. - - The key to be checked - - True if their are values present, otherwise false - - - - - Gets a collection containing all the keys in the property set - - - - - - Gets or sets the list of values for a particular key - - - - - Returns an XmlNode representing the current PropertyBag. - - Not used - An XmlNode representing the PropertyBag - - - - Returns an XmlNode representing the PropertyBag after - adding it as a child of the supplied parent node. - - The parent node. - Not used - - - - - The PropertyNames class provides static constants for the - standard property ids that NUnit uses on tests. - - - - - The FriendlyName of the AppDomain in which the assembly is running - - - - - The selected strategy for joining parameter data into test cases - - - - - The process ID of the executing assembly - - - - - The stack trace from any data provider that threw - an exception. - - - - - The reason a test was not run - - - - - The author of the tests - - - - - The ApartmentState required for running the test - - - - - The categories applying to a test - - - - - The Description of a test - - - - - The number of threads to be used in running tests - - - - - The maximum time in ms, above which the test is considered to have failed - - - - - The ParallelScope associated with a test - - - - - The number of times the test should be repeated - - - - - Indicates that the test should be run on a separate thread - - - - - The culture to be set for a test - - - - - The UI culture to be set for a test - - - - - The type that is under test - - - - - The timeout value for the test - - - - - The test will be ignored until the given date - - - - - The optional Order the test will run in - - - - - Randomizer returns a set of random values in a repeatable - way, to allow re-running of tests if necessary. It extends - the .NET Random class, providing random values for a much - wider range of types. - - The class is used internally by the framework to generate - test case data and is also exposed for use by users through - the TestContext.Random property. - - - For consistency with the underlying Random Type, methods - returning a single value use the prefix "Next..." Those - without an argument return a non-negative value up to - the full positive range of the Type. Overloads are provided - for specifying a maximum or a range. Methods that return - arrays or strings use the prefix "Get..." to avoid - confusion with the single-value methods. - - - - - Initial seed used to create randomizers for this run - - - - - Get a Randomizer for a particular member, returning - one that has already been created if it exists. - This ensures that the same values are generated - each time the tests are reloaded. - - - - - Get a randomizer for a particular parameter, returning - one that has already been created if it exists. - This ensures that the same values are generated - each time the tests are reloaded. - - - - - Create a new Randomizer using the next seed - available to ensure that each randomizer gives - a unique sequence of values. - - - - - - Default constructor - - - - - Construct based on seed value - - - - - - Returns a random unsigned int. - - - - - Returns a random unsigned int less than the specified maximum. - - - - - Returns a random unsigned int within a specified range. - - - - - Returns a non-negative random short. - - - - - Returns a non-negative random short less than the specified maximum. - - - - - Returns a non-negative random short within a specified range. - - - - - Returns a random unsigned short. - - - - - Returns a random unsigned short less than the specified maximum. - - - - - Returns a random unsigned short within a specified range. - - - - - Returns a random long. - - - - - Returns a random long less than the specified maximum. - - - - - Returns a non-negative random long within a specified range. - - - - - Returns a random ulong. - - - - - Returns a random ulong less than the specified maximum. - - - - - Returns a non-negative random long within a specified range. - - - - - Returns a random Byte - - - - - Returns a random Byte less than the specified maximum. - - - - - Returns a random Byte within a specified range - - - - - Returns a random SByte - - - - - Returns a random sbyte less than the specified maximum. - - - - - Returns a random sbyte within a specified range - - - - - Returns a random bool - - - - - Returns a random bool based on the probability a true result - - - - - Returns a random double between 0.0 and the specified maximum. - - - - - Returns a random double within a specified range. - - - - - Returns a random float. - - - - - Returns a random float between 0.0 and the specified maximum. - - - - - Returns a random float within a specified range. - - - - - Returns a random enum value of the specified Type as an object. - - - - - Returns a random enum value of the specified Type. - - - - - Default characters for random functions. - - Default characters are the English alphabet (uppercase & lowercase), Arabic numerals, and underscore - - - - Generate a random string based on the characters from the input string. - - desired length of output string. - string representing the set of characters from which to construct the resulting string - A random string of arbitrary length - - - - Generate a random string based on the characters from the input string. - - desired length of output string. - A random string of arbitrary length - Uses DefaultStringChars as the input character set - - - - Generate a random string based on the characters from the input string. - - A random string of the default length - Uses DefaultStringChars as the input character set - - - - Returns a random decimal. - - - - - Returns a random decimal between positive zero and the specified maximum. - - - - - Returns a random decimal within a specified range, which is not - permitted to exceed decimal.MaxVal in the current implementation. - - - A limitation of this implementation is that the range from min - to max must not exceed decimal.MaxVal. - - - - - Generates a valid version 4 . - - - - - Helper methods for inspecting a type by reflection. - - Many of these methods take ICustomAttributeProvider as an - argument to avoid duplication, even though certain attributes can - only appear on specific types of members, like MethodInfo or Type. - - In the case where a type is being examined for the presence of - an attribute, interface or named member, the Reflect methods - operate with the full name of the member being sought. This - removes the necessity of the caller having a reference to the - assembly that defines the item being sought and allows the - NUnit core to inspect assemblies that reference an older - version of the NUnit framework. - - - - - Examine a fixture type and return true if it has a method with - a particular attribute. - - The type to examine - The attribute Type to look for - True if found, otherwise false - - - - Invoke the default constructor on a Type - - The Type to be constructed - An instance of the Type - - - - Invoke a constructor on a Type with arguments - - The Type to be constructed - Arguments to the constructor - An instance of the Type - - - - Returns an array of types from an array of objects. - Differs from by returning - for null elements rather than throwing . - - - - - Gets the constructors to which the specified argument types can be coerced. - - - - - Determines if the given types can be coerced to match the given parameters. - - - - - Determines whether the current type can be implicitly converted to the specified type. - - - - - Invoke a parameterless method returning void on an object. - - A MethodInfo for the method to be invoked - The object on which to invoke the method - - - - Invoke a method, converting any TargetInvocationException to an NUnitException. - - A MethodInfo for the method to be invoked - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - - Selects the ultimate shadowing property just like dynamic would, - rather than throwing - for properties that shadow properties of a different property type - which is what does. - - - If you request both public and nonpublic properties, every public property is preferred - over every nonpublic property. It would violate the principle of least surprise for a - derived class’s implementation detail to be chosen over the public API for a type. - - - See . - See . - See . - - - - Same as GetMethod(, | - , , , - ) except that it also chooses only non-generic methods. - Useful for avoiding the you can have with GetMethod. - - - - - Returns the get accessor for the indexer. - - Type to reflect on for the indexer. - List of indexer types that matches the indexer type order. - The Get accessor - - - - Represents the result of running a single test case. - - - - - Construct a TestCaseResult based on a TestMethod - - A TestMethod to which the result applies. - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that executed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - The TestResult class represents the result of a test. - - - - - Error message for when child tests have errors - - - - - Error message for when child tests have warnings - - - - - Error message for when child tests are ignored - - - - - Error message for when user has cancelled the test run - - - - - The minimum duration for tests - - - - - Aggregate assertion count - - - - - ReaderWriterLock - - - - - Construct a test result given a Test - - The test to be used - - - - Gets the test with which this result is associated. - - - - - Gets the ResultState of the test result, which - indicates the success or failure of the test. - - - - - Gets the name of the test result - - - - - Gets the full name of the test result - - - - - Gets or sets the elapsed time for running the test in seconds - - - - - Gets or sets the time the test started running. - - - - - Gets or sets the time the test finished running. - - - - - Adds a test attachment to the test result - - The TestAttachment object to attach - - - - Gets the collection of files attached to the test - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - - Gets or sets the count of asserts executed - when running the test. - - - - - Gets the number of test cases executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - Gets a TextWriter, which will write output to be included in the result. - - - - - Gets any text output written to this result. - - - - - Gets a list of assertion results associated with the test. - - - - - Returns the XML representation of the result. - - If true, descendant results are included - An XmlNode representing the result - - - - Adds the XML representation of the result as a child of the - supplied parent node.. - - The parent node. - If true, descendant results are included - - - - - Gets a count of pending failures (from Multiple Assert) - - - - - Gets the worst assertion status (highest enum) in all the assertion results - - - - - Set the result of the test - - The ResultState to use in the result - - - - Set the result of the test - - The ResultState to use in the result - A message associated with the result state - - - - Set the result of the test - - The ResultState to use in the result - A message associated with the result state - Stack trace giving the location of the command - - - - Set the test result based on the type of exception thrown - - The exception that was thrown - - - - Set the test result based on the type of exception thrown - - The exception that was thrown - The FailureSite to use in the result - - - - RecordTearDownException appends the message and stack trace - from an exception arising during teardown of the test - to any previously recorded information, so that any - earlier failure information is not lost. Note that - calling Assert.Ignore, Assert.Inconclusive, etc. during - teardown is treated as an error. If the current result - represents a suite, it may show a teardown error even - though all contained tests passed. - - The Exception to be recorded - - - - Update overall test result, including legacy Message, based - on AssertionResults that have been saved to this point. - - - - - Record an assertion result - - - - - Record an assertion result - - - - - Record an assertion result - - - - - Creates a failure message incorporating failures - from a Multiple Assert block for use by runners - that don't know about AssertionResults. - - Message as a string - - - - Adds a failure element to a node and returns it. - - The target node. - The new failure element. - - - - Adds an attachments element to a node and returns it. - - The target node. - The new attachments element. - - - - Represents the result of running a test suite - - - - - Construct a TestSuiteResult base on a TestSuite - - The TestSuite to which the result applies - - - - Gets the number of test cases that executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - Adds a child result to this result, setting this result's - ResultState to Failure if the child result failed. - - The result to be added - - - - RuntimeFramework represents a particular version - of a common language runtime implementation. - - - - - DefaultVersion is an empty Version, used to indicate that - NUnit should select the CLR version to use for the test. - - - - - Construct from a runtime type and version. If the version has - two parts, it is taken as a framework version. If it has three - or more, it is taken as a CLR version. In either case, the other - version is deduced based on the runtime type and provided version. - - The runtime type of the framework - The version of the framework - - - - Static method to return a RuntimeFramework object - for the framework that is currently in use. - - - - - The type of this runtime framework - - - - - The framework version for this runtime framework - - - - - The CLR version for this runtime framework - - - - - Return true if any CLR version may be used in - matching this RuntimeFramework object. - - - - - Returns the Display name for this framework - - - - - Parses a string representing a RuntimeFramework. - The string may be just a RuntimeType name or just - a Version or a hyphenated RuntimeType-Version or - a Version prefixed by 'versionString'. - - - - - - - Overridden to return the short name of the framework - - - - - - Returns true if the current framework matches the - one supplied as an argument. Two frameworks match - if their runtime types are the same or either one - is RuntimeType.Any and all specified version components - are equal. Negative (i.e. unspecified) version - components are ignored. - - The RuntimeFramework to be matched. - True on match, otherwise false - - - - Enumeration identifying a common language - runtime implementation. - - - - Any supported runtime framework - - - Microsoft .NET Framework - - - Microsoft .NET Framework - - - Microsoft Shared Source CLI - - - Mono - - - MonoTouch - - - Microsoft .NET Core, including .NET 5+ - - - - Holds thread state which is captured and restored in order to sandbox user code. - - - - - Thread principal. - This will be null on platforms that don't support . - - - - - Captures a snapshot of the tracked state of the current thread to be restored later. - - - - - Restores the tracked state of the current thread to the previously captured state. - - - - - Returns a copy with the specified culture. - - - - - Returns a copy with the specified UI culture. - - - - - Returns a copy with the specified principal. - - - - - May be called from any thread. - - - - - May be called from any thread. - - - - - May be called from any thread. - - - - - May be called from any thread, but may only be called once. - - - - - StackFilter class is used to remove internal NUnit - entries from a stack trace so that the resulting - trace provides better information about the test. - - - - - Single instance of our default filter - - - - - Construct a stack filter instance - - Regex pattern used to delete lines from the top of the stack - Regex pattern used to delete lines from the bottom of the stack - - - - Construct a stack filter instance - - Regex pattern used to delete lines from the top of the stack - - - - Construct a stack filter instance - - - - - Filters a raw stack trace and returns the result. - - The original stack trace - A filtered stack trace - - - - Provides methods to support legacy string comparison methods. - - - - - Compares two strings for equality, ignoring case if requested. - - The first string. - The second string.. - if set to , the case of the letters in the strings is ignored. - Zero if the strings are equivalent, a negative number if strA is sorted first, a positive number if - strB is sorted first - - - - Compares two strings for equality, ignoring case if requested. - - The first string. - The second string.. - if set to , the case of the letters in the strings is ignored. - True if the strings are equivalent, false if not. - - - - The TestCaseParameters class encapsulates method arguments and - other selected parameters needed for constructing - a parameterized test case. - - - - - The expected result to be returned - - - - - Default Constructor creates an empty parameter set - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a ParameterSet from an object implementing ITestCaseData - - - - - - The expected result of the test, which - must match the method return type. - - - - - Gets a value indicating whether an expected result was specified. - - - - - TestCaseTimeoutException is thrown when a test running directly - on a TestWorker thread is cancelled due to timeout. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - Helper class used to save and restore certain static or - singleton settings in the environment that affect tests - or which might be changed by the user tests. - - - - - Link to a prior saved context - - - - - Indicates that a stop has been requested - - - - - The event listener currently receiving notifications - - - - - The number of assertions for the current test - - - - - The current test result - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - An existing instance of TestExecutionContext. - - - - Gets and sets the current context. - - - - - Gets or sets the current test - - - - - The time the current test started execution - - - - - The time the current test started in Ticks - - - - - Gets the elapsed time for running the test in seconds - - - - - Gets or sets the current test result - - - - - Gets a TextWriter that will send output to the current test result. - - - - - The current test object - that is the user fixture - object on which tests are being executed. - - - - - Get or set indicator that run should stop on the first error - - - - - Gets an enum indicating whether a stop has been requested. - - - - - The current test event listener - - - - - The current WorkItemDispatcher. Made public for - use by nunitlite.tests - - - - - The ParallelScope to be used by tests running in this context. - For builds with out the parallel feature, it has no effect. - - - - - Default tolerance value used for floating point equality - when no other tolerance is specified. - - - - - The worker that spawned the context. - For builds without the parallel feature, it is null. - - - - - Gets the RandomGenerator specific to this Test - - - - - Gets the assert count. - - The assert count. - - - - The current nesting level of multiple assert blocks - - - - - Gets or sets the test case timeout value - - - - - Gets a list of ITestActions set by upstream tests - - - - - Saves or restores the CurrentCulture - - - - - Saves or restores the CurrentUICulture - - - - - Gets or sets the current for the Thread. - - - - - The current head of the ValueFormatter chain, copied from MsgUtils.ValueFormatter - - - - - If true, all tests must run on the same thread. No new thread may be spawned. - - - - - The number of times the current test has been scheduled for execution. - Currently only being executed in a test using the - - - - - Record any changes in the environment made by - the test code in the execution context so it - will be passed on to lower level tests. - - - - - Set up the execution environment to match a context. - Note that we may be running on the same thread where the - context was initially created or on a different thread. - - - - - Increments the assert count by one. - - - - - Increments the assert count by a specified amount. - - - - - Adds a new ValueFormatterFactory to the chain of formatters - - The new factory - - - - Sends a message from test to listeners. This message is not kind of test output and doesn't go to test result. - - A name recognized by the intended listeners. - A message to be sent - - - - Obtain lifetime service object - - - - - - An IsolatedContext is used when running code - that may effect the current result in ways that - should not impact the final result of the test. - A new TestExecutionContext is created with an - initially clear result, which is discarded on - exiting the context. - - - using (new TestExecutionContext.IsolatedContext()) - { - // Code that should not impact the result - } - - - - - Save the original current TestExecutionContext and - make a new isolated context current. - - - - - Restore the original TestExecutionContext. - - - - - An AdhocTestExecutionContext is created whenever a context is needed - but not available in CurrentContext. This happens when tests are run - on an ad-hoc basis or Asserts are used outside of tests. - - - - - Construct an AdhocTestExecutionContext, which is used - whenever the current TestExecutionContext is found to be null. - - - - - Enumeration indicating whether the tests are - running normally or being cancelled. - - - - - Running normally with no stop requested - - - - - A graceful stop has been requested - - - - - A forced stop has been requested - - - - - Interface to be implemented by filters applied to tests. - The filter applies when running the test, after it has been - loaded, since this is the only time an ITest exists. - - - - - Unique Empty filter. - - - - - Indicates whether this is the EmptyFilter - - - - - Indicates whether this is a top-level filter, - not contained in any other filter. - - - - - Determine if a particular test passes the filter criteria. The default - implementation checks the test itself, its parents and any descendants. - - Derived classes may override this method or any of the Match methods - to change the behavior of the filter. - - The test to which the filter is applied - True if the test passes the filter, otherwise false - - - - Determine if a particular test passes the filter criteria. The default - implementation checks the test itself, its parents and any descendants. - - Derived classes may override this method or any of the Match methods - to change the behavior of the filter. - - The test to which the filter is applied - If set to we are carrying a negation through - True if the test passes the filter, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - Determine whether the test itself matches the filter criteria, without - examining either parents or descendants. This is overridden by each - different type of filter to perform the necessary tests. - - The test to which the filter is applied - True if the filter matches the any parent of the test - - - - Determine whether any ancestor of the test matches the filter criteria - - The test to which the filter is applied - True if the filter matches the an ancestor of the test - - - - Determine whether any descendant of the test matches the filter criteria. - - The test to be matched - True if at least one descendant matches the filter criteria - - - - Create a TestFilter instance from an XML representation. - - - - - Create a TestFilter from its TNode representation - - - - - Nested class provides an empty filter - one that always - returns true when called. It never matches explicitly. - - - - - Adds an XML node - - True if recursive - The added XML node - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - The TestCaseParameters class encapsulates method arguments and - other selected parameters needed for constructing - a parameterized test case. - - - - - Default Constructor creates an empty parameter set - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a ParameterSet from an object implementing ITestCaseData - - - - - - Type arguments used to create a generic fixture instance - - - - - TestListener provides an implementation of ITestListener that - does nothing. It is used only through its NULL property. - - - - - Called when a test has just started - - The test that is starting - - - - Called when a test case has finished - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the message to send - - - - Construct a new TestListener - private so it may not be used. - - - - - Get a listener that does nothing - - - - - TestNameGenerator is able to create test names according to - a coded pattern. - - - - - Default pattern used to generate names - - - - - Construct a TestNameGenerator - - - - - Construct a TestNameGenerator - - The pattern used by this generator. - - - - Get the display name for a TestMethod and its arguments - - A TestMethod - The display name - - - - Get the display name for a TestMethod and its arguments - - A TestMethod - Arguments to be used - The display name - - - - TestParameters is the abstract base class for all classes - that know how to provide data for constructing a test. - - - - - Default Constructor creates an empty parameter set - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a ParameterSet from an object implementing ITestData - - - - - - The RunState for this set of parameters. - - - - - The arguments to be used in running the test, - which must match the method signature. - - - - - A name to be used for this test case in lieu - of the standard generated name containing - the argument list. - - - - - Gets the property dictionary for this test - - - - - Applies ParameterSet values to the test itself. - - A test. - - - - The original arguments provided by the user, - used for display purposes. - - - - - The list of display names to use as the parameters in the test name. - - - - - TestProgressReporter translates ITestListener events into - the async callbacks that are used to inform the client - software about the progress of a test run. - - - - - Initializes a new instance of the class. - - The callback handler to be used for reporting progress. - - - - Called when a test has just started - - The test that is starting - - - - Called when a test has finished. Sends a result summary to the callback. - to - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - Returns the parent test item for the target test item if it exists - - - parent test item - - - - Makes a string safe for use as an attribute, replacing - characters that can't be used with their - corresponding XML representations. - - The string to be used - A new string with the values replaced - - - - ParameterizedFixtureSuite serves as a container for the set of test - fixtures created from a given Type using various parameters. - - - - - Initializes a new instance of the class. - - The ITypeInfo for the type that represents the suite. - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets a string representing the type of test - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - ParameterizedMethodSuite holds a collection of individual - TestMethods with their arguments applied. - - - - - Initializes a new instance of the class. - - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets a MethodInfo for the method implementing this test. - - - - - Gets a string representing the type of test - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - SetUpFixture extends TestSuite and supports - Setup and TearDown methods. - - - - - Initializes a new instance of the class. - - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the TypeInfo of the fixture used in running this test. - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - The Test abstract class represents a test within the framework. - - - - - Static value to seed ids. It's started at 1000 so any - uninitialized ids will stand out. - - - - - Used to cache the declaring type for this MethodInfo - - - - - Method property backing field - - - - - Constructs a test given its name - - The name of the test - - - - Constructs a test given the path through the - test hierarchy to its parent and a name. - - The parent tests full name - The name of the test - - - - Constructs a test for a specific type. - - - - - Constructs a test for a specific method. - - - - - Gets or sets the id of the test - - - - - - Gets or sets the name of the test - - - - - Gets or sets the fully qualified name of the test - - - - - - Gets the name of the class where this test was declared. - Returns null if the test is not associated with a class. - - - - - Gets the name of the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - The arguments to use in creating the test or empty array if none required. - - - - - Gets the TypeInfo of the fixture used in running this test - or null if no fixture type is associated with it. - - - - - Gets a MethodInfo for the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - Whether or not the test should be run - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Gets a string representing the type of test. Used as an attribute - value in the XML representation of a test and has no other - function in the framework. - - - - - Gets a count of test cases represented by - or contained under this test. - - - - - Gets the properties for this test - - - - - Returns true if this is a TestSuite - - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets the parent as a Test object. - Used by the core to set the parent. - - - - - Gets this test's child tests - - A list of child tests - - - - Gets or sets a fixture object for running this test. - - - - - Static prefix used for ids in this AppDomain. - Set by FrameworkController. - - - - - Gets or Sets the Int value representing the seed for the RandomGenerator - - - - - - The SetUp methods. - - - - - The teardown methods - - - - - Creates a TestResult for this test. - - A TestResult suitable for this type of test. - - - - Modify a newly constructed test by applying any of NUnit's common - attributes, based on a supplied , which is - usually the reflection element from which the test was constructed, - but may not be in some instances. The attributes retrieved are - saved for use in subsequent operations. - - - - - Mark the test as Invalid (not runnable) specifying a reason - - The reason the test is not runnable - - - - Get custom attributes applied to a test - - - - - Add standard attributes and members to a test node. - - - - - - - Returns the XML representation of the test - - If true, include child tests recursively - - - - - Returns an XmlNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - An object to compare with this instance. - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - An object to compare with this instance. - - - - TestAssembly is a TestSuite that represents the execution - of tests in a managed assembly. - - - - - Initializes a new instance of the class - specifying the Assembly and the suite name. - - The assembly this test represents. - - This becomes the full name of the suite and the filename part is used as the suite name. - - - - - Initializes a new instance of the class - specifying the suite name for an assembly that could not be loaded. - - - This becomes the full name of the suite and the filename part is used as the suite name. - - - - - Creates a copy of the given assembly with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the Assembly represented by this instance. - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Get custom attributes specified on the assembly - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - TestFixture is a surrogate for a user test fixture class, - containing one or more tests. - - - - - The life cycle specified for the current test fixture. - - - - - Initializes a new instance of the class. - - Type of the fixture. - Arguments used to instantiate the test fixture, or null if none used - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the TypeInfo of the fixture used in running this test. - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - The TestMethod class represents a Test implemented as a method. - - - - - The ParameterSet used to create this test method - - - - - Initializes a new instance of the class. - - The method to be used as a test. - - - - Initializes a new instance of the class. - - The method to be used as a test. - The suite or fixture to which the new test will be added - - - - Gets a MethodInfo for the method implementing this test. - - - - - The arguments to use in executing the test method, or empty array if none are provided. - - - - - Overridden to return a TestCaseResult. - - A TestResult for this test. - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Returns a TNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - - Gets this test's child tests - - A list of child tests - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Returns the name of the method - - - - - TestSuite represents a composite test, which contains other tests. - - - - - Our collection of child tests - - - - - Initializes a new instance of the class. - - The name of the suite. - - - - Initializes a new instance of the class. - - Name of the parent suite. - The name of the suite. - - - - Initializes a new instance of the class. - - Type of the fixture. - Arguments used to instantiate the test fixture, or null if none used. - - - - Initializes a new instance of the class. - - Type of the fixture. - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Sorts tests under this suite. - - - - - Adds a test to the suite. - - The test. - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - Gets this test's child tests - - The list of child tests - - - - Gets a count of test cases represented by - or contained under this test. - - - - - - The arguments to use in creating the fixture, or empty array if none are provided. - - - - - Set to true to suppress sorting this suite's contents - - - - - OneTimeSetUp methods for this suite - - - - - OneTimeTearDown methods for this suite - - - - - Overridden to return a TestSuiteResult. - - A TestResult for this test. - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Returns an XmlNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - - Check that setup and teardown methods marked by certain attributes - meet NUnit's requirements and mark the tests not runnable otherwise. - - - - - ThreadUtility provides a set of static methods convenient - for working with threads. - - - - - Pre-Task compatibility - - - - - Abort a thread, helping to dislodging it if it is blocked in native code - - The thread to abort - The native thread id (if known), otherwise 0. - If provided, allows the thread to be killed if it's in a message pump native blocking wait. - This must have previously been captured by calling from the running thread itself. - - - - Do our best to kill a thread - - The thread to kill - The native thread id (if known), otherwise 0. - If provided, allows the thread to be killed if it's in a message pump native blocking wait. - This must have previously been captured by calling from the running thread itself. - - - - Do our best to kill a thread, passing state info - - The thread to kill - Info for the ThreadAbortException handler - The native thread id (if known), otherwise 0. - If provided, allows the thread to be killed if it's in a message pump native blocking wait. - This must have previously been captured by calling from the running thread itself. - - - - Schedule a thread pool thread to check on the aborting thread in case it's in a message pump native blocking wait - - - - - Captures the current thread's native id. If provided to later, allows the thread to be killed if it's in a message pump native blocking wait. - - - - - Sends a message to the thread to dislodge it from native code and allow a return to managed code, where a ThreadAbortException can be generated. - The message is meaningless (WM_CLOSE without a window handle) but it will end any blocking message wait. - - - - Gets or if the current platform does not support it. - - - Sets if current platform supports it. - Value to set. If the current platform does not support then the only allowed value is . - - - - TypeHelper provides static methods that operate on Types. - - - - - Gets the display name for a Type as used by NUnit. - - The Type for which a display name is needed. - The display name for the Type - - - - Gets the display name for a Type as used by NUnit. - - The Type for which a display name is needed. - The arglist provided. - The display name for the Type - - - - Returns the best fit for a common type to be used in - matching actual arguments to a methods Type parameters. - - - - - Determines whether the specified type is numeric. - - The type to be examined. - - if the specified type is numeric; otherwise, . - - - - - Convert an argument list to the required parameter types. - Currently, only widening numeric conversions are performed. - - An array of args to be converted - A ParameterInfo[] whose types will be used as targets - - - - Determines whether this instance can deduce type args for a generic type from the supplied arguments. - - The type to be examined. - The arglist. - The type args to be used. - - if this the provided args give sufficient information to determine the type args to be used; otherwise, . - - - - - Return the interfaces implemented by a Type. - - The Type to be examined. - An array of Types for the interfaces. - - - - Return whether or not the given type is a ValueTuple. - - Type. - Whether or not the given type is a ValueTuple. - - - - Return whether or not the given type is a Tuple. - - Type. - Whether or not the given type is a Tuple. - - - - Determines whether the cast to the given type would succeed. - If is and - can be , the cast succeeds just like the C# language feature. - - The object to cast. - - - - Casts to a value of the given type if possible. - If is and - can be , the cast succeeds just like the C# language feature. - - The object to cast. - The value of the object, if the cast succeeded. - - - - Used for resolving the type difference between objects. - - - - - Gets the shortened type name difference between and . - - The expected object. - The actual object. - Output of the unique type name for the expected object. - Output of the unique type name for actual object. - - - - Gets the shortened type name difference between and . - - The expected object . - The actual object . - Output of the unique type name for the expected object. - Output of the unique type name for actual object. - - - - Obtain the shortened generic template parameters of the given and , - if they are generic. - - The expected . - The actual . - Shortened generic parameters of the expected . - Shortened generic parameters of the actual . - - - - Obtain a shortened name of the given . - - - - - Shorten the given names by only including the relevant differing namespaces/types, if they differ. - - The expected . - The actual . - The shortened expected name. - The shortened actual name. - - - - Returns whether or not the is generic. - - - - - Returns the fully qualified generic name of a given . - - - - - Reconstruct a generic type name using the provided generic type name, and a - of the template parameters. - - The name of the generic type, including the number of template parameters expected. - A of names of the template parameters of the provided generic type. - - - - Obtain the shortened generic names of the given expected and actual s. - - The expected . - The actual . - The shortened expected generic name. - The shortened actual generic name. - - - - The TypeWrapper class wraps a Type so it may be used in - a platform-independent manner. - - - - - Construct a TypeWrapper for a specified Type. - - - - - Gets the underlying Type on which this TypeWrapper is based. - - - - - Gets the base type of this type as an ITypeInfo - - - - - Gets the Name of the Type - - - - - Gets the FullName of the Type - - - - - Gets the assembly in which the type is declared - - - - - Gets the namespace of the Type - - - - - Gets a value indicating whether the type is abstract. - - - - - Gets a value indicating whether the Type is a generic Type - - - - - Returns true if the Type wrapped is T - - - - - Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. - - - - - Gets a value indicating whether the Type is a generic Type definition - - - - - Gets a value indicating whether the type is sealed. - - - - - Gets a value indicating whether this type represents a static class. - - - - - Get the display name for this type - - - - - Get the display name for an object of this type, constructed with the specified args. - - - - - Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments - - - - - Returns a Type representing a generic type definition from which this Type can be constructed. - - - - - Returns an array of custom attributes of the specified type applied to this type - - - - - Returns a value indicating whether the type has an attribute of the specified type. - - - - - - - - Returns a flag indicating whether this type has a method with an attribute of the specified type. - - - - - - - Returns an array of IMethodInfos for methods of this Type - that match the specified flags. - - - - - Gets the public constructor taking the specified argument Types - - - - - Returns a value indicating whether this Type has a public constructor taking the specified argument Types. - - - - - Construct an object of this Type, using the specified arguments. - - - - - Override ToString() so that error messages in NUnit's own tests make sense - - - - - Returns all methods declared by this type that have the specified attribute, optionally - including base classes. Methods from a base class are always returned before methods from a class that - inherits from it. - - Specifies whether to search the fixture type inheritance chain. - - - - Encapsulates the ability to increment a value by an amount which may be of a different type. - - - - - Creates a from the specified value if the current instance is able to - use it to increment the on values which it operates. If the creation fails, - is thrown. - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values on which it operates. A return value indicates - whether the creation succeeded. - - - - - Provides a convenient shorthand when is - and the default value of represents zero. - - - - - Initializes a new instance of the class. - - The amount by which to increment each time this step is applied. - - Must increment the given value and return the result. - If the result is outside the range representable by , - must throw . If the result does not change due to lack - of precision representable by , must throw . - - - - - Increments the given value and returns the result. - If the result is outside the range representable by , - throws . If the result does not change due to lack - of precision representable by , throws . - - - - - - - Encapsulates the ability to increment a value by an amount - which may be of a different type. - - - - - Increments the given value and returns the result. - If the result is outside the range representable by , - throws . If the result does not change due to lack - of precision representable by , throws . - - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values of type . If the creation fails, - is thrown. - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values of type . A return value indicates - whether the creation succeeded. - - - - - The IgnoredTestCaseData class represents a ignored TestCaseData. It adds - the ability to set a date until which the test will be ignored. - - - - - The previous RunState - - - - - Set the date that the test is being ignored until - - The date that the test is being ignored until - A modified TestCaseData. - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for equality with zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable to the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable to the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - inclusively within a specified range. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - - Returns a constraint that tests if an item is equal to any of parameters - - Expected values - - - - When implemented by an attribute, this interface implemented to provide actions to execute before and after tests. - - - - - Executed before each test is run - - The test that is going to be run. - - - - Executed after each test is run - - The test that has just been run. - - - - Provides the target for the action attribute - - The target for the action attribute - - - - The Iz class is a synonym for Is intended for use in VB, - which regards Is as a keyword. - - - - - The List class is a helper class with properties and methods - that supply a number of constraints used with lists and collections. - - - - - List.Map returns a ListMapper, which can be used to map - the original collection to another collection. - - - - - - - ListMapper is used to transform a collection used as an actual argument - producing another collection to be used in the assertion. - - - - - Construct a ListMapper based on a collection - - The collection to be transformed - - - - Produces a collection containing all the values of a property - - The collection of property values - - - - - Basic Asserts on strings. - - - - - DO NOT USE! Use StringAssert.AreEqualIgnoringCase(...) or Assert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string is not found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - - - - Asserts that two strings are not equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are not equal, without regard to case. - - The expected string - The actual string - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - - - - The TestCaseData class represents a set of arguments - and other parameter info to be used for a parameterized - test case. It is derived from TestCaseParameters and adds a - fluent syntax for use in initializing the test case. - - - - - Initializes a new instance of the class. - - The arguments. - - - - Initializes a new instance of the class. - - The argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - The third argument. - - - - Sets the expected result for the test - - The expected result - A modified TestCaseData - - - - Sets the name of the test case - - The modified TestCaseData instance - - - - Sets the list of display names to use as the parameters in the test name. - - - - - Sets the description for the test case - being constructed. - - The description. - The modified TestCaseData instance. - - - - Applies a category to the test - - - - - - - Applies a named property to the test - - - - - - - - Applies a named property to the test - - - - - - - - Applies a named property to the test - - - - - - - - Marks the test case as explicit. - - - - - Marks the test case as explicit, specifying the reason. - - - - - Ignores this TestCase, specifying the reason. - - The reason. - - - - - Provide the context information of the current test. - This is an adapter for the internal ExecutionContext - class, hiding the internals from the user test. - - - - - Construct a TestContext for an ExecutionContext - - The ExecutionContext to adapt - - - - Get the current test context. This is created - as needed. The user may save the context for - use within a test, but it should not be used - outside the test for which it is created. - - - - - Gets a TextWriter that will send output to the current test result. - - - - - Gets a TextWriter that will send output directly to Console.Error - - - - - Gets a TextWriter for use in displaying immediate progress messages - - - - - TestParameters object holds parameters for the test run, if any are specified - - - - - Static DefaultWorkDirectory is now used as the source - of the public instance property WorkDirectory. This is - a bit odd but necessary to avoid breaking user tests. - - - - - Get a representation of the current test. - - - - - Gets a Representation of the TestResult for the current test. - - - - - Gets the unique name of the Worker that is executing this test. - - - - - Gets the directory containing the current test assembly. - - - - - Gets the directory to be used for outputting files created - by this test run. - - - - - Gets the random generator. - - - The random generator. - - - - - Gets the number of assertions executed - up to this point in the test. - - - - - Get the number of times the current Test has been repeated - when using the or . - - - - Write the string representation of a boolean value to the current result - - - Write a char to the current result - - - Write a char array to the current result - - - Write the string representation of a double to the current result - - - Write the string representation of an Int32 value to the current result - - - Write the string representation of an Int64 value to the current result - - - Write the string representation of a decimal value to the current result - - - Write the string representation of an object to the current result - - - Write the string representation of a Single value to the current result - - - Write a string to the current result - - - Write the string representation of a UInt32 value to the current result - - - Write the string representation of a UInt64 value to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a line terminator to the current result - - - Write the string representation of a boolean value to the current result followed by a line terminator - - - Write a char to the current result followed by a line terminator - - - Write a char array to the current result followed by a line terminator - - - Write the string representation of a double to the current result followed by a line terminator - - - Write the string representation of an Int32 value to the current result followed by a line terminator - - - Write the string representation of an Int64 value to the current result followed by a line terminator - - - Write the string representation of a decimal value to the current result followed by a line terminator - - - Write the string representation of an object to the current result followed by a line terminator - - - Write the string representation of a Single value to the current result followed by a line terminator - - - Write a string to the current result followed by a line terminator - - - Write the string representation of a UInt32 value to the current result followed by a line terminator - - - Write the string representation of a UInt64 value to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - - This method adds the a new ValueFormatterFactory to the - chain of responsibility used for formatting values in messages. - The scope of the change is the current TestContext. - - The factory delegate - - - - Attach a file to the current test result - - Relative or absolute file path to attachment - Optional description of attachment - - - - This method provides a simplified way to add a ValueFormatter - delegate to the chain of responsibility, creating the factory - delegate internally. It is useful when the Type of the object - is the only criterion for selection of the formatter, since - it can be used without getting involved with a compound function. - - The type supported by this formatter - The ValueFormatter delegate - - - - TestAdapter adapts a Test for consumption by - the user test code. - - - - - Construct a TestAdapter for a Test - - The Test to be adapted - - - - Gets the unique Id of a test - - - - - The name of the test, which may or may not be - the same as the method name. - - - - - The name of the method representing the test. - - - - - The FullName of the test - - - - - The ClassName of the test - - - - - A shallow copy of the properties of the test. - - - - - The arguments to use in creating the test or empty array if none are required. - - - - - ResultAdapter adapts a TestResult for consumption by - the user test code. - - - - - Construct a ResultAdapter for a TestResult - - The TestResult to be adapted - - - - Gets a ResultState representing the outcome of the test - up to this point in its execution. - - - - - Gets a list of the assertion results generated - up to this point in the test. - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - adapts an - for consumption by the user. - - - - - Construct a from a source - . - - - - - Get the first property with the given , if it can be found, otherwise - returns null. - - - - - Indicates whether is found in this - . - - - - - Returns a collection of properties - with the given . - - - - - Returns the count of elements with the given . - - - - - Returns a collection of the property keys. - - - - - The TestFixtureData class represents a set of arguments - and other parameter info to be used for a parameterized - fixture. It is derived from TestFixtureParameters and adds a - fluent syntax for use in initializing the fixture. - - - - - Initializes a new instance of the class. - - The arguments. - - - - Initializes a new instance of the class. - - The argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - The third argument. - - - - Sets the name of the test fixture - - The modified TestFixtureData instance - - - - Sets the list of display names to use as the parameters in the test name. - - - - - Marks the test fixture as explicit. - - - - - Marks the test fixture as explicit, specifying the reason. - - - - - Ignores this TestFixture, specifying the reason. - - The reason. - - - - - TestParameters class holds any named parameters supplied to the test run - - - - - Gets the number of test parameters - - - - - Gets a collection of the test parameter names - - - - - Gets a flag indicating whether a parameter with the specified name exists. - - Name of the parameter - True if it exists, otherwise false - - - - Indexer provides access to the internal dictionary - - Name of the parameter - Value of the parameter or null if not present - - - - Get method is a simple alternative to the indexer - - Name of the parameter - Value of the parameter or null if not present - - - - Get the value of a parameter or a default string - - Name of the parameter - Default value of the parameter - Value of the parameter or default value if not present - - - - Get the value of a parameter or return a default - - The return Type - Name of the parameter - Default value of the parameter - Value of the parameter or default value if not present - - - - Adds a parameter to the list - - Name of the parameter - Value of the parameter - - - - Helper class with properties and methods that supply - constraints that operate on exceptions. - - - - - Creates a constraint specifying an expected exception - - - - - Creates a constraint specifying an exception with a given InnerException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying an expected ArgumentException - - - - - Creates a constraint specifying an expected ArgumentNullException - - - - - Creates a constraint specifying an expected InvalidOperationException - - - - - Creates a constraint specifying that no exception is thrown - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Provides static methods to express conditions - that must be met for the test to succeed. If - any test fails, a warning is issued. - - - - - DO NOT USE! - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - Not applicable - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on success. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on success. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - The message to display if the condition is true - Arguments to be used in formatting the message - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning if it succeeds. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning if it succeeds. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - FrameworkPackageSettings is a static class containing constant values that - are used as keys in setting up a TestPackage. These values are used in - the framework, and set in the runner. Setting values may be a string, int or bool. - - - - - Flag (bool) indicating whether tests are being debugged. - - - - - Flag (bool) indicating whether to pause execution of tests to allow - the user to attach a debugger. - - - - - The InternalTraceLevel for this run. Values are: "Default", - "Off", "Error", "Warning", "Info", "Debug", "Verbose". - Default is "Off". "Debug" and "Verbose" are synonyms. - - - - - Full path of the directory to be used for work and result files. - This path is provided to tests by the framework TestContext. - - - - - Integer value in milliseconds for the default timeout value - for test cases. If not specified, there is no timeout except - as specified by attributes on the tests themselves. - - - - - A string representing the default thread culture to be used for - running tests. String should be a valid BCP-47 culture name. If - culture is unset, tests run on the machine's default culture. - - - - - A string representing the default thread UI culture to be used for - running tests. String should be a valid BCP-47 culture name. If - culture is unset, tests run on the machine's default culture. - - - - - A TextWriter to which the internal trace will be sent. - - - - - A list of tests to be loaded. - - - - - The number of test threads to run for the assembly. If set to - 1, a single queue is used. If set to 0, tests are executed - directly, without queuing. - - - - - The random seed to be used for this assembly. If specified - as the value reported from a prior run, the framework should - generate identical random values for tests as were used for - that run, provided that no change has been made to the test - assembly. Default is a random value itself. - - - - - If true, execution stops after the first error or failure. - - - - - If true, use of the event queue is suppressed and test events are synchronous. - - - - - The default naming pattern used in generating test names - - - - - Parameters to be passed on to the tests, serialized to a single string which needs parsing. Obsoleted by ; kept for backward compatibility. - - - - - Parameters to be passed on to the tests, already parsed into an IDictionary<string, string>. Replaces . - - - - - If true, the tests will run on the same thread as the NUnit runner itself - - - - - Provides a platform-independent methods for getting attributes - for use by AttributeConstraint and AttributeExistsConstraint. - - - - - Gets the custom attributes from the given object. - - The actual. - Type of the attribute. - if set to [inherit]. - A list of the given attribute on the given object. - - - - A MarshalByRefObject that lives forever - - - - - Obtains a lifetime service object to control the lifetime policy for this instance. - - - - - Provides NUnit specific extensions to aid in Reflection - across multiple frameworks - - - This version of the class supplies GetTypeInfo() on platforms - that don't support it. - - - - - GetTypeInfo gives access to most of the Type information we take for granted - on .NET Core and Windows Runtime. Rather than #ifdef different code for different - platforms, it is easiest to just code all platforms as if they worked this way, - thus the simple passthrough. - - - - - - - See . - - - - - Extensions for Assembly that are not available in pre-4.5 .NET releases - - - - - An easy way to get a single custom attribute from an assembly - - The attribute Type - The assembly - An attribute of Type T - - - - Extensions for MethodInfo that are not available in pre-4.5 .NET releases - - - - - See . - - - - - See . - - - - Specifies that null is allowed as an input even if the corresponding type disallows it. - - - Specifies that null is disallowed as an input even if the corresponding type allows it. - - - Specifies that an output may be null even if the corresponding type disallows it. - - - Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns. - - - Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter may be null. - - - - Gets the return value condition. - - - Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - - Gets the return value condition. - - - Specifies that the output will be non-null if the named parameter is non-null. - - - Initializes the attribute with the associated parameter name. - - The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. - - - - Gets the associated parameter name. - - - Applied to a method that will never return under any circumstance. - - - Specifies that the method will not return if the associated Boolean parameter is passed the specified value. - - - Initializes the attribute with the specified parameter value. - - The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to - the associated parameter matches this value. - - - - Gets the condition parameter value. - - - diff --git a/packages/NUnit.3.13.2/lib/net45/nunit.framework.dll b/packages/NUnit.3.13.2/lib/net45/nunit.framework.dll deleted file mode 100644 index 26afdf821ee3f0b4613057d70b02e679fd27f4cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482816 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 - The different targets a test action attribute can be applied to - - - - - Default target, which is determined by where the action attribute is attached - - - - - Target a individual test case - - - - - Target a suite of test cases - - - - - DefaultTestAssemblyBuilder loads a single assembly and builds a TestSuite - containing test fixtures present in the assembly. - - - - - The default suite builder used by the test assembly builder. - - - - - Initializes a new instance of the class. - - - - - Build a suite of tests from a provided assembly - - The assembly from which tests are to be built - A dictionary of options to use in building the suite - - A TestSuite containing the tests found in the assembly - - - - - Build a suite of tests given the name or the location of an assembly - - The name or the location of the assembly. - A dictionary of options to use in building the suite - - A TestSuite containing the tests found in the assembly - - - - - FrameworkController provides a facade for use in loading, browsing - and running tests without requiring a reference to the NUnit - framework. All calls are encapsulated in constructors for - this class and its nested classes, which only require the - types of the Common Type System as arguments. - - The controller supports four actions: Load, Explore, Count and Run. - They are intended to be called by a driver, which should allow for - proper sequencing of calls. Load must be called before any of the - other actions. The driver may support other actions, such as - reload on run, by combining these calls. - - - - - Construct a FrameworkController using the default builder and runner. - - The AssemblyName or path to the test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - - - - Construct a FrameworkController using the default builder and runner. - - The test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - - - - Construct a FrameworkController, specifying the types to be used - for the runner and builder. This constructor is provided for - purposes of development. - - The full AssemblyName or the path to the test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - The Type of the test runner - The Type of the test builder - - - - Construct a FrameworkController, specifying the types to be used - for the runner and builder. This constructor is provided for - purposes of development. - - The test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - The Type of the test runner - The Type of the test builder - - - - Gets the ITestAssemblyBuilder used by this controller instance. - - The builder. - - - - Gets the ITestAssemblyRunner used by this controller instance. - - The runner. - - - - Gets the AssemblyName or the path for which this FrameworkController was created - - - - - Gets the Assembly for which this - - - - - Gets a dictionary of settings for the FrameworkController - - - - - Loads the tests in the assembly - - - - - - Returns info about the tests in an assembly - - A string containing the XML representation of the filter to use - The XML result of exploring the tests - - - - Runs the tests in an assembly - - A string containing the XML representation of the filter to use - The XML result of the test run - - - - Runs the tests in an assembly synchronously reporting back the test results through the callback - or through the return value - - The callback that receives the test results - A string containing the XML representation of the filter to use - The XML result of the test run - - - - Runs the tests in an assembly asynchronously reporting back the test results through the callback - - The callback that receives the test results - A string containing the XML representation of the filter to use - - - - Stops the test run - - True to force the stop, false for a cooperative stop - - - - Counts the number of test cases in the loaded TestSuite - - A string containing the XML representation of the filter to use - The number of tests - - - - Inserts the environment and settings elements - - Target node - The updated target node - - - - Inserts environment element - - Target node - The new node - - - - Inserts settings element - - Target node - Settings dictionary - The new node - - - - FrameworkControllerAction is the base class for all actions - performed against a FrameworkController. - - - - - LoadTestsAction loads a test into the FrameworkController - - - - - LoadTestsAction loads the tests in an assembly. - - The controller. - The callback handler. - - - - ExploreTestsAction returns info about the tests in an assembly - - - - - Initializes a new instance of the class. - - The controller for which this action is being performed. - Filter used to control which tests are included (NYI) - The callback handler. - - - - CountTestsAction counts the number of test cases in the loaded TestSuite - held by the FrameworkController. - - - - - Construct a CountsTestAction and perform the count of test cases. - - A FrameworkController holding the TestSuite whose cases are to be counted - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - RunTestsAction runs the loaded TestSuite held by the FrameworkController. - - - - - Construct a RunTestsAction and run all tests in the loaded TestSuite. - - A FrameworkController holding the TestSuite to run - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - RunAsyncAction initiates an asynchronous test run, returning immediately - - - - - Construct a RunAsyncAction and run all tests in the loaded TestSuite. - - A FrameworkController holding the TestSuite to run - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - StopRunAction stops an ongoing run. - - - - - Construct a StopRunAction and stop any ongoing run. If no - run is in process, no error is raised. - - The FrameworkController for which a run is to be stopped. - True the stop should be forced, false for a cooperative stop. - >A callback handler used to report results - A forced stop will cause threads and processes to be killed as needed. - - - - The ITestAssemblyBuilder interface is implemented by a class - that is able to build a suite of tests given an assembly or - an assembly filename. - - - - - Build a suite of tests from a provided assembly - - The assembly from which tests are to be built - A dictionary of options to use in building the suite - A TestSuite containing the tests found in the assembly - - - - Build a suite of tests given the filename of an assembly - - The filename of the assembly from which tests are to be built - A dictionary of options to use in building the suite - A TestSuite containing the tests found in the assembly - - - - The ITestAssemblyRunner interface is implemented by classes - that are able to execute a suite of tests loaded - from an assembly. - - - - - Gets the tree of loaded tests, or null if - no tests have been loaded. - - - - - Gets the tree of test results, if the test - run is completed, otherwise null. - - - - - Indicates whether a test has been loaded - - - - - Indicates whether a test is currently running - - - - - Indicates whether a test run is complete - - - - - Loads the tests found in an Assembly, returning an - indication of whether or not the load succeeded. - - File name of the assembly to load - Dictionary of options to use in loading the test - An ITest representing the loaded tests - - - - Loads the tests found in an Assembly, returning an - indication of whether or not the load succeeded. - - The assembly to load - Dictionary of options to use in loading the test - An ITest representing the loaded tests - - - - Count Test Cases using a filter - - The filter to apply - The number of test cases found - - - - Explore the test cases using a filter - - The filter to apply - Test Assembly with test cases that matches the filter - - - - Run selected tests and return a test result. The test is run synchronously, - and the listener interface is notified as it progresses. - - Interface to receive ITestListener notifications. - A test filter used to select tests to be run - - - - Run selected tests asynchronously, notifying the listener interface as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - - - - Wait for the ongoing run to complete. - - Time to wait in milliseconds - True if the run completed, otherwise false - - - - Signal any test run that is in process to stop. Return without error if no test is running. - - If true, kill any test-running threads - - - - Implementation of ITestAssemblyRunner - - - - - Initializes a new instance of the class. - - The builder. - - - - Gets the default level of parallel execution (worker threads) - - - - - The tree of tests that was loaded by the builder - - - - - The test result, if a run has completed - - - - - Indicates whether a test is loaded - - - - - Indicates whether a test is running - - - - - Indicates whether a test run is complete - - - - - Our settings, specified when loading the assembly - - - - - The top level WorkItem created for the assembly as a whole - - - - - The TestExecutionContext for the top level WorkItem - - - - - Loads the tests found in an Assembly - - File name or path of the assembly to load - Dictionary of option settings for loading the assembly - A Test Assembly containing all loaded tests - - - - Loads the tests found in an Assembly - - The assembly to load - Dictionary of option settings for loading the assembly - A Test Assembly containing all loaded tests - - - - Count Test Cases using a filter - - The filter to apply - The number of test cases found - - - - Explore the test cases using a filter - - The filter to apply - Test Assembly with test cases that matches the filter - - - - Run selected tests and return a test result. The test is run synchronously, - and the listener interface is notified as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - The test results from the run - - - - Run selected tests asynchronously, notifying the listener interface as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - - RunAsync is a template method, calling various abstract and - virtual methods to be overridden by derived classes. - - - - - Wait for the ongoing run to complete. - - Time to wait in milliseconds - True if the run completed, otherwise false - - - - Signal any test run that is in process to stop. Return without error if no test is running. - - If true, kill any tests that are currently running - - - - Initiate the test run. - - - - - Create the initial TestExecutionContext used to run tests - - The ITestListener specified in the RunAsync call - - - - Handle the Completed event for the top level work item - - - - - Executes the action within an - which ensures the is cleaned up - suitably at the end of the test run. This method only has an effect running - the full .NET Framework. - - - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - - - Verifies that the first int is greater than the second - int. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first int is greater than the second - int. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the double that is passed in is an NaN. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - - - - Assert that a string is empty. Returns without throwing an exception when inside a multiple assert block. - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is empty. Returns without throwing an exception when inside a multiple assert block. - - The string to be tested - - - - Assert that an array, list or other collection is empty. Returns without throwing an exception when inside a - multiple assert block. - - An array, list or other collection implementing ICollection - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that an array, list or other collection is empty. Returns without throwing an exception when inside a - multiple assert block. - - An array, list or other collection implementing ICollection - - - - Assert that a string is not empty. Returns without throwing an exception when inside a multiple assert - block. - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is not empty. Returns without throwing an exception when inside a multiple assert - block. - - The string to be tested - - - - Assert that an array, list or other collection is not empty. Returns without throwing an exception when - inside a multiple assert block. - - An array, list or other collection implementing ICollection - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that an array, list or other collection is not empty. Returns without throwing an exception when - inside a multiple assert block. - - An array, list or other collection implementing ICollection - - - - Asserts that an int is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that an unsigned int is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that an unsigned Long is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a decimal is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a double is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a decimal is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a double is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - DO NOT USE! Use Assert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - The message to initialize the with. - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - - - - Marks the test as failed with the message and arguments that are passed in. Returns without throwing an - exception when inside a multiple assert block. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Marks the test as failed with the message that is passed in. Returns without throwing an exception when - inside a multiple assert block. - - The message to initialize the with. - - - - Marks the test as failed. Returns without throwing an exception when inside a multiple assert block. - - - - - Issues a warning using the message and arguments provided. - - The message to display. - Arguments to be used in formatting the message - - - - Issues a warning using the message provided. - - The message to display. - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as ignored. - - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as inconclusive. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as inconclusive. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as Inconclusive. - - - - - Asserts that an object is contained in a collection. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The collection to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is contained in a collection. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The collection to be examined - - - - Wraps code containing a series of assertions, which should all - be executed, even if they fail. Failed results are saved and - reported at the end of the code block. - - A TestDelegate to be executed in Multiple Assertion mode. - - - - Wraps code containing a series of assertions, which should all - be executed, even if they fail. Failed results are saved and - reported at the end of the code block. - - A TestDelegate to be executed in Multiple Assertion mode. - - - - If throws, returns "SomeException was thrown by the - Environment.StackTrace property." See also . - - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - - - - Verifies that two objects are equal. Two objects are considered equal if both are null, or if both have the - same value. NUnit has special semantics for some object types. Returns without throwing an exception when - inside a multiple assert block. - - The value that is expected - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two objects are equal. Two objects are considered equal if both are null, or if both have the - same value. NUnit has special semantics for some object types. Returns without throwing an exception when - inside a multiple assert block. - - The value that is expected - The actual value - - - - Verifies that two objects are not equal. Two objects are considered equal if both are null, or if both have - the same value. NUnit has special semantics for some object types. Returns without throwing an exception - when inside a multiple assert block. - - The value that is expected - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two objects are not equal. Two objects are considered equal if both are null, or if both have - the same value. NUnit has special semantics for some object types. Returns without throwing an exception - when inside a multiple assert block. - - The value that is expected - The actual value - - - - Asserts that two objects refer to the same object. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The actual object - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that two objects refer to the same object. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The actual object - - - - Asserts that two objects do not refer to the same object. Returns without throwing an exception when inside - a multiple assert block. - - The expected object - The actual object - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that two objects do not refer to the same object. Returns without throwing an exception when inside - a multiple assert block. - - The expected object - The actual object - - - - Helper for Assert.AreEqual(double expected, double actual, ...) - allowing code generation to work consistently. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - The exception Type expected - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - The exception Type expected - A TestDelegate - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - - - - Verifies that an async delegate throws an exception when called and returns it. The returned exception may - be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws an exception when called and returns it. The returned exception may - be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that an async delegate does not throw an exception - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate does not throw an exception. - - A TestDelegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - The exception Type expected - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - The exception Type expected - A TestDelegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - - - - Verifies that a delegate throws an exception when called and returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception when called and returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that a delegate does not throw an exception - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate does not throw an exception. - - A TestDelegate - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. Used as a synonym for That in rare cases where a private setter causes a Visual Basic compilation - error. - - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. Used as a synonym for That in rare cases where a private setter causes a Visual Basic compilation - error. - - - This method is provided for use by VB developers needing to test the value of properties with private - setters. - - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - - - - Delegate used by tests that execute code and - capture any thrown exception. - - - - - Delegate used by tests that execute async code and - capture any thrown exception. - - - - - AssertionHelper is an optional base class for user tests, - allowing the use of shorter names in making asserts. - - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to - . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to . - - The evaluated condition - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - The actual value to test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Returns a ListMapper based on a collection. - - The original collection - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for equality with zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - To search for a substring instead of a collection element, use the - overload. - - - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - - - To search for a collection element instead of a substring, use the - overload. - - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that fails if the actual - value matches the pattern supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - within a specified range. - - - - - Provides static methods to express the assumptions - that must be met for a test to give a meaningful - result. If an assumption is not met, the test - should produce an inconclusive result. - - - - - DO NOT USE! - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - Not applicable - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, the - method throws an . - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A ThrowsConstraint used in the test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Marks a test as needing to be run in a particular threading apartment state. This will cause it - to run in a separate thread if necessary. - - - - - Construct an ApartmentAttribute - - The apartment state that this test must be run under. You must pass in a valid apartment state. - - - - Provides the author of a test or test fixture. - - - - - Initializes a new instance of the class. - - The name of the author. - - - - Initializes a new instance of the class. - - The name of the author. - The email address of the author. - - - - Applies a category to a test - - - - - The name of the category - - - - - Construct attribute for a given category based on - a name. The name may not contain the characters ',', - '+', '-' or '!'. However, this is not checked in the - constructor since it would cause an error to arise at - as the test was loaded without giving a clear indication - of where the problem is located. The error is handled - in NUnitFramework.cs by marking the test as not - runnable. - - The name of the category - - - - Protected constructor uses the Type name as the name - of the category. - - - - - The name of the category - - - - - Modifies a test by adding a category to it. - - The test to modify - - - - Marks a test to use a combinatorial join of any argument data provided. - Since this is the default, the attribute is optional. - - - - - Default constructor - - - - - Marks a test as using a particular CombiningStrategy to join any supplied parameter data. - Since this is the default, the attribute is optional. - - - - - Construct a CombiningStrategyAttribute incorporating an - ICombiningStrategy and an IParameterDataProvider. - - Combining strategy to be used in combining data - An IParameterDataProvider to supply data - - - - Construct a CombiningStrategyAttribute incorporating an object - that implements ICombiningStrategy and an IParameterDataProvider. - This constructor is provided for CLS compliance. - - Combining strategy to be used in combining data - An IParameterDataProvider to supply data - - - - Builds any number of tests from the specified method and context. - - The MethodInfo for which tests are to be constructed. - The suite to which the tests will be added. - - - - Modify the test by adding the name of the combining strategy - to the properties. - - The test to modify - - - - Marks an assembly, test fixture or test method as applying to a specific Culture. - - - - - Constructor with no cultures specified, for use - with named property syntax. - - - - - Constructor taking one or more cultures - - Comma-delimited list of cultures - - - - Causes a test to be skipped if this CultureAttribute is not satisfied. - - The test to modify - - - - Tests to determine if the current culture is supported - based on the properties of this attribute. - - True, if the current culture is supported - - - - Test to determine if the a particular culture or comma- - delimited set of cultures is in use. - - Name of the culture or comma-separated list of culture ids - True if the culture is in use on the system - - - - Test to determine if one of a collection of cultures - is being used currently. - - - - - - - Abstract base class for all data-providing attributes defined by NUnit. - Used to select all data sources for a method, class or parameter. - - - - - Default constructor - - - - - Marks a field for use as a datapoint when executing a theory within - the same fixture that requires an argument of the field's Type. - - - - - Marks a field, property or method as providing a set of datapoints for use - in executing any theories within the same fixture that require an argument of - the provided Type. The data source may provide an array of the required Type - or an . Synonymous with . - - - - - Marks a field, property or method as providing a set of datapoints for use - in executing any theories within the same fixture that require an argument - of the provided type. The data source may provide an array of the required - Type or an . Synonymous with . - - - - - Sets the tolerance used by default when checking the equality of floating point values - within the test assembly, fixture or method. - - - - - Construct specifying an amount - - - - - - Apply changes to the TestExecutionContext - - The TestExecutionContext - - - - Provides the descriptive text relating to the assembly, test fixture or test method. - - - - - Construct a description Attribute - - The text of the description - - - - Marks an assembly, test fixture or test method such that it will only run if explicitly - executed from the GUI, command line or included within a test filter. - The test will not be run simply because an enclosing suite is run. - - - - - Default constructor - - - - - Constructor with a reason - - The reason test is marked explicit - - - - Modifies a test by marking it as explicit. - - The test to modify - - - - Specify the life cycle of a Fixture - - - - - Construct a FixtureLifeCycleAttribute with a specified . - - - - - Defines the life cycle for this test fixture or assembly. - - - - - Overridden to set a TestFixture's . - - - - - Marks an assembly, test fixture or test method as being ignored. Ignored tests result in a warning message when the tests are run. - - - - - Constructs the attribute giving a reason for ignoring the test - - The reason for ignoring the test - - - - The date in the future to stop ignoring the test as a string in UTC time. - For example for a date and time, "2014-12-25 08:10:00Z" or for just a date, - "2014-12-25". If just a date is given, the Ignore will expire at midnight UTC. - - - Once the ignore until date has passed, the test will be marked - as runnable. Tests with an ignore until date will have an IgnoreUntilDate - property set which will appear in the test results. - - The string does not contain a valid string representation of a date and time. - - - - Modifies a test by marking it as Ignored. - - The test to modify - - - - Abstract base for attributes that are used to include tests in - the test run based on environmental settings. - - - - - Constructor with no included items specified, for use - with named property syntax. - - - - - Constructor taking one or more included items - - Comma-delimited list of included items - - - - Name of the item that is needed in order for - a test to run. Multiple items may be given, - separated by a comma. - - - - - Name of the item to be excluded. Multiple items - may be given, separated by a comma. - - - - - The reason for including or excluding the test - - - - - Sets the number of worker threads that may be allocated by the framework - for running tests. - - - - - Construct a LevelOfParallelismAttribute. - - The number of worker threads to be created by the framework. - - - - Specifies the life cycle for a test fixture. - - - - - A single instance is created and shared for all test cases. - - - - - A new instance is created for each test case. - - - - - Specifies the maximum time (in milliseconds) for a test case to succeed. - - - - - Construct a MaxTimeAttribute, given a time in milliseconds. - - The maximum elapsed time in milliseconds - - - - Marks tests that should NOT be run in parallel. - - - - - Construct a NonParallelizableAttribute. - - - - - Used by third-party frameworks, or other software, that reference - the NUnit framework but do not contain any tests. Applying the - attribute indicates that the assembly is not a test assembly and - may prevent errors if certain runners attempt to load the assembly. - Note that recognition of the attribute depends on each individual runner. - - - - - Abstract base class for all custom attributes defined by NUnit. - - - - - Default constructor - - - - - Identifies a method that is called once to perform setup before any child tests are run. - - - - - Identifies a method to be called once after all the child tests have run. - The method is guaranteed to be called, even if an exception is thrown. - - - - - Defines the order that the test will run in - - - - - Defines the order that the test will run in - - - - - Defines the order that the test will run in - - - - - - Modifies a test as defined for the specific attribute. - - The test to modify - - - - Marks a test as using a pairwise join of any supplied argument data. Arguments will be - combined in such a way that all possible pairs of arguments are used. - - - - - Default constructor - - - - - Marks a test assembly, fixture or method that may be run in parallel. - - - - - Construct a ParallelizableAttribute using default ParallelScope.Self. - - - - - Construct a ParallelizableAttribute with a specified scope. - - The ParallelScope associated with this attribute. - - - - Defines the degree to which this test and its descendants may be run in parallel - - - - - Overridden to check for invalid combinations of settings - - - - - - Modify the context to be used for child tests - - The current TestExecutionContext - - - - Specifies the degree to which a test, and its descendants, - may be run in parallel. - - - - - No ParallelScope was specified on the test - - - - - The test may be run in parallel with others at the same level. - Valid on classes and methods but has no effect on assemblies. - - - - - Test may not be run in parallel with any others. Valid on - classes and methods but not assemblies. - - - - - Mask used to extract the flags that apply to the item on which a - ParallelizableAttribute has been placed, as opposed to descendants. - - - - - Descendants of the test may be run in parallel with one another. - Valid on assemblies and classes but not on non-parameterized methods. - - - - - Descendants of the test down to the level of TestFixtures may be - run in parallel with one another. Valid on assemblies and classes - but not on methods. - - - - - Mask used to extract all the flags that impact descendants of a - test and place them in the TestExecutionContext. - - - - - The test and its descendants may be run in parallel with others at - the same level. Valid on classes and parameterized methods. - For assemblies it is recommended to use - instead, as has no effect on assemblies. - - - - - Marks an assembly, test fixture or test method as applying to a specific platform. - - - - - Constructor with no platforms specified, for use - with named property syntax. - - - - - Constructor taking one or more platforms - - Comma-delimited list of platforms - - - - Causes a test to be skipped if this PlatformAttribute is not satisfied. - - The test to modify - - - - Attaches information to a test assembly, fixture or method as a name/value pair. - - - - - Construct a PropertyAttribute with a name and string value - - The name of the property - The property value - - - - Construct a PropertyAttribute with a name and int value - - The name of the property - The property value - - - - Construct a PropertyAttribute with a name and double value - - The name of the property - The property value - - - - Constructor for derived classes that set the - property dictionary directly. - - - - - Constructor for use by derived classes that use the - name of the type as the property name. Derived classes - must ensure that the Type of the property value is - a standard type supported by the BCL. Any custom - types will cause a serialization Exception when - in the client. - - - - - Gets the property dictionary for this attribute - - - - - Modifies a test by adding properties to it. - - The test to modify - - - - Supplies a set of random values to a single parameter of a parameterized test. - - - - - If true, no value will be repeated. - - - - - Construct a random set of values appropriate for the Type of the - parameter on which the attribute appears, specifying only the count. - - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - Supplies a range of values to an individual parameter of a parameterized test. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using a default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values with the specified step size. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - Returns a string that represents the current object. - - - - Specifies that a test should be run multiple times. - - - - - Construct a RepeatAttribute - - The number of times to run the test - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - The test command for the RepeatAttribute - - - - - Initializes a new instance of the class. - - The inner command. - The number of repetitions - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Marks a test that must run on a separate thread. - - - - - Construct a RequiresThreadAttribute - - - - - Construct a RequiresThreadAttribute, specifying the apartment - - - - - Specifies that a test method should be rerun on failure up to the specified - maximum number of times. - - - - - Construct a - - The maximum number of times the test should be run if it fails - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - The test command for the - - - - - Initializes a new instance of the class. - - The inner command. - The maximum number of repetitions - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Marks a test to use a sequential join of any provided argument data. - Arguments will be combined into test cases, taking the next value of - each argument until all are used. - - - - - Default constructor - - - - - Sets the current Culture on an assembly, test fixture or test method for - the duration of a test. The culture remains set until the test or fixture - completes and is then reset to its original value. - - - - - - Construct given the name of a culture - - - - - - Sets the current UI Culture on an assembly, test fixture or test method - for the duration of a test. The UI culture remains set until the test or - fixture completes and is then reset to its original value. - - - - - - Construct given the name of a culture - - - - - - Identifies a method to be called immediately before each test is run. - - - - - Identifies a class as containing or - methods for all the test fixtures - under a given namespace. - - - - - Builds a from the specified type. - - The type info of the fixture to be used. - - - - Marks a test fixture as requiring all child tests to be run on the - same thread as the OneTimeSetUp and OneTimeTearDown. A flag in the - is set forcing all child tests - to be run sequentially on the current thread. - Any setting is ignored. - - - - - Apply changes to the TestExecutionContext - - The TestExecutionContext - - - - Identifies a method to be called immediately after each test is run. - The method is guaranteed to be called, even if an exception is thrown. - - - - - Abstract attribute providing actions to execute before and after tests. - - - - - Executed before each test is run - - The test that is going to be run. - - - - Executed after each test is run - - The test that has just been run. - - - - Provides the target for the action attribute - - - - - Marks a test assembly as needing a special assembly resolution hook that will - explicitly search the test assembly's directory for dependent assemblies. - This works around a conflict between mixed-mode assembly initialization and - tests running in their own AppDomain in some cases. - - - - - Marks the method as callable from the NUnit test runner. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - public void TestDescriptionMethod() - {} - } - - - - - - Descriptive text for this test - - - - - The author of this test - - - - - The type that this test is testing - - - - - Gets or sets the expected result. Not valid if the test - method has parameters. - - The result. - - - - Modifies a test by adding a description, if not already set. - - The test to modify - - - - Builds a single test from the specified method and context. - - The method for which a test is to be constructed. - The suite to which the test will be added. - - - - Marks a method as a parameterized test suite and provides arguments for each test case. - - - - - Construct a TestCaseAttribute with a list of arguments. - This constructor is not CLS-Compliant - - - - - - Construct a TestCaseAttribute with a single argument - - - - - - Construct a TestCaseAttribute with a two arguments - - - - - - - Construct a TestCaseAttribute with a three arguments - - - - - - - - Gets or sets the name of the test. - - The name of the test. - - - - Gets or sets the RunState of this test case. - - - - - Gets the list of arguments to a test case - - - - - Gets the properties of the test case - - - - - Gets or sets the expected result. - - The result. - - - - Returns true if the expected result has been set - - - - - Gets or sets the description. - - The description. - - - - The author of this test - - - - - The type that this test is testing - - - - - Gets or sets the reason for ignoring the test - - - - - Gets or sets a value indicating whether this is explicit. - - - if explicit; otherwise, . - - - - - Gets or sets the reason for not running the test. - - The reason. - - - - Gets or sets the ignore reason. When set to a non-null - non-empty value, the test is marked as ignored. - - The ignore reason. - - - - Comma-delimited list of platforms to run the test for - - - - - Comma-delimited list of platforms to not run the test for - - - - - Gets and sets the category for this test case. - May be a comma-separated list of categories. - - - - - Gets and sets the ignore until date for this test case. - - - - - Performs several special conversions allowed by NUnit in order to - permit arguments with types that cannot be used in the constructor - of an Attribute such as TestCaseAttribute or to simplify their use. - - The arguments to be converted - The ParameterInfo array for the method - - - - Builds a single test from the specified method and context. - - The MethodInfo for which tests are to be constructed. - The suite to which the tests will be added. - - - - Indicates the source to be used to provide test fixture instances for a test class. - - - - - Construct with the name of the method, property or field that will provide data - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - Construct with a name - - The name of a static method, property or field that will provide data. - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - Construct with a Type - - The type that will provide data - - - - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Gets or sets the category associated with every fixture created from - this attribute. May be a single category or a comma-separated list. - - - - - Builds any number of tests from the specified method and context. - - The IMethod for which tests are to be constructed. - The suite to which the tests will be added. - - - - Marks the class as a TestFixture. - - - - - Default constructor - - - - - Construct with a object[] representing a set of arguments. - The arguments may later be separated into type arguments and constructor arguments. - - - - - - Gets or sets the name of the test. - - The name of the test. - - - - Gets or sets the RunState of this test fixture. - - - - - The arguments originally provided to the attribute - - - - - Properties pertaining to this fixture - - - - - Get or set the type arguments. If not set - explicitly, any leading arguments that are - Types are taken as type arguments. - - - - - Descriptive text for this fixture - - - - - The author of this fixture - - - - - The type that this fixture is testing - - - - - Gets or sets the ignore reason. May set RunState as a side effect. - - The ignore reason. - - - - Gets or sets the reason for not running the fixture. - - The reason. - - - - Gets or sets the ignore reason. When set to a non-null - non-empty value, the test is marked as ignored. - - The ignore reason. - - - - Gets or sets a value indicating whether this is explicit. - - - if explicit; otherwise, . - - - - - Gets and sets the category for this fixture. - May be a comma-separated list of categories. - - - - - Builds a single test fixture from the specified type. - - - - - Builds a single test fixture from the specified type. - - The type info of the fixture to be used. - Filter used to select methods as tests. - - - - Identifies the source used to provide test fixture instances for a test class. - - - - - Error message string is public so the tests can use it - - - - - Construct with the name of the method, property or field that will provide data - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - Construct with a Type - - The type that will provide data - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Gets or sets the category associated with every fixture created from - this attribute. May be a single category or a comma-separated list. - - - - - Builds any number of test fixtures from the specified type. - - The TypeInfo for which fixtures are to be constructed. - - - - Builds any number of test fixtures from the specified type. - - The TypeInfo for which fixtures are to be constructed. - PreFilter used to select methods as tests. - - - - Returns a set of ITestFixtureData items for use as arguments - to a parameterized test fixture. - - The type for which data is needed. - - - - - Indicates the method or class the assembly, test fixture or test method is testing. - - - - - Initializes a new instance of the class. - - The type that is being tested. - - - - Initializes a new instance of the class. - - The type that is being tested. - - - - Adding this attribute to a method within a - class makes the method callable from the NUnit test runner. There is a property - called Description which is optional which you can provide a more detailed test - description. This class cannot be inherited. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - public void TestDescriptionMethod() - {} - } - - - - - - Construct the attribute, specifying a combining strategy and source of parameter data. - - - - - Applies a timeout in milliseconds to a test. - When applied to a method, the test is cancelled if the timeout is exceeded. - When applied to a class or assembly, the default timeout is set for all contained test methods. - - - - - Construct a TimeoutAttribute given a time in milliseconds - - The timeout value in milliseconds - - - - Provides literal arguments for an individual parameter of a test. - - - - - The collection of data to be returned. Must - be set by any derived attribute classes. - We use an object[] so that the individual - elements may have their type changed in GetData - if necessary - - - - - Constructs for use with an Enum parameter. Will pass every enum - value in to the test. - - - - - Construct with one argument - - - - - - Construct with two arguments - - - - - - - Construct with three arguments - - - - - - - - Construct with an array of arguments - - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - To generate data for Values attribute, in case no data is provided. - - - - - To Check if type is nullable enum. - - - - - Indicates the source used to provide data for one parameter of a test method. - - - - - Construct with the name of the factory - for use with languages - that don't support params arrays. - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - for use with languages - that don't support params arrays. - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - A set of Assert methods operating on one or more collections - - - - - DO NOT USE! Use CollectionAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable containing objects to be considered - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - - - - Asserts that the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the subset does not contain the superset - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that the subset does not contain the superset - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the subset contains the superset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that the subset contains the superset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - - - - AllItemsConstraint applies another constraint to each - item in a collection, succeeding if they all succeed. - - - - - Construct an AllItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - AndConstraint succeeds only if both members succeed. - - - - - Create an AndConstraint from two other constraints - - The first constraint - The second constraint - - - - Gets text describing a constraint - - - - - Apply both member constraints to an actual value, succeeding - succeeding only if both of them succeed. - - The actual value - True if the constraints both succeeded - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - is used to determine whether the value is equal to any of the expected values. - - - - - Construct a - - Collection of expected values - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether item is present in expected collection - - Actual item type - Actual item - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IEqualityComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - AssignableFromConstraint is used to test that an object - can be assigned from a given Type. - - - - - Construct an AssignableFromConstraint for the type provided - - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - AssignableToConstraint is used to test that an object - can be assigned to a given Type. - - - - - Construct an AssignableToConstraint for the type provided - - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - AttributeConstraint tests that a specified attribute is present - on a Type or other provider and that the value of the attribute - satisfies some other constraint. - - - - - Constructs an AttributeConstraint for a specified attribute - Type and base constraint. - - - - - - - Determines whether the Type or other provider has the - expected attribute and if its value matches the - additional constraint specified. - - - - - Returns a string representation of the constraint. - - - - - AttributeExistsConstraint tests for the presence of a - specified attribute on a Type. - - - - - Constructs an AttributeExistsConstraint for a specific attribute Type - - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Tests whether the object provides the expected attribute. - - A Type, MethodInfo, or other ICustomAttributeProvider - True if the expected attribute is present, otherwise false - - - - BinaryConstraint is the abstract base of all constraints - that combine two other constraints in some fashion. - - - - - The first constraint being combined - - - - - The second constraint being combined - - - - - Construct a BinaryConstraint from two other constraints - - The first constraint - The second constraint - - - - BinarySerializableConstraint tests whether - an object is serializable in binary format. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Returns the string representation - - - - - CollectionConstraint is the abstract base class for - constraints that operate on collections. - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Determines whether the specified enumerable is empty. - - The enumerable. - - if the specified enumerable is empty; otherwise, . - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Protected method to be implemented by derived classes - - - - - - - CollectionContainsConstraint is used to test whether a collection - contains an expected object as a member. - - - - - Construct a CollectionContainsConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Test whether the expected item is contained in the collection - - - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - CollectionEquivalentConstraint is used to determine whether two - collections are equivalent. - - - - The result of the from the collections - under comparison. - - - Construct a CollectionEquivalentConstraint - Expected collection. - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether two collections are equivalent - - - - - - - Test whether the collection is equivalent to the expected. - - - Actual collection type. - - - Actual collection to compare. - - - A indicating whether or not - the two collections are equivalent. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - Provides a for the . - - - Result of a of the collections to compare for equivalence. - - - Construct a using a . - Source . - Result of the collection comparison. - Actual collection to compare. - Whether or not the succeeded. - - - Write any additional lines (following Expected: and But was:) for a failing constraint. - The to write the failure message to. - - - - CollectionItemsEqualConstraint is the abstract base class for all - collection constraints that apply some notion of item equality - as a part of their operation. - - - - - The NUnitEqualityComparer in use for this constraint - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Get a flag indicating whether the user requested us to ignore case. - - - - - Get a flag indicating whether any external comparers are in use. - - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - Compares two collection members for equality - - - - - Return a new CollectionTally for use in making tests - - The collection to be included in the tally - - - - CollectionOrderedConstraint is used to test whether a collection is ordered. - - - - - Construct a CollectionOrderedConstraint - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - If used performs a default ascending comparison - - - - - If used performs a reverse comparison - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use a and returns self. - - - - - Modifies the constraint to test ordering by the value of - a specified property and returns self. - - - - - Then signals a break between two ordering steps - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Test whether the collection is ordered - - - - - Returns the string representation of the constraint. - - - - - - An OrderingStep represents one stage of the sort - - - - - Constructor for success result. - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - - - - Constructor for failure result. - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - Index at which collection order breaks. - Value at which collection order breaks. - - - - CollectionSubsetConstraint is used to determine whether - one collection is a subset of another - - - - - Construct a CollectionSubsetConstraint - - The collection that the actual value is expected to be a subset of - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the actual collection is a subset of - the expected collection provided. - - - - - - - Test whether the constraint is satisfied by a given value. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - CollectionSupersetConstraint is used to determine whether - one collection is a superset of another - - - - - Construct a CollectionSupersetConstraint - - The collection that the actual value is expected to be a superset of - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the actual collection is a superset of - the expected collection provided. - - - - - - - Test whether the constraint is satisfied by a given value. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - counts (tallies) the number of occurrences - of each object in one or more enumerations. - - - The result of a . - - - Items that were not in the expected collection. - - - Items that were not accounted for in the expected collection. - - - Initializes a new instance of the class with the given fields. - - - The result of the comparison between the two collections. - - - Construct a CollectionTally object from a comparer and a collection. - The comparer to use for equality. - The expected collection to compare against. - - - Try to remove an object from the tally. - The object to remove. - - - Try to remove a set of objects from the tally. - The objects to remove. - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Flag indicating whether or not this is the top level comparison. - - - - - A list of tracked comparisons - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two types related by . - - - - - Interface for comparing two s. - - - - - Method for comparing two objects with a tolerance. - - The first object to compare. - The second object to compare. - The tolerance to use when comparing the objects. - The evaluation state of the comparison. - - if the objects cannot be compared using the method. - Otherwise the result of the comparison is returned. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two types related by . - - - - - Comparator for two s or s. - - - - - Comparator for two Tuples. - - - - - Base class for comparators for tuples (both regular Tuples and ValueTuples). - - - - - Comparator for two ValueTuples. - - - - - ComparisonAdapter class centralizes all comparisons of - values in NUnit, adapting to the use of any provided - , - or . - - - - - Gets the default ComparisonAdapter, which wraps an - NUnitComparer object. - - - - - Returns a ComparisonAdapter that wraps an - - - - - Returns a ComparisonAdapter that wraps an - - - - - Returns a ComparisonAdapter that wraps a - - - - - Compares two objects - - - - - Construct a default ComparisonAdapter - - - - - Construct a ComparisonAdapter for an - - - - - Compares two objects - - - - - - - - ComparerAdapter extends and - allows use of an or - to actually perform the comparison. - - - - - Construct a ComparisonAdapter for an - - - - - Compare a Type T to an object - - - - - Construct a ComparisonAdapter for a - - - - - Compare a Type T to an object - - - - - Abstract base class for constraints that compare values to - determine if one is greater than, equal to or less than - the other. - - - - - The value against which a comparison is to be made - - - - - Tolerance used in making the comparison - - - - - ComparisonAdapter to be used in making the comparison - - - - - Initializes a new instance of the class. - - The value against which to make a comparison. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - A ConstraintResult - - - - Protected function overridden by derived class to actually perform the comparison - - - - - Modifies the constraint to use an and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Modifies the constraint to use an and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Modifies the constraint to use a and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Set the tolerance for use in this comparison - - - - - Switches the .Within() modifier to interpret its tolerance as - a percentage that the actual values is allowed to deviate from - the expected value. - - Self - - - - Provides standard description of what the constraint tests - based on comparison text. - - Describes the comparison being tested, throws - if null - Is thrown when null passed to a method - - - - Delegate used to delay evaluation of the actual value - to be used in evaluating a constraint - - - - - The Constraint class is the base of all built-in constraints - within NUnit. It provides the operator overloads used to combine - constraints. - - - - - Construct a constraint with optional arguments - - Arguments to be saved - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Arguments provided to this Constraint, for use in - formatting the description. - - - - - The ConstraintBuilder holding this constraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - The default implementation simply dereferences the value but - derived classes may override it to provide for delayed processing. - - A reference to the value to be tested - A ConstraintResult - - - - Retrieves the value to be tested from an ActualValueDelegate. - The default implementation simply evaluates the delegate but derived - classes may override it to provide for delayed processing. - - An ActualValueDelegate - Delegate evaluation result - - - - Default override of ToString returns the constraint DisplayName - followed by any arguments within angle brackets. - - - - - - Returns the string representation of this constraint - - - - - This operator creates a constraint that is satisfied only if both - argument constraints are satisfied. - - - - - This operator creates a constraint that is satisfied if either - of the argument constraints is satisfied. - - - - - This operator creates a constraint that is satisfied if the - argument constraint is not satisfied. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending Or - to the current constraint. - - - - - Returns a DelayedConstraint.WithRawDelayInterval with the specified delay time. - - The delay, which defaults to milliseconds. - - - - - Returns a DelayedConstraint with the specified delay time - and polling interval. - - The delay in milliseconds. - The interval at which to test the constraint. - - - - - Resolves any pending operators and returns the resolved constraint. - - - - - ConstraintBuilder maintains the stacks that are used in - processing a ConstraintExpression. An OperatorStack - is used to hold operators that are waiting for their - operands to be reorganized. a ConstraintStack holds - input constraints as well as the results of each - operator applied. - - - - - OperatorStack is a type-safe stack for holding ConstraintOperators - - - - - Initializes a new instance of the class. - - The ConstraintBuilder using this stack. - - - - Gets a value indicating whether this is empty. - - if empty; otherwise, . - - - - Gets the topmost operator without modifying the stack. - - - - - Pushes the specified operator onto the stack. - - The operator to put onto the stack. - - - - Pops the topmost operator from the stack. - - The topmost operator on the stack - - - - ConstraintStack is a type-safe stack for holding Constraints - - - - - Initializes a new instance of the class. - - The ConstraintBuilder using this stack. - - - - Gets a value indicating whether this is empty. - - if empty; otherwise, . - - - - Pushes the specified constraint. As a side effect, - the constraint's Builder field is set to the - ConstraintBuilder owning this stack. - - The constraint to put onto the stack - - - - Pops this topmost constraint from the stack. - As a side effect, the constraint's Builder - field is set to null. - - The topmost constraint on the stack - - - - Initializes a new instance of the class. - - - - - Appends the specified operator to the expression by first - reducing the operator stack and then pushing the new - operator on the stack. - - The operator to push. - - - - Appends the specified constraint to the expression by pushing - it on the constraint stack. - - The constraint to push. - - - - Sets the top operator right context. - - The right context. - - - - Reduces the operator stack until the topmost item - precedence is greater than or equal to the target precedence. - - The target precedence. - - - - Resolves this instance, returning a Constraint. If the Builder - is not currently in a resolvable state, an exception is thrown. - - The resolved constraint - - - - Gets a value indicating whether this instance is resolvable. - - - if this instance is resolvable; otherwise, . - - - - - ConstraintExpression represents a compound constraint in the - process of being constructed from a series of syntactic elements. - - Individual elements are appended to the expression as they are - reorganized. When a constraint is appended, it is returned as the - value of the operation so that modifiers may be applied. However, - any partially built expression is attached to the constraint for - later resolution. When an operator is appended, the partial - expression is returned. If it's a self-resolving operator, then - a ResolvableConstraintExpression is returned. - - - - - The ConstraintBuilder holding the elements recognized so far - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the - class passing in a ConstraintBuilder, which may be pre-populated. - - The builder. - - - - Returns a string representation of the expression as it - currently stands. This should only be used for testing, - since it has the side-effect of resolving the expression. - - - - - - Appends an operator to the expression and returns the - resulting expression itself. - - - - - Appends a self-resolving operator to the expression and - returns a new ResolvableConstraintExpression. - - - - - Appends a constraint to the expression and returns that - constraint, which is associated with the current state - of the expression being built. Note that the constraint - is not reduced at this time. For example, if there - is a NotOperator on the stack we don't reduce and - return a NotConstraint. The original constraint must - be returned because it may support modifiers that - are yet to be applied. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a , which will - apply the following constraint to a collection of length one, succeeding - only if exactly one of them succeeds. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - With is currently a NOP - reserved for future use. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests if item is equal to zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - To search for a substring instead of a collection element, use the - overload. - - - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - - - To search for a collection element instead of a substring, use the - overload. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - This overload is only used if the item sought is a string, - since any other type implies that we are looking for a - collection member. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the Dictionary key collection. - - The key to be matched in the Dictionary key collection - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the Dictionary value collection. - - The value to be matched in the Dictionary value collection - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - inclusively within a specified range. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - Returns a constraint that succeeds if the value - is a file or directory and it exists. - - - - - Returns a constraint that tests if an item is equal to any of parameters - - Expected values - - - - Returns a new IndexerConstraintExpression, which will - apply any following constraint to that indexer value. - - Index accessor values. - - - - ConstraintStatus represents the status of a ConstraintResult - returned by a Constraint being applied to an actual value. - - - - - The status has not yet been set - - - - - The constraint succeeded - - - - - The constraint failed - - - - - An error occurred in applying the constraint (reserved for future use) - - - - - Contains the result of matching a against an actual value. - - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - The status of the new ConstraintResult. - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - If true, applies a status of Success to the result, otherwise Failure. - - - - The actual value that was passed to the method. - - - - - Gets and sets the ResultStatus for this result. - - - - - True if actual value meets the Constraint criteria otherwise false. - - - - - Display friendly name of the constraint. - - - - - Description of the constraint may be affected by the state the constraint had - when was performed against the actual value. - - - - - Write the failure message to the MessageWriter provided - as an argument. The default implementation simply passes - the result and the actual value to the writer, which - then displays the constraint description and the value. - - Constraints that need to provide additional details, - such as where the error occurred, can override this. - - The MessageWriter on which to display the message - - - - Write some additional failure message. - - The MessageWriter on which to display the message - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - ContainsConstraint tests a whether a string contains a substring - or a collection contains an object. It postpones the decision of - which test to use until the type of the actual argument is known. - This allows testing whether a string is contained in a collection - or as a substring of another string using the same syntax. - - - - - Initializes a new instance of the class. - - The expected value contained within the string/collection. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Flag the constraint to ignore case and return self. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - The DateTimes class contains common operations on Date and Time values. - - - - - Applies a delay to the match so that a match can be evaluated in the future. - - - - - Allows only changing the time dimension of delay interval and setting a polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithRawDelayInterval - - Parent DelayedConstraint on which delay interval dimension is required to be set - - - - Changes delay interval dimension to minutes - - - - - Changes delay interval dimension to seconds - - - - - Changes delay interval dimension to milliseconds - - - - - Set polling interval, in milliseconds - - A time interval, in milliseconds - - - - - Allows only setting the polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithDimensionedDelayInterval - - Parent DelayedConstraint on which polling interval is required to be set - - - - Set polling interval, in milliseconds - - A time interval, in milliseconds - - - - - Allows only changing the time dimension of the polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithRawPollingInterval - - Parent DelayedConstraint on which polling dimension is required to be set - - - - Changes polling interval dimension to minutes - - - - - Changes polling interval dimension to seconds - - - - - Changes polling interval dimension to milliseconds - - - - - Delay value store as an Interval object - - - - - Polling value stored as an Interval object - - - - - Creates a new DelayedConstraint - - The inner constraint to decorate - The time interval after which the match is performed - If the value of is less than 0 - - - - Creates a new DelayedConstraint - - The inner constraint to decorate - The time interval after which the match is performed, in milliseconds - The time interval used for polling, in milliseconds - If the value of is less than 0 - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - Test whether the constraint is satisfied by a delegate - - The delegate whose value is to be tested - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - Overridden to wait for the specified delay period before - calling the base constraint with the dereferenced value. - - A reference to the value to be tested - True for success, false for failure - - - - Returns the string representation of the constraint. - - - - - Adjusts a Timestamp by a given TimeSpan - - - - - - - - Returns the difference between two Timestamps as a TimeSpan - - - - - - - - DictionaryContainsKeyConstraint is used to test whether a dictionary - contains an expected object as a key. - - - - - Construct a DictionaryContainsKeyConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Returns a new DictionaryContainsKeyValuePairConstraint checking for the - presence of a particular key-value-pair in the dictionary. - - - - - Flag the constraint to ignore case and return self. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Test whether the expected key is contained in the dictionary - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - DictionaryContainsKeyValuePairConstraint is used to test whether a dictionary - contains an expected object as a key-value-pair. - - - - - Construct a DictionaryContainsKeyValuePairConstraint - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Test whether the expected key is contained in the dictionary - - - - - DictionaryContainsValueConstraint is used to test whether a dictionary - contains an expected object as a value. - - - - - Construct a DictionaryContainsValueConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Test whether the expected value is contained in the dictionary - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - Provides a for the constraints - that are applied to each item in the collection - - - - - Constructs a for a particular - Only used for Failure - - The Constraint to which this result applies - The actual value to which the Constraint was applied - Actual item that does not match expected condition - Non matching item index - - - - Write constraint description, actual items, and non-matching item - - The MessageWriter on which to display the message - - - - EmptyCollectionConstraint tests whether a collection is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Check that the collection is empty - - - - - - - EmptyConstraint tests a whether a string or collection is empty, - postponing the decision about which test is applied until the - type of the actual argument is known. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyDirectoryConstraint is used to test that a directory is empty - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyGuidConstraint tests whether a Guid is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyStringConstraint tests whether a string is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EndsWithConstraint can test whether a string ends - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - EqualConstraint is able to compare an actual value with the - expected value provided in its constructor. Two objects are - considered equal if both are null, or if both have the same - value. NUnit has special semantics for some object types. - - - - - NUnitEqualityComparer used to test equality. - - - - - Initializes a new instance of the class. - - The expected value. - - - - Gets the tolerance for this comparison. - - - The tolerance. - - - - - Gets a value indicating whether to compare case insensitive. - - - if comparing case insensitive; otherwise, . - - - - - Gets a value indicating whether or not to clip strings. - - - if set to clip strings otherwise, . - - - - - Gets the failure points. - - - The failure points. - - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to suppress string clipping - and return self. - - - - - Flag the constraint to compare arrays as collections - and return self. - - - - - Flag the constraint to use a tolerance when determining equality. - - Tolerance value to be used - Self. - - - - Flags the constraint to include - property in comparison of two values. - - - Using this modifier does not allow to use the - constraint modifier. - - - - - Switches the .Within() modifier to interpret its tolerance as - a distance in representable values (see remarks). - - Self. - - Ulp stands for "unit in the last place" and describes the minimum - amount a given value can change. For any integers, an ulp is 1 whole - digit. For floating point values, the accuracy of which is better - for smaller numbers and worse for larger numbers, an ulp depends - on the size of the number. Using ulps for comparison of floating - point results instead of fixed tolerances is safer because it will - automatically compensate for the added inaccuracy of larger numbers. - - - - - Switches the .Within() modifier to interpret its tolerance as - a percentage that the actual values is allowed to deviate from - the expected value. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in days. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in hours. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in minutes. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in seconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in milliseconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in clock ticks. - - Self - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The boolean-returning delegate to use. - Self. - - - - Flag the constraint to use the supplied Comparison object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - The EqualConstraintResult class is tailored for formatting - and displaying the result of an EqualConstraint. - - - - - Construct an EqualConstraintResult - - - - - Write a failure message. Overridden to provide custom - failure messages for EqualConstraint. - - The MessageWriter to write to - - - - Display the failure information for two collections that did not match. - - The MessageWriter on which to display - The expected collection. - The actual collection - The depth of this failure in a set of nested collections - - - - Displays a single line showing the types and sizes of the expected - and actual collections or arrays. If both are identical, the value is - only shown once. - - The MessageWriter on which to display - The expected collection or array - The actual collection or array - The indentation level for the message line - - - - Displays a single line showing the point in the expected and actual - arrays at which the comparison failed. If the arrays have different - structures or dimensions, both values are shown. - - The MessageWriter on which to display - The expected array - The actual array - Index of the failure point in the underlying collections - The indentation level for the message line - - - - Display the failure information for two IEnumerables that did not match. - - The MessageWriter on which to display - The expected enumeration. - The actual enumeration - The depth of this failure in a set of nested collections - - - - EqualityAdapter class handles all equality comparisons - that use an , - or a . - - - - - Compares two objects, returning true if they are equal - - - - - Returns true if the two objects can be compared by this adapter. - The base adapter cannot handle IEnumerables except for strings. - - - - - Returns an that wraps an . - - - - - that wraps an . - - - - - Returns an that wraps an . - - - - - Returns an EqualityAdapter that uses a predicate function for items comparison. - - - - - - - - - Returns true if the two objects can be compared by this adapter. - The base adapter cannot handle IEnumerables except for strings. - - - - - Compares two objects, returning true if they are equal - - - - - Returns true if the two objects can be compared by this adapter. - Generic adapter requires objects of the specified type. - - - - - Returns an that wraps an . - - - - - Returns an that wraps an . - - - - - that wraps an . - - - - - Returns an that wraps a . - - - - - ExactCountConstraint applies another constraint to each - item in a collection, succeeding only if a specified - number of items succeed. - - - - - Construct a standalone ExactCountConstraint - - - - - - Construct an ExactCountConstraint on top of an existing constraint - - - - - - - Apply the item constraint to each item in the collection, - succeeding only if the expected number of items pass. - - The value to be tested - A ConstraintResult - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Contain the result of matching a against an actual value. - - - - - The count of matched items of the - - - - - A list with maximum count (+1) of items of the - - - - - Constructs a for a . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - If true, applies a status of Success to the result, otherwise Failure. - Count of matched items of the - A list with maximum count (+1) of items of the - - - - Write the actual value for a failing constraint test to a MessageWriter. - - The writer on which the actual value is displayed - - - - ExactTypeConstraint is used to test that an object - is of the exact type provided in the constructor - - - - - Construct an ExactTypeConstraint for a given Type - - The expected Type. - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - ExceptionTypeConstraint is a special version of ExactTypeConstraint - used to provided detailed info about the exception thrown in - an error message. - - - - - Constructs an ExceptionTypeConstraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - FalseConstraint tests that the actual value is false - - - - - Initializes a new instance of the class. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - FileExistsConstraint is used to determine if a file exists - - - - - Initializes a new instance of the class. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - FileOrDirectoryExistsConstraint is used to determine if a file or directory exists - - - - - If true, the constraint will only check if files exist, not directories - - - - - If true, the constraint will only check if directories exist, not files - - - - - Initializes a new instance of the class that - will check files and directories. - - - - - Initializes a new instance of the class that - will only check files if ignoreDirectories is true. - - if set to [ignore directories]. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - Helper routines for working with floating point numbers - - - The floating point comparison code is based on this excellent article: - https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ - - - "ULP" means Unit in the Last Place and in the context of this library refers to - the distance between two adjacent floating point numbers. IEEE floating point - numbers can only represent a finite subset of natural numbers, with greater - accuracy for smaller numbers and lower accuracy for very large numbers. - - - If a comparison is allowed "2 ulps" of deviation, that means the values are - allowed to deviate by up to 2 adjacent floating point values, which might be - as low as 0.0000001 for small numbers or as high as 10.0 for large numbers. - - - - - Union of a floating point variable and an integer - - - The union's value as a floating point variable - - - The union's value as an integer - - - The union's value as an unsigned integer - - - Union of a double precision floating point variable and a long - - - The union's value as a double precision floating point variable - - - The union's value as a long - - - The union's value as an unsigned long - - - Compares two floating point values for equality - First floating point value to be compared - Second floating point value t be compared - - Maximum number of representable floating point values that are allowed to - be between the left and the right floating point values - - True if both numbers are equal or close to being equal - - - Floating point values can only represent a finite subset of natural numbers. - For example, the values 2.00000000 and 2.00000024 can be stored in a float, - but nothing between them. - - - This comparison will count how many possible floating point values are between - the left and the right number. If the number of possible values between both - numbers is less than or equal to maxUlps, then the numbers are considered as - being equal. - - - Implementation partially follows the code outlined here: - http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ - - - - - Compares two double precision floating point values for equality - First double precision floating point value to be compared - Second double precision floating point value t be compared - - Maximum number of representable double precision floating point values that are - allowed to be between the left and the right double precision floating point values - - True if both numbers are equal or close to being equal - - - Double precision floating point values can only represent a limited series of - natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004 - can be stored in a double, but nothing between them. - - - This comparison will count how many possible double precision floating point - values are between the left and the right number. If the number of possible - values between both numbers is less than or equal to maxUlps, then the numbers - are considered as being equal. - - - Implementation partially follows the code outlined here: - http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ - - - - - - Tests whether a value is greater than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Tests whether a value is greater than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Interface for all constraints - - - - - The display name of this Constraint for use by ToString(). - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Arguments provided to this Constraint, for use in - formatting the description. - - - - - The ConstraintBuilder holding this constraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - The default implementation simply dereferences the value but - derived classes may override it to provide for delayed processing. - - A reference to the value to be tested - A ConstraintResult - - - - IndexerConstraint extracts a named property and uses - its value as the actual value for a chained constraint. - - - - - Initializes a new instance of the class. - - The argument list for the indexer. - The constraint to apply to the indexer. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Returns the string representation of the constraint. - - - - - InstanceOfTypeConstraint is used to test that an object - is of the same type provided or derived from it. - - - - - Construct an InstanceOfTypeConstraint for the type provided - - The expected Type - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - Keeps track of an interval time which can be represented in - Minutes, Seconds or Milliseconds - - - - - Constructs a interval given an value in milliseconds - - - - - Gets Interval value represented as a TimeSpan object - - - - - Returns the interval with the current value as a number of minutes. - - - - - Returns the interval with the current value as a number of seconds. - - - - - Returns the interval with the current value as a number of milliseconds. - - - - - Is true for intervals created with a non-zero value - - - - - Returns a string that represents the current object. - - - A string that represents the current object. - - - - - IntervalUnit provides the semantics to the value stored in Interval class. - - - - - Unit representing an Interval in minutes - - - - - Unit representing an Interval in seconds - - - - - Unit representing an Interval in milliseconds - - - - - The IResolveConstraint interface is implemented by all - complete and resolvable constraints and expressions. - - - - - Return the top-level constraint for this expression - - - - - - An extension of ResolvableConstraintExpression that adds a no-op Items property for readability. - - - - - Create a new instance of ItemsConstraintExpression - - - - - Create a new instance of ResolvableConstraintExpression, - passing in a pre-populated ConstraintBuilder. - - - - - - No-op property for readability. - - - - - Tests whether a value is less than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Tests whether a value is less than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - MessageWriter is the abstract base for classes that write - constraint descriptions and messages in some form. The - class has separate methods for writing various components - of a message, allowing implementations to tailor the - presentation as needed. - - - - - Construct a MessageWriter given a culture - - - - - Abstract method to get the max line length - - - - - Method to write single line message with optional args, usually - written to precede the general failure message. - - The message to be written - Any arguments used in formatting the message - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a given - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The failing constraint result - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the Expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in locating the point where the strings differ - If true, the strings should be clipped to fit the line - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Custom value formatter function - - The value - - - - - Custom value formatter factory function - - The next formatter function - ValueFormatter - If the given formatter is unable to handle a certain format, it must call the next formatter in the chain - - - - Static methods used in creating messages - - - - - Default amount of items used by method. - - - - - Static string used when strings are clipped - - - - - Formatting strings used for expected and actual values - - - - - Current head of chain of value formatters. Public for testing. - - - - - Add a formatter to the chain of responsibility. - - - - - - Formats text to represent a generalized value. - - The value - The formatted text - - - - Formats text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Returns the representation of a type as used in NUnitLite. - This is the same as Type.ToString() except for arrays, - which are displayed with their declared sizes. - - - - - - - Converts any control characters in a string - to their escaped representation. - - The string to be converted - The converted string - - - - Converts any null characters in a string - to their escaped representation. - - The string to be converted - The converted string - - - - Return the a string representation for a set of indices into an array - - Array of indices for which a string is needed - - - - Get an array of indices representing the point in a collection or - array corresponding to a single int index into the collection. - - The collection to which the indices apply - Index in the collection - Array of indices - - - - Clip a string to a given length, starting at a particular offset, returning the clipped - string with ellipses representing the removed parts - - The string to be clipped - The maximum permitted length of the result string - The point at which to start clipping - The clipped string - - - - Clip the expected and actual strings in a coordinated fashion, - so that they may be displayed together. - - - - - - - - - Shows the position two strings start to differ. Comparison - starts at the start index. - - The expected string - The actual string - The index in the strings at which comparison should start - Boolean indicating whether case should be ignored - -1 if no mismatch found, or the index where mismatch found - - - - NaNConstraint tests that the actual value is a double or float NaN - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test that the actual value is an NaN - - - - - - - NoItemConstraint applies another constraint to each - item in a collection, failing if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - NotConstraint negates the effect of some other constraint - - - - - Initializes a new instance of the class. - - The base constraint to be negated. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - NullConstraint tests that the actual value is null - - - - - Initializes a new instance of the class. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - The Numerics class contains common operations on numeric values. - - - - - Checks the type of the object, returning true if - the object is a numeric type. - - The object to check - true if the object is a numeric type - - - - Checks the type of the object, returning true if - the object is a floating point numeric type. - - The object to check - true if the object is a floating point numeric type - - - - Checks the type of the object, returning true if - the object is a fixed point numeric type. - - The object to check - true if the object is a fixed point numeric type - - - - Test two numeric values for equality, performing the usual numeric - conversions and using a provided or default tolerance. If the tolerance - provided is Empty, this method may set it to a default tolerance. - - The expected value - The actual value - A reference to the tolerance in effect - True if the values are equal - - - - Compare two numeric values, performing the usual numeric conversions. - - The expected value - The actual value - The relationship of the values to each other - - - - Calculates the difference between 2 values in absolute/percent mode. - - The expected value - The actual value - Tolerance mode to specify difference representation - The difference between the values - - - - NUnitComparer encapsulates NUnit's default behavior - in comparing two objects. - - - - - Returns the default NUnitComparer. - - - - - Compares two objects - - - - - - - - NUnitEqualityComparer encapsulates NUnit's handling of - equality tests between objects. - - - - - If true, all string comparisons will ignore case - - - - - If true, arrays will be treated as collections, allowing - those of different dimensions to be compared - - - - - Comparison objects used in comparisons for some constraints. - - - - - List of points at which a failure occurred. - - - - - List of comparers used to compare pairs of objects. - - - - - Initializes a new instance of the class. - - - - - Returns the default NUnitEqualityComparer - - - - - Gets and sets a flag indicating whether case should - be ignored in determining equality. - - - - - Gets and sets a flag indicating that arrays should be - compared as collections, without regard to their shape. - - - - - Gets the list of external comparers to be used to - test for equality. They are applied to members of - collections, in place of NUnit's own logic. - - - - - Gets the list of failure points for the last Match performed. - The list consists of objects to be interpreted by the caller. - This generally means that the caller may only make use of - objects it has placed on the list at a particular depth. - - - - - Flags the comparer to include - property in comparison of two values. - - - Using this modifier does not allow to use the - modifier. - - - - - Compares two objects for equality within a tolerance. - - - - - Compares two objects for equality within a tolerance. - - - - - FailurePoint class represents one point of failure - in an equality test. - - - - - The location of the failure - - - - - The expected value - - - - - The actual value - - - - - Indicates whether the expected value is valid - - - - - Indicates whether the actual value is valid - - - - - Represents a constraint that succeeds if all the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - they all succeed. - - - - - Operator that requires both its arguments to succeed - - - - - Construct an AndOperator - - - - - Apply the operator to produce an AndConstraint - - - - - Operator that tests for the presence of a particular attribute - on a type and optionally applies further tests to the attribute. - - - - - Construct an AttributeOperator for a particular Type - - The Type of attribute tested - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Abstract base class for all binary operators - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Gets the left precedence of the operator - - - - - Gets the right precedence of the operator - - - - - Abstract method that produces a constraint by applying - the operator to its left and right constraint arguments. - - - - - Abstract base for operators that indicate how to - apply a constraint to items in a collection. - - - - - Constructs a CollectionOperator - - - - - The ConstraintOperator class is used internally by a - ConstraintBuilder to represent an operator that - modifies or combines constraints. - - Constraint operators use left and right precedence - values to determine whether the top operator on the - stack should be reduced before pushing a new operator. - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - The syntax element preceding this operator - - - - - The syntax element following this operator - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Represents a constraint that succeeds if the specified - count of members of a collection match a base constraint. - - - - - Construct an ExactCountOperator for a specified count - - The expected count - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Operator used to test for the presence of a Indexer - on an object and optionally apply further tests to the - value of that indexer. - - - - - Constructs a IndexerOperator for a particular set of indexer - parameters - - - - - Returns a IndexerConstraint applied to its argument. - - - - - Represents a constraint that succeeds if none of the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - none of them succeed. - - - - - Negates the test of the constraint it wraps. - - - - - Constructs a new NotOperator - - - - - Returns a NotConstraint applied to its argument. - - - - - Operator that requires at least one of its arguments to succeed - - - - - Construct an OrOperator - - - - - Apply the operator to produce an OrConstraint - - - - - PrefixOperator takes a single constraint and modifies - its action in some way. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Returns the constraint created by applying this - prefix to another constraint. - - - - - - - Operator used to test for the presence of a named Property - on an object and optionally apply further tests to the - value of that property. - - - - - Gets the name of the property to which the operator applies - - - - - Constructs a PropOperator for a particular named property - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Abstract base class for operators that are able to reduce to a - constraint whether or not another syntactic element follows. - - - - - Represents a constraint that succeeds if any of the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - any of them succeed. - - - - - Operator that tests that an exception is thrown and - optionally applies further tests to the exception. - - - - - Construct a ThrowsOperator - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Represents a constraint that simply wraps the - constraint provided as an argument, without any - further functionality, but which modifies the - order of evaluation because of its precedence. - - - - - Constructor for the WithOperator - - - - - Returns a constraint that wraps its argument - - - - - OrConstraint succeeds if either member succeeds - - - - - Create an OrConstraint from two other constraints - - The first constraint - The second constraint - - - - Gets text describing a constraint - - - - - Apply the member constraints to an actual value, succeeding - succeeding as soon as one of them succeeds. - - The actual value - True if either constraint succeeded - - - - PathConstraint serves as the abstract base of constraints - that operate on paths and provides several helper methods. - - - - - Construct a PathConstraint for a give expected path - - The expected path - - - - Modifies the current instance to be case-sensitive - and returns it. - - - - - Returns the string representation of this constraint - - - - - Canonicalize the provided path - - - The path in standardized form - - - - Test whether one path in canonical form is a subpath of another path - - The first path - supposed to be the parent path - The second path - supposed to be the child path - - - - - Predicate constraint wraps a Predicate in a constraint, - returning success if the predicate is true. - - - - - Construct a PredicateConstraint from a predicate - - - - - Gets text describing a constraint - - - - - Determines whether the predicate succeeds when applied - to the actual value. - - - - - Abstract base class used for prefixes - - - - - The base constraint - - - - - Prefix used in forming the constraint description - - - - - Construct given a base constraint - - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Formats a prefix constraint's description. - - - - - PropertyConstraint extracts a named property and uses - its value as the actual value for a chained constraint. - - - - - Initializes a new instance of the class. - - The name. - The constraint to apply to the property. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Returns the string representation of the constraint. - - - - - Contains the result of matching a against an actual value. - - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The base result with actual value to which the Constraint was applied. - - - - Write the additional failure message for a failing constraint to a - MessageWriter. - - The writer on which the actual value is displayed - - - - PropertyExistsConstraint tests that a named property - exists on the object provided through Match. - - Originally, PropertyConstraint provided this feature - in addition to making optional tests on the value - of the property. The two constraints are now separate. - - - - - Initializes a new instance of the class. - - The name of the property. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the property exists for a given object - - The object to be tested - True for success, false for failure - - - - Returns the string representation of the constraint. - - - - - - RangeConstraint tests whether two values are within a - specified range. - - - - - Initializes a new instance of the class. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use a and returns self. - - - - - RegexConstraint can test whether a string matches - the pattern provided. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Initializes a new instance of the class. - - The pattern. - - - - Initializes a new instance of the class. - - The Regex pattern object. - - - - Modify the constraint to ignore case in matching. - - - - - Applies the regex constraint to an actual value, returning a ConstraintResult. - - The string to be tested. - True for success, false for failure. - - - - ResolvableConstraintExpression is used to represent a compound - constraint being constructed at a point where the last operator - may either terminate the expression or may have additional - qualifying constraints added to it. - - It is used, for example, for a Property element or for - an Exception element, either of which may be optionally - followed by constraints that apply to the property or - exception. - - - - - Create a new instance of ResolvableConstraintExpression - - - - - Create a new instance of ResolvableConstraintExpression, - passing in a pre-populated ConstraintBuilder. - - - - - Appends an And Operator to the expression - - - - - Appends an Or operator to the expression. - - - - - Resolve the current expression to a Constraint - - - - - ReusableConstraint wraps a constraint expression after - resolving it so that it can be reused consistently. - - - - - Construct a ReusableConstraint from a constraint expression - - The expression to be resolved and reused - - - - Converts a constraint to a ReusableConstraint - - The constraint to be converted - A ReusableConstraint - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Return the top-level constraint for this expression - - - - - - SameAsConstraint tests whether an object is identical to - the object passed to its constructor - - - - - Initializes a new instance of the class. - - The expected object. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Summary description for SamePathConstraint. - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SamePathOrUnderConstraint tests that one path is under another - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SomeItemsConstraint applies another constraint to each - item in a collection, succeeding if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - succeeding if any item succeeds. - - - - - - - Flag the constraint to use the supplied object. - - The type of the elements in the collection. - The type of the member. - The comparison function to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - StartsWithConstraint can test whether a string starts - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - StringConstraint is the abstract base for constraints - that operate on strings. It supports the IgnoreCase - modifier for string operations. - - - - - The expected value - - - - - Indicates whether tests should be case-insensitive - - - - - Description of this constraint - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Constructs a StringConstraint without an expected value - - - - - Constructs a StringConstraint given an expected value - - The expected value - - - - Modify the constraint to ignore case in matching. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Test whether the constraint is satisfied by a given string - - The string to be tested - True for success, false for failure - - - - SubPathConstraint tests that the actual path is under the expected path - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SubstringConstraint can test whether a string contains - the expected substring. - - - - - Initializes a new instance of the class. - - The expected. - - - - Modify the constraint to ignore case in matching. - This will call Using(StringComparison.CurrentCultureIgnoreCase). - - Thrown when a comparison type different - than was already set. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Modify the constraint to the specified comparison. - - Thrown when a comparison type different - than was already set. - - - - ThrowsConstraint is used to test the exception thrown by - a delegate by applying a constraint to it. - - - - - Initializes a new instance of the class, - using a constraint to be applied to the exception. - - A constraint to apply to the caught exception. - - - - Get the actual exception thrown - used by Assert.Throws. - - - - - Gets text describing a constraint - - - - - Executes the code of the delegate and captures any exception. - If a non-null base constraint was provided, it applies that - constraint to the exception. - - A delegate representing the code to be tested - True if an exception is thrown and the constraint succeeds, otherwise false - - - - Converts an ActualValueDelegate to a TestDelegate - before calling the primary overload. - - - - - - - Write the actual value for a failing constraint test to a - MessageWriter. This override only handles the special message - used when an exception is expected but none is thrown. - - The writer on which the actual value is displayed - - - - ThrowsExceptionConstraint tests that an exception has - been thrown, without any further tests. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Executes the code and returns success if an exception is thrown. - - A delegate representing the code to be tested - True if an exception is thrown, otherwise false - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - - - - ThrowsNothingConstraint tests that a delegate does not - throw an exception. - - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True if no exception is thrown, otherwise false - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - The Tolerance class generalizes the notion of a tolerance - within which an equality test succeeds. Normally, it is - used with numeric types, but it can be used with any - type that supports taking a difference between two - objects and comparing that difference to a value. - - - - - Returns a default Tolerance object, equivalent to an exact match. - - - - - Returns an empty Tolerance object, equivalent to an exact match. - - - - - Constructs a linear tolerance of a specified amount - - - - - Constructs a tolerance given an amount and - - - - - Returns a new tolerance, using the current amount as a percentage. - - - - - Returns a new tolerance, using the current amount in Ulps - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of days. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of hours. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of minutes. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of seconds. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of milliseconds. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of clock ticks. - - - - - Gets the for the current Tolerance - - - - - Gets the magnitude of the current Tolerance instance. - - - - - Returns true if the current tolerance has not been set or is using the . - - - - - Apply the tolerance to an expected value and return - a Tolerance.Range that represents the acceptable values. - - - - - Tests that the current Tolerance is linear with a - numeric value, throwing an exception if it is not. - - - - - Tolerance.Range represents the range of values that match - a specific tolerance, when applied to a specific value. - - - - - The lower bound of the range - - - - - The upper bound of the range - - - - - Constructs a range - - - - - Modes in which the tolerance value for a comparison can be interpreted. - - - - - The tolerance was created with a value, without specifying - how the value would be used. This is used to prevent setting - the mode more than once and is generally changed to Linear - upon execution of the test. - - - - - The tolerance is used as a numeric range within which - two compared values are considered to be equal. - - - - - Interprets the tolerance as the percentage by which - the two compared values my deviate from each other. - - - - - Compares two values based in their distance in - representable numbers. - - - - - TrueConstraint tests that the actual value is true - - - - - Initializes a new instance of the class. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - TypeConstraint is the abstract base for constraints - that take a Type as their expected value. - - - - - The expected Type used by the constraint - - - - - The type of the actual argument to which the constraint was applied - - - - - Construct a TypeConstraint for a given Type - - The expected type for the constraint - Prefix used in forming the constraint description - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - UniqueItemsConstraint tests whether all the items in a - collection are unique. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Check that all items are unique. - - - - - - - - - - XmlSerializableConstraint tests whether - an object is serializable in XML format. - - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Returns the string representation of this constraint - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the dictionary. - - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the dictionary. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Asserts on Directories - - - - - DO NOT USE! Use DirectoryAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both point to the same directory. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if the directories are not equal - Arguments to be used in formatting the message - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both point to the same directory. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - A directory containing the actual value - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - The path to a directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - The path to a directory containing the actual value - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - A directory containing the actual value - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - The path to a directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - The path to a directory containing the actual value - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a constraint that succeeds if the value - is a file or directory and it exists. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new . This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - This overload is only used if the item sought is a string, - since any other type implies that we are looking for a - collection member. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the Dictionary key collection. - - The key to be matched in the Dictionary key collection - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the Dictionary value collection. - - The value to be matched in the Dictionary value collection - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - If throws, returns "SomeException was thrown by the Exception.StackTrace - property." See also . - - - - - If throws, returns "SomeException was thrown by the Exception.Message - property." - - - - - If throws, returns "SomeException was thrown by the Exception.Data property." - - - - - Thrown when an assertion failed. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when a test executes inconclusively. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - Construct based on the TestResult so far. This is the constructor - used normally, when exiting the multiple assert block with failures. - Not used internally but provided to facilitate debugging. - - - The current result, up to this point. The result is not used - internally by NUnit but is provided to facilitate debugging. - - - - - Serialization Constructor - - - - - Gets the provided by this exception. - - - - - Gets the of this test at the point the exception was thrown, - - - - - Abstract base for Exceptions that terminate a test and provide a ResultState. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Contains extension methods that do not require a special using directive. - - - - - Asserts on Files - - - - - DO NOT USE! Use FileAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - The message to be displayed when the two Stream are the same. - Arguments to be used in formatting the message - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Asserts that the file exists. If it does not exist - an is thrown. - - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file exists. If it does not exist - an is thrown. - - A file containing the actual value - - - - Asserts that the file exists. If it does not exist - an is thrown. - - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file exists. If it does not exist - an is thrown. - - The path to a file containing the actual value - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - A file containing the actual value - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - The path to a file containing the actual value - - - - Class used to guard against unexpected argument values - or operations by throwing an appropriate exception. - - - - - Throws an exception if an argument is null - - The value to be tested - The name of the argument - - - - Throws an exception if a string argument is null or empty - - The value to be tested - The name of the argument - - - - Throws an ArgumentOutOfRangeException if the specified condition is not met. - - The condition that must be met - The exception message to be used - The name of the argument - - - - Throws an ArgumentException if the specified condition is not met. - - The condition that must be met - The exception message to be used - The name of the argument - - - - Throws an InvalidOperationException if the specified condition is not met. - - The condition that must be met - The exception message to be used - - - - Throws an if the specified delegate is async void. - - - - - Throws an if the specified delegate is async void. - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a which will apply - the following constraint to only one member of the collection, - and fail if none or more than one match occurs. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new IndexerConstraintExpression, which will - apply any following constraint to that indexer value. - - Index accessor values. - - - - The AssertionResult class represents the result of a single assertion. - - - - - Construct an AssertionResult - - - - The pass/fail status of the assertion - - - The message produced by the assertion, or null - - - The stack trace associated with the assertion, or null - - - Determines whether the specified object is equal to the current object. - The object to compare with the current object. - - - Indicates whether the current object is equal to another object of the same type. - An object to compare with this object. - - - Serves as the default hash function. - - - - ToString Override - - - - - AssertionStatus enumeration represents the possible outcomes of an assertion. - The order of definition is significant, higher level values override lower - ones in determining the overall result of a test. - - - - - An assumption failed - - - - - The assertion succeeded - - - - - A warning message was issued - - - - - The assertion failed - - - - - An unexpected exception was thrown - - - - - The IApplyToContext interface is implemented by attributes - that want to make changes to the execution context before - a test is run. - - - - - Apply changes to the execution context - - The execution context - - - - The IApplyToTest interface is implemented by self-applying - attributes that modify the state of a test in some way. - - - - - Modifies a test as defined for the specific attribute. - - The test to modify - - - - CombiningStrategy is the abstract base for classes that - know how to combine values provided for individual test - parameters to create a set of test cases. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - ICommandWrapper is implemented by attributes and other - objects able to wrap a TestCommand with another command. - - - Attributes or other objects should implement one of the - derived interfaces, rather than this one, since they - indicate in which part of the command chain the wrapper - should be applied. - - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - Objects implementing this interface are used to wrap - the TestMethodCommand itself. They apply after SetUp - has been run and before TearDown. - - - - - Objects implementing this interface are used to wrap - the entire test, including SetUp and TearDown. - - - - - Objects implementing this interface are used to wrap - tests that can repeat. The implementing command is run once, - invoking the chained commands any number of times. - - - - - Any ITest that implements this interface is at a level that the implementing - class should be disposed at the end of the test run - - - - - The IFixtureBuilder interface is exposed by a class that knows how to - build test fixtures from a specified type. In general, it is exposed - by an attribute, but it may be implemented in a helper class used by the - attribute in some cases. - - - - - Builds any number of test fixtures from the specified type. - - The type info of the fixture to be used. - - - - The IFixtureBuilder2 interface extends IFixtureBuilder by allowing - use of a PreFilter, which is used to select methods as test cases. - - - - - Builds any number of test fixtures from the specified type. - - The type info of the fixture to be used. - PreFilter to be used to select methods. - - - - IImplyFixture is an empty marker interface used by attributes like - TestAttribute that cause the class where they are used to be treated - as a TestFixture even without a TestFixtureAttribute. - - Marker interfaces are not usually considered a good practice, but - we use it here to avoid cluttering the attribute hierarchy with - classes that don't contain any extra implementation. - - - - - The IMethodInfo class is used to encapsulate information - about a method in a platform-independent manner. - - - - - Gets the Type from which this method was reflected. - - - - - Gets the MethodInfo for this method. - - - - - Gets the name of the method. - - - - - Gets a value indicating whether the method is abstract. - - - - - Gets a value indicating whether the method is public. - - - - - Gets a value indicating whether the method is static. - - - - - Gets a value indicating whether the method contains unassigned generic type parameters. - - - - - Gets a value indicating whether the method is a generic method. - - - - - Gets a value indicating whether the MethodInfo represents the definition of a generic method. - - - - - Gets the return Type of the method. - - - - - Gets the parameters of the method. - - - - - - Returns the Type arguments of a generic method or the Type parameters of a generic method definition. - - - - - Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. - - The type arguments to be used - A new IMethodInfo with the type arguments replaced - - - - Invokes the method, converting any TargetInvocationException to an NUnitException. - - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - Provides data for a single test parameter. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test. - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - Provides data for a single test parameter. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - The IParameterInfo interface is an abstraction of a .NET parameter. - - - - - Gets a value indicating whether the parameter is optional - - - - - Gets an IMethodInfo representing the method for which this is a parameter - - - - - Gets the underlying .NET ParameterInfo - - - - - Gets the Type of the parameter - - - - - Implemented by filters for use in deciding which - Types and Methods should be used to generate tests. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - A PropertyBag represents a collection of name/value pairs - that allows duplicate entries with the same key. Methods - are provided for adding a new pair as well as for setting - a key to a single value. All keys are strings but values - may be of any type. Null values are not permitted, since - a null entry represents the absence of the key. - - The entries in a PropertyBag are of two kinds: those that - take a single value and those that take multiple values. - However, the PropertyBag has no knowledge of which entries - fall into each category and the distinction is entirely - up to the code using the PropertyBag. - - When working with multi-valued properties, client code - should use the Add method to add name/value pairs and - indexing to retrieve a list of all values for a given - key. For example: - - bag.Add("Tag", "one"); - bag.Add("Tag", "two"); - Assert.That(bag["Tag"], - Is.EqualTo(new string[] { "one", "two" })); - - When working with single-valued properties, client code - should use the Set method to set the value and Get to - retrieve the value. The GetSetting methods may also be - used to retrieve the value in a type-safe manner while - also providing default. For example: - - bag.Set("Priority", "low"); - bag.Set("Priority", "high"); // replaces value - Assert.That(bag.Get("Priority"), - Is.EqualTo("high")); - Assert.That(bag.GetSetting("Priority", "low"), - Is.EqualTo("high")); - - - - - Adds a key/value pair to the property bag - - The key - The value - - - - Sets the value for a key, removing any other - values that are already in the property set. - - - - - - - Gets a single value for a key, using the first - one if multiple values are present and returning - null if the value is not found. - - - - - Gets a flag indicating whether the specified key has - any entries in the property set. - - The key to be checked - True if their are values present, otherwise false - - - - Gets or sets the list of values for a particular key - - The key for which the values are to be retrieved or set - - - - Gets a collection containing all the keys in the property set - - - - - The IReflectionInfo interface is implemented by NUnit wrapper objects that perform reflection. - - - - - Returns an array of custom attributes of the specified type applied to this object - - - - - Returns a value indicating whether an attribute of the specified type is defined on this object. - - - - - The ISimpleTestBuilder interface is exposed by a class that knows how to - build a single tests from a specified method. In general, - it is exposed by an attribute, but it may be implemented in a helper class - used by the attribute in some cases. - - - - - Builds a single test from the specified method and context. - - The method to be used as a test - The TestSuite to which the method will be added - - - - The ISuiteBuilder interface is exposed by a class that knows how to - build a single test suite from a specified type. - - - - - Examine the type and determine if it is suitable for - this builder to use in building a TestSuite. - - Note that returning false will cause the type to be ignored - in loading the tests. If it is desired to load the suite - but label it as non-runnable, ignored, etc., then this - method must return true. - - The type of the fixture to be used - - - - Builds a single test suite from the specified type. - - The type of the fixture to be used - - - - Builds a single test suite from the specified type, subject - to a filter that decides which methods are included. - - The type of the fixture to be used - A PreFilter for selecting methods. - - - - Common interface supported by all representations - of a test. Only includes informational fields. - The Run method is specifically excluded to allow - for data-only representations of a test. - - - - - Gets the id of the test - - - - - Gets the name of the test - - - - - Gets the type of the test - - - - - Gets the fully qualified name of the test - - - - - Gets the name of the class containing this test. Returns - null if the test is not associated with a class. - - - - - Gets the name of the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - Gets the Type of the test fixture, if applicable, or - null if no fixture type is associated with this test. - - - - - Gets the method which declares the test, or - if no method is associated with this test. - - - - - Gets the RunState of the test, indicating whether it can be run. - - - - - Count of the test cases ( 1 if this is a test case ) - - - - - Gets the properties of the test - - - - - Gets the parent test, if any. - - The parent test or null if none exists. - - - - Returns true if this is a test suite - - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets this test's child tests - - A list of child tests - - - - Gets a fixture object for running this test. - - - - - The arguments to use in creating the test or empty array if none are required. - - - - - The ITestBuilder interface is exposed by a class that knows how to - build tests from a specified method. In general, it is exposed - by an attribute which has additional information available to provide - the necessary test parameters to distinguish the test cases built. - - - - - Builds any number of tests from the specified method and context. - - The method to be used as a test - The TestSuite to which the method will be added - - - - The ITestCaseBuilder interface is exposed by a class that knows how to - build a test from a specified method, possibly containing child test cases. - - - - - Examine the method and determine if it is suitable for - this builder to use in building a TestCase to be - included in the suite being populated. - - Note that returning false will cause the method to be ignored - in loading the tests. If it is desired to load the method - but label it as non-runnable, ignored, etc., then this - method must return true. - - The test method to examine - The suite being populated - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method to be used as a test case - The test suite being populated, or null - - - - The ITestCaseData interface is implemented by a class - that is able to return complete test cases for use by - a parameterized test method. - - - - - Gets the expected result of the test case - - - - - Returns true if an expected result has been set - - - - - The ITestData interface is implemented by a class that - represents a single instance of a parameterized test. - - - - - Gets the name to be used for the test - - - - - Gets the RunState for this test case. - - - - - Gets the argument list to be provided to the test - - - - - Gets the property dictionary for the test case - - - - - Interface to be implemented by filters applied to tests. - The filter applies when running the test, after it has been - loaded, since this is the only time an ITest exists. - - - - - Determine if a particular test passes the filter criteria. Pass - may examine the parents and/or descendants of a test, depending - on the semantics of the particular filter - - The test to which the filter is applied - True if the test passes the filter, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - The ITestCaseData interface is implemented by a class - that is able to return the data required to create an - instance of a parameterized test fixture. - - - - - Get the TypeArgs if separately set - - - - - The ITestListener interface is used internally to receive - notifications of significant events while a test is being - run. The events are propagated to clients by means of an - AsyncCallback. NUnit extensions may also monitor these events. - - - - - Called when a test has just started - - The test that is starting - - - - Called when a test has finished - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - The ITestResult interface represents the result of a test. - - - - - Gets the ResultState of the test result, which - indicates the success or failure of the test. - - - - - Gets the name of the test result - - - - - Gets the full name of the test result - - - - - Gets the elapsed time for running the test in seconds - - - - - Gets or sets the time the test started running. - - - - - Gets or sets the time the test finished running. - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - Gets the total number of tests executed - when running the test and all its children. - - - - - Gets the number of asserts executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - Accessing HasChildren should not force creation of the - Children collection in classes implementing this interface. - - - - - Gets the collection of child results. - - - - - Gets the Test to which this result applies. - - - - - Gets any text output written to this result. - - - - - Gets a list of AssertionResults associated with the test - - - - - Gets the collection of files attached to the test - - - - - The ITypeInfo interface is an abstraction of a .NET Type - - - - - Gets the underlying Type on which this ITypeInfo is based - - - - - Gets the base type of this type as an ITypeInfo - - - - - Returns true if the Type wrapped is equal to the argument - - - - - Gets the name of the Type - - - - - Gets the full name of the Type - - - - - Gets the assembly in which the type is declared - - - - - Gets the namespace of the Type - - - - - Gets a value indicating whether the type is abstract. - - - - - Gets a value indicating whether the Type is a generic Type - - - - - Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. - - - - - Gets a value indicating whether the Type is a generic Type definition - - - - - Gets a value indicating whether the type is sealed. - - - - - Gets a value indicating whether this type is a static class. - - - - - Get the display name for this typeInfo. - - - - - Get the display name for an object of this type, constructed with specific arguments - - - - - Returns a Type representing a generic type definition from which this Type can be constructed. - - - - - Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments - - - - - Returns a value indicating whether this type has a method with a specified public attribute - - - - - Returns an array of IMethodInfos for methods of this Type - that match the specified flags. - - - - - Gets the public constructor taking the specified argument Types - - - - - Returns a value indicating whether this Type has a public constructor taking the specified argument Types. - - - - - Construct an object of this Type, using the specified arguments. - - - - - Returns all methods declared by this type that have the specified attribute, optionally - including base classes. Methods from a base class are always returned before methods from a class that - inherits from it. - - Specifies whether to search the fixture type inheritance chain. - - - - An object implementing IXmlNodeBuilder is able to build - an XML representation of itself and any children. - - - - - Returns a TNode representing the current object. - - If true, children are included where applicable - A TNode representing the result - - - - Returns a TNode representing the current object after - adding it as a child of the supplied parent node. - - The parent node. - If true, children are included, where applicable - - - - - The ResultState class represents the outcome of running a test. - It contains two pieces of information. The Status of the test - is an enum indicating whether the test passed, failed, was - skipped or was inconclusive. The Label provides a more - detailed breakdown for use by client runners. - - - - - Initializes a new instance of the class. - - The TestStatus. - - - - Initializes a new instance of the class. - - The TestStatus. - The label. - - - - Initializes a new instance of the class. - - The TestStatus. - The stage at which the result was produced - - - - Initializes a new instance of the class. - - The TestStatus. - The label. - The stage at which the result was produced - - - - The result is inconclusive - - - - - The test has been skipped. - - - - - The test has been ignored. - - - - - The test was skipped because it is explicit - - - - - The test succeeded - - - - - The test issued a warning - - - - - The test failed - - - - - The test encountered an unexpected exception - - - - - The test was cancelled by the user - - - - - The test was not runnable. - - - - - A suite failed because one or more child tests failed or had errors - - - - - A suite failed because one or more child tests had warnings - - - - - A suite is marked ignored because one or more child tests were ignored - - - - - A suite failed in its OneTimeSetUp - - - - - A suite had an unexpected exception in its OneTimeSetUp - - - - - A suite had an unexpected exception in its OneTimeDown - - - - - Gets the TestStatus for the test. - - The status. - - - - Gets the label under which this test result is - categorized, or if none. - - - - - Gets the stage of test execution in which - the failure or other result took place. - - - - - Get a new ResultState, which is the same as the current - one but with the FailureSite set to the specified value. - - The FailureSite to use - A new ResultState - - - - Test whether this ResultState has the same Status and Label - as another one. In other words, the whether two are equal - ignoring the Site. - - - - - - Determines whether the specified object is equal to the current object. - The object to compare with the current object. - - - Indicates whether the current object is equal to another object of the same type. - An object to compare with this object. - - - Serves as the default hash function. - - - - Overload == operator for ResultStates - - - - - Overload != operator for ResultStates - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - The FailureSite enum indicates the stage of a test - in which an error or failure occurred. - - - - - Failure in the test itself - - - - - Failure in the SetUp method - - - - - Failure in the TearDown method - - - - - Failure of a parent test - - - - - Failure of a child test - - - - - The RunState enum indicates whether a test can be executed. - - - - - The test is not runnable. - - - - - The test is runnable. - - - - - The test can only be run explicitly - - - - - The test has been skipped. This value may - appear on a Test when certain attributes - are used to skip the test. - - - - - The test has been ignored. May appear on - a Test, when the IgnoreAttribute is used. - - - - - The TestAttachment class represents a file attached to a TestResult, - with an optional description. - - - - - Absolute file path to attachment file - - - - - User specified description of attachment. May be null. - - - - - Creates a TestAttachment class to represent a file attached to a test result. - - Absolute file path to attachment file - User specified description of attachment. May be null. - - - - The class holds a message sent by a test to all listeners - - - - - Construct with text, destination type and - the name of the test that produced the message. - - Destination of the message - Text to be sent - ID of the test that produced the message - - - - Converts object to string - - - - - The message to send to listeners - - - - - The Destination of the message. - - - - - The ID of the test that sent the message - - - - - Returns the XML representation of the object. - - - - - The TestOutput class holds a unit of output from - a test to a specific output stream - - - - - Construct with text, output destination type and - the name of the test that produced the output. - - Text to be output - Name of the stream or channel to which the text should be written - Id of the test that produced the output - FullName of test that produced the output - - - - Return string representation of the object for debugging - - - - - - Get the text - - - - - Get the output type - - - - - Get the name of the test that created the output - - - - - Get the id of the test that created the output - - - - - Convert the TestOutput object to an XML string - - - - - The TestStatus enum indicates the result of running a test - - - - - The test was inconclusive - - - - - The test has skipped - - - - - The test succeeded - - - - - There was a warning - - - - - The test failed - - - - - TNode represents a single node in the XML representation - of a Test or TestResult. It replaces System.Xml.XmlNode and - System.Xml.Linq.XElement, providing a minimal set of methods - for operating on the XML in a platform-independent manner. - - - - - Constructs a new instance of TNode - - The name of the node - - - - Constructs a new instance of TNode with a value - - The name of the node - The text content of the node - - - - Constructs a new instance of TNode with a value - - The name of the node - The text content of the node - Flag indicating whether to use CDATA when writing the text - - - - Gets the name of the node - - - - - Gets the value of the node - - - - - Gets a flag indicating whether the value should be output using CDATA. - - - - - Gets the dictionary of attributes - - - - - Gets a list of child nodes - - - - - Gets the first ChildNode - - - - - Gets the XML representation of this node. - - - - - Create a TNode from its XML text representation - - The XML text to be parsed - A TNode - - - - Adds a new element as a child of the current node and returns it. - - The element name. - The newly created child element - - - - Adds a new element with a value as a child of the current node and returns it. - - The element name - The text content of the new element - The newly created child element - - - - Adds a new element with a value as a child of the current node and returns it. - The value will be output using a CDATA section. - - The element name - The text content of the new element - The newly created child element - - - - Adds an attribute with a specified name and value to the XmlNode. - - The name of the attribute. - The value of the attribute. - - - - Finds a single descendant of this node matching an XPath - specification. The format of the specification is - limited to what is needed by NUnit and its tests. - - - - - - - Finds all descendants of this node matching an XPath - specification. The format of the specification is - limited to what is needed by NUnit and its tests. - - - - - Writes the XML representation of the node to an XmlWriter - - - - - - Class used to represent a list of XmlResults - - - - - Class used to represent the attributes of a node - - - - - Gets or sets the value associated with the specified key. - Overridden to return null if attribute is not found. - - The key. - Value of the attribute or null - - - - A production implementation that delegates directly to .NET's . - - - - - Returns whether a debugger is currently attached to the process - - - - - A layer of abstraction around to facilitate testing. - - - - - Whether a debugger is currently attached to the process. - - - - - AssemblyHelper provides static methods for working - with assemblies. - - - - - Gets the path from which an assembly was loaded. - For builds where this is not possible, returns - the name of the assembly. - - The assembly. - The path. - - - - Gets the path to the directory from which an assembly was loaded. - - The assembly. - The path. - - - - Gets the AssemblyName of an assembly. - - The assembly - An AssemblyName - - - - Loads an assembly given a string, which may be the - path to the assembly or the AssemblyName - - - - - Gets the assembly path from code base. - - Public for testing purposes - The code base. - - - - - Adapts various styles of asynchronous waiting to a common API. - - - - - CombinatorialStrategy creates test cases by using all possible - combinations of the parameter data. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - Provides data from fields marked with the DatapointAttribute or the - DatapointsAttribute. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - Built-in SuiteBuilder for all types of test classes. - - - - - Examine the type and determine if it is suitable for - this builder to use in building a TestSuite. - - Note that returning false will cause the type to be ignored - in loading the tests. If it is desired to load the suite - but label it as non-runnable, ignored, etc., then this - method must return true. - - The fixture type to check - - - - Builds a single test suite from the specified type. - - The fixture type to build - - - - Builds a single test suite from the specified type, subject - to a filter that decides which methods are included. - - The fixture type to build - A PreFilter for selecting methods. - - - - We look for attributes implementing IFixtureBuilder at one level - of inheritance at a time. Attributes on base classes are not used - unless there are no fixture builder attributes at all on the derived - class. This is by design. - - The type being examined for attributes - - - - Class to build ether a parameterized or a normal NUnitTestMethod. - There are four cases that the builder must deal with: - 1. The method needs no params and none are provided - 2. The method needs params and they are provided - 3. The method needs no params but they are provided in error - 4. The method needs params but they are not provided - This could have been done using two different builders, but it - turned out to be simpler to have just one. The BuildFrom method - takes a different branch depending on whether any parameters are - provided, but all four cases are dealt with in lower-level methods - - - - - Determines if the method can be used to build an NUnit test - test method of some kind. The method must normally be marked - with an identifying attribute for this to be true. - - Note that this method does not check that the signature - of the method for validity. If we did that here, any - test methods with invalid signatures would be passed - over in silence in the test run. Since we want such - methods to be reported, the check for validity is made - in BuildFrom rather than here. - - An IMethodInfo for the method being used as a test method - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method for which a test is to be built - - - - Determines if the method can be used to build an NUnit test - test method of some kind. The method must normally be marked - with an identifying attribute for this to be true. - - Note that this method does not check that the signature - of the method for validity. If we did that here, any - test methods with invalid signatures would be passed - over in silence in the test run. Since we want such - methods to be reported, the check for validity is made - in BuildFrom rather than here. - - An IMethodInfo for the method being used as a test method - The test suite being built, to which the new test would be added - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method for which a test is to be built - The test fixture being populated, or null - - - - Builds a ParameterizedMethodSuite containing individual test cases. - - The method for which a test is to be built. - The list of test cases to include. - - - - Build a simple, non-parameterized TestMethod for this method. - - The MethodInfo for which a test is to be built - The test suite for which the method is being built - - - - Class that can build a tree of automatic namespace - suites from a group of fixtures. - - - - - NamespaceDictionary of all test suites we have created to represent - namespaces. Used to locate namespace parent suites for fixtures. - - - - - Point in the tree where items in the global namespace are added - - - - - Initializes a new instance of the class. - - The root suite. - - - - Gets the root entry in the tree created by the NamespaceTreeBuilder. - - The root suite. - - - - Adds the specified fixtures to the tree. - - The fixtures to be added. - - - - Adds the specified fixture to the tree. - - The fixture to be added. - - - - NUnitTestCaseBuilder is a utility class used by attributes - that build test cases. - - - - - Constructs an - - - - - Builds a single NUnitTestMethod, either as a child of the fixture - or as one of a set of test cases under a ParameterizedTestMethodSuite. - - The MethodInfo from which to construct the TestMethod - The suite or fixture to which the new test will be added - The ParameterSet to be used, or null - - - - Checks to see if we have valid combinations of attributes. - - The TestMethod to be checked. If it - is found to be non-runnable, it will be modified. - True if the method signature is valid, false if not - - - - Helper method that checks the signature of a TestMethod and - any supplied parameters to determine if the test is valid. - - Currently, NUnitTestMethods are required to be public, - non-abstract methods, either static or instance, - returning void. They may take arguments but the values must - be provided or the TestMethod is not considered runnable. - - Methods not meeting these criteria will be marked as - non-runnable and the method will return false in that case. - - The TestMethod to be checked. If it - is found to be non-runnable, it will be modified. - Parameters to be used for this test, or null - True if the method signature is valid, false if not - - The return value is no longer used internally, but is retained - for testing purposes. - - - - - NUnitTestFixtureBuilder is able to build a fixture given - a class marked with a TestFixtureAttribute or an unmarked - class containing test methods. In the first case, it is - called by the attribute and in the second directly by - NUnitSuiteBuilder. - - - - - Build a TestFixture from type provided. A non-null TestSuite - must always be returned, since the method is generally called - because the user has marked the target class as a fixture. - If something prevents the fixture from being used, it should - be returned nonetheless, labeled as non-runnable. - - An ITypeInfo for the fixture to be used. - Filter used to select methods as tests. - A TestSuite object or one derived from TestSuite. - - - - Overload of BuildFrom called by tests that have arguments. - Builds a fixture using the provided type and information - in the ITestFixtureData object. - - The TypeInfo for which to construct a fixture. - Filter used to select methods as tests. - An object implementing ITestFixtureData or null. - - - - - Method to add test cases to the newly constructed fixture. - - - - - Method to create a test case from a MethodInfo and add - it to the fixture being built. It first checks to see if - any global TestCaseBuilder addin wants to build the - test case. If not, it uses the internal builder - collection maintained by this fixture builder. - - The default implementation has no test case builders. - Derived classes should add builders to the collection - in their constructor. - - The method for which a test is to be created - The test suite being built. - A newly constructed Test - - - - PairwiseStrategy creates test cases by combining the parameter - data so that all possible pairs of data items are used. - - - - The number of test cases that cover all possible pairs of test function - parameters values is significantly less than the number of test cases - that cover all possible combination of test function parameters values. - And because different studies show that most of software failures are - caused by combination of no more than two parameters, pairwise testing - can be an effective ways to test the system when it's impossible to test - all combinations of parameters. - - - The PairwiseStrategy code is based on "jenny" tool by Bob Jenkins: - https://burtleburtle.net/bob/math/jenny.html - - - - - - FleaRand is a pseudo-random number generator developed by Bob Jenkins: - https://burtleburtle.net/bob/rand/talksmall.html#flea - - - - - Initializes a new instance of the FleaRand class. - - The seed. - - - - FeatureInfo represents coverage of a single value of test function - parameter, represented as a pair of indices, Dimension and Feature. In - terms of unit testing, Dimension is the index of the test parameter and - Feature is the index of the supplied value in that parameter's list of - sources. - - - - - Initializes a new instance of FeatureInfo class. - - Index of a dimension. - Index of a feature. - - - - A FeatureTuple represents a combination of features, one per test - parameter, which should be covered by a test case. In the - PairwiseStrategy, we are only trying to cover pairs of features, so the - tuples actually may contain only single feature or pair of features, but - the algorithm itself works with triplets, quadruples and so on. - - - - - Initializes a new instance of FeatureTuple class for a single feature. - - Single feature. - - - - Initializes a new instance of FeatureTuple class for a pair of features. - - First feature. - Second feature. - - - - TestCase represents a single test case covering a list of features. - - - - - Initializes a new instance of TestCaseInfo class. - - A number of features in the test case. - - - - PairwiseTestCaseGenerator class implements an algorithm which generates - a set of test cases which covers all pairs of possible values of test - function. - - - - The algorithm starts with creating a set of all feature tuples which we - will try to cover (see method). This set - includes every single feature and all possible pairs of features. We - store feature tuples in the 3-D collection (where axes are "dimension", - "feature", and "all combinations which includes this feature"), and for - every two feature (e.g. "A" and "B") we generate both ("A", "B") and - ("B", "A") pairs. This data structure extremely reduces the amount of - time needed to calculate coverage for a single test case (this - calculation is the most time-consuming part of the algorithm). - - - Then the algorithm picks one tuple from the uncovered tuple, creates a - test case that covers this tuple, and then removes this tuple and all - other tuples covered by this test case from the collection of uncovered - tuples. - - - Picking a tuple to cover - - - There are no any special rules defined for picking tuples to cover. We - just pick them one by one, in the order they were generated. - - - Test generation - - - Test generation starts from creating a completely random test case which - covers, nevertheless, previously selected tuple. Then the algorithm - tries to maximize number of tuples which this test covers. - - - Test generation and maximization process repeats seven times for every - selected tuple and then the algorithm picks the best test case ("seven" - is a magic number which provides good results in acceptable time). - - Maximizing test coverage - - To maximize tests coverage, the algorithm walks through the list of mutable - dimensions (mutable dimension is a dimension that are not included in - the previously selected tuple). Then for every dimension, the algorithm - walks through the list of features and checks if this feature provides - better coverage than randomly selected feature, and if yes keeps this - feature. - - - This process repeats while it shows progress. If the last iteration - doesn't improve coverage, the process ends. - - - In addition, for better results, before start every iteration, the - algorithm "scrambles" dimensions - so for every iteration dimension - probes in a different order. - - - - - - Creates a set of test cases for specified dimensions. - - - An array which contains information about dimensions. Each element of - this array represents a number of features in the specific dimension. - - - A set of test cases. - - - - - Gets the test cases generated by this strategy instance. - - A set of test cases. - - - - The ParameterDataProvider class implements IParameterDataProvider - and hosts one or more individual providers. - - - - - Construct with a collection of individual providers - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - ParameterDataSourceProvider supplies individual argument values for - single parameters using attributes implementing IParameterDataSource. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - SequentialStrategy creates test cases by using all of the - parameter data sources in parallel, substituting - when any of them run out of data. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - TestActionAfterCommand handles the AfterTest method of a single - TestActionItem, provided the items BeforeTest has been run. - - - - - Initializes a new instance of the class. - - The inner command. - The TestActionItem to run before the inner command. - - - - AfterCommand is a DelegatingTestCommand that performs some - specific action after the inner command is run. - - - - - Construct an AfterCommand - - - - - Execute the command - - - - - Set this to perform action after the inner command. - - - - - ContextSettingsCommand applies specified changes to the - TestExecutionContext prior to running a test. No special - action is needed after the test runs, since the prior - context will be restored automatically. - - - - - TestActionCommand handles a single ITestAction applied - to a test. It runs the BeforeTest method, then runs the - test and finally runs the AfterTest method. - - - - - Initializes a new instance of the class. - - The inner command. - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Perform the before test action - - - - - Perform the after test action - - - - - TestActionBeforeCommand handles the BeforeTest method of a single - TestActionItem, relying on the item to remember it has been run. - - - - - Initializes a new instance of the class. - - The inner command. - The TestActionItem to run before the inner command. - - - - BeforeTestCommand is a DelegatingTestCommand that performs some - specific action before the inner command is run. - - - - - Construct a BeforeCommand - - - - - Execute the command - - - - - Action to perform before the inner command. - - - - - ConstructFixtureCommand constructs the user test object if necessary. - - - - - Constructs a OneTimeSetUpCommand for a suite - - The inner command to which the command applies - - - - DelegatingTestCommand wraps an inner TestCommand. - Derived classes may do what they like before or - after running the inner command. - - - - TODO: Documentation needed for field - - - - Initializes a new instance of the class. - - The inner command. - - - - OneTimeTearDownCommand performs any teardown actions - specified for a suite and calls Dispose on the user - test object, if any. - - - - - Construct a OneTimeTearDownCommand - - The command wrapped by this command - - - - EmptyTestCommand is a TestCommand that does nothing. It simply - returns the current result from the context when executed. We - use it to avoid testing for null when executing a chain of - DelegatingTestCommands. - - - - - Construct a NullCommand for a test - - - - - Execute the command - - - - - ConstructFixtureCommand constructs the user test object if necessary. - - - - - Handles the construction and disposement of a fixture per test case - - The inner command to which the command applies - - - - adjusts the result of a successful test - to a failure if the elapsed time has exceeded the specified maximum - time allowed. - - - - - Initializes a new instance of the class. - - The inner command. - The max time allowed in milliseconds - - - - OneTimeSetUpCommand runs any one-time setup methods for a suite, - constructing the user test object if necessary. - - - - - Constructs a OneTimeSetUpCommand for a suite - - The inner command to which the command applies - A SetUpTearDownList for use by the command - - - - OneTimeTearDownCommand performs any teardown actions - specified for a suite and calls Dispose on the user - test object, if any. - - - - - Construct a OneTimeTearDownCommand - - The command wrapped by this command - A SetUpTearDownList for use by the command - - - - SetUpTearDownCommand runs SetUp methods for a suite, - runs the test and then runs TearDown methods. - - - - - Initializes a new instance of the class. - - The inner command. - List of setup/teardown items - - - - SetUpTearDownItem holds the setup and teardown methods - for a single level of the inheritance hierarchy. - - - - - Construct a SetUpTearDownNode - - A list of setup methods for this level - A list teardown methods for this level - A method validator to validate each method before calling. - - - - Returns true if this level has any methods at all. - This flag is used to discard levels that do nothing. - - - - - Run SetUp on this level. - - The execution context to use for running. - - - - Run TearDown for this level. - - - - - - TODO: Documentation needed for class - - - - - Initializes a new instance of the class. - - The test being skipped. - - - - Overridden to simply set the CurrentResult to the - appropriate Skipped state. - - The execution context for the test - A TestResult - - - - TestActionCommand handles a single ITestAction applied - to a test. It runs the BeforeTest method, then runs the - test and finally runs the AfterTest method. - - - - - Initializes a new instance of the class. - - The inner command. - The TestAction with which to wrap the inner command. - - - - TestActionItem wraps a single execution of an ITestAction. - Its primary purpose is to track whether the BeforeTest - method has been called and suppress calling the - AfterTest method if it has not. This is necessary when - ITestActions are used before and after a CompositeWorkItem, - since the OneTimeSetUpCommand and OneTimeTearDownCommand - are separate command chains. By sharing a TestActionItem - between the setup and teardown chains, the two calls can - be coordinated. - - - - - Construct a TestActionItem - - The ITestAction to be included - - - - Get flag indicating if the BeforeTest entry was already called. - - - - - Run the BeforeTest method of the action and remember that it has been run. - - The test to which the action applies - - - - Run the AfterTest action, but only if the BeforeTest - action was actually run. - - The test to which the action applies - - - - TestCommand is the abstract base class for all test commands - in the framework. A TestCommand represents a single stage in - the execution of a test, e.g.: SetUp/TearDown, checking for - Timeout, verifying the returned result from a method, etc. - - TestCommands may decorate other test commands so that the - execution of a lower-level command is nested within that - of a higher level command. All nested commands are executed - synchronously, as a single unit. Scheduling test execution - on separate threads is handled at a higher level, using the - task dispatcher. - - - - - Construct a TestCommand for a test. - - The test to be executed - - - - Gets the test associated with this command. - - - - - Runs the test in a specified context, returning a TestResult. - - The TestExecutionContext to be used for running the test. - A TestResult - - - - TestMethodCommand is the lowest level concrete command - used to run actual test cases. - - - - - Initializes a new instance of the class. - - The test. - - - - Runs the test, saving a TestResult in the execution context, as - well as returning it. If the test has an expected result, it - is asserts on that value. Since failed tests and errors throw - an exception, this command must be wrapped in an outer command, - will handle that exception and records the failure. This role - is usually played by the SetUpTearDown command. - - The execution context - - - - TheoryResultCommand adjusts the result of a Theory so that - it fails if all the results were inconclusive. - - - - - Constructs a TheoryResultCommand - - The command to be wrapped by this one - - - - creates a timer in order to cancel - a test if it exceeds a specified time and adjusts - the test result if it did time out. - - - - - Initializes a new instance of the class. - - The inner command - Timeout value - - - - Initializes a new instance of the class. - - The inner command - Timeout value - An instance - - - - Provides methods to support consistent checking in constraints. - - - - - Requires that the provided object is actually of the type required. - - The object to verify. - Name of the parameter as passed into the checking method. - - If and can be null, returns null rather than throwing when is null. - If cannot be null, this parameter is ignored. - The type to require. - - - - CultureDetector is a helper class used by NUnit to determine - whether a test should be run based on the current culture. - - - - - Default constructor uses the current culture. - - - - - Construct a CultureDetector for a particular culture for testing. - - The culture to be used - - - - Test to determine if one of a collection of cultures - is being used currently. - - - - - - - Tests to determine if the current culture is supported - based on a culture attribute. - - The attribute to examine - - - - - Test to determine if the a particular culture or comma- - delimited set of cultures is in use. - - Name of the culture or comma-separated list of culture ids - True if the culture is in use on the system - - - - Return the last failure reason. Results are not - defined if called before IsSupported( Attribute ) - is called. - - - - - Useful when wrapping awaiters whose GetResult method does not block until complete. - Contains a default mechanism to implement - via and . - - - - - ExceptionHelper provides static methods for working with exceptions - - - - - Rethrows an exception, preserving its stack trace - - The exception to rethrow - - - - Builds up a message, using the Message field of the specified exception - as well as any InnerExceptions. Optionally excludes exception names, - creating a more readable message. - - The exception. - Flag indicating whether exception names should be excluded. - A combined message string. - - - - Builds up a message, using the Message field of the specified exception - as well as any InnerExceptions. - - The exception. - A combined stack trace. - - - - Executes a parameterless synchronous or async delegate and returns the exception it throws, if any. - - - - - A CompositeWorkItem represents a test suite and - encapsulates the execution of the suite as well - as all its child tests. - - - - - List of Child WorkItems - - - - - Indicates whether this work item should use a separate dispatcher. - - - - - Construct a CompositeWorkItem for executing a test suite - using a filter to select child tests. - - The TestSuite to be executed - A filter used to select child tests - - - - Method that actually performs the work. Overridden - in CompositeWorkItem to do one-time setup, run all child - items and then dispatch the one-time teardown work item. - - - - - - - - - - Cancel (abort or stop) a CompositeWorkItem and all of its children - - true if the CompositeWorkItem and all of its children should be aborted, false if it should allow all currently running tests to complete - - - - OneTimeTearDownWorkItem represents the cleanup - and one-time teardown phase of a CompositeWorkItem - - - - - Construct a OneTimeTearDownWOrkItem wrapping a CompositeWorkItem - - The CompositeWorkItem being wrapped - - - - The WorkItem name, overridden to indicate this is the teardown. - - - - - The ExecutionStrategy for use in running this work item - - - - - - - - - - PerformWork is not used in CompositeWorkItem - - - - - WorkItemCancelled is called directly by the parallel dispatcher - when a test suite is left hanging after a forced StopRun. We - simulate WorkItemComplete() but without the ripple effect to - higher level suites, since we are controlling it all directly. - - - - - EventListenerTextWriter sends text output to the currently active - ITestEventListener in the form of a TestOutput object. If no event - listener is active in the context, or if there is no context, - the output is forwarded to the supplied default writer. - - - - - Construct an EventListenerTextWriter - - The name of the stream to use for events - The default writer to use if no listener is available - - - - Get the Encoding for this TextWriter - - - - - Write formatted string - - - - - Write formatted string - - - - - Write formatted string - - - - - Write an object - - - - - Write a string - - - - - Write a decimal - - - - - Write a double - - - - - Write formatted string - - - - - Write a ulong - - - - - Write a long - - - - - Write a uint - - - - - Write an int - - - - - Write a char - - - - - Write a boolean - - - - - Write chars - - - - - Write chars - - - - - Write a float - - - - - Write a string with newline - - - - - Write an object with newline - - - - - Write formatted string with newline - - - - - Write formatted string with newline - - - - - Write formatted string with newline - - - - - Write a decimal with newline - - - - - Write a formatted string with newline - - - - - Write a double with newline - - - - - Write a uint with newline - - - - - Write a ulong with newline - - - - - Write a long with newline - - - - - Write an int with newline - - - - - Write a bool with newline - - - - - Write chars with newline - - - - - Write chars with newline - - - - - Write a char with newline - - - - - Write a float with newline - - - - - Write newline - - - - - The EventPumpState enum represents the state of an - EventPump. - - - - - The pump is stopped - - - - - The pump is pumping events with no stop requested - - - - - The pump is pumping events but a stop has been requested - - - - - EventPump pulls events out of an EventQueue and sends - them to a listener. It is used to send events back to - the client without using the CallContext of the test - runner thread. - - - - - The downstream listener to which we send events - - - - - The queue that holds our events - - - - - Thread to do the pumping - - - - - The current state of the event pump - - - - - Constructor - - The EventListener to receive events - The event queue to pull events from - - - - Gets or sets the current state of the pump - - - - - Gets or sets the name of this EventPump - (used only internally and for testing). - - - - - Dispose stops the pump - Disposes the used WaitHandle, too. - - - - - Start the pump - - - - - Tell the pump to stop after emptying the queue. - - - - - Our thread proc for removing items from the event - queue and sending them on. Note that this would - need to do more locking if any other thread were - removing events from the queue. - - - - - NUnit.Core.Event is the abstract base for all stored events. - An Event is the stored representation of a call to the - ITestListener interface and is used to record such calls - or to queue them for forwarding on another thread or at - a later time. - - - - - The Send method is implemented by derived classes to send the event to the specified listener. - - The listener. - - - - TestStartedEvent holds information needed to call the TestStarted method. - - - - - Initializes a new instance of the class. - - The test. - - - - Calls TestStarted on the specified listener. - - The listener. - - - - TestFinishedEvent holds information needed to call the TestFinished method. - - - - - Initializes a new instance of the class. - - The result. - - - - Calls TestFinished on the specified listener. - - The listener. - - - - TestOutputEvent holds information needed to call the TestOutput method. - - - - - Initializes a new instance of the class. - - The output object. - - - - Calls TestOutput on the specified listener. - - The listener. - - - - TestMessageEvent holds information needed to call the SendMessage method. - - - - - Initializes a new instance of the class. - - The test message object. - - - - Calls on the specified listener. - - The listener. - - - - Holds object for sending to all listeners - - - - - Implements a queue of work items each of which - is queued as a WaitCallback. - - - - - Gets the count of items in the queue. - - - - - Enqueues the specified event - - The event to enqueue. - - - - Removes the first element from the queue and returns it (or ). - - - If and the queue is empty, the calling thread is blocked until - either an element is enqueued, or is called. - - - - - If the queue not empty - the first element. - - - otherwise, if == - or has been called - . - - - - - - - Stop processing of the queue - - - - - Validates method to execute. - - - - - Determines whether a method is allowed to execute and throws an exception otherwise. - - The method to validate. - - - - An IWorkItemDispatcher handles execution of work items. - - - - - The level of parallelism supported. Zero if not supported. - - - - - Start execution, performing any initialization. Sets - the top level work item and dispatches it. - - - - - Dispatch a single work item for execution. The first - work item dispatched is saved as the top-level - work item and used when stopping the run. - - The item to dispatch - - - - Cancel the ongoing run completely. - If no run is in process, the call has no effect. - - true if the IWorkItemDispatcher should abort all currently running WorkItems, false if it should allow all currently running WorkItems to complete - - - - MainThreadWorkItemDispatcher handles execution of WorkItems by - directly executing them on the main thread. This is different - from the SimpleWorkItemDispatcher where the work item is dispatched - onto its own thread. - - - - - The level of parallelism supported - - - - - Start execution, dispatching the top level - work into the main thread. - - - - - Dispatch a single work item for execution by - executing it directly. - - The item to dispatch - - - - This method is not supported for - this dispatcher. Using it will throw a - NotSupportedException. - - Not used - If used, it will always throw this. - - - - Enumeration representing the strategy to follow in executing a work item. - The value is only relevant when running under the parallel dispatcher. - - - - - Run directly on same thread - - - - - Enqueue for parallel execution - - - - - Enqueue for non-parallel execution - - - - - ParallelWorkItemDispatcher handles execution of work items by - queuing them for worker threads to process. - - - - - Event raised whenever a shift is starting. - - - - - Event raised whenever a shift has ended. - - - - - Construct a ParallelWorkItemDispatcher - - Number of workers to use - - - - Number of parallel worker threads - - - - - Enumerates all the shifts supported by the dispatcher - - - - - Enumerates all the Queues supported by the dispatcher - - - - - Start execution, setting the top level work, - enqueuing it and starting a shift to execute it. - - - - - Dispatch a single work item for execution. The first - work item dispatched is saved as the top-level - work item and used when stopping the run. - - The item to dispatch - - - - Cancel the ongoing run completely. - If no run is in process, the call has no effect. - - - - - Save the state of the queues and create a new isolated set - - - - - Try to remove isolated queues and restore old ones - - - - - QueuingEventListener uses an EventQueue to store any - events received on its EventListener interface. - - - - - The EventQueue created and filled by this listener - - - - - Construct a QueuingEventListener - - - - - A test has started - - The test that is starting - - - - A test case finished - - Result of the test case - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - A SimpleWorkItem represents a single test case and is - marked as completed immediately upon execution. This - class is also used for skipped or ignored test suites. - - - - - Construct a simple work item for a test. - - The test to be executed - The filter used to select this test - - - - Construct a simple work item for a test. - - The test to be executed - The filter used to select this test - An instance - - - - Method that performs actually performs the work. - - - - - Creates a test command for use in running this test. - - A TestCommand - - - - SimpleWorkItemDispatcher handles execution of WorkItems by - directly executing them. It is provided so that a dispatcher - is always available in the context, thereby simplifying the - code needed to run child tests. - - - - - The level of parallelism supported - - - - - Start execution, creating the execution thread, - setting the top level work and dispatching it. - - - - - Dispatch a single work item for execution by - executing it directly. - - The item to dispatch - - - - Cancel (abort or stop) the ongoing run. - If no run is in process, the call has no effect. - - true if the run should be aborted, false if it should allow its currently running test to complete - - - - Checks whether the method to execute is static. - - - - - Construct a StaticMethodValidator. - - The error message to output in case the validation fails. - - - - Determines whether a method to execute is static and throws an InvalidOperationException otherwise. - - The method to validate. - - - - A TestWorker pulls work items from a queue - and executes them. - - - - - Event handler for TestWorker events - - The TestWorker sending the event - The WorkItem that caused the event - - - - Event signaled immediately before executing a WorkItem - - - - - Event signaled immediately after executing a WorkItem - - - - - Construct a new TestWorker. - - The queue from which to pull work items - The name of this worker - - - - The WorkItemQueue from which this worker pulls WorkItems - - - - - The name of this worker - also used for the thread - - - - - Indicates whether the worker thread is running - - - - - Our ThreadProc, which pulls and runs tests in a loop - - - - - Create thread and start processing work items. - - - - - Stop the thread, either immediately or after finishing the current WorkItem - - true if the thread should be aborted, false if it should allow the currently running test to complete - - - - The TextCapture class intercepts console output and writes it - to the current execution context, if one is present on the thread. - If no execution context is found, the output is written to a - default destination, normally the original destination of the - intercepted output. - - - - - Construct a TextCapture object - - The default destination for non-intercepted output - - - - Gets the Encoding in use by this TextWriter - - - - - Writes a single character - - The char to write - - - - Writes a string - - The string to write - - - - Writes a string followed by a line terminator - - The string to write - - - - A WorkItem may be an individual test case, a fixture or - a higher level grouping of tests. All WorkItems inherit - from the abstract WorkItem class, which uses the template - pattern to allow derived classes to perform work in - whatever way is needed. - - A WorkItem is created with a particular TestExecutionContext - and is responsible for re-establishing that context in the - current thread before it begins or resumes execution. - - - - - Construct a WorkItem for a particular test. - - The test that the WorkItem will run - Filter used to include or exclude child items - - - - Construct a work Item that wraps another work Item. - Wrapper items are used to represent independently - dispatched tasks, which form part of the execution - of a single test, such as OneTimeTearDown. - - The WorkItem being wrapped - - - - Initialize the TestExecutionContext. This must be done - before executing the WorkItem. - - - Originally, the context was provided in the constructor - but delaying initialization of the context until the item - is about to be dispatched allows changes in the parent - context during OneTimeSetUp to be reflected in the child. - - The TestExecutionContext to use - - - - Event triggered when the item is complete - - - - - Gets the current state of the WorkItem - - - - - The test being executed by the work item - - - - - The name of the work item - defaults to the Test name. - - - - - Filter used to include or exclude child tests - - - - - The execution context - - - - - The worker executing this item. - - - - - The ParallelExecutionStrategy to use for this work item - - - - - Indicates whether this work item should use a separate dispatcher. - - - - - The test result - - - - - Gets the ParallelScope associated with the test, if any, - otherwise returning ParallelScope.Default; - - - - - Execute the current work item, including any - child work items. - - - - - Wait until the execution of this item is complete - - - - - Marks the WorkItem as NotRunnable. - - Reason for test being NotRunnable. - - - - Cancel (abort or stop) a WorkItem - - true if the WorkItem should be aborted, false if it should run to completion - - - - Standard Dispose - - - - - Method that performs actually performs the work. It should - set the State to WorkItemState.Complete when done. - - - - - Method called by the derived class when all work is complete - - - - - Builds the set up tear down list. - - Unsorted array of setup MethodInfos. - Unsorted array of teardown MethodInfos. - Method validator used before each method execution. - A list of SetUpTearDownItems - - - - Changes the result of the test, logging the old and new states - - The new ResultState - The new message - - - - Recursively walks up the test hierarchy to see if the - has been set on any of the parent tests. - - - - - WorkItemBuilder class knows how to build a tree of work items from a tree of tests - - - - - Creates a work item. - - The test for which this WorkItem is being created. - The filter to be used in selecting any child Tests. - True if child work items should be created and added. - - - - - Creates a work item. - - The test for which this WorkItem is being created. - The filter to be used in selecting any child Tests. - An instance. - True if child work items should be created and added. - if work item needs to be created unconditionally, if will be returned for tests that don't match the filter. - - - - - Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. - - - A signed integer that indicates the relative values of and , as shown in the following table.Value Meaning Less than zero is less than .Zero equals .Greater than zero is greater than . - - The first object to compare.The second object to compare. - - - - WorkItemQueueState indicates the current state of a WorkItemQueue - - - - - The queue is paused - - - - - The queue is running - - - - - The queue is stopped - - - - - A WorkItemQueue holds work items that are ready to - be run, either initially or after some dependency - has been satisfied. - - - - - Initializes a new instance of the class. - - The name of the queue. - Flag indicating whether this is a parallel queue - ApartmentState to use for items on this queue - - - - Gets the name of the work item queue. - - - - - Gets a flag indicating whether this queue is used for parallel execution - - - - - Gets the target ApartmentState for work items on this queue - - - - - Gets the total number of items processed so far - - - - - Gets the current state of the queue - - - - - Get a bool indicating whether the queue is empty. - - - - - Enqueue a WorkItem to be processed - - The WorkItem to process - - - - Enqueue a WorkItem to be processed - internal for testing - - The WorkItem to process - The priority at which to process the item - - - - Dequeue a WorkItem for processing - - A WorkItem or null if the queue has stopped - - - - Start or restart processing of items from the queue - - - - - Signal the queue to stop - - - - - Pause the queue for restarting later - - - - - Save the current inner queue and create new ones for use by - a non-parallel fixture with parallel children. - - - - - Restore the inner queue that was previously saved - - - - - The current state of a work item - - - - - Ready to run or continue - - - - - Work Item is executing - - - - - Complete - - - - - Handler for ShiftChange events. - - The shift that is starting or ending. - - - - The dispatcher needs to do different things at different, - non-overlapped times. For example, non-parallel tests may - not be run at the same time as parallel tests. We model - this using the metaphor of a working shift. The WorkShift - class associates one or more WorkItemQueues with one or - more TestWorkers. - - Work in the queues is processed until all queues are empty - and all workers are idle. Both tests are needed because a - worker that is busy may end up adding more work to one of - the queues. At that point, the shift is over and another - shift may begin. This cycle continues until all the tests - have been run. - - - - - Construct a WorkShift - - - - - Event that fires when the shift has ended - - - - - The Name of this shift - - - - - Gets a flag indicating whether the shift is currently active - - - - - Gets a bool indicating whether this shift has any work to do - - - - - Gets a list of the queues associated with this shift. - - Internal for testing - immutable once initialized - - - - Gets the list of workers associated with this shift. - - Internal for testing - immutable once initialized - - - - Add a WorkItemQueue to the shift, starting it if the - shift is currently active. - - - - - Assign a worker to the shift. - - - - - - Start or restart processing for the shift - - - - - End the shift, pausing all queues and raising - the EndOfShift event. - - - - - Shut down the shift. - - - - - Cancel (abort or stop) the shift without completing all work - - true if the WorkShift should be aborted, false if it should allow its currently running tests to complete - - - - TextMessageWriter writes constraint descriptions and messages - in displayable form as a text stream. It tailors the display - of individual message components to form the standard message - format of NUnit assertion failure messages. - - - - - Prefix used for the expected value line of a message - - - - - Prefix used for the actual value line of a message - - - - - Prefix used for the actual difference between actual and expected values if compared with a tolerance - - - - - Length of a message prefix - - - - - Construct a TextMessageWriter - - - - - Construct a TextMessageWriter, specifying a user message - and optional formatting arguments. - - - - - - - Gets or sets the maximum line length for this writer - - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a given - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The result of the constraint that failed - - - - Gets the unique type name between expected and actual. - - The expected value - The actual value causing the failure - Output of the unique type name for expected - Output of the unique type name for actual - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in string comparisons - If true, clip the strings to fit the max line length - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Write the generic 'Expected' line for a constraint - - The constraint that failed - - - - Write the generic 'Expected' line for a given value - and tolerance. - - The expected value - The tolerance within which the test was made - - - - Write the generic 'Actual' line for a constraint - - The ConstraintResult for which the actual value is to be written - - - - Write the generic 'Actual' line for a given value - - The actual value causing a failure - - - - Extensions to . - - - - - Adds the skip reason to tests that are ignored until a specific date. - - The test properties to add the skip reason to - The date that the test is being ignored until - The reason the test is being ignored until that date - - - - Combines multiple filters so that a test must pass all - of them in order to pass this filter. - - - - - Constructs an empty AndFilter - - - - - Constructs an AndFilter from an array of filters - - - - - - Checks whether the AndFilter is matched by a test - - The test to be matched - If set to we are carrying a negation through - True if all the component filters pass, otherwise false - - - - Checks whether the AndFilter is matched by a test - - The test to be matched - True if all the component filters match, otherwise false - - - - Checks whether the AndFilter is explicit matched by a test. - - The test to be matched - True if all the component filters explicit match, otherwise false - - - - Gets the element name - - Element name - - - - CategoryFilter is able to select or exclude tests - based on their categories. - - - - - Construct a CategoryFilter using a single category name - - A category name - - - - Check whether the filter matches a test - - The test to be matched - - - - - Gets the element name - - Element name - - - - ClassName filter selects tests based on the class FullName - - - - - Construct a FullNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - A base class for multi-part filters - - - - - Constructs an empty CompositeFilter - - - - - Constructs a CompositeFilter from an array of filters - - - - - - Return a list of the composing filters. - - - - - Checks whether the CompositeFilter is matched by a test. - - The test to be matched - If set to we are carrying a negation through - - - - Checks whether the CompositeFilter is matched by a test. - - The test to be matched - - - - Checks whether the CompositeFilter is explicit matched by a test. - - The test to be matched - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - FullName filter selects tests based on their FullName - - - - - Construct a FullNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - IdFilter selects tests based on their id - - - - - Construct an IdFilter for a single value - - The id the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - FullName filter selects tests based on their FullName - - - - - Construct a MethodNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - ClassName filter selects tests based on the class FullName - - - - - Construct a NamespaceFilter for a single namespace - - The namespace the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - NotFilter negates the operation of another filter - - - - - Construct a not filter on another filter - - The filter to be negated - - - - Gets the base filter - - - - - Determine if a particular test passes the filter criteria. - - The test to which the filter is applied - If set to we are carrying a negation through - True if the test passes the filter, otherwise false - - - - Check whether the filter matches a test - - The test to be matched - True if it matches, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Combines multiple filters so that a test must pass one - of them in order to pass this filter. - - - - - Constructs an empty OrFilter - - - - - Constructs an OrFilter from an array of filters - - - - - - Checks whether the OrFilter is matched by a test - - The test to be matched - If set to we are carrying a negation through - True if any of the component filters pass, otherwise false - - - - Checks whether the OrFilter is matched by a test - - The test to be matched - True if any of the component filters match, otherwise false - - - - Checks whether the OrFilter is explicit matched by a test - - The test to be matched - True if any of the component filters explicit match, otherwise false - - - - Gets the element name - - Element name - - - - PropertyFilter is able to select or exclude tests - based on their properties. - - - - - Construct a PropertyFilter using a property name and expected value - - A property name - The expected value of the property - - - - Check whether the filter matches a test - - The test to be matched - - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - TestName filter selects tests based on their Name - - - - - Construct a TestNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - ValueMatchFilter selects tests based on some value, which - is expected to be contained in the test. - - - - - Returns the value matched by the filter - used for testing - - - - - Indicates whether the value is a regular expression - - - - - Construct a ValueMatchFilter for a single value. - - The value to be included. - - - - Match the input provided by the derived class - - The value to be matched - True for a match, false otherwise. - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - GenericMethodHelper is able to deduce the Type arguments for - a generic method from the actual arguments provided. - - - - - A special value, which is used to indicate that BestCommonType() method - was unable to find a common type for the specified arguments. - - - - - Construct a GenericMethodHelper for a method - - MethodInfo for the method to examine - - - - Return the type arguments for the method, deducing them - from the arguments actually provided. - - The arguments to the method - If successful, an array of type arguments. - - - - A minimalistic implementation of an immutable stack. Add members as needed. - - - - - Represents an empty stack. may be used instead. - - - - - Returns a new immutable stack which begins with the specified value and continues with the values in the - current stack. - - The beginning value of the new stack. - - - - InvalidTestFixtureException is thrown when an appropriate test - fixture constructor using the provided arguments cannot be found. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - InvalidPlatformException is thrown when the platform name supplied - to a test is not recognized. - - - - - Instantiates a new instance of the class. - - - - - Instantiates a new instance of the class - - The message. - - - - Instantiates a new instance of the class - - The message. - The inner. - - - - Serialization constructor for the class - - - - - InvalidTestFixtureException is thrown when an appropriate test - fixture constructor using the provided arguments cannot be found. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - Interface for logging within the engine - - - - - Logs the specified message at the error level. - - The message. - - - - Logs the specified message at the error level. - - The message. - The arguments. - - - - Logs the specified message at the warning level. - - The message. - - - - Logs the specified message at the warning level. - - The message. - The arguments. - - - - Logs the specified message at the info level. - - The message. - - - - Logs the specified message at the info level. - - The message. - The arguments. - - - - Logs the specified message at the debug level. - - The message. - - - - Logs the specified message at the debug level. - - The message. - The arguments. - - - - InternalTrace provides facilities for tracing the execution - of the NUnit framework. Tests and classes under test may make use - of Console writes, System.Diagnostics.Trace or various loggers and - NUnit itself traps and processes each of them. For that reason, a - separate internal trace is needed. - - Note: - InternalTrace uses a global lock to allow multiple threads to write - trace messages. This can easily make it a bottleneck so it must be - used sparingly. Keep the trace Level as low as possible and only - insert InternalTrace writes where they are needed. - TODO: add some buffering and a separate writer thread as an option. - TODO: figure out a way to turn on trace in specific classes only. - - - - - Gets a flag indicating whether the InternalTrace is initialized - - - - - Initialize the internal trace facility using the name of the log - to be written to and the trace level. - - The log name - The trace level - - - - Initialize the internal trace using a provided TextWriter and level - - A TextWriter - The InternalTraceLevel - - - - Get a named Logger - - - - - - Get a logger named for a particular Type. - - - - - InternalTraceLevel is an enumeration controlling the - level of detailed presented in the internal log. - - - - - Use the default settings as specified by the user. - - - - - Do not display any trace messages - - - - - Display Error messages only - - - - - Display Warning level and higher messages - - - - - Display informational and higher messages - - - - - Display debug messages and higher - i.e. all messages - - - - - Display debug messages and higher - i.e. all messages - - - - - A trace listener that writes to a separate file per domain - and process using it. - - - - - Construct an InternalTraceWriter that writes to a file. - - Path to the file to use - - - - Construct an InternalTraceWriter that writes to a - TextWriter provided by the caller. - - - - - - Returns the character encoding in which the output is written. - - The character encoding in which the output is written. - - - - Writes a character to the text string or stream. - - The character to write to the text stream. - - - - Writes a string to the text string or stream. - - The string to write. - - - - Writes a string followed by a line terminator to the text string or stream. - - The string to write. If is null, only the line terminator is written. - - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Clears all buffers for the current writer and causes any buffered data to be written to the underlying device. - - - - - Provides internal logging to the NUnit framework - - - - - Initializes a new instance of the class. - - The name. - The log level. - The writer where logs are sent. - - - - Logs the message at error level. - - The message. - - - - Logs the message at error level. - - The message. - The message arguments. - - - - Logs the message at warm level. - - The message. - - - - Logs the message at warning level. - - The message. - The message arguments. - - - - Logs the message at info level. - - The message. - - - - Logs the message at info level. - - The message. - The message arguments. - - - - Logs the message at debug level. - - The message. - - - - Logs the message at debug level. - - The message. - The message arguments. - - - - The MethodWrapper class wraps a MethodInfo so that it may - be used in a platform-independent manner. - - - - - Construct a MethodWrapper for a Type and a MethodInfo. - - - - - Construct a MethodInfo for a given Type and method name. - - - - - Gets the Type from which this method was reflected. - - - - - Gets the MethodInfo for this method. - - - - - Gets the name of the method. - - - - - Gets a value indicating whether the method is abstract. - - - - - Gets a value indicating whether the method is public. - - - - - Gets a value indicating whether the method is static. - - - - - Gets a value indicating whether the method contains unassigned generic type parameters. - - - - - Gets a value indicating whether the method is a generic method. - - - - - Gets a value indicating whether the MethodInfo represents the definition of a generic method. - - - - - Gets the return Type of the method. - - - - - Gets the parameters of the method. - - - - - - Returns the Type arguments of a generic method or the Type parameters of a generic method definition. - - - - - Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. - - The type arguments to be used - A new IMethodInfo with the type arguments replaced - - - - Returns an array of custom attributes of the specified type applied to this method - - - - - Gets a value indicating whether one or more attributes of the specified type are defined on the method. - - - - - Invokes the method, converting any TargetInvocationException to an NUnitException. - - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - Override ToString() so that error messages in NUnit's own tests make sense - - - - - This class ensures the is correctly cleared - or restored around framework actions. This is important if running multiple assemblies within the same - process, to ensure no leakage from one assembly to the next. See https://github.com/nunit/nunit-console/issues/325 - - - - - Thrown when an assertion failed. Here to preserve the inner - exception and hence its stack trace. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The error message that explains - the reason for the exception - - - - Initializes a new instance of the class. - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Enables the syntax. - - - - - Wraps an action so that it is executed when the returned object is disposed. - This disposal is thread-safe and the action will be executed at most once. - - - - - OSPlatform represents a particular operating system platform - - - - - Platform ID for Unix as defined by .NET - - - - - Platform ID for Unix as defined by Mono - - - - - Platform ID for XBox as defined by .NET and Mono - - - - - Platform ID for MacOSX as defined by .NET and Mono - - - - - Get the OSPlatform under which we are currently running - - - - - Gets the actual OS Version, not the incorrect value that might be - returned for Win 8.1 and Win 10 - - - If an application is not manifested as Windows 8.1 or Windows 10, - the version returned from Environment.OSVersion will not be 6.3 and 10.0 - respectively, but will be 6.2 and 6.3. The correct value can be found in - the registry. - - The original version - The correct OS version - - - - Product Type Enumeration used for Windows - - - - - Product type is unknown or unspecified - - - - - Product type is Workstation - - - - - Product type is Domain Controller - - - - - Product type is Server - - - - - Construct from a platform ID and version - - - - - Construct from a platform ID, version and product type - - - - - Get the platform ID of this instance - - - - - Implemented to use in place of Environment.OSVersion.ToString() - - A representation of the platform ID and version in an approximation of the format used by Environment.OSVersion.ToString() - - - - Get the Version of this instance - - - - - Get the Product Type of this instance - - - - - Return true if this is a windows platform - - - - - Return true if this is a Unix or Linux platform - - - - - Return true if the platform is Win32S - - - - - Return true if the platform is Win32Windows - - - - - Return true if the platform is Win32NT - - - - - Return true if the platform is Windows CE - - - - - Return true if the platform is Xbox - - - - - Return true if the platform is MacOSX - - - - - Return true if the platform is Windows 95 - - - - - Return true if the platform is Windows 98 - - - - - Return true if the platform is Windows ME - - - - - Return true if the platform is NT 3 - - - - - Return true if the platform is NT 4 - - - - - Return true if the platform is NT 5 - - - - - Return true if the platform is Windows 2000 - - - - - Return true if the platform is Windows XP - - - - - Return true if the platform is Windows 2003 Server - - - - - Return true if the platform is NT 6 - - - - - Return true if the platform is NT 6.0 - - - - - Return true if the platform is NT 6.1 - - - - - Return true if the platform is NT 6.2 - - - - - Return true if the platform is NT 6.3 - - - - - Return true if the platform is Vista - - - - - Return true if the platform is Windows 2008 Server (original or R2) - - - - - Return true if the platform is Windows 2008 Server (original) - - - - - Return true if the platform is Windows 2008 Server R2 - - - - - Return true if the platform is Windows 2012 Server (original or R2) - - - - - Return true if the platform is Windows 2012 Server (original) - - - - - Return true if the platform is Windows 2012 Server R2 - - - - - Return true if the platform is Windows 7 - - - - - Return true if the platform is Windows 8 - - - - - Return true if the platform is Windows 8.1 - - - - - Return true if the platform is Windows 10 - - - - - Return true if the platform is Windows Server. This is named Windows - Server 10 to distinguish it from previous versions of Windows Server. - - - - - - Examines an attribute argument and tries to simulate what that value would have been if the literal syntax - which might have defined the value in C# had instead been used as an argument to a given method parameter in a direct call. - - - For example, since you can’t apply attributes using arguments, we allow the C# syntax - 10 ( value) or 0.1 ( value) to be specified. - NUnit then converts it to match the method’s parameters, just as if you were actually - using the syntax TestMethod(10) or TestMethod(0.1). - - - For another example, you might have written the syntax 10 and picked up the attribute - constructor overload; however, the test method for which this value is intended only has a - signature. Again, NUnit simulates what would have happened if the inferred C# syntax was transplanted - and you were actually using the syntax TestMethod(10). - - - - - - Converts an array of objects to the , if it is supported. - - - - - Converts a single value to the , if it is supported. - - - - - Performs several special conversions allowed by NUnit in order to - permit arguments with types that cannot be used in the constructor - of an Attribute such as TestCaseAttribute or to simplify their use. - - The value to be converted - The target in which the should be converted - If conversion was successfully applied, the converted into - - if was converted and should be used; - is no conversion was applied and should be ignored - - - - - The ParameterWrapper class wraps a ParameterInfo so that it may - be used in a platform-independent manner. - - - - - Construct a ParameterWrapper for a given method and parameter - - - - - - - Gets a value indicating whether the parameter is optional - - - - - Gets an IMethodInfo representing the method for which this is a parameter. - - - - - Gets the underlying ParameterInfo - - - - - Gets the Type of the parameter - - - - - Returns an array of custom attributes of the specified type applied to this method - - - - - Gets a value indicating whether one or more attributes of the specified type are defined on the parameter. - - - - - PlatformHelper class is used by the PlatformAttribute class to - determine whether a platform is supported. - - - - - Comma-delimited list of all supported OS platform constants - - - - - Comma-delimited list of all supported Runtime platform constants - - - - - Default constructor uses the operating system and - common language runtime of the system. - - - - - Construct a PlatformHelper for a particular operating - system and common language runtime. Used in testing. - - RuntimeFramework to be used - OperatingSystem to be used - - - - Test to determine if one of a collection of platforms - is being used currently. - - - - - - - Tests to determine if the current platform is supported - based on a platform attribute. - - The attribute to examine - - - - - Tests to determine if the current platform is supported - based on a platform attribute. - - The attribute to examine - - - - - Test to determine if a particular platform or comma-delimited set of platforms is in use. - - Name of the platform or comma-separated list of platform ids - True if the platform is in use on the system - - - - Return the last failure reason. Results are not - defined if called before IsSupported( Attribute ) - is called. - - - - - Implements a simplified filter for use in deciding which - Types and Methods should be used to generate tests. It is constructed with a - list of strings, each of which may end up being interpreted in various ways. - - - - - Return a new PreFilter, without elements, which is considered - empty and always matches. - - - - - Return true if the filter is empty, in which case it - always succeeds. Technically, this is just a filter and - you can add elements but it's best to use Empty when - you need an empty filter and new when you plan to add. - - - - - Add a new filter element to the filter - - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - A PropertyBag represents a collection of name value pairs - that allows duplicate entries with the same key. Methods - are provided for adding a new pair as well as for setting - a key to a single value. All keys are strings but values - may be of any type. Null values are not permitted, since - a null entry represents the absence of the key. - - - - - Adds a key/value pair to the property set - - The key - The value - - - - Sets the value for a key, removing any other - values that are already in the property set. - - - - - - - Gets a single value for a key, using the first - one if multiple values are present and returning - null if the value is not found. - - - - - - - Gets a flag indicating whether the specified key has - any entries in the property set. - - The key to be checked - - True if their are values present, otherwise false - - - - - Gets a collection containing all the keys in the property set - - - - - - Gets or sets the list of values for a particular key - - - - - Returns an XmlNode representing the current PropertyBag. - - Not used - An XmlNode representing the PropertyBag - - - - Returns an XmlNode representing the PropertyBag after - adding it as a child of the supplied parent node. - - The parent node. - Not used - - - - - The PropertyNames class provides static constants for the - standard property ids that NUnit uses on tests. - - - - - The FriendlyName of the AppDomain in which the assembly is running - - - - - The selected strategy for joining parameter data into test cases - - - - - The process ID of the executing assembly - - - - - The stack trace from any data provider that threw - an exception. - - - - - The reason a test was not run - - - - - The author of the tests - - - - - The ApartmentState required for running the test - - - - - The categories applying to a test - - - - - The Description of a test - - - - - The number of threads to be used in running tests - - - - - The maximum time in ms, above which the test is considered to have failed - - - - - The ParallelScope associated with a test - - - - - The number of times the test should be repeated - - - - - Indicates that the test should be run on a separate thread - - - - - The culture to be set for a test - - - - - The UI culture to be set for a test - - - - - The type that is under test - - - - - The timeout value for the test - - - - - The test will be ignored until the given date - - - - - The optional Order the test will run in - - - - - Randomizer returns a set of random values in a repeatable - way, to allow re-running of tests if necessary. It extends - the .NET Random class, providing random values for a much - wider range of types. - - The class is used internally by the framework to generate - test case data and is also exposed for use by users through - the TestContext.Random property. - - - For consistency with the underlying Random Type, methods - returning a single value use the prefix "Next..." Those - without an argument return a non-negative value up to - the full positive range of the Type. Overloads are provided - for specifying a maximum or a range. Methods that return - arrays or strings use the prefix "Get..." to avoid - confusion with the single-value methods. - - - - - Initial seed used to create randomizers for this run - - - - - Get a Randomizer for a particular member, returning - one that has already been created if it exists. - This ensures that the same values are generated - each time the tests are reloaded. - - - - - Get a randomizer for a particular parameter, returning - one that has already been created if it exists. - This ensures that the same values are generated - each time the tests are reloaded. - - - - - Create a new Randomizer using the next seed - available to ensure that each randomizer gives - a unique sequence of values. - - - - - - Default constructor - - - - - Construct based on seed value - - - - - - Returns a random unsigned int. - - - - - Returns a random unsigned int less than the specified maximum. - - - - - Returns a random unsigned int within a specified range. - - - - - Returns a non-negative random short. - - - - - Returns a non-negative random short less than the specified maximum. - - - - - Returns a non-negative random short within a specified range. - - - - - Returns a random unsigned short. - - - - - Returns a random unsigned short less than the specified maximum. - - - - - Returns a random unsigned short within a specified range. - - - - - Returns a random long. - - - - - Returns a random long less than the specified maximum. - - - - - Returns a non-negative random long within a specified range. - - - - - Returns a random ulong. - - - - - Returns a random ulong less than the specified maximum. - - - - - Returns a non-negative random long within a specified range. - - - - - Returns a random Byte - - - - - Returns a random Byte less than the specified maximum. - - - - - Returns a random Byte within a specified range - - - - - Returns a random SByte - - - - - Returns a random sbyte less than the specified maximum. - - - - - Returns a random sbyte within a specified range - - - - - Returns a random bool - - - - - Returns a random bool based on the probability a true result - - - - - Returns a random double between 0.0 and the specified maximum. - - - - - Returns a random double within a specified range. - - - - - Returns a random float. - - - - - Returns a random float between 0.0 and the specified maximum. - - - - - Returns a random float within a specified range. - - - - - Returns a random enum value of the specified Type as an object. - - - - - Returns a random enum value of the specified Type. - - - - - Default characters for random functions. - - Default characters are the English alphabet (uppercase & lowercase), Arabic numerals, and underscore - - - - Generate a random string based on the characters from the input string. - - desired length of output string. - string representing the set of characters from which to construct the resulting string - A random string of arbitrary length - - - - Generate a random string based on the characters from the input string. - - desired length of output string. - A random string of arbitrary length - Uses DefaultStringChars as the input character set - - - - Generate a random string based on the characters from the input string. - - A random string of the default length - Uses DefaultStringChars as the input character set - - - - Returns a random decimal. - - - - - Returns a random decimal between positive zero and the specified maximum. - - - - - Returns a random decimal within a specified range, which is not - permitted to exceed decimal.MaxVal in the current implementation. - - - A limitation of this implementation is that the range from min - to max must not exceed decimal.MaxVal. - - - - - Generates a valid version 4 . - - - - - Helper methods for inspecting a type by reflection. - - Many of these methods take ICustomAttributeProvider as an - argument to avoid duplication, even though certain attributes can - only appear on specific types of members, like MethodInfo or Type. - - In the case where a type is being examined for the presence of - an attribute, interface or named member, the Reflect methods - operate with the full name of the member being sought. This - removes the necessity of the caller having a reference to the - assembly that defines the item being sought and allows the - NUnit core to inspect assemblies that reference an older - version of the NUnit framework. - - - - - Examine a fixture type and return true if it has a method with - a particular attribute. - - The type to examine - The attribute Type to look for - True if found, otherwise false - - - - Invoke the default constructor on a Type - - The Type to be constructed - An instance of the Type - - - - Invoke a constructor on a Type with arguments - - The Type to be constructed - Arguments to the constructor - An instance of the Type - - - - Returns an array of types from an array of objects. - Differs from by returning - for null elements rather than throwing . - - - - - Gets the constructors to which the specified argument types can be coerced. - - - - - Determines if the given types can be coerced to match the given parameters. - - - - - Determines whether the current type can be implicitly converted to the specified type. - - - - - Invoke a parameterless method returning void on an object. - - A MethodInfo for the method to be invoked - The object on which to invoke the method - - - - Invoke a method, converting any TargetInvocationException to an NUnitException. - - A MethodInfo for the method to be invoked - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - - Selects the ultimate shadowing property just like dynamic would, - rather than throwing - for properties that shadow properties of a different property type - which is what does. - - - If you request both public and nonpublic properties, every public property is preferred - over every nonpublic property. It would violate the principle of least surprise for a - derived class’s implementation detail to be chosen over the public API for a type. - - - See . - See . - See . - - - - Same as GetMethod(, | - , , , - ) except that it also chooses only non-generic methods. - Useful for avoiding the you can have with GetMethod. - - - - - Returns the get accessor for the indexer. - - Type to reflect on for the indexer. - List of indexer types that matches the indexer type order. - The Get accessor - - - - Represents the result of running a single test case. - - - - - Construct a TestCaseResult based on a TestMethod - - A TestMethod to which the result applies. - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that executed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - The TestResult class represents the result of a test. - - - - - Error message for when child tests have errors - - - - - Error message for when child tests have warnings - - - - - Error message for when child tests are ignored - - - - - Error message for when user has cancelled the test run - - - - - The minimum duration for tests - - - - - Aggregate assertion count - - - - - ReaderWriterLock - - - - - Construct a test result given a Test - - The test to be used - - - - Gets the test with which this result is associated. - - - - - Gets the ResultState of the test result, which - indicates the success or failure of the test. - - - - - Gets the name of the test result - - - - - Gets the full name of the test result - - - - - Gets or sets the elapsed time for running the test in seconds - - - - - Gets or sets the time the test started running. - - - - - Gets or sets the time the test finished running. - - - - - Adds a test attachment to the test result - - The TestAttachment object to attach - - - - Gets the collection of files attached to the test - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - - Gets or sets the count of asserts executed - when running the test. - - - - - Gets the number of test cases executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - Gets a TextWriter, which will write output to be included in the result. - - - - - Gets any text output written to this result. - - - - - Gets a list of assertion results associated with the test. - - - - - Returns the XML representation of the result. - - If true, descendant results are included - An XmlNode representing the result - - - - Adds the XML representation of the result as a child of the - supplied parent node.. - - The parent node. - If true, descendant results are included - - - - - Gets a count of pending failures (from Multiple Assert) - - - - - Gets the worst assertion status (highest enum) in all the assertion results - - - - - Set the result of the test - - The ResultState to use in the result - - - - Set the result of the test - - The ResultState to use in the result - A message associated with the result state - - - - Set the result of the test - - The ResultState to use in the result - A message associated with the result state - Stack trace giving the location of the command - - - - Set the test result based on the type of exception thrown - - The exception that was thrown - - - - Set the test result based on the type of exception thrown - - The exception that was thrown - The FailureSite to use in the result - - - - RecordTearDownException appends the message and stack trace - from an exception arising during teardown of the test - to any previously recorded information, so that any - earlier failure information is not lost. Note that - calling Assert.Ignore, Assert.Inconclusive, etc. during - teardown is treated as an error. If the current result - represents a suite, it may show a teardown error even - though all contained tests passed. - - The Exception to be recorded - - - - Update overall test result, including legacy Message, based - on AssertionResults that have been saved to this point. - - - - - Record an assertion result - - - - - Record an assertion result - - - - - Record an assertion result - - - - - Creates a failure message incorporating failures - from a Multiple Assert block for use by runners - that don't know about AssertionResults. - - Message as a string - - - - Adds a failure element to a node and returns it. - - The target node. - The new failure element. - - - - Adds an attachments element to a node and returns it. - - The target node. - The new attachments element. - - - - Represents the result of running a test suite - - - - - Construct a TestSuiteResult base on a TestSuite - - The TestSuite to which the result applies - - - - Gets the number of test cases that executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - Adds a child result to this result, setting this result's - ResultState to Failure if the child result failed. - - The result to be added - - - - RuntimeFramework represents a particular version - of a common language runtime implementation. - - - - - DefaultVersion is an empty Version, used to indicate that - NUnit should select the CLR version to use for the test. - - - - - Construct from a runtime type and version. If the version has - two parts, it is taken as a framework version. If it has three - or more, it is taken as a CLR version. In either case, the other - version is deduced based on the runtime type and provided version. - - The runtime type of the framework - The version of the framework - - - - Static method to return a RuntimeFramework object - for the framework that is currently in use. - - - - - The type of this runtime framework - - - - - The framework version for this runtime framework - - - - - The CLR version for this runtime framework - - - - - Return true if any CLR version may be used in - matching this RuntimeFramework object. - - - - - Returns the Display name for this framework - - - - - Parses a string representing a RuntimeFramework. - The string may be just a RuntimeType name or just - a Version or a hyphenated RuntimeType-Version or - a Version prefixed by 'versionString'. - - - - - - - Overridden to return the short name of the framework - - - - - - Returns true if the current framework matches the - one supplied as an argument. Two frameworks match - if their runtime types are the same or either one - is RuntimeType.Any and all specified version components - are equal. Negative (i.e. unspecified) version - components are ignored. - - The RuntimeFramework to be matched. - True on match, otherwise false - - - - Enumeration identifying a common language - runtime implementation. - - - - Any supported runtime framework - - - Microsoft .NET Framework - - - Microsoft .NET Framework - - - Microsoft Shared Source CLI - - - Mono - - - MonoTouch - - - Microsoft .NET Core, including .NET 5+ - - - - Holds thread state which is captured and restored in order to sandbox user code. - - - - - Thread principal. - This will be null on platforms that don't support . - - - - - Captures a snapshot of the tracked state of the current thread to be restored later. - - - - - Restores the tracked state of the current thread to the previously captured state. - - - - - Returns a copy with the specified culture. - - - - - Returns a copy with the specified UI culture. - - - - - Returns a copy with the specified principal. - - - - - May be called from any thread. - - - - - May be called from any thread. - - - - - May be called from any thread. - - - - - May be called from any thread, but may only be called once. - - - - - StackFilter class is used to remove internal NUnit - entries from a stack trace so that the resulting - trace provides better information about the test. - - - - - Single instance of our default filter - - - - - Construct a stack filter instance - - Regex pattern used to delete lines from the top of the stack - Regex pattern used to delete lines from the bottom of the stack - - - - Construct a stack filter instance - - Regex pattern used to delete lines from the top of the stack - - - - Construct a stack filter instance - - - - - Filters a raw stack trace and returns the result. - - The original stack trace - A filtered stack trace - - - - Provides methods to support legacy string comparison methods. - - - - - Compares two strings for equality, ignoring case if requested. - - The first string. - The second string.. - if set to , the case of the letters in the strings is ignored. - Zero if the strings are equivalent, a negative number if strA is sorted first, a positive number if - strB is sorted first - - - - Compares two strings for equality, ignoring case if requested. - - The first string. - The second string.. - if set to , the case of the letters in the strings is ignored. - True if the strings are equivalent, false if not. - - - - The TestCaseParameters class encapsulates method arguments and - other selected parameters needed for constructing - a parameterized test case. - - - - - The expected result to be returned - - - - - Default Constructor creates an empty parameter set - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a ParameterSet from an object implementing ITestCaseData - - - - - - The expected result of the test, which - must match the method return type. - - - - - Gets a value indicating whether an expected result was specified. - - - - - TestCaseTimeoutException is thrown when a test running directly - on a TestWorker thread is cancelled due to timeout. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - Helper class used to save and restore certain static or - singleton settings in the environment that affect tests - or which might be changed by the user tests. - - - - - Link to a prior saved context - - - - - Indicates that a stop has been requested - - - - - The event listener currently receiving notifications - - - - - The number of assertions for the current test - - - - - The current test result - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - An existing instance of TestExecutionContext. - - - - Gets and sets the current context. - - - - - Gets or sets the current test - - - - - The time the current test started execution - - - - - The time the current test started in Ticks - - - - - Gets the elapsed time for running the test in seconds - - - - - Gets or sets the current test result - - - - - Gets a TextWriter that will send output to the current test result. - - - - - The current test object - that is the user fixture - object on which tests are being executed. - - - - - Get or set indicator that run should stop on the first error - - - - - Gets an enum indicating whether a stop has been requested. - - - - - The current test event listener - - - - - The current WorkItemDispatcher. Made public for - use by nunitlite.tests - - - - - The ParallelScope to be used by tests running in this context. - For builds with out the parallel feature, it has no effect. - - - - - Default tolerance value used for floating point equality - when no other tolerance is specified. - - - - - The worker that spawned the context. - For builds without the parallel feature, it is null. - - - - - Gets the RandomGenerator specific to this Test - - - - - Gets the assert count. - - The assert count. - - - - The current nesting level of multiple assert blocks - - - - - Gets or sets the test case timeout value - - - - - Gets a list of ITestActions set by upstream tests - - - - - Saves or restores the CurrentCulture - - - - - Saves or restores the CurrentUICulture - - - - - Gets or sets the current for the Thread. - - - - - The current head of the ValueFormatter chain, copied from MsgUtils.ValueFormatter - - - - - If true, all tests must run on the same thread. No new thread may be spawned. - - - - - The number of times the current test has been scheduled for execution. - Currently only being executed in a test using the - - - - - Record any changes in the environment made by - the test code in the execution context so it - will be passed on to lower level tests. - - - - - Set up the execution environment to match a context. - Note that we may be running on the same thread where the - context was initially created or on a different thread. - - - - - Increments the assert count by one. - - - - - Increments the assert count by a specified amount. - - - - - Adds a new ValueFormatterFactory to the chain of formatters - - The new factory - - - - Sends a message from test to listeners. This message is not kind of test output and doesn't go to test result. - - A name recognized by the intended listeners. - A message to be sent - - - - Obtain lifetime service object - - - - - - An IsolatedContext is used when running code - that may effect the current result in ways that - should not impact the final result of the test. - A new TestExecutionContext is created with an - initially clear result, which is discarded on - exiting the context. - - - using (new TestExecutionContext.IsolatedContext()) - { - // Code that should not impact the result - } - - - - - Save the original current TestExecutionContext and - make a new isolated context current. - - - - - Restore the original TestExecutionContext. - - - - - An AdhocTestExecutionContext is created whenever a context is needed - but not available in CurrentContext. This happens when tests are run - on an ad-hoc basis or Asserts are used outside of tests. - - - - - Construct an AdhocTestExecutionContext, which is used - whenever the current TestExecutionContext is found to be null. - - - - - Enumeration indicating whether the tests are - running normally or being cancelled. - - - - - Running normally with no stop requested - - - - - A graceful stop has been requested - - - - - A forced stop has been requested - - - - - Interface to be implemented by filters applied to tests. - The filter applies when running the test, after it has been - loaded, since this is the only time an ITest exists. - - - - - Unique Empty filter. - - - - - Indicates whether this is the EmptyFilter - - - - - Indicates whether this is a top-level filter, - not contained in any other filter. - - - - - Determine if a particular test passes the filter criteria. The default - implementation checks the test itself, its parents and any descendants. - - Derived classes may override this method or any of the Match methods - to change the behavior of the filter. - - The test to which the filter is applied - True if the test passes the filter, otherwise false - - - - Determine if a particular test passes the filter criteria. The default - implementation checks the test itself, its parents and any descendants. - - Derived classes may override this method or any of the Match methods - to change the behavior of the filter. - - The test to which the filter is applied - If set to we are carrying a negation through - True if the test passes the filter, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - Determine whether the test itself matches the filter criteria, without - examining either parents or descendants. This is overridden by each - different type of filter to perform the necessary tests. - - The test to which the filter is applied - True if the filter matches the any parent of the test - - - - Determine whether any ancestor of the test matches the filter criteria - - The test to which the filter is applied - True if the filter matches the an ancestor of the test - - - - Determine whether any descendant of the test matches the filter criteria. - - The test to be matched - True if at least one descendant matches the filter criteria - - - - Create a TestFilter instance from an XML representation. - - - - - Create a TestFilter from its TNode representation - - - - - Nested class provides an empty filter - one that always - returns true when called. It never matches explicitly. - - - - - Adds an XML node - - True if recursive - The added XML node - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - The TestCaseParameters class encapsulates method arguments and - other selected parameters needed for constructing - a parameterized test case. - - - - - Default Constructor creates an empty parameter set - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a ParameterSet from an object implementing ITestCaseData - - - - - - Type arguments used to create a generic fixture instance - - - - - TestListener provides an implementation of ITestListener that - does nothing. It is used only through its NULL property. - - - - - Called when a test has just started - - The test that is starting - - - - Called when a test case has finished - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the message to send - - - - Construct a new TestListener - private so it may not be used. - - - - - Get a listener that does nothing - - - - - TestNameGenerator is able to create test names according to - a coded pattern. - - - - - Default pattern used to generate names - - - - - Construct a TestNameGenerator - - - - - Construct a TestNameGenerator - - The pattern used by this generator. - - - - Get the display name for a TestMethod and its arguments - - A TestMethod - The display name - - - - Get the display name for a TestMethod and its arguments - - A TestMethod - Arguments to be used - The display name - - - - TestParameters is the abstract base class for all classes - that know how to provide data for constructing a test. - - - - - Default Constructor creates an empty parameter set - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a ParameterSet from an object implementing ITestData - - - - - - The RunState for this set of parameters. - - - - - The arguments to be used in running the test, - which must match the method signature. - - - - - A name to be used for this test case in lieu - of the standard generated name containing - the argument list. - - - - - Gets the property dictionary for this test - - - - - Applies ParameterSet values to the test itself. - - A test. - - - - The original arguments provided by the user, - used for display purposes. - - - - - The list of display names to use as the parameters in the test name. - - - - - TestProgressReporter translates ITestListener events into - the async callbacks that are used to inform the client - software about the progress of a test run. - - - - - Initializes a new instance of the class. - - The callback handler to be used for reporting progress. - - - - Called when a test has just started - - The test that is starting - - - - Called when a test has finished. Sends a result summary to the callback. - to - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - Returns the parent test item for the target test item if it exists - - - parent test item - - - - Makes a string safe for use as an attribute, replacing - characters that can't be used with their - corresponding XML representations. - - The string to be used - A new string with the values replaced - - - - ParameterizedFixtureSuite serves as a container for the set of test - fixtures created from a given Type using various parameters. - - - - - Initializes a new instance of the class. - - The ITypeInfo for the type that represents the suite. - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets a string representing the type of test - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - ParameterizedMethodSuite holds a collection of individual - TestMethods with their arguments applied. - - - - - Initializes a new instance of the class. - - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets a MethodInfo for the method implementing this test. - - - - - Gets a string representing the type of test - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - SetUpFixture extends TestSuite and supports - Setup and TearDown methods. - - - - - Initializes a new instance of the class. - - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the TypeInfo of the fixture used in running this test. - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - The Test abstract class represents a test within the framework. - - - - - Static value to seed ids. It's started at 1000 so any - uninitialized ids will stand out. - - - - - Used to cache the declaring type for this MethodInfo - - - - - Method property backing field - - - - - Constructs a test given its name - - The name of the test - - - - Constructs a test given the path through the - test hierarchy to its parent and a name. - - The parent tests full name - The name of the test - - - - Constructs a test for a specific type. - - - - - Constructs a test for a specific method. - - - - - Gets or sets the id of the test - - - - - - Gets or sets the name of the test - - - - - Gets or sets the fully qualified name of the test - - - - - - Gets the name of the class where this test was declared. - Returns null if the test is not associated with a class. - - - - - Gets the name of the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - The arguments to use in creating the test or empty array if none required. - - - - - Gets the TypeInfo of the fixture used in running this test - or null if no fixture type is associated with it. - - - - - Gets a MethodInfo for the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - Whether or not the test should be run - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Gets a string representing the type of test. Used as an attribute - value in the XML representation of a test and has no other - function in the framework. - - - - - Gets a count of test cases represented by - or contained under this test. - - - - - Gets the properties for this test - - - - - Returns true if this is a TestSuite - - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets the parent as a Test object. - Used by the core to set the parent. - - - - - Gets this test's child tests - - A list of child tests - - - - Gets or sets a fixture object for running this test. - - - - - Static prefix used for ids in this AppDomain. - Set by FrameworkController. - - - - - Gets or Sets the Int value representing the seed for the RandomGenerator - - - - - - The SetUp methods. - - - - - The teardown methods - - - - - Creates a TestResult for this test. - - A TestResult suitable for this type of test. - - - - Modify a newly constructed test by applying any of NUnit's common - attributes, based on a supplied , which is - usually the reflection element from which the test was constructed, - but may not be in some instances. The attributes retrieved are - saved for use in subsequent operations. - - - - - Mark the test as Invalid (not runnable) specifying a reason - - The reason the test is not runnable - - - - Get custom attributes applied to a test - - - - - Add standard attributes and members to a test node. - - - - - - - Returns the XML representation of the test - - If true, include child tests recursively - - - - - Returns an XmlNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - An object to compare with this instance. - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - An object to compare with this instance. - - - - TestAssembly is a TestSuite that represents the execution - of tests in a managed assembly. - - - - - Initializes a new instance of the class - specifying the Assembly and the suite name. - - The assembly this test represents. - - This becomes the full name of the suite and the filename part is used as the suite name. - - - - - Initializes a new instance of the class - specifying the suite name for an assembly that could not be loaded. - - - This becomes the full name of the suite and the filename part is used as the suite name. - - - - - Creates a copy of the given assembly with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the Assembly represented by this instance. - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Get custom attributes specified on the assembly - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - TestFixture is a surrogate for a user test fixture class, - containing one or more tests. - - - - - The life cycle specified for the current test fixture. - - - - - Initializes a new instance of the class. - - Type of the fixture. - Arguments used to instantiate the test fixture, or null if none used - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the TypeInfo of the fixture used in running this test. - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - The TestMethod class represents a Test implemented as a method. - - - - - The ParameterSet used to create this test method - - - - - Initializes a new instance of the class. - - The method to be used as a test. - - - - Initializes a new instance of the class. - - The method to be used as a test. - The suite or fixture to which the new test will be added - - - - Gets a MethodInfo for the method implementing this test. - - - - - The arguments to use in executing the test method, or empty array if none are provided. - - - - - Overridden to return a TestCaseResult. - - A TestResult for this test. - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Returns a TNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - - Gets this test's child tests - - A list of child tests - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Returns the name of the method - - - - - TestSuite represents a composite test, which contains other tests. - - - - - Our collection of child tests - - - - - Initializes a new instance of the class. - - The name of the suite. - - - - Initializes a new instance of the class. - - Name of the parent suite. - The name of the suite. - - - - Initializes a new instance of the class. - - Type of the fixture. - Arguments used to instantiate the test fixture, or null if none used. - - - - Initializes a new instance of the class. - - Type of the fixture. - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Sorts tests under this suite. - - - - - Adds a test to the suite. - - The test. - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - Gets this test's child tests - - The list of child tests - - - - Gets a count of test cases represented by - or contained under this test. - - - - - - The arguments to use in creating the fixture, or empty array if none are provided. - - - - - Set to true to suppress sorting this suite's contents - - - - - OneTimeSetUp methods for this suite - - - - - OneTimeTearDown methods for this suite - - - - - Overridden to return a TestSuiteResult. - - A TestResult for this test. - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Returns an XmlNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - - Check that setup and teardown methods marked by certain attributes - meet NUnit's requirements and mark the tests not runnable otherwise. - - - - - ThreadUtility provides a set of static methods convenient - for working with threads. - - - - - Pre-Task compatibility - - - - - Abort a thread, helping to dislodging it if it is blocked in native code - - The thread to abort - The native thread id (if known), otherwise 0. - If provided, allows the thread to be killed if it's in a message pump native blocking wait. - This must have previously been captured by calling from the running thread itself. - - - - Do our best to kill a thread - - The thread to kill - The native thread id (if known), otherwise 0. - If provided, allows the thread to be killed if it's in a message pump native blocking wait. - This must have previously been captured by calling from the running thread itself. - - - - Do our best to kill a thread, passing state info - - The thread to kill - Info for the ThreadAbortException handler - The native thread id (if known), otherwise 0. - If provided, allows the thread to be killed if it's in a message pump native blocking wait. - This must have previously been captured by calling from the running thread itself. - - - - Schedule a thread pool thread to check on the aborting thread in case it's in a message pump native blocking wait - - - - - Captures the current thread's native id. If provided to later, allows the thread to be killed if it's in a message pump native blocking wait. - - - - - Sends a message to the thread to dislodge it from native code and allow a return to managed code, where a ThreadAbortException can be generated. - The message is meaningless (WM_CLOSE without a window handle) but it will end any blocking message wait. - - - - Gets or if the current platform does not support it. - - - Sets if current platform supports it. - Value to set. If the current platform does not support then the only allowed value is . - - - - TypeHelper provides static methods that operate on Types. - - - - - Gets the display name for a Type as used by NUnit. - - The Type for which a display name is needed. - The display name for the Type - - - - Gets the display name for a Type as used by NUnit. - - The Type for which a display name is needed. - The arglist provided. - The display name for the Type - - - - Returns the best fit for a common type to be used in - matching actual arguments to a methods Type parameters. - - - - - Determines whether the specified type is numeric. - - The type to be examined. - - if the specified type is numeric; otherwise, . - - - - - Convert an argument list to the required parameter types. - Currently, only widening numeric conversions are performed. - - An array of args to be converted - A ParameterInfo[] whose types will be used as targets - - - - Determines whether this instance can deduce type args for a generic type from the supplied arguments. - - The type to be examined. - The arglist. - The type args to be used. - - if this the provided args give sufficient information to determine the type args to be used; otherwise, . - - - - - Return the interfaces implemented by a Type. - - The Type to be examined. - An array of Types for the interfaces. - - - - Return whether or not the given type is a ValueTuple. - - Type. - Whether or not the given type is a ValueTuple. - - - - Return whether or not the given type is a Tuple. - - Type. - Whether or not the given type is a Tuple. - - - - Determines whether the cast to the given type would succeed. - If is and - can be , the cast succeeds just like the C# language feature. - - The object to cast. - - - - Casts to a value of the given type if possible. - If is and - can be , the cast succeeds just like the C# language feature. - - The object to cast. - The value of the object, if the cast succeeded. - - - - Used for resolving the type difference between objects. - - - - - Gets the shortened type name difference between and . - - The expected object. - The actual object. - Output of the unique type name for the expected object. - Output of the unique type name for actual object. - - - - Gets the shortened type name difference between and . - - The expected object . - The actual object . - Output of the unique type name for the expected object. - Output of the unique type name for actual object. - - - - Obtain the shortened generic template parameters of the given and , - if they are generic. - - The expected . - The actual . - Shortened generic parameters of the expected . - Shortened generic parameters of the actual . - - - - Obtain a shortened name of the given . - - - - - Shorten the given names by only including the relevant differing namespaces/types, if they differ. - - The expected . - The actual . - The shortened expected name. - The shortened actual name. - - - - Returns whether or not the is generic. - - - - - Returns the fully qualified generic name of a given . - - - - - Reconstruct a generic type name using the provided generic type name, and a - of the template parameters. - - The name of the generic type, including the number of template parameters expected. - A of names of the template parameters of the provided generic type. - - - - Obtain the shortened generic names of the given expected and actual s. - - The expected . - The actual . - The shortened expected generic name. - The shortened actual generic name. - - - - The TypeWrapper class wraps a Type so it may be used in - a platform-independent manner. - - - - - Construct a TypeWrapper for a specified Type. - - - - - Gets the underlying Type on which this TypeWrapper is based. - - - - - Gets the base type of this type as an ITypeInfo - - - - - Gets the Name of the Type - - - - - Gets the FullName of the Type - - - - - Gets the assembly in which the type is declared - - - - - Gets the namespace of the Type - - - - - Gets a value indicating whether the type is abstract. - - - - - Gets a value indicating whether the Type is a generic Type - - - - - Returns true if the Type wrapped is T - - - - - Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. - - - - - Gets a value indicating whether the Type is a generic Type definition - - - - - Gets a value indicating whether the type is sealed. - - - - - Gets a value indicating whether this type represents a static class. - - - - - Get the display name for this type - - - - - Get the display name for an object of this type, constructed with the specified args. - - - - - Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments - - - - - Returns a Type representing a generic type definition from which this Type can be constructed. - - - - - Returns an array of custom attributes of the specified type applied to this type - - - - - Returns a value indicating whether the type has an attribute of the specified type. - - - - - - - - Returns a flag indicating whether this type has a method with an attribute of the specified type. - - - - - - - Returns an array of IMethodInfos for methods of this Type - that match the specified flags. - - - - - Gets the public constructor taking the specified argument Types - - - - - Returns a value indicating whether this Type has a public constructor taking the specified argument Types. - - - - - Construct an object of this Type, using the specified arguments. - - - - - Override ToString() so that error messages in NUnit's own tests make sense - - - - - Returns all methods declared by this type that have the specified attribute, optionally - including base classes. Methods from a base class are always returned before methods from a class that - inherits from it. - - Specifies whether to search the fixture type inheritance chain. - - - - Encapsulates the ability to increment a value by an amount which may be of a different type. - - - - - Creates a from the specified value if the current instance is able to - use it to increment the on values which it operates. If the creation fails, - is thrown. - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values on which it operates. A return value indicates - whether the creation succeeded. - - - - - Provides a convenient shorthand when is - and the default value of represents zero. - - - - - Initializes a new instance of the class. - - The amount by which to increment each time this step is applied. - - Must increment the given value and return the result. - If the result is outside the range representable by , - must throw . If the result does not change due to lack - of precision representable by , must throw . - - - - - Increments the given value and returns the result. - If the result is outside the range representable by , - throws . If the result does not change due to lack - of precision representable by , throws . - - - - - - - Encapsulates the ability to increment a value by an amount - which may be of a different type. - - - - - Increments the given value and returns the result. - If the result is outside the range representable by , - throws . If the result does not change due to lack - of precision representable by , throws . - - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values of type . If the creation fails, - is thrown. - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values of type . A return value indicates - whether the creation succeeded. - - - - - The IgnoredTestCaseData class represents a ignored TestCaseData. It adds - the ability to set a date until which the test will be ignored. - - - - - The previous RunState - - - - - Set the date that the test is being ignored until - - The date that the test is being ignored until - A modified TestCaseData. - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for equality with zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable to the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable to the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - inclusively within a specified range. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - - Returns a constraint that tests if an item is equal to any of parameters - - Expected values - - - - When implemented by an attribute, this interface implemented to provide actions to execute before and after tests. - - - - - Executed before each test is run - - The test that is going to be run. - - - - Executed after each test is run - - The test that has just been run. - - - - Provides the target for the action attribute - - The target for the action attribute - - - - The Iz class is a synonym for Is intended for use in VB, - which regards Is as a keyword. - - - - - The List class is a helper class with properties and methods - that supply a number of constraints used with lists and collections. - - - - - List.Map returns a ListMapper, which can be used to map - the original collection to another collection. - - - - - - - ListMapper is used to transform a collection used as an actual argument - producing another collection to be used in the assertion. - - - - - Construct a ListMapper based on a collection - - The collection to be transformed - - - - Produces a collection containing all the values of a property - - The collection of property values - - - - - Basic Asserts on strings. - - - - - DO NOT USE! Use StringAssert.AreEqualIgnoringCase(...) or Assert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string is not found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - - - - Asserts that two strings are not equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are not equal, without regard to case. - - The expected string - The actual string - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - - - - The TestCaseData class represents a set of arguments - and other parameter info to be used for a parameterized - test case. It is derived from TestCaseParameters and adds a - fluent syntax for use in initializing the test case. - - - - - Initializes a new instance of the class. - - The arguments. - - - - Initializes a new instance of the class. - - The argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - The third argument. - - - - Sets the expected result for the test - - The expected result - A modified TestCaseData - - - - Sets the name of the test case - - The modified TestCaseData instance - - - - Sets the list of display names to use as the parameters in the test name. - - - - - Sets the description for the test case - being constructed. - - The description. - The modified TestCaseData instance. - - - - Applies a category to the test - - - - - - - Applies a named property to the test - - - - - - - - Applies a named property to the test - - - - - - - - Applies a named property to the test - - - - - - - - Marks the test case as explicit. - - - - - Marks the test case as explicit, specifying the reason. - - - - - Ignores this TestCase, specifying the reason. - - The reason. - - - - - Provide the context information of the current test. - This is an adapter for the internal ExecutionContext - class, hiding the internals from the user test. - - - - - Construct a TestContext for an ExecutionContext - - The ExecutionContext to adapt - - - - Get the current test context. This is created - as needed. The user may save the context for - use within a test, but it should not be used - outside the test for which it is created. - - - - - Gets a TextWriter that will send output to the current test result. - - - - - Gets a TextWriter that will send output directly to Console.Error - - - - - Gets a TextWriter for use in displaying immediate progress messages - - - - - TestParameters object holds parameters for the test run, if any are specified - - - - - Static DefaultWorkDirectory is now used as the source - of the public instance property WorkDirectory. This is - a bit odd but necessary to avoid breaking user tests. - - - - - Get a representation of the current test. - - - - - Gets a Representation of the TestResult for the current test. - - - - - Gets the unique name of the Worker that is executing this test. - - - - - Gets the directory containing the current test assembly. - - - - - Gets the directory to be used for outputting files created - by this test run. - - - - - Gets the random generator. - - - The random generator. - - - - - Gets the number of assertions executed - up to this point in the test. - - - - - Get the number of times the current Test has been repeated - when using the or . - - - - Write the string representation of a boolean value to the current result - - - Write a char to the current result - - - Write a char array to the current result - - - Write the string representation of a double to the current result - - - Write the string representation of an Int32 value to the current result - - - Write the string representation of an Int64 value to the current result - - - Write the string representation of a decimal value to the current result - - - Write the string representation of an object to the current result - - - Write the string representation of a Single value to the current result - - - Write a string to the current result - - - Write the string representation of a UInt32 value to the current result - - - Write the string representation of a UInt64 value to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a line terminator to the current result - - - Write the string representation of a boolean value to the current result followed by a line terminator - - - Write a char to the current result followed by a line terminator - - - Write a char array to the current result followed by a line terminator - - - Write the string representation of a double to the current result followed by a line terminator - - - Write the string representation of an Int32 value to the current result followed by a line terminator - - - Write the string representation of an Int64 value to the current result followed by a line terminator - - - Write the string representation of a decimal value to the current result followed by a line terminator - - - Write the string representation of an object to the current result followed by a line terminator - - - Write the string representation of a Single value to the current result followed by a line terminator - - - Write a string to the current result followed by a line terminator - - - Write the string representation of a UInt32 value to the current result followed by a line terminator - - - Write the string representation of a UInt64 value to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - - This method adds the a new ValueFormatterFactory to the - chain of responsibility used for formatting values in messages. - The scope of the change is the current TestContext. - - The factory delegate - - - - Attach a file to the current test result - - Relative or absolute file path to attachment - Optional description of attachment - - - - This method provides a simplified way to add a ValueFormatter - delegate to the chain of responsibility, creating the factory - delegate internally. It is useful when the Type of the object - is the only criterion for selection of the formatter, since - it can be used without getting involved with a compound function. - - The type supported by this formatter - The ValueFormatter delegate - - - - TestAdapter adapts a Test for consumption by - the user test code. - - - - - Construct a TestAdapter for a Test - - The Test to be adapted - - - - Gets the unique Id of a test - - - - - The name of the test, which may or may not be - the same as the method name. - - - - - The name of the method representing the test. - - - - - The FullName of the test - - - - - The ClassName of the test - - - - - A shallow copy of the properties of the test. - - - - - The arguments to use in creating the test or empty array if none are required. - - - - - ResultAdapter adapts a TestResult for consumption by - the user test code. - - - - - Construct a ResultAdapter for a TestResult - - The TestResult to be adapted - - - - Gets a ResultState representing the outcome of the test - up to this point in its execution. - - - - - Gets a list of the assertion results generated - up to this point in the test. - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - adapts an - for consumption by the user. - - - - - Construct a from a source - . - - - - - Get the first property with the given , if it can be found, otherwise - returns null. - - - - - Indicates whether is found in this - . - - - - - Returns a collection of properties - with the given . - - - - - Returns the count of elements with the given . - - - - - Returns a collection of the property keys. - - - - - The TestFixtureData class represents a set of arguments - and other parameter info to be used for a parameterized - fixture. It is derived from TestFixtureParameters and adds a - fluent syntax for use in initializing the fixture. - - - - - Initializes a new instance of the class. - - The arguments. - - - - Initializes a new instance of the class. - - The argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - The third argument. - - - - Sets the name of the test fixture - - The modified TestFixtureData instance - - - - Sets the list of display names to use as the parameters in the test name. - - - - - Marks the test fixture as explicit. - - - - - Marks the test fixture as explicit, specifying the reason. - - - - - Ignores this TestFixture, specifying the reason. - - The reason. - - - - - TestParameters class holds any named parameters supplied to the test run - - - - - Gets the number of test parameters - - - - - Gets a collection of the test parameter names - - - - - Gets a flag indicating whether a parameter with the specified name exists. - - Name of the parameter - True if it exists, otherwise false - - - - Indexer provides access to the internal dictionary - - Name of the parameter - Value of the parameter or null if not present - - - - Get method is a simple alternative to the indexer - - Name of the parameter - Value of the parameter or null if not present - - - - Get the value of a parameter or a default string - - Name of the parameter - Default value of the parameter - Value of the parameter or default value if not present - - - - Get the value of a parameter or return a default - - The return Type - Name of the parameter - Default value of the parameter - Value of the parameter or default value if not present - - - - Adds a parameter to the list - - Name of the parameter - Value of the parameter - - - - Helper class with properties and methods that supply - constraints that operate on exceptions. - - - - - Creates a constraint specifying an expected exception - - - - - Creates a constraint specifying an exception with a given InnerException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying an expected ArgumentException - - - - - Creates a constraint specifying an expected ArgumentNullException - - - - - Creates a constraint specifying an expected InvalidOperationException - - - - - Creates a constraint specifying that no exception is thrown - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Provides static methods to express conditions - that must be met for the test to succeed. If - any test fails, a warning is issued. - - - - - DO NOT USE! - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - Not applicable - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on success. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on success. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - The message to display if the condition is true - Arguments to be used in formatting the message - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning if it succeeds. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning if it succeeds. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - FrameworkPackageSettings is a static class containing constant values that - are used as keys in setting up a TestPackage. These values are used in - the framework, and set in the runner. Setting values may be a string, int or bool. - - - - - Flag (bool) indicating whether tests are being debugged. - - - - - Flag (bool) indicating whether to pause execution of tests to allow - the user to attach a debugger. - - - - - The InternalTraceLevel for this run. Values are: "Default", - "Off", "Error", "Warning", "Info", "Debug", "Verbose". - Default is "Off". "Debug" and "Verbose" are synonyms. - - - - - Full path of the directory to be used for work and result files. - This path is provided to tests by the framework TestContext. - - - - - Integer value in milliseconds for the default timeout value - for test cases. If not specified, there is no timeout except - as specified by attributes on the tests themselves. - - - - - A string representing the default thread culture to be used for - running tests. String should be a valid BCP-47 culture name. If - culture is unset, tests run on the machine's default culture. - - - - - A string representing the default thread UI culture to be used for - running tests. String should be a valid BCP-47 culture name. If - culture is unset, tests run on the machine's default culture. - - - - - A TextWriter to which the internal trace will be sent. - - - - - A list of tests to be loaded. - - - - - The number of test threads to run for the assembly. If set to - 1, a single queue is used. If set to 0, tests are executed - directly, without queuing. - - - - - The random seed to be used for this assembly. If specified - as the value reported from a prior run, the framework should - generate identical random values for tests as were used for - that run, provided that no change has been made to the test - assembly. Default is a random value itself. - - - - - If true, execution stops after the first error or failure. - - - - - If true, use of the event queue is suppressed and test events are synchronous. - - - - - The default naming pattern used in generating test names - - - - - Parameters to be passed on to the tests, serialized to a single string which needs parsing. Obsoleted by ; kept for backward compatibility. - - - - - Parameters to be passed on to the tests, already parsed into an IDictionary<string, string>. Replaces . - - - - - If true, the tests will run on the same thread as the NUnit runner itself - - - - - Provides a platform-independent methods for getting attributes - for use by AttributeConstraint and AttributeExistsConstraint. - - - - - Gets the custom attributes from the given object. - - The actual. - Type of the attribute. - if set to [inherit]. - A list of the given attribute on the given object. - - - - A MarshalByRefObject that lives forever - - - - - Obtains a lifetime service object to control the lifetime policy for this instance. - - - - Specifies that null is allowed as an input even if the corresponding type disallows it. - - - Specifies that null is disallowed as an input even if the corresponding type allows it. - - - Specifies that an output may be null even if the corresponding type disallows it. - - - Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns. - - - Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter may be null. - - - - Gets the return value condition. - - - Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - - Gets the return value condition. - - - Specifies that the output will be non-null if the named parameter is non-null. - - - Initializes the attribute with the associated parameter name. - - The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. - - - - Gets the associated parameter name. - - - Applied to a method that will never return under any circumstance. - - - Specifies that the method will not return if the associated Boolean parameter is passed the specified value. - - - Initializes the attribute with the specified parameter value. - - The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to - the associated parameter matches this value. - - - - Gets the condition parameter value. - - - diff --git a/packages/NUnit.3.13.2/lib/netstandard2.0/nunit.framework.dll b/packages/NUnit.3.13.2/lib/netstandard2.0/nunit.framework.dll deleted file mode 100644 index 6e14958c88cb870f1e62082b64831623bffc1bba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 480768 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 JNWXRr{6FaRuz>&o diff --git a/packages/NUnit.3.13.2/lib/netstandard2.0/nunit.framework.xml b/packages/NUnit.3.13.2/lib/netstandard2.0/nunit.framework.xml deleted file mode 100644 index 7246d5d..0000000 --- a/packages/NUnit.3.13.2/lib/netstandard2.0/nunit.framework.xml +++ /dev/null @@ -1,21198 +0,0 @@ - - - - nunit.framework - - - -

- The different targets a test action attribute can be applied to - - - - - Default target, which is determined by where the action attribute is attached - - - - - Target a individual test case - - - - - Target a suite of test cases - - - - - DefaultTestAssemblyBuilder loads a single assembly and builds a TestSuite - containing test fixtures present in the assembly. - - - - - The default suite builder used by the test assembly builder. - - - - - Initializes a new instance of the class. - - - - - Build a suite of tests from a provided assembly - - The assembly from which tests are to be built - A dictionary of options to use in building the suite - - A TestSuite containing the tests found in the assembly - - - - - Build a suite of tests given the name or the location of an assembly - - The name or the location of the assembly. - A dictionary of options to use in building the suite - - A TestSuite containing the tests found in the assembly - - - - - FrameworkController provides a facade for use in loading, browsing - and running tests without requiring a reference to the NUnit - framework. All calls are encapsulated in constructors for - this class and its nested classes, which only require the - types of the Common Type System as arguments. - - The controller supports four actions: Load, Explore, Count and Run. - They are intended to be called by a driver, which should allow for - proper sequencing of calls. Load must be called before any of the - other actions. The driver may support other actions, such as - reload on run, by combining these calls. - - - - - Construct a FrameworkController using the default builder and runner. - - The AssemblyName or path to the test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - - - - Construct a FrameworkController using the default builder and runner. - - The test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - - - - Construct a FrameworkController, specifying the types to be used - for the runner and builder. This constructor is provided for - purposes of development. - - The full AssemblyName or the path to the test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - The Type of the test runner - The Type of the test builder - - - - Construct a FrameworkController, specifying the types to be used - for the runner and builder. This constructor is provided for - purposes of development. - - The test assembly - A prefix used for all test ids created under this controller. - A Dictionary of settings to use in loading and running the tests - The Type of the test runner - The Type of the test builder - - - - Gets the ITestAssemblyBuilder used by this controller instance. - - The builder. - - - - Gets the ITestAssemblyRunner used by this controller instance. - - The runner. - - - - Gets the AssemblyName or the path for which this FrameworkController was created - - - - - Gets the Assembly for which this - - - - - Gets a dictionary of settings for the FrameworkController - - - - - Loads the tests in the assembly - - - - - - Returns info about the tests in an assembly - - A string containing the XML representation of the filter to use - The XML result of exploring the tests - - - - Runs the tests in an assembly - - A string containing the XML representation of the filter to use - The XML result of the test run - - - - Runs the tests in an assembly synchronously reporting back the test results through the callback - or through the return value - - The callback that receives the test results - A string containing the XML representation of the filter to use - The XML result of the test run - - - - Runs the tests in an assembly asynchronously reporting back the test results through the callback - - The callback that receives the test results - A string containing the XML representation of the filter to use - - - - Stops the test run - - True to force the stop, false for a cooperative stop - - - - Counts the number of test cases in the loaded TestSuite - - A string containing the XML representation of the filter to use - The number of tests - - - - Inserts the environment and settings elements - - Target node - The updated target node - - - - Inserts environment element - - Target node - The new node - - - - Inserts settings element - - Target node - Settings dictionary - The new node - - - - FrameworkControllerAction is the base class for all actions - performed against a FrameworkController. - - - - - LoadTestsAction loads a test into the FrameworkController - - - - - LoadTestsAction loads the tests in an assembly. - - The controller. - The callback handler. - - - - ExploreTestsAction returns info about the tests in an assembly - - - - - Initializes a new instance of the class. - - The controller for which this action is being performed. - Filter used to control which tests are included (NYI) - The callback handler. - - - - CountTestsAction counts the number of test cases in the loaded TestSuite - held by the FrameworkController. - - - - - Construct a CountsTestAction and perform the count of test cases. - - A FrameworkController holding the TestSuite whose cases are to be counted - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - RunTestsAction runs the loaded TestSuite held by the FrameworkController. - - - - - Construct a RunTestsAction and run all tests in the loaded TestSuite. - - A FrameworkController holding the TestSuite to run - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - RunAsyncAction initiates an asynchronous test run, returning immediately - - - - - Construct a RunAsyncAction and run all tests in the loaded TestSuite. - - A FrameworkController holding the TestSuite to run - A string containing the XML representation of the filter to use - A callback handler used to report results - - - - StopRunAction stops an ongoing run. - - - - - Construct a StopRunAction and stop any ongoing run. If no - run is in process, no error is raised. - - The FrameworkController for which a run is to be stopped. - True the stop should be forced, false for a cooperative stop. - >A callback handler used to report results - A forced stop will cause threads and processes to be killed as needed. - - - - The ITestAssemblyBuilder interface is implemented by a class - that is able to build a suite of tests given an assembly or - an assembly filename. - - - - - Build a suite of tests from a provided assembly - - The assembly from which tests are to be built - A dictionary of options to use in building the suite - A TestSuite containing the tests found in the assembly - - - - Build a suite of tests given the filename of an assembly - - The filename of the assembly from which tests are to be built - A dictionary of options to use in building the suite - A TestSuite containing the tests found in the assembly - - - - The ITestAssemblyRunner interface is implemented by classes - that are able to execute a suite of tests loaded - from an assembly. - - - - - Gets the tree of loaded tests, or null if - no tests have been loaded. - - - - - Gets the tree of test results, if the test - run is completed, otherwise null. - - - - - Indicates whether a test has been loaded - - - - - Indicates whether a test is currently running - - - - - Indicates whether a test run is complete - - - - - Loads the tests found in an Assembly, returning an - indication of whether or not the load succeeded. - - File name of the assembly to load - Dictionary of options to use in loading the test - An ITest representing the loaded tests - - - - Loads the tests found in an Assembly, returning an - indication of whether or not the load succeeded. - - The assembly to load - Dictionary of options to use in loading the test - An ITest representing the loaded tests - - - - Count Test Cases using a filter - - The filter to apply - The number of test cases found - - - - Explore the test cases using a filter - - The filter to apply - Test Assembly with test cases that matches the filter - - - - Run selected tests and return a test result. The test is run synchronously, - and the listener interface is notified as it progresses. - - Interface to receive ITestListener notifications. - A test filter used to select tests to be run - - - - Run selected tests asynchronously, notifying the listener interface as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - - - - Wait for the ongoing run to complete. - - Time to wait in milliseconds - True if the run completed, otherwise false - - - - Signal any test run that is in process to stop. Return without error if no test is running. - - If true, kill any test-running threads - - - - Implementation of ITestAssemblyRunner - - - - - Initializes a new instance of the class. - - The builder. - - - - Gets the default level of parallel execution (worker threads) - - - - - The tree of tests that was loaded by the builder - - - - - The test result, if a run has completed - - - - - Indicates whether a test is loaded - - - - - Indicates whether a test is running - - - - - Indicates whether a test run is complete - - - - - Our settings, specified when loading the assembly - - - - - The top level WorkItem created for the assembly as a whole - - - - - The TestExecutionContext for the top level WorkItem - - - - - Loads the tests found in an Assembly - - File name or path of the assembly to load - Dictionary of option settings for loading the assembly - A Test Assembly containing all loaded tests - - - - Loads the tests found in an Assembly - - The assembly to load - Dictionary of option settings for loading the assembly - A Test Assembly containing all loaded tests - - - - Count Test Cases using a filter - - The filter to apply - The number of test cases found - - - - Explore the test cases using a filter - - The filter to apply - Test Assembly with test cases that matches the filter - - - - Run selected tests and return a test result. The test is run synchronously, - and the listener interface is notified as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - The test results from the run - - - - Run selected tests asynchronously, notifying the listener interface as it progresses. - - Interface to receive EventListener notifications. - A test filter used to select tests to be run - - RunAsync is a template method, calling various abstract and - virtual methods to be overridden by derived classes. - - - - - Wait for the ongoing run to complete. - - Time to wait in milliseconds - True if the run completed, otherwise false - - - - Signal any test run that is in process to stop. Return without error if no test is running. - - If true, kill any tests that are currently running - - - - Initiate the test run. - - - - - Create the initial TestExecutionContext used to run tests - - The ITestListener specified in the RunAsync call - - - - Handle the Completed event for the top level work item - - - - - This method is a no-op in .NET Standard builds. - - - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - - - Verifies that the first int is greater than the second - int. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first int is greater than the second - int. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is greater than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be greater - The second value, expected to be less - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the first value is less than or equal to the second - value. If it is not, then an - is thrown. - - The first value, expected to be less - The second value, expected to be greater - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Asserts that a condition is false. Returns without throwing an exception when inside a multiple assert - block. - - The evaluated condition - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is not equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the object that is passed in is equal to . Returns without throwing an - exception when inside a multiple assert block. - - The object that is to be tested - - - - Verifies that the double that is passed in is an NaN. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that the double that is passed in is an NaN value. Returns without throwing an - exception when inside a multiple assert block. - - The value that is to be tested - - - - Assert that a string is empty. Returns without throwing an exception when inside a multiple assert block. - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is empty. Returns without throwing an exception when inside a multiple assert block. - - The string to be tested - - - - Assert that an array, list or other collection is empty. Returns without throwing an exception when inside a - multiple assert block. - - An array, list or other collection implementing ICollection - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that an array, list or other collection is empty. Returns without throwing an exception when inside a - multiple assert block. - - An array, list or other collection implementing ICollection - - - - Assert that a string is not empty. Returns without throwing an exception when inside a multiple assert - block. - - The string to be tested - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that a string is not empty. Returns without throwing an exception when inside a multiple assert - block. - - The string to be tested - - - - Assert that an array, list or other collection is not empty. Returns without throwing an exception when - inside a multiple assert block. - - An array, list or other collection implementing ICollection - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Assert that an array, list or other collection is not empty. Returns without throwing an exception when - inside a multiple assert block. - - An array, list or other collection implementing ICollection - - - - Asserts that an int is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that an unsigned int is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that an unsigned Long is zero. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is not zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is not zero. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a decimal is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a double is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is zero. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is positive. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a decimal is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is positive. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a double is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is positive. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an int is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that an int is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned int is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned int is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a Long is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a Long is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an unsigned Long is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - - - - Asserts that an unsigned Long is negative. Returns without throwing an exception when inside a multiple - assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a decimal is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a decimal is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a double is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - - - - Asserts that a double is negative. Returns without throwing an exception when inside a multiple assert - block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that a float is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - - - - Asserts that a float is negative. Returns without throwing an exception when inside a multiple assert block. - - The number to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - DO NOT USE! Use Assert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - The message to initialize the with. - - - - Throws a with the message and arguments - that are passed in. This allows a test to be cut short, with a result - of success returned to NUnit. - - - - - Marks the test as failed with the message and arguments that are passed in. Returns without throwing an - exception when inside a multiple assert block. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Marks the test as failed with the message that is passed in. Returns without throwing an exception when - inside a multiple assert block. - - The message to initialize the with. - - - - Marks the test as failed. Returns without throwing an exception when inside a multiple assert block. - - - - - Issues a warning using the message and arguments provided. - - The message to display. - Arguments to be used in formatting the message - - - - Issues a warning using the message provided. - - The message to display. - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as ignored. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as ignored. - - - - - Throws an with the message and arguments - that are passed in. This causes the test to be reported as inconclusive. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This causes the test to be reported as inconclusive. - - The message to initialize the with. - - - - Throws an . - This causes the test to be reported as Inconclusive. - - - - - Asserts that an object is contained in a collection. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The collection to be examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is contained in a collection. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The collection to be examined - - - - Wraps code containing a series of assertions, which should all - be executed, even if they fail. Failed results are saved and - reported at the end of the code block. - - A TestDelegate to be executed in Multiple Assertion mode. - - - - Wraps code containing a series of assertions, which should all - be executed, even if they fail. Failed results are saved and - reported at the end of the code block. - - A TestDelegate to be executed in Multiple Assertion mode. - - - - If throws, returns "SomeException was thrown by the - Environment.StackTrace property." See also . - - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are equal considering a delta. If the expected value is infinity then the delta - value is ignored. Returns without throwing an exception when inside a multiple assert block. - - The expected value - The actual value - The maximum acceptable difference between the the expected and the actual - - - - Verifies that two objects are equal. Two objects are considered equal if both are null, or if both have the - same value. NUnit has special semantics for some object types. Returns without throwing an exception when - inside a multiple assert block. - - The value that is expected - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two objects are equal. Two objects are considered equal if both are null, or if both have the - same value. NUnit has special semantics for some object types. Returns without throwing an exception when - inside a multiple assert block. - - The value that is expected - The actual value - - - - Verifies that two objects are not equal. Two objects are considered equal if both are null, or if both have - the same value. NUnit has special semantics for some object types. Returns without throwing an exception - when inside a multiple assert block. - - The value that is expected - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two objects are not equal. Two objects are considered equal if both are null, or if both have - the same value. NUnit has special semantics for some object types. Returns without throwing an exception - when inside a multiple assert block. - - The value that is expected - The actual value - - - - Asserts that two objects refer to the same object. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The actual object - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that two objects refer to the same object. Returns without throwing an exception when inside a - multiple assert block. - - The expected object - The actual object - - - - Asserts that two objects do not refer to the same object. Returns without throwing an exception when inside - a multiple assert block. - - The expected object - The actual object - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that two objects do not refer to the same object. Returns without throwing an exception when inside - a multiple assert block. - - The expected object - The actual object - - - - Helper for Assert.AreEqual(double expected, double actual, ...) - allowing code generation to work consistently. - - The expected value - The actual value - The maximum acceptable difference between the - the expected and the actual - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - The exception Type expected - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - The exception Type expected - A TestDelegate - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws a particular exception when called. The returned exception may be - when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - - - - Verifies that an async delegate throws an exception when called and returns it. The returned exception may - be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws an exception when called and returns it. The returned exception may - be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that an async delegate does not throw an exception - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that an async delegate does not throw an exception. - - A TestDelegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - A constraint to be satisfied by the exception - A TestSnippet delegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - The exception Type expected - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - The exception Type expected - A TestDelegate - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws a particular exception when called. The returned exception may be when inside a multiple assert block. - - Type of the expected exception - A TestDelegate - - - - Verifies that a delegate throws an exception when called and returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception when called and returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - The expected Exception Type - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate throws an exception of a certain Type or one derived from it when called and - returns it. The returned exception may be when inside a multiple assert block. - - A TestDelegate - - - - Verifies that a delegate does not throw an exception - - A TestDelegate - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Verifies that a delegate does not throw an exception. - - A TestDelegate - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - - - - Asserts that a condition is true. Returns without throwing an exception when inside a multiple assert block. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to a delegate. Returns without throwing an exception when inside a multiple assert block. - - A TestDelegate to be executed - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. Used as a synonym for That in rare cases where a private setter causes a Visual Basic compilation - error. - - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value. Returns without throwing an exception when inside a multiple assert - block. Used as a synonym for That in rare cases where a private setter causes a Visual Basic compilation - error. - - - This method is provided for use by VB developers needing to test the value of properties with private - setters. - - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may be assigned a value of a given Type. Returns without throwing an exception when - inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object may not be assigned a value of a given Type. Returns without throwing an exception - when inside a multiple assert block. - - The expected Type. - The object under examination - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is an instance of a given type. Returns without throwing an exception when inside a - multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Asserts that an object is not an instance of a given type. Returns without throwing an exception when inside - a multiple assert block. - - The expected Type - The object being examined - - - - Delegate used by tests that execute code and - capture any thrown exception. - - - - - Delegate used by tests that execute async code and - capture any thrown exception. - - - - - AssertionHelper is an optional base class for user tests, - allowing the use of shorter names in making asserts. - - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to - . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false the method throws - an . Works Identically to . - - The evaluated condition - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - The actual value to test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Returns a ListMapper based on a collection. - - The original collection - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for equality with zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - To search for a substring instead of a collection element, use the - overload. - - - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - - - To search for a collection element instead of a substring, use the - overload. - - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that fails if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that fails if the actual - value matches the pattern supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - within a specified range. - - - - - Provides static methods to express the assumptions - that must be met for a test to give a meaningful - result. If an assumption is not met, the test - should produce an inconclusive result. - - - - - DO NOT USE! - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - Not applicable - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, the - method throws an . - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - - - - Asserts that a condition is true. If the condition is false, the method throws - an . - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A ThrowsConstraint used in the test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Marks a test as needing to be run in a particular threading apartment state. This will cause it - to run in a separate thread if necessary. - - - - - Construct an ApartmentAttribute - - The apartment state that this test must be run under. You must pass in a valid apartment state. - - - - Provides the author of a test or test fixture. - - - - - Initializes a new instance of the class. - - The name of the author. - - - - Initializes a new instance of the class. - - The name of the author. - The email address of the author. - - - - Applies a category to a test - - - - - The name of the category - - - - - Construct attribute for a given category based on - a name. The name may not contain the characters ',', - '+', '-' or '!'. However, this is not checked in the - constructor since it would cause an error to arise at - as the test was loaded without giving a clear indication - of where the problem is located. The error is handled - in NUnitFramework.cs by marking the test as not - runnable. - - The name of the category - - - - Protected constructor uses the Type name as the name - of the category. - - - - - The name of the category - - - - - Modifies a test by adding a category to it. - - The test to modify - - - - Marks a test to use a combinatorial join of any argument data provided. - Since this is the default, the attribute is optional. - - - - - Default constructor - - - - - Marks a test as using a particular CombiningStrategy to join any supplied parameter data. - Since this is the default, the attribute is optional. - - - - - Construct a CombiningStrategyAttribute incorporating an - ICombiningStrategy and an IParameterDataProvider. - - Combining strategy to be used in combining data - An IParameterDataProvider to supply data - - - - Construct a CombiningStrategyAttribute incorporating an object - that implements ICombiningStrategy and an IParameterDataProvider. - This constructor is provided for CLS compliance. - - Combining strategy to be used in combining data - An IParameterDataProvider to supply data - - - - Builds any number of tests from the specified method and context. - - The MethodInfo for which tests are to be constructed. - The suite to which the tests will be added. - - - - Modify the test by adding the name of the combining strategy - to the properties. - - The test to modify - - - - Marks an assembly, test fixture or test method as applying to a specific Culture. - - - - - Constructor with no cultures specified, for use - with named property syntax. - - - - - Constructor taking one or more cultures - - Comma-delimited list of cultures - - - - Causes a test to be skipped if this CultureAttribute is not satisfied. - - The test to modify - - - - Tests to determine if the current culture is supported - based on the properties of this attribute. - - True, if the current culture is supported - - - - Test to determine if the a particular culture or comma- - delimited set of cultures is in use. - - Name of the culture or comma-separated list of culture ids - True if the culture is in use on the system - - - - Test to determine if one of a collection of cultures - is being used currently. - - - - - - - Abstract base class for all data-providing attributes defined by NUnit. - Used to select all data sources for a method, class or parameter. - - - - - Default constructor - - - - - Marks a field for use as a datapoint when executing a theory within - the same fixture that requires an argument of the field's Type. - - - - - Marks a field, property or method as providing a set of datapoints for use - in executing any theories within the same fixture that require an argument of - the provided Type. The data source may provide an array of the required Type - or an . Synonymous with . - - - - - Marks a field, property or method as providing a set of datapoints for use - in executing any theories within the same fixture that require an argument - of the provided type. The data source may provide an array of the required - Type or an . Synonymous with . - - - - - Sets the tolerance used by default when checking the equality of floating point values - within the test assembly, fixture or method. - - - - - Construct specifying an amount - - - - - - Apply changes to the TestExecutionContext - - The TestExecutionContext - - - - Provides the descriptive text relating to the assembly, test fixture or test method. - - - - - Construct a description Attribute - - The text of the description - - - - Marks an assembly, test fixture or test method such that it will only run if explicitly - executed from the GUI, command line or included within a test filter. - The test will not be run simply because an enclosing suite is run. - - - - - Default constructor - - - - - Constructor with a reason - - The reason test is marked explicit - - - - Modifies a test by marking it as explicit. - - The test to modify - - - - Specify the life cycle of a Fixture - - - - - Construct a FixtureLifeCycleAttribute with a specified . - - - - - Defines the life cycle for this test fixture or assembly. - - - - - Overridden to set a TestFixture's . - - - - - Marks an assembly, test fixture or test method as being ignored. Ignored tests result in a warning message when the tests are run. - - - - - Constructs the attribute giving a reason for ignoring the test - - The reason for ignoring the test - - - - The date in the future to stop ignoring the test as a string in UTC time. - For example for a date and time, "2014-12-25 08:10:00Z" or for just a date, - "2014-12-25". If just a date is given, the Ignore will expire at midnight UTC. - - - Once the ignore until date has passed, the test will be marked - as runnable. Tests with an ignore until date will have an IgnoreUntilDate - property set which will appear in the test results. - - The string does not contain a valid string representation of a date and time. - - - - Modifies a test by marking it as Ignored. - - The test to modify - - - - Abstract base for attributes that are used to include tests in - the test run based on environmental settings. - - - - - Constructor with no included items specified, for use - with named property syntax. - - - - - Constructor taking one or more included items - - Comma-delimited list of included items - - - - Name of the item that is needed in order for - a test to run. Multiple items may be given, - separated by a comma. - - - - - Name of the item to be excluded. Multiple items - may be given, separated by a comma. - - - - - The reason for including or excluding the test - - - - - Sets the number of worker threads that may be allocated by the framework - for running tests. - - - - - Construct a LevelOfParallelismAttribute. - - The number of worker threads to be created by the framework. - - - - Specifies the life cycle for a test fixture. - - - - - A single instance is created and shared for all test cases. - - - - - A new instance is created for each test case. - - - - - Specifies the maximum time (in milliseconds) for a test case to succeed. - - - - - Construct a MaxTimeAttribute, given a time in milliseconds. - - The maximum elapsed time in milliseconds - - - - Marks tests that should NOT be run in parallel. - - - - - Construct a NonParallelizableAttribute. - - - - - Used by third-party frameworks, or other software, that reference - the NUnit framework but do not contain any tests. Applying the - attribute indicates that the assembly is not a test assembly and - may prevent errors if certain runners attempt to load the assembly. - Note that recognition of the attribute depends on each individual runner. - - - - - Abstract base class for all custom attributes defined by NUnit. - - - - - Default constructor - - - - - Identifies a method that is called once to perform setup before any child tests are run. - - - - - Identifies a method to be called once after all the child tests have run. - The method is guaranteed to be called, even if an exception is thrown. - - - - - Defines the order that the test will run in - - - - - Defines the order that the test will run in - - - - - Defines the order that the test will run in - - - - - - Modifies a test as defined for the specific attribute. - - The test to modify - - - - Marks a test as using a pairwise join of any supplied argument data. Arguments will be - combined in such a way that all possible pairs of arguments are used. - - - - - Default constructor - - - - - Marks a test assembly, fixture or method that may be run in parallel. - - - - - Construct a ParallelizableAttribute using default ParallelScope.Self. - - - - - Construct a ParallelizableAttribute with a specified scope. - - The ParallelScope associated with this attribute. - - - - Defines the degree to which this test and its descendants may be run in parallel - - - - - Overridden to check for invalid combinations of settings - - - - - - Modify the context to be used for child tests - - The current TestExecutionContext - - - - Specifies the degree to which a test, and its descendants, - may be run in parallel. - - - - - No ParallelScope was specified on the test - - - - - The test may be run in parallel with others at the same level. - Valid on classes and methods but has no effect on assemblies. - - - - - Test may not be run in parallel with any others. Valid on - classes and methods but not assemblies. - - - - - Mask used to extract the flags that apply to the item on which a - ParallelizableAttribute has been placed, as opposed to descendants. - - - - - Descendants of the test may be run in parallel with one another. - Valid on assemblies and classes but not on non-parameterized methods. - - - - - Descendants of the test down to the level of TestFixtures may be - run in parallel with one another. Valid on assemblies and classes - but not on methods. - - - - - Mask used to extract all the flags that impact descendants of a - test and place them in the TestExecutionContext. - - - - - The test and its descendants may be run in parallel with others at - the same level. Valid on classes and parameterized methods. - For assemblies it is recommended to use - instead, as has no effect on assemblies. - - - - - Marks an assembly, test fixture or test method as applying to a specific platform. - - - - - Constructor with no platforms specified, for use - with named property syntax. - - - - - Constructor taking one or more platforms - - Comma-delimited list of platforms - - - - Causes a test to be skipped if this PlatformAttribute is not satisfied. - - The test to modify - - - - Attaches information to a test assembly, fixture or method as a name/value pair. - - - - - Construct a PropertyAttribute with a name and string value - - The name of the property - The property value - - - - Construct a PropertyAttribute with a name and int value - - The name of the property - The property value - - - - Construct a PropertyAttribute with a name and double value - - The name of the property - The property value - - - - Constructor for derived classes that set the - property dictionary directly. - - - - - Constructor for use by derived classes that use the - name of the type as the property name. Derived classes - must ensure that the Type of the property value is - a standard type supported by the BCL. Any custom - types will cause a serialization Exception when - in the client. - - - - - Gets the property dictionary for this attribute - - - - - Modifies a test by adding properties to it. - - The test to modify - - - - Supplies a set of random values to a single parameter of a parameterized test. - - - - - If true, no value will be repeated. - - - - - Construct a random set of values appropriate for the Type of the - parameter on which the attribute appears, specifying only the count. - - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Generates values within a specified range. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - Supplies a range of values to an individual parameter of a parameterized test. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using a default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values using the default step of 1. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values with the specified step size. - - - - - Constructs a range of values with the specified step size. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - Returns a string that represents the current object. - - - - Specifies that a test should be run multiple times. - - - - - Construct a RepeatAttribute - - The number of times to run the test - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - The test command for the RepeatAttribute - - - - - Initializes a new instance of the class. - - The inner command. - The number of repetitions - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Marks a test that must run on a separate thread. - - - - - Construct a RequiresThreadAttribute - - - - - Construct a RequiresThreadAttribute, specifying the apartment - - - - - Specifies that a test method should be rerun on failure up to the specified - maximum number of times. - - - - - Construct a - - The maximum number of times the test should be run if it fails - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - The test command for the - - - - - Initializes a new instance of the class. - - The inner command. - The maximum number of repetitions - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Marks a test to use a sequential join of any provided argument data. - Arguments will be combined into test cases, taking the next value of - each argument until all are used. - - - - - Default constructor - - - - - Sets the current Culture on an assembly, test fixture or test method for - the duration of a test. The culture remains set until the test or fixture - completes and is then reset to its original value. - - - - - - Construct given the name of a culture - - - - - - Sets the current UI Culture on an assembly, test fixture or test method - for the duration of a test. The UI culture remains set until the test or - fixture completes and is then reset to its original value. - - - - - - Construct given the name of a culture - - - - - - Identifies a method to be called immediately before each test is run. - - - - - Identifies a class as containing or - methods for all the test fixtures - under a given namespace. - - - - - Builds a from the specified type. - - The type info of the fixture to be used. - - - - Marks a test fixture as requiring all child tests to be run on the - same thread as the OneTimeSetUp and OneTimeTearDown. A flag in the - is set forcing all child tests - to be run sequentially on the current thread. - Any setting is ignored. - - - - - Apply changes to the TestExecutionContext - - The TestExecutionContext - - - - Identifies a method to be called immediately after each test is run. - The method is guaranteed to be called, even if an exception is thrown. - - - - - Abstract attribute providing actions to execute before and after tests. - - - - - Executed before each test is run - - The test that is going to be run. - - - - Executed after each test is run - - The test that has just been run. - - - - Provides the target for the action attribute - - - - - Marks a test assembly as needing a special assembly resolution hook that will - explicitly search the test assembly's directory for dependent assemblies. - This works around a conflict between mixed-mode assembly initialization and - tests running in their own AppDomain in some cases. - - - - - Marks the method as callable from the NUnit test runner. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - public void TestDescriptionMethod() - {} - } - - - - - - Descriptive text for this test - - - - - The author of this test - - - - - The type that this test is testing - - - - - Gets or sets the expected result. Not valid if the test - method has parameters. - - The result. - - - - Modifies a test by adding a description, if not already set. - - The test to modify - - - - Builds a single test from the specified method and context. - - The method for which a test is to be constructed. - The suite to which the test will be added. - - - - Marks a method as a parameterized test suite and provides arguments for each test case. - - - - - Construct a TestCaseAttribute with a list of arguments. - This constructor is not CLS-Compliant - - - - - - Construct a TestCaseAttribute with a single argument - - - - - - Construct a TestCaseAttribute with a two arguments - - - - - - - Construct a TestCaseAttribute with a three arguments - - - - - - - - Gets or sets the name of the test. - - The name of the test. - - - - Gets or sets the RunState of this test case. - - - - - Gets the list of arguments to a test case - - - - - Gets the properties of the test case - - - - - Gets or sets the expected result. - - The result. - - - - Returns true if the expected result has been set - - - - - Gets or sets the description. - - The description. - - - - The author of this test - - - - - The type that this test is testing - - - - - Gets or sets the reason for ignoring the test - - - - - Gets or sets a value indicating whether this is explicit. - - - if explicit; otherwise, . - - - - - Gets or sets the reason for not running the test. - - The reason. - - - - Gets or sets the ignore reason. When set to a non-null - non-empty value, the test is marked as ignored. - - The ignore reason. - - - - Comma-delimited list of platforms to run the test for - - - - - Comma-delimited list of platforms to not run the test for - - - - - Gets and sets the category for this test case. - May be a comma-separated list of categories. - - - - - Gets and sets the ignore until date for this test case. - - - - - Performs several special conversions allowed by NUnit in order to - permit arguments with types that cannot be used in the constructor - of an Attribute such as TestCaseAttribute or to simplify their use. - - The arguments to be converted - The ParameterInfo array for the method - - - - Builds a single test from the specified method and context. - - The MethodInfo for which tests are to be constructed. - The suite to which the tests will be added. - - - - Indicates the source to be used to provide test fixture instances for a test class. - - - - - Construct with the name of the method, property or field that will provide data - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - Construct with a name - - The name of a static method, property or field that will provide data. - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - Construct with a Type - - The type that will provide data - - - - A set of parameters passed to the method, works only if the Source Name is a method. - If the source name is a field or property has no effect. - - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Gets or sets the category associated with every fixture created from - this attribute. May be a single category or a comma-separated list. - - - - - Builds any number of tests from the specified method and context. - - The IMethod for which tests are to be constructed. - The suite to which the tests will be added. - - - - Marks the class as a TestFixture. - - - - - Default constructor - - - - - Construct with a object[] representing a set of arguments. - The arguments may later be separated into type arguments and constructor arguments. - - - - - - Gets or sets the name of the test. - - The name of the test. - - - - Gets or sets the RunState of this test fixture. - - - - - The arguments originally provided to the attribute - - - - - Properties pertaining to this fixture - - - - - Get or set the type arguments. If not set - explicitly, any leading arguments that are - Types are taken as type arguments. - - - - - Descriptive text for this fixture - - - - - The author of this fixture - - - - - The type that this fixture is testing - - - - - Gets or sets the ignore reason. May set RunState as a side effect. - - The ignore reason. - - - - Gets or sets the reason for not running the fixture. - - The reason. - - - - Gets or sets the ignore reason. When set to a non-null - non-empty value, the test is marked as ignored. - - The ignore reason. - - - - Gets or sets a value indicating whether this is explicit. - - - if explicit; otherwise, . - - - - - Gets and sets the category for this fixture. - May be a comma-separated list of categories. - - - - - Builds a single test fixture from the specified type. - - - - - Builds a single test fixture from the specified type. - - The type info of the fixture to be used. - Filter used to select methods as tests. - - - - Identifies the source used to provide test fixture instances for a test class. - - - - - Error message string is public so the tests can use it - - - - - Construct with the name of the method, property or field that will provide data - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - Construct with a Type - - The type that will provide data - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Gets or sets the category associated with every fixture created from - this attribute. May be a single category or a comma-separated list. - - - - - Builds any number of test fixtures from the specified type. - - The TypeInfo for which fixtures are to be constructed. - - - - Builds any number of test fixtures from the specified type. - - The TypeInfo for which fixtures are to be constructed. - PreFilter used to select methods as tests. - - - - Returns a set of ITestFixtureData items for use as arguments - to a parameterized test fixture. - - The type for which data is needed. - - - - - Indicates the method or class the assembly, test fixture or test method is testing. - - - - - Initializes a new instance of the class. - - The type that is being tested. - - - - Initializes a new instance of the class. - - The type that is being tested. - - - - Adding this attribute to a method within a - class makes the method callable from the NUnit test runner. There is a property - called Description which is optional which you can provide a more detailed test - description. This class cannot be inherited. - - - - [TestFixture] - public class Fixture - { - [Test] - public void MethodToTest() - {} - - [Test(Description = "more detailed description")] - public void TestDescriptionMethod() - {} - } - - - - - - Construct the attribute, specifying a combining strategy and source of parameter data. - - - - - Applies a timeout in milliseconds to a test. - When applied to a method, the test is cancelled if the timeout is exceeded. - When applied to a class or assembly, the default timeout is set for all contained test methods. - - - - - Construct a TimeoutAttribute given a time in milliseconds - - The timeout value in milliseconds - - - - Provides literal arguments for an individual parameter of a test. - - - - - The collection of data to be returned. Must - be set by any derived attribute classes. - We use an object[] so that the individual - elements may have their type changed in GetData - if necessary - - - - - Constructs for use with an Enum parameter. Will pass every enum - value in to the test. - - - - - Construct with one argument - - - - - - Construct with two arguments - - - - - - - Construct with three arguments - - - - - - - - Construct with an array of arguments - - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - To generate data for Values attribute, in case no data is provided. - - - - - To Check if type is nullable enum. - - - - - Indicates the source used to provide data for one parameter of a test method. - - - - - Construct with the name of the factory - for use with languages - that don't support params arrays. - - The name of a static method, property or field that will provide data. - - - - Construct with a Type and name - for use with languages - that don't support params arrays. - - The Type that will provide data - The name of a static method, property or field that will provide data. - - - - The name of a the method, property or field to be used as a source - - - - - A Type to be used as a source - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - A set of Assert methods operating on one or more collections - - - - - DO NOT USE! Use CollectionAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - - - - Asserts that all items contained in collection are of the type specified by expectedType. - - IEnumerable containing objects to be considered - System.Type that all objects in collection must be instances of - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable containing objects to be considered - - - - Asserts that all items contained in collection are not equal to null. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - - - - Ensures that every object contained in collection exists within the collection - once and only once. - - IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are exactly equal. The collections must have the same count, - and contain the exact same objects in the same order. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - - - - Asserts that expected and actual are not exactly equal. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not exactly equal. - If comparer is not null then it will be used to compare the objects. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The IComparer to use in comparing objects from each IEnumerable - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - - - - Asserts that expected and actual are not equivalent. - - The first IEnumerable of objects to be considered - The second IEnumerable of objects to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - - - - Asserts that collection contains actual as an item. - - IEnumerable of objects to be considered - Object to be found within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - - - - Asserts that collection does not contain actual as an item. - - IEnumerable of objects to be considered - Object that cannot exist within collection - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - - - - Asserts that the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the subset does not contain the superset - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that the subset does not contain the superset - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the subset contains the superset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that the subset contains the superset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array,list or other collection is empty - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - The message to be displayed on failure - Arguments to be used in formatting the message - - - - Assert that an array, list or other collection is ordered - - An array, list or other collection implementing IEnumerable - A custom comparer to perform the comparisons - - - - AllItemsConstraint applies another constraint to each - item in a collection, succeeding if they all succeed. - - - - - Construct an AllItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - AndConstraint succeeds only if both members succeed. - - - - - Create an AndConstraint from two other constraints - - The first constraint - The second constraint - - - - Gets text describing a constraint - - - - - Apply both member constraints to an actual value, succeeding - succeeding only if both of them succeed. - - The actual value - True if the constraints both succeeded - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - is used to determine whether the value is equal to any of the expected values. - - - - - Construct a - - Collection of expected values - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether item is present in expected collection - - Actual item type - Actual item - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IEqualityComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - AssignableFromConstraint is used to test that an object - can be assigned from a given Type. - - - - - Construct an AssignableFromConstraint for the type provided - - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - AssignableToConstraint is used to test that an object - can be assigned to a given Type. - - - - - Construct an AssignableToConstraint for the type provided - - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - AttributeConstraint tests that a specified attribute is present - on a Type or other provider and that the value of the attribute - satisfies some other constraint. - - - - - Constructs an AttributeConstraint for a specified attribute - Type and base constraint. - - - - - - - Determines whether the Type or other provider has the - expected attribute and if its value matches the - additional constraint specified. - - - - - Returns a string representation of the constraint. - - - - - AttributeExistsConstraint tests for the presence of a - specified attribute on a Type. - - - - - Constructs an AttributeExistsConstraint for a specific attribute Type - - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Tests whether the object provides the expected attribute. - - A Type, MethodInfo, or other ICustomAttributeProvider - True if the expected attribute is present, otherwise false - - - - BinaryConstraint is the abstract base of all constraints - that combine two other constraints in some fashion. - - - - - The first constraint being combined - - - - - The second constraint being combined - - - - - Construct a BinaryConstraint from two other constraints - - The first constraint - The second constraint - - - - BinarySerializableConstraint tests whether - an object is serializable in binary format. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Returns the string representation - - - - - CollectionConstraint is the abstract base class for - constraints that operate on collections. - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Determines whether the specified enumerable is empty. - - The enumerable. - - if the specified enumerable is empty; otherwise, . - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Protected method to be implemented by derived classes - - - - - - - CollectionContainsConstraint is used to test whether a collection - contains an expected object as a member. - - - - - Construct a CollectionContainsConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Test whether the expected item is contained in the collection - - - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - CollectionEquivalentConstraint is used to determine whether two - collections are equivalent. - - - - The result of the from the collections - under comparison. - - - Construct a CollectionEquivalentConstraint - Expected collection. - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether two collections are equivalent - - - - - - - Test whether the collection is equivalent to the expected. - - - Actual collection type. - - - Actual collection to compare. - - - A indicating whether or not - the two collections are equivalent. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - Provides a for the . - - - Result of a of the collections to compare for equivalence. - - - Construct a using a . - Source . - Result of the collection comparison. - Actual collection to compare. - Whether or not the succeeded. - - - Write any additional lines (following Expected: and But was:) for a failing constraint. - The to write the failure message to. - - - - CollectionItemsEqualConstraint is the abstract base class for all - collection constraints that apply some notion of item equality - as a part of their operation. - - - - - The NUnitEqualityComparer in use for this constraint - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Get a flag indicating whether the user requested us to ignore case. - - - - - Get a flag indicating whether any external comparers are in use. - - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - Compares two collection members for equality - - - - - Return a new CollectionTally for use in making tests - - The collection to be included in the tally - - - - CollectionOrderedConstraint is used to test whether a collection is ordered. - - - - - Construct a CollectionOrderedConstraint - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - If used performs a default ascending comparison - - - - - If used performs a reverse comparison - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use a and returns self. - - - - - Modifies the constraint to test ordering by the value of - a specified property and returns self. - - - - - Then signals a break between two ordering steps - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Test whether the collection is ordered - - - - - Returns the string representation of the constraint. - - - - - - An OrderingStep represents one stage of the sort - - - - - Constructor for success result. - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - - - - Constructor for failure result. - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - Index at which collection order breaks. - Value at which collection order breaks. - - - - CollectionSubsetConstraint is used to determine whether - one collection is a subset of another - - - - - Construct a CollectionSubsetConstraint - - The collection that the actual value is expected to be a subset of - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the actual collection is a subset of - the expected collection provided. - - - - - - - Test whether the constraint is satisfied by a given value. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - CollectionSupersetConstraint is used to determine whether - one collection is a superset of another - - - - - Construct a CollectionSupersetConstraint - - The collection that the actual value is expected to be a superset of - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the actual collection is a superset of - the expected collection provided. - - - - - - - Test whether the constraint is satisfied by a given value. - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - counts (tallies) the number of occurrences - of each object in one or more enumerations. - - - The result of a . - - - Items that were not in the expected collection. - - - Items that were not accounted for in the expected collection. - - - Initializes a new instance of the class with the given fields. - - - The result of the comparison between the two collections. - - - Construct a CollectionTally object from a comparer and a collection. - The comparer to use for equality. - The expected collection to compare against. - - - Try to remove an object from the tally. - The object to remove. - - - Try to remove a set of objects from the tally. - The objects to remove. - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Flag indicating whether or not this is the top level comparison. - - - - - A list of tracked comparisons - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two types related by . - - - - - Interface for comparing two s. - - - - - Method for comparing two objects with a tolerance. - - The first object to compare. - The second object to compare. - The tolerance to use when comparing the objects. - The evaluation state of the comparison. - - if the objects cannot be compared using the method. - Otherwise the result of the comparison is returned. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two s. - - - - - Comparator for two types related by . - - - - - Comparator for two s or s. - - - - - Comparator for two Tuples. - - - - - Base class for comparators for tuples (both regular Tuples and ValueTuples). - - - - - Comparator for two ValueTuples. - - - - - ComparisonAdapter class centralizes all comparisons of - values in NUnit, adapting to the use of any provided - , - or . - - - - - Gets the default ComparisonAdapter, which wraps an - NUnitComparer object. - - - - - Returns a ComparisonAdapter that wraps an - - - - - Returns a ComparisonAdapter that wraps an - - - - - Returns a ComparisonAdapter that wraps a - - - - - Compares two objects - - - - - Construct a default ComparisonAdapter - - - - - Construct a ComparisonAdapter for an - - - - - Compares two objects - - - - - - - - ComparerAdapter extends and - allows use of an or - to actually perform the comparison. - - - - - Construct a ComparisonAdapter for an - - - - - Compare a Type T to an object - - - - - Construct a ComparisonAdapter for a - - - - - Compare a Type T to an object - - - - - Abstract base class for constraints that compare values to - determine if one is greater than, equal to or less than - the other. - - - - - The value against which a comparison is to be made - - - - - Tolerance used in making the comparison - - - - - ComparisonAdapter to be used in making the comparison - - - - - Initializes a new instance of the class. - - The value against which to make a comparison. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - A ConstraintResult - - - - Protected function overridden by derived class to actually perform the comparison - - - - - Modifies the constraint to use an and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Modifies the constraint to use an and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Modifies the constraint to use a and returns self - - The comparer used for comparison tests - A constraint modified to use the given comparer - - - - Set the tolerance for use in this comparison - - - - - Switches the .Within() modifier to interpret its tolerance as - a percentage that the actual values is allowed to deviate from - the expected value. - - Self - - - - Provides standard description of what the constraint tests - based on comparison text. - - Describes the comparison being tested, throws - if null - Is thrown when null passed to a method - - - - Delegate used to delay evaluation of the actual value - to be used in evaluating a constraint - - - - - The Constraint class is the base of all built-in constraints - within NUnit. It provides the operator overloads used to combine - constraints. - - - - - Construct a constraint with optional arguments - - Arguments to be saved - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Arguments provided to this Constraint, for use in - formatting the description. - - - - - The ConstraintBuilder holding this constraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - The default implementation simply dereferences the value but - derived classes may override it to provide for delayed processing. - - A reference to the value to be tested - A ConstraintResult - - - - Retrieves the value to be tested from an ActualValueDelegate. - The default implementation simply evaluates the delegate but derived - classes may override it to provide for delayed processing. - - An ActualValueDelegate - Delegate evaluation result - - - - Default override of ToString returns the constraint DisplayName - followed by any arguments within angle brackets. - - - - - - Returns the string representation of this constraint - - - - - This operator creates a constraint that is satisfied only if both - argument constraints are satisfied. - - - - - This operator creates a constraint that is satisfied if either - of the argument constraints is satisfied. - - - - - This operator creates a constraint that is satisfied if the - argument constraint is not satisfied. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending Or - to the current constraint. - - - - - Returns a DelayedConstraint.WithRawDelayInterval with the specified delay time. - - The delay, which defaults to milliseconds. - - - - - Returns a DelayedConstraint with the specified delay time - and polling interval. - - The delay in milliseconds. - The interval at which to test the constraint. - - - - - Resolves any pending operators and returns the resolved constraint. - - - - - ConstraintBuilder maintains the stacks that are used in - processing a ConstraintExpression. An OperatorStack - is used to hold operators that are waiting for their - operands to be reorganized. a ConstraintStack holds - input constraints as well as the results of each - operator applied. - - - - - OperatorStack is a type-safe stack for holding ConstraintOperators - - - - - Initializes a new instance of the class. - - The ConstraintBuilder using this stack. - - - - Gets a value indicating whether this is empty. - - if empty; otherwise, . - - - - Gets the topmost operator without modifying the stack. - - - - - Pushes the specified operator onto the stack. - - The operator to put onto the stack. - - - - Pops the topmost operator from the stack. - - The topmost operator on the stack - - - - ConstraintStack is a type-safe stack for holding Constraints - - - - - Initializes a new instance of the class. - - The ConstraintBuilder using this stack. - - - - Gets a value indicating whether this is empty. - - if empty; otherwise, . - - - - Pushes the specified constraint. As a side effect, - the constraint's Builder field is set to the - ConstraintBuilder owning this stack. - - The constraint to put onto the stack - - - - Pops this topmost constraint from the stack. - As a side effect, the constraint's Builder - field is set to null. - - The topmost constraint on the stack - - - - Initializes a new instance of the class. - - - - - Appends the specified operator to the expression by first - reducing the operator stack and then pushing the new - operator on the stack. - - The operator to push. - - - - Appends the specified constraint to the expression by pushing - it on the constraint stack. - - The constraint to push. - - - - Sets the top operator right context. - - The right context. - - - - Reduces the operator stack until the topmost item - precedence is greater than or equal to the target precedence. - - The target precedence. - - - - Resolves this instance, returning a Constraint. If the Builder - is not currently in a resolvable state, an exception is thrown. - - The resolved constraint - - - - Gets a value indicating whether this instance is resolvable. - - - if this instance is resolvable; otherwise, . - - - - - ConstraintExpression represents a compound constraint in the - process of being constructed from a series of syntactic elements. - - Individual elements are appended to the expression as they are - reorganized. When a constraint is appended, it is returned as the - value of the operation so that modifiers may be applied. However, - any partially built expression is attached to the constraint for - later resolution. When an operator is appended, the partial - expression is returned. If it's a self-resolving operator, then - a ResolvableConstraintExpression is returned. - - - - - The ConstraintBuilder holding the elements recognized so far - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the - class passing in a ConstraintBuilder, which may be pre-populated. - - The builder. - - - - Returns a string representation of the expression as it - currently stands. This should only be used for testing, - since it has the side-effect of resolving the expression. - - - - - - Appends an operator to the expression and returns the - resulting expression itself. - - - - - Appends a self-resolving operator to the expression and - returns a new ResolvableConstraintExpression. - - - - - Appends a constraint to the expression and returns that - constraint, which is associated with the current state - of the expression being built. Note that the constraint - is not reduced at this time. For example, if there - is a NotOperator on the stack we don't reduce and - return a NotConstraint. The original constraint must - be returned because it may support modifiers that - are yet to be applied. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a , which will - apply the following constraint to a collection of length one, succeeding - only if exactly one of them succeeds. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - With is currently a NOP - reserved for future use. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests if item is equal to zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - To search for a substring instead of a collection element, use the - overload. - - - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - - - To search for a collection element instead of a substring, use the - overload. - - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new ContainsConstraint. This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - This overload is only used if the item sought is a string, - since any other type implies that we are looking for a - collection member. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the Dictionary key collection. - - The key to be matched in the Dictionary key collection - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the Dictionary value collection. - - The value to be matched in the Dictionary value collection - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - inclusively within a specified range. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - Returns a constraint that succeeds if the value - is a file or directory and it exists. - - - - - Returns a constraint that tests if an item is equal to any of parameters - - Expected values - - - - Returns a new IndexerConstraintExpression, which will - apply any following constraint to that indexer value. - - Index accessor values. - - - - ConstraintStatus represents the status of a ConstraintResult - returned by a Constraint being applied to an actual value. - - - - - The status has not yet been set - - - - - The constraint succeeded - - - - - The constraint failed - - - - - An error occurred in applying the constraint (reserved for future use) - - - - - Contains the result of matching a against an actual value. - - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - The status of the new ConstraintResult. - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - If true, applies a status of Success to the result, otherwise Failure. - - - - The actual value that was passed to the method. - - - - - Gets and sets the ResultStatus for this result. - - - - - True if actual value meets the Constraint criteria otherwise false. - - - - - Display friendly name of the constraint. - - - - - Description of the constraint may be affected by the state the constraint had - when was performed against the actual value. - - - - - Write the failure message to the MessageWriter provided - as an argument. The default implementation simply passes - the result and the actual value to the writer, which - then displays the constraint description and the value. - - Constraints that need to provide additional details, - such as where the error occurred, can override this. - - The MessageWriter on which to display the message - - - - Write some additional failure message. - - The MessageWriter on which to display the message - - - - Write the actual value for a failing constraint test to a - MessageWriter. The default implementation simply writes - the raw value of actual, leaving it to the writer to - perform any formatting. - - The writer on which the actual value is displayed - - - - ContainsConstraint tests a whether a string contains a substring - or a collection contains an object. It postpones the decision of - which test to use until the type of the actual argument is known. - This allows testing whether a string is contained in a collection - or as a substring of another string using the same syntax. - - - - - Initializes a new instance of the class. - - The expected value contained within the string/collection. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Flag the constraint to ignore case and return self. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - The DateTimes class contains common operations on Date and Time values. - - - - - Applies a delay to the match so that a match can be evaluated in the future. - - - - - Allows only changing the time dimension of delay interval and setting a polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithRawDelayInterval - - Parent DelayedConstraint on which delay interval dimension is required to be set - - - - Changes delay interval dimension to minutes - - - - - Changes delay interval dimension to seconds - - - - - Changes delay interval dimension to milliseconds - - - - - Set polling interval, in milliseconds - - A time interval, in milliseconds - - - - - Allows only setting the polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithDimensionedDelayInterval - - Parent DelayedConstraint on which polling interval is required to be set - - - - Set polling interval, in milliseconds - - A time interval, in milliseconds - - - - - Allows only changing the time dimension of the polling interval of a DelayedConstraint - - - - - Creates a new DelayedConstraint.WithRawPollingInterval - - Parent DelayedConstraint on which polling dimension is required to be set - - - - Changes polling interval dimension to minutes - - - - - Changes polling interval dimension to seconds - - - - - Changes polling interval dimension to milliseconds - - - - - Delay value store as an Interval object - - - - - Polling value stored as an Interval object - - - - - Creates a new DelayedConstraint - - The inner constraint to decorate - The time interval after which the match is performed - If the value of is less than 0 - - - - Creates a new DelayedConstraint - - The inner constraint to decorate - The time interval after which the match is performed, in milliseconds - The time interval used for polling, in milliseconds - If the value of is less than 0 - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - Test whether the constraint is satisfied by a delegate - - The delegate whose value is to be tested - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - Overridden to wait for the specified delay period before - calling the base constraint with the dereferenced value. - - A reference to the value to be tested - True for success, false for failure - - - - Returns the string representation of the constraint. - - - - - Adjusts a Timestamp by a given TimeSpan - - - - - - - - Returns the difference between two Timestamps as a TimeSpan - - - - - - - - DictionaryContainsKeyConstraint is used to test whether a dictionary - contains an expected object as a key. - - - - - Construct a DictionaryContainsKeyConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Returns a new DictionaryContainsKeyValuePairConstraint checking for the - presence of a particular key-value-pair in the dictionary. - - - - - Flag the constraint to ignore case and return self. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Test whether the expected key is contained in the dictionary - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - - - - Flag the constraint to use the supplied Comparison object. - - The Comparison object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The supplied boolean-returning delegate to use. - - - - DictionaryContainsKeyValuePairConstraint is used to test whether a dictionary - contains an expected object as a key-value-pair. - - - - - Construct a DictionaryContainsKeyValuePairConstraint - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Test whether the expected key is contained in the dictionary - - - - - DictionaryContainsValueConstraint is used to test whether a dictionary - contains an expected object as a value. - - - - - Construct a DictionaryContainsValueConstraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Gets the expected object - - - - - Test whether the expected value is contained in the dictionary - - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - Provides a for the constraints - that are applied to each item in the collection - - - - - Constructs a for a particular - Only used for Failure - - The Constraint to which this result applies - The actual value to which the Constraint was applied - Actual item that does not match expected condition - Non matching item index - - - - Write constraint description, actual items, and non-matching item - - The MessageWriter on which to display the message - - - - EmptyCollectionConstraint tests whether a collection is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Check that the collection is empty - - - - - - - EmptyConstraint tests a whether a string or collection is empty, - postponing the decision about which test is applied until the - type of the actual argument is known. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyDirectoryConstraint is used to test that a directory is empty - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyGuidConstraint tests whether a Guid is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EmptyStringConstraint tests whether a string is empty. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - EndsWithConstraint can test whether a string ends - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - EqualConstraint is able to compare an actual value with the - expected value provided in its constructor. Two objects are - considered equal if both are null, or if both have the same - value. NUnit has special semantics for some object types. - - - - - NUnitEqualityComparer used to test equality. - - - - - Initializes a new instance of the class. - - The expected value. - - - - Gets the tolerance for this comparison. - - - The tolerance. - - - - - Gets a value indicating whether to compare case insensitive. - - - if comparing case insensitive; otherwise, . - - - - - Gets a value indicating whether or not to clip strings. - - - if set to clip strings otherwise, . - - - - - Gets the failure points. - - - The failure points. - - - - - Flag the constraint to ignore case and return self. - - - - - Flag the constraint to suppress string clipping - and return self. - - - - - Flag the constraint to compare arrays as collections - and return self. - - - - - Flag the constraint to use a tolerance when determining equality. - - Tolerance value to be used - Self. - - - - Flags the constraint to include - property in comparison of two values. - - - Using this modifier does not allow to use the - constraint modifier. - - - - - Switches the .Within() modifier to interpret its tolerance as - a distance in representable values (see remarks). - - Self. - - Ulp stands for "unit in the last place" and describes the minimum - amount a given value can change. For any integers, an ulp is 1 whole - digit. For floating point values, the accuracy of which is better - for smaller numbers and worse for larger numbers, an ulp depends - on the size of the number. Using ulps for comparison of floating - point results instead of fixed tolerances is safer because it will - automatically compensate for the added inaccuracy of larger numbers. - - - - - Switches the .Within() modifier to interpret its tolerance as - a percentage that the actual values is allowed to deviate from - the expected value. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in days. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in hours. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in minutes. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in seconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in milliseconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in clock ticks. - - Self - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied boolean-returning delegate. - - The boolean-returning delegate to use. - Self. - - - - Flag the constraint to use the supplied Comparison object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IEqualityComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied predicate function - - The comparison function to use. - Self. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - The EqualConstraintResult class is tailored for formatting - and displaying the result of an EqualConstraint. - - - - - Construct an EqualConstraintResult - - - - - Write a failure message. Overridden to provide custom - failure messages for EqualConstraint. - - The MessageWriter to write to - - - - Display the failure information for two collections that did not match. - - The MessageWriter on which to display - The expected collection. - The actual collection - The depth of this failure in a set of nested collections - - - - Displays a single line showing the types and sizes of the expected - and actual collections or arrays. If both are identical, the value is - only shown once. - - The MessageWriter on which to display - The expected collection or array - The actual collection or array - The indentation level for the message line - - - - Displays a single line showing the point in the expected and actual - arrays at which the comparison failed. If the arrays have different - structures or dimensions, both values are shown. - - The MessageWriter on which to display - The expected array - The actual array - Index of the failure point in the underlying collections - The indentation level for the message line - - - - Display the failure information for two IEnumerables that did not match. - - The MessageWriter on which to display - The expected enumeration. - The actual enumeration - The depth of this failure in a set of nested collections - - - - EqualityAdapter class handles all equality comparisons - that use an , - or a . - - - - - Compares two objects, returning true if they are equal - - - - - Returns true if the two objects can be compared by this adapter. - The base adapter cannot handle IEnumerables except for strings. - - - - - Returns an that wraps an . - - - - - that wraps an . - - - - - Returns an that wraps an . - - - - - Returns an EqualityAdapter that uses a predicate function for items comparison. - - - - - - - - - Returns true if the two objects can be compared by this adapter. - The base adapter cannot handle IEnumerables except for strings. - - - - - Compares two objects, returning true if they are equal - - - - - Returns true if the two objects can be compared by this adapter. - Generic adapter requires objects of the specified type. - - - - - Returns an that wraps an . - - - - - Returns an that wraps an . - - - - - that wraps an . - - - - - Returns an that wraps a . - - - - - ExactCountConstraint applies another constraint to each - item in a collection, succeeding only if a specified - number of items succeed. - - - - - Construct a standalone ExactCountConstraint - - - - - - Construct an ExactCountConstraint on top of an existing constraint - - - - - - - Apply the item constraint to each item in the collection, - succeeding only if the expected number of items pass. - - The value to be tested - A ConstraintResult - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Contain the result of matching a against an actual value. - - - - - The count of matched items of the - - - - - A list with maximum count (+1) of items of the - - - - - Constructs a for a . - - The Constraint to which this result applies. - The actual value to which the Constraint was applied. - If true, applies a status of Success to the result, otherwise Failure. - Count of matched items of the - A list with maximum count (+1) of items of the - - - - Write the actual value for a failing constraint test to a MessageWriter. - - The writer on which the actual value is displayed - - - - ExactTypeConstraint is used to test that an object - is of the exact type provided in the constructor - - - - - Construct an ExactTypeConstraint for a given Type - - The expected Type. - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - ExceptionTypeConstraint is a special version of ExactTypeConstraint - used to provided detailed info about the exception thrown in - an error message. - - - - - Constructs an ExceptionTypeConstraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - FalseConstraint tests that the actual value is false - - - - - Initializes a new instance of the class. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - FileExistsConstraint is used to determine if a file exists - - - - - Initializes a new instance of the class. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - FileOrDirectoryExistsConstraint is used to determine if a file or directory exists - - - - - If true, the constraint will only check if files exist, not directories - - - - - If true, the constraint will only check if directories exist, not files - - - - - Initializes a new instance of the class that - will check files and directories. - - - - - Initializes a new instance of the class that - will only check files if ignoreDirectories is true. - - if set to [ignore directories]. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - Helper routines for working with floating point numbers - - - The floating point comparison code is based on this excellent article: - https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/ - - - "ULP" means Unit in the Last Place and in the context of this library refers to - the distance between two adjacent floating point numbers. IEEE floating point - numbers can only represent a finite subset of natural numbers, with greater - accuracy for smaller numbers and lower accuracy for very large numbers. - - - If a comparison is allowed "2 ulps" of deviation, that means the values are - allowed to deviate by up to 2 adjacent floating point values, which might be - as low as 0.0000001 for small numbers or as high as 10.0 for large numbers. - - - - - Union of a floating point variable and an integer - - - The union's value as a floating point variable - - - The union's value as an integer - - - The union's value as an unsigned integer - - - Union of a double precision floating point variable and a long - - - The union's value as a double precision floating point variable - - - The union's value as a long - - - The union's value as an unsigned long - - - Compares two floating point values for equality - First floating point value to be compared - Second floating point value t be compared - - Maximum number of representable floating point values that are allowed to - be between the left and the right floating point values - - True if both numbers are equal or close to being equal - - - Floating point values can only represent a finite subset of natural numbers. - For example, the values 2.00000000 and 2.00000024 can be stored in a float, - but nothing between them. - - - This comparison will count how many possible floating point values are between - the left and the right number. If the number of possible values between both - numbers is less than or equal to maxUlps, then the numbers are considered as - being equal. - - - Implementation partially follows the code outlined here: - http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ - - - - - Compares two double precision floating point values for equality - First double precision floating point value to be compared - Second double precision floating point value t be compared - - Maximum number of representable double precision floating point values that are - allowed to be between the left and the right double precision floating point values - - True if both numbers are equal or close to being equal - - - Double precision floating point values can only represent a limited series of - natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004 - can be stored in a double, but nothing between them. - - - This comparison will count how many possible double precision floating point - values are between the left and the right number. If the number of possible - values between both numbers is less than or equal to maxUlps, then the numbers - are considered as being equal. - - - Implementation partially follows the code outlined here: - http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ - - - - - - Tests whether a value is greater than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Tests whether a value is greater than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Interface for all constraints - - - - - The display name of this Constraint for use by ToString(). - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Arguments provided to this Constraint, for use in - formatting the description. - - - - - The ConstraintBuilder holding this constraint - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - Test whether the constraint is satisfied by a given reference. - The default implementation simply dereferences the value but - derived classes may override it to provide for delayed processing. - - A reference to the value to be tested - A ConstraintResult - - - - IndexerConstraint extracts a named property and uses - its value as the actual value for a chained constraint. - - - - - Initializes a new instance of the class. - - The argument list for the indexer. - The constraint to apply to the indexer. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Returns the string representation of the constraint. - - - - - InstanceOfTypeConstraint is used to test that an object - is of the same type provided or derived from it. - - - - - Construct an InstanceOfTypeConstraint for the type provided - - The expected Type - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - Keeps track of an interval time which can be represented in - Minutes, Seconds or Milliseconds - - - - - Constructs a interval given an value in milliseconds - - - - - Gets Interval value represented as a TimeSpan object - - - - - Returns the interval with the current value as a number of minutes. - - - - - Returns the interval with the current value as a number of seconds. - - - - - Returns the interval with the current value as a number of milliseconds. - - - - - Is true for intervals created with a non-zero value - - - - - Returns a string that represents the current object. - - - A string that represents the current object. - - - - - IntervalUnit provides the semantics to the value stored in Interval class. - - - - - Unit representing an Interval in minutes - - - - - Unit representing an Interval in seconds - - - - - Unit representing an Interval in milliseconds - - - - - The IResolveConstraint interface is implemented by all - complete and resolvable constraints and expressions. - - - - - Return the top-level constraint for this expression - - - - - - An extension of ResolvableConstraintExpression that adds a no-op Items property for readability. - - - - - Create a new instance of ItemsConstraintExpression - - - - - Create a new instance of ResolvableConstraintExpression, - passing in a pre-populated ConstraintBuilder. - - - - - - No-op property for readability. - - - - - Tests whether a value is less than the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - Tests whether a value is less than or equal to the value supplied to its constructor - - - - - Initializes a new instance of the class. - - The expected value. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Perform the comparison - - - - - MessageWriter is the abstract base for classes that write - constraint descriptions and messages in some form. The - class has separate methods for writing various components - of a message, allowing implementations to tailor the - presentation as needed. - - - - - Construct a MessageWriter given a culture - - - - - Abstract method to get the max line length - - - - - Method to write single line message with optional args, usually - written to precede the general failure message. - - The message to be written - Any arguments used in formatting the message - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a given - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The failing constraint result - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the Expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in locating the point where the strings differ - If true, the strings should be clipped to fit the line - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Custom value formatter function - - The value - - - - - Custom value formatter factory function - - The next formatter function - ValueFormatter - If the given formatter is unable to handle a certain format, it must call the next formatter in the chain - - - - Static methods used in creating messages - - - - - Default amount of items used by method. - - - - - Static string used when strings are clipped - - - - - Formatting strings used for expected and actual values - - - - - Current head of chain of value formatters. Public for testing. - - - - - Add a formatter to the chain of responsibility. - - - - - - Formats text to represent a generalized value. - - The value - The formatted text - - - - Formats text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Returns the representation of a type as used in NUnitLite. - This is the same as Type.ToString() except for arrays, - which are displayed with their declared sizes. - - - - - - - Converts any control characters in a string - to their escaped representation. - - The string to be converted - The converted string - - - - Converts any null characters in a string - to their escaped representation. - - The string to be converted - The converted string - - - - Return the a string representation for a set of indices into an array - - Array of indices for which a string is needed - - - - Get an array of indices representing the point in a collection or - array corresponding to a single int index into the collection. - - The collection to which the indices apply - Index in the collection - Array of indices - - - - Clip a string to a given length, starting at a particular offset, returning the clipped - string with ellipses representing the removed parts - - The string to be clipped - The maximum permitted length of the result string - The point at which to start clipping - The clipped string - - - - Clip the expected and actual strings in a coordinated fashion, - so that they may be displayed together. - - - - - - - - - Shows the position two strings start to differ. Comparison - starts at the start index. - - The expected string - The actual string - The index in the strings at which comparison should start - Boolean indicating whether case should be ignored - -1 if no mismatch found, or the index where mismatch found - - - - NaNConstraint tests that the actual value is a double or float NaN - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test that the actual value is an NaN - - - - - - - NoItemConstraint applies another constraint to each - item in a collection, failing if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - NotConstraint negates the effect of some other constraint - - - - - Initializes a new instance of the class. - - The base constraint to be negated. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for if the base constraint fails, false if it succeeds - - - - NullConstraint tests that the actual value is null - - - - - Initializes a new instance of the class. - - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - The Numerics class contains common operations on numeric values. - - - - - Checks the type of the object, returning true if - the object is a numeric type. - - The object to check - true if the object is a numeric type - - - - Checks the type of the object, returning true if - the object is a floating point numeric type. - - The object to check - true if the object is a floating point numeric type - - - - Checks the type of the object, returning true if - the object is a fixed point numeric type. - - The object to check - true if the object is a fixed point numeric type - - - - Test two numeric values for equality, performing the usual numeric - conversions and using a provided or default tolerance. If the tolerance - provided is Empty, this method may set it to a default tolerance. - - The expected value - The actual value - A reference to the tolerance in effect - True if the values are equal - - - - Compare two numeric values, performing the usual numeric conversions. - - The expected value - The actual value - The relationship of the values to each other - - - - Calculates the difference between 2 values in absolute/percent mode. - - The expected value - The actual value - Tolerance mode to specify difference representation - The difference between the values - - - - NUnitComparer encapsulates NUnit's default behavior - in comparing two objects. - - - - - Returns the default NUnitComparer. - - - - - Compares two objects - - - - - - - - NUnitEqualityComparer encapsulates NUnit's handling of - equality tests between objects. - - - - - If true, all string comparisons will ignore case - - - - - If true, arrays will be treated as collections, allowing - those of different dimensions to be compared - - - - - Comparison objects used in comparisons for some constraints. - - - - - List of points at which a failure occurred. - - - - - List of comparers used to compare pairs of objects. - - - - - Initializes a new instance of the class. - - - - - Returns the default NUnitEqualityComparer - - - - - Gets and sets a flag indicating whether case should - be ignored in determining equality. - - - - - Gets and sets a flag indicating that arrays should be - compared as collections, without regard to their shape. - - - - - Gets the list of external comparers to be used to - test for equality. They are applied to members of - collections, in place of NUnit's own logic. - - - - - Gets the list of failure points for the last Match performed. - The list consists of objects to be interpreted by the caller. - This generally means that the caller may only make use of - objects it has placed on the list at a particular depth. - - - - - Flags the comparer to include - property in comparison of two values. - - - Using this modifier does not allow to use the - modifier. - - - - - Compares two objects for equality within a tolerance. - - - - - Compares two objects for equality within a tolerance. - - - - - FailurePoint class represents one point of failure - in an equality test. - - - - - The location of the failure - - - - - The expected value - - - - - The actual value - - - - - Indicates whether the expected value is valid - - - - - Indicates whether the actual value is valid - - - - - Represents a constraint that succeeds if all the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - they all succeed. - - - - - Operator that requires both its arguments to succeed - - - - - Construct an AndOperator - - - - - Apply the operator to produce an AndConstraint - - - - - Operator that tests for the presence of a particular attribute - on a type and optionally applies further tests to the attribute. - - - - - Construct an AttributeOperator for a particular Type - - The Type of attribute tested - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Abstract base class for all binary operators - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Gets the left precedence of the operator - - - - - Gets the right precedence of the operator - - - - - Abstract method that produces a constraint by applying - the operator to its left and right constraint arguments. - - - - - Abstract base for operators that indicate how to - apply a constraint to items in a collection. - - - - - Constructs a CollectionOperator - - - - - The ConstraintOperator class is used internally by a - ConstraintBuilder to represent an operator that - modifies or combines constraints. - - Constraint operators use left and right precedence - values to determine whether the top operator on the - stack should be reduced before pushing a new operator. - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - The syntax element preceding this operator - - - - - The syntax element following this operator - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Represents a constraint that succeeds if the specified - count of members of a collection match a base constraint. - - - - - Construct an ExactCountOperator for a specified count - - The expected count - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Operator used to test for the presence of a Indexer - on an object and optionally apply further tests to the - value of that indexer. - - - - - Constructs a IndexerOperator for a particular set of indexer - parameters - - - - - Returns a IndexerConstraint applied to its argument. - - - - - Represents a constraint that succeeds if none of the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - none of them succeed. - - - - - Negates the test of the constraint it wraps. - - - - - Constructs a new NotOperator - - - - - Returns a NotConstraint applied to its argument. - - - - - Operator that requires at least one of its arguments to succeed - - - - - Construct an OrOperator - - - - - Apply the operator to produce an OrConstraint - - - - - PrefixOperator takes a single constraint and modifies - its action in some way. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Returns the constraint created by applying this - prefix to another constraint. - - - - - - - Operator used to test for the presence of a named Property - on an object and optionally apply further tests to the - value of that property. - - - - - Gets the name of the property to which the operator applies - - - - - Constructs a PropOperator for a particular named property - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Abstract base class for operators that are able to reduce to a - constraint whether or not another syntactic element follows. - - - - - Represents a constraint that succeeds if any of the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - any of them succeed. - - - - - Operator that tests that an exception is thrown and - optionally applies further tests to the exception. - - - - - Construct a ThrowsOperator - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Represents a constraint that simply wraps the - constraint provided as an argument, without any - further functionality, but which modifies the - order of evaluation because of its precedence. - - - - - Constructor for the WithOperator - - - - - Returns a constraint that wraps its argument - - - - - OrConstraint succeeds if either member succeeds - - - - - Create an OrConstraint from two other constraints - - The first constraint - The second constraint - - - - Gets text describing a constraint - - - - - Apply the member constraints to an actual value, succeeding - succeeding as soon as one of them succeeds. - - The actual value - True if either constraint succeeded - - - - PathConstraint serves as the abstract base of constraints - that operate on paths and provides several helper methods. - - - - - Construct a PathConstraint for a give expected path - - The expected path - - - - Modifies the current instance to be case-sensitive - and returns it. - - - - - Returns the string representation of this constraint - - - - - Canonicalize the provided path - - - The path in standardized form - - - - Test whether one path in canonical form is a subpath of another path - - The first path - supposed to be the parent path - The second path - supposed to be the child path - - - - - Predicate constraint wraps a Predicate in a constraint, - returning success if the predicate is true. - - - - - Construct a PredicateConstraint from a predicate - - - - - Gets text describing a constraint - - - - - Determines whether the predicate succeeds when applied - to the actual value. - - - - - Abstract base class used for prefixes - - - - - The base constraint - - - - - Prefix used in forming the constraint description - - - - - Construct given a base constraint - - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Formats a prefix constraint's description. - - - - - PropertyConstraint extracts a named property and uses - its value as the actual value for a chained constraint. - - - - - Initializes a new instance of the class. - - The name. - The constraint to apply to the property. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - - - - Returns the string representation of the constraint. - - - - - Contains the result of matching a against an actual value. - - - - - Constructs a for a particular . - - The Constraint to which this result applies. - The base result with actual value to which the Constraint was applied. - - - - Write the additional failure message for a failing constraint to a - MessageWriter. - - The writer on which the actual value is displayed - - - - PropertyExistsConstraint tests that a named property - exists on the object provided through Match. - - Originally, PropertyConstraint provided this feature - in addition to making optional tests on the value - of the property. The two constraints are now separate. - - - - - Initializes a new instance of the class. - - The name of the property. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the property exists for a given object - - The object to be tested - True for success, false for failure - - - - Returns the string representation of the constraint. - - - - - - RangeConstraint tests whether two values are within a - specified range. - - - - - Initializes a new instance of the class. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use an and returns self. - - - - - Modifies the constraint to use a and returns self. - - - - - RegexConstraint can test whether a string matches - the pattern provided. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Initializes a new instance of the class. - - The pattern. - - - - Initializes a new instance of the class. - - The Regex pattern object. - - - - Modify the constraint to ignore case in matching. - - - - - Applies the regex constraint to an actual value, returning a ConstraintResult. - - The string to be tested. - True for success, false for failure. - - - - ResolvableConstraintExpression is used to represent a compound - constraint being constructed at a point where the last operator - may either terminate the expression or may have additional - qualifying constraints added to it. - - It is used, for example, for a Property element or for - an Exception element, either of which may be optionally - followed by constraints that apply to the property or - exception. - - - - - Create a new instance of ResolvableConstraintExpression - - - - - Create a new instance of ResolvableConstraintExpression, - passing in a pre-populated ConstraintBuilder. - - - - - Appends an And Operator to the expression - - - - - Appends an Or operator to the expression. - - - - - Resolve the current expression to a Constraint - - - - - ReusableConstraint wraps a constraint expression after - resolving it so that it can be reused consistently. - - - - - Construct a ReusableConstraint from a constraint expression - - The expression to be resolved and reused - - - - Converts a constraint to a ReusableConstraint - - The constraint to be converted - A ReusableConstraint - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Return the top-level constraint for this expression - - - - - - SameAsConstraint tests whether an object is identical to - the object passed to its constructor - - - - - Initializes a new instance of the class. - - The expected object. - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Summary description for SamePathConstraint. - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SamePathOrUnderConstraint tests that one path is under another - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SomeItemsConstraint applies another constraint to each - item in a collection, succeeding if any of them succeeds. - - - - - Construct a SomeItemsConstraint on top of an existing constraint - - - - - - The display name of this Constraint for use by ToString(). - The default value is the name of the constraint with - trailing "Constraint" removed. Derived classes may set - this to another name in their constructors. - - - - - Apply the item constraint to each item in the collection, - succeeding if any item succeeds. - - - - - - - Flag the constraint to use the supplied object. - - The type of the elements in the collection. - The type of the member. - The comparison function to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied object. - - The IComparer object to use. - Self. - - - - StartsWithConstraint can test whether a string starts - with an expected substring. - - - - - Initializes a new instance of the class. - - The expected string - - - - Test whether the constraint is matched by the actual value. - This is a template method, which calls the IsMatch method - of the derived class. - - - - - - - StringConstraint is the abstract base for constraints - that operate on strings. It supports the IgnoreCase - modifier for string operations. - - - - - The expected value - - - - - Indicates whether tests should be case-insensitive - - - - - Description of this constraint - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Constructs a StringConstraint without an expected value - - - - - Constructs a StringConstraint given an expected value - - The expected value - - - - Modify the constraint to ignore case in matching. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Test whether the constraint is satisfied by a given string - - The string to be tested - True for success, false for failure - - - - SubPathConstraint tests that the actual path is under the expected path - - - - - Initializes a new instance of the class. - - The expected path - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - SubstringConstraint can test whether a string contains - the expected substring. - - - - - Initializes a new instance of the class. - - The expected. - - - - Modify the constraint to ignore case in matching. - This will call Using(StringComparison.CurrentCultureIgnoreCase). - - Thrown when a comparison type different - than was already set. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Modify the constraint to the specified comparison. - - Thrown when a comparison type different - than was already set. - - - - ThrowsConstraint is used to test the exception thrown by - a delegate by applying a constraint to it. - - - - - Initializes a new instance of the class, - using a constraint to be applied to the exception. - - A constraint to apply to the caught exception. - - - - Get the actual exception thrown - used by Assert.Throws. - - - - - Gets text describing a constraint - - - - - Executes the code of the delegate and captures any exception. - If a non-null base constraint was provided, it applies that - constraint to the exception. - - A delegate representing the code to be tested - True if an exception is thrown and the constraint succeeds, otherwise false - - - - Converts an ActualValueDelegate to a TestDelegate - before calling the primary overload. - - - - - - - Write the actual value for a failing constraint test to a - MessageWriter. This override only handles the special message - used when an exception is expected but none is thrown. - - The writer on which the actual value is displayed - - - - ThrowsExceptionConstraint tests that an exception has - been thrown, without any further tests. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Executes the code and returns success if an exception is thrown. - - A delegate representing the code to be tested - True if an exception is thrown, otherwise false - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - - - - ThrowsNothingConstraint tests that a delegate does not - throw an exception. - - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True if no exception is thrown, otherwise false - - - - Applies the constraint to an ActualValueDelegate that returns - the value to be tested. The default implementation simply evaluates - the delegate but derived classes may override it to provide for - delayed processing. - - An ActualValueDelegate - A ConstraintResult - - - - The Tolerance class generalizes the notion of a tolerance - within which an equality test succeeds. Normally, it is - used with numeric types, but it can be used with any - type that supports taking a difference between two - objects and comparing that difference to a value. - - - - - Returns a default Tolerance object, equivalent to an exact match. - - - - - Returns an empty Tolerance object, equivalent to an exact match. - - - - - Constructs a linear tolerance of a specified amount - - - - - Constructs a tolerance given an amount and - - - - - Returns a new tolerance, using the current amount as a percentage. - - - - - Returns a new tolerance, using the current amount in Ulps - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of days. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of hours. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of minutes. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of seconds. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of milliseconds. - - - - - Returns a new tolerance with a as the amount, using - the current amount as a number of clock ticks. - - - - - Gets the for the current Tolerance - - - - - Gets the magnitude of the current Tolerance instance. - - - - - Returns true if the current tolerance has not been set or is using the . - - - - - Apply the tolerance to an expected value and return - a Tolerance.Range that represents the acceptable values. - - - - - Tests that the current Tolerance is linear with a - numeric value, throwing an exception if it is not. - - - - - Tolerance.Range represents the range of values that match - a specific tolerance, when applied to a specific value. - - - - - The lower bound of the range - - - - - The upper bound of the range - - - - - Constructs a range - - - - - Modes in which the tolerance value for a comparison can be interpreted. - - - - - The tolerance was created with a value, without specifying - how the value would be used. This is used to prevent setting - the mode more than once and is generally changed to Linear - upon execution of the test. - - - - - The tolerance is used as a numeric range within which - two compared values are considered to be equal. - - - - - Interprets the tolerance as the percentage by which - the two compared values my deviate from each other. - - - - - Compares two values based in their distance in - representable numbers. - - - - - TrueConstraint tests that the actual value is true - - - - - Initializes a new instance of the class. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - TypeConstraint is the abstract base for constraints - that take a Type as their expected value. - - - - - The expected Type used by the constraint - - - - - The type of the actual argument to which the constraint was applied - - - - - Construct a TypeConstraint for a given Type - - The expected type for the constraint - Prefix used in forming the constraint description - - - - Applies the constraint to an actual value, returning a ConstraintResult. - - The value to be tested - A ConstraintResult - - - - Apply the constraint to an actual value, returning true if it succeeds - - The actual argument - True if the constraint succeeds, otherwise false. - - - - UniqueItemsConstraint tests whether all the items in a - collection are unique. - - - - - The Description of what this constraint tests, for - use in messages and in the ConstraintResult. - - - - - Check that all items are unique. - - - - - - - - - - XmlSerializableConstraint tests whether - an object is serializable in XML format. - - - - - Gets text describing a constraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Returns the string representation of this constraint - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the dictionary. - - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the dictionary. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Asserts on Directories - - - - - DO NOT USE! Use DirectoryAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both point to the same directory. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if the directories are not equal - Arguments to be used in formatting the message - - - - Verifies that two directories are equal. Two directories are considered - equal if both are null, or if both point to the same directory. - If they are not equal an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory containing the value that is expected - A directory containing the actual value - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - A directory containing the actual value - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - The path to a directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory exists. If it does not exist - an is thrown. - - The path to a directory containing the actual value - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - A directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - A directory containing the actual value - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - The path to a directory containing the actual value - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory does not exist. If it does exist - an is thrown. - - The path to a directory containing the actual value - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a constraint that succeeds if the value - is a file or directory and it exists. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new . This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual argument. - This overload is only used if the item sought is a string, - since any other type implies that we are looking for a - collection member. - - - - - Returns a new DictionaryContainsKeyConstraint checking for the - presence of a particular key in the Dictionary key collection. - - The key to be matched in the Dictionary key collection - - - - Returns a new DictionaryContainsValueConstraint checking for the - presence of a particular value in the Dictionary value collection. - - The value to be matched in the Dictionary value collection - - - - Returns a constraint that succeeds if the actual - value starts with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the regular expression supplied as an argument. - - - - - If throws, returns "SomeException was thrown by the Exception.StackTrace - property." See also . - - - - - If throws, returns "SomeException was thrown by the Exception.Message - property." - - - - - If throws, returns "SomeException was thrown by the Exception.Data property." - - - - - Thrown when an assertion failed. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when a test executes inconclusively. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - Construct based on the TestResult so far. This is the constructor - used normally, when exiting the multiple assert block with failures. - Not used internally but provided to facilitate debugging. - - - The current result, up to this point. The result is not used - internally by NUnit but is provided to facilitate debugging. - - - - - Serialization Constructor - - - - - Gets the provided by this exception. - - - - - Gets the of this test at the point the exception was thrown, - - - - - Abstract base for Exceptions that terminate a test and provide a ResultState. - - - - The error message that explains - the reason for the exception - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Gets the ResultState provided by this exception - - - - - Contains extension methods that do not require a special using directive. - - - - - Asserts on Files - - - - - DO NOT USE! Use FileAssert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two Streams are equal. Two Streams are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The expected Stream - The actual Stream - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Verifies that two files are equal. Two files are considered - equal if both are null, or if both have the same value byte for byte. - If they are not equal an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - The message to be displayed when the two Stream are the same. - Arguments to be used in formatting the message - - - - Asserts that two Streams are not equal. If they are equal - an is thrown. - - The expected Stream - The actual Stream - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - A file containing the value that is expected - A file containing the actual value - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that two files are not equal. If they are equal - an is thrown. - - The path to a file containing the value that is expected - The path to a file containing the actual value - - - - Asserts that the file exists. If it does not exist - an is thrown. - - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file exists. If it does not exist - an is thrown. - - A file containing the actual value - - - - Asserts that the file exists. If it does not exist - an is thrown. - - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file exists. If it does not exist - an is thrown. - - The path to a file containing the actual value - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - A file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - A file containing the actual value - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - The path to a file containing the actual value - The message to display if Streams are not equal - Arguments to be used in formatting the message - - - - Asserts that the file does not exist. If it does exist - an is thrown. - - The path to a file containing the actual value - - - - Class used to guard against unexpected argument values - or operations by throwing an appropriate exception. - - - - - Throws an exception if an argument is null - - The value to be tested - The name of the argument - - - - Throws an exception if a string argument is null or empty - - The value to be tested - The name of the argument - - - - Throws an ArgumentOutOfRangeException if the specified condition is not met. - - The condition that must be met - The exception message to be used - The name of the argument - - - - Throws an ArgumentException if the specified condition is not met. - - The condition that must be met - The exception message to be used - The name of the argument - - - - Throws an InvalidOperationException if the specified condition is not met. - - The condition that must be met - The exception message to be used - - - - Throws an if the specified delegate is async void. - - - - - Throws an if the specified delegate is async void. - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a which will apply - the following constraint to only one member of the collection, - and fail if none or more than one match occurs. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new checking for the - presence of a particular object in the collection. - - - - - Returns a new IndexerConstraintExpression, which will - apply any following constraint to that indexer value. - - Index accessor values. - - - - The AssertionResult class represents the result of a single assertion. - - - - - Construct an AssertionResult - - - - The pass/fail status of the assertion - - - The message produced by the assertion, or null - - - The stack trace associated with the assertion, or null - - - Determines whether the specified object is equal to the current object. - The object to compare with the current object. - - - Indicates whether the current object is equal to another object of the same type. - An object to compare with this object. - - - Serves as the default hash function. - - - - ToString Override - - - - - AssertionStatus enumeration represents the possible outcomes of an assertion. - The order of definition is significant, higher level values override lower - ones in determining the overall result of a test. - - - - - An assumption failed - - - - - The assertion succeeded - - - - - A warning message was issued - - - - - The assertion failed - - - - - An unexpected exception was thrown - - - - - The IApplyToContext interface is implemented by attributes - that want to make changes to the execution context before - a test is run. - - - - - Apply changes to the execution context - - The execution context - - - - The IApplyToTest interface is implemented by self-applying - attributes that modify the state of a test in some way. - - - - - Modifies a test as defined for the specific attribute. - - The test to modify - - - - CombiningStrategy is the abstract base for classes that - know how to combine values provided for individual test - parameters to create a set of test cases. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - ICommandWrapper is implemented by attributes and other - objects able to wrap a TestCommand with another command. - - - Attributes or other objects should implement one of the - derived interfaces, rather than this one, since they - indicate in which part of the command chain the wrapper - should be applied. - - - - - Wrap a command and return the result. - - The command to be wrapped - The wrapped command - - - - Objects implementing this interface are used to wrap - the TestMethodCommand itself. They apply after SetUp - has been run and before TearDown. - - - - - Objects implementing this interface are used to wrap - the entire test, including SetUp and TearDown. - - - - - Objects implementing this interface are used to wrap - tests that can repeat. The implementing command is run once, - invoking the chained commands any number of times. - - - - - Any ITest that implements this interface is at a level that the implementing - class should be disposed at the end of the test run - - - - - The IFixtureBuilder interface is exposed by a class that knows how to - build test fixtures from a specified type. In general, it is exposed - by an attribute, but it may be implemented in a helper class used by the - attribute in some cases. - - - - - Builds any number of test fixtures from the specified type. - - The type info of the fixture to be used. - - - - The IFixtureBuilder2 interface extends IFixtureBuilder by allowing - use of a PreFilter, which is used to select methods as test cases. - - - - - Builds any number of test fixtures from the specified type. - - The type info of the fixture to be used. - PreFilter to be used to select methods. - - - - IImplyFixture is an empty marker interface used by attributes like - TestAttribute that cause the class where they are used to be treated - as a TestFixture even without a TestFixtureAttribute. - - Marker interfaces are not usually considered a good practice, but - we use it here to avoid cluttering the attribute hierarchy with - classes that don't contain any extra implementation. - - - - - The IMethodInfo class is used to encapsulate information - about a method in a platform-independent manner. - - - - - Gets the Type from which this method was reflected. - - - - - Gets the MethodInfo for this method. - - - - - Gets the name of the method. - - - - - Gets a value indicating whether the method is abstract. - - - - - Gets a value indicating whether the method is public. - - - - - Gets a value indicating whether the method is static. - - - - - Gets a value indicating whether the method contains unassigned generic type parameters. - - - - - Gets a value indicating whether the method is a generic method. - - - - - Gets a value indicating whether the MethodInfo represents the definition of a generic method. - - - - - Gets the return Type of the method. - - - - - Gets the parameters of the method. - - - - - - Returns the Type arguments of a generic method or the Type parameters of a generic method definition. - - - - - Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. - - The type arguments to be used - A new IMethodInfo with the type arguments replaced - - - - Invokes the method, converting any TargetInvocationException to an NUnitException. - - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - Provides data for a single test parameter. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test. - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - Provides data for a single test parameter. - - - - - Retrieves a list of arguments which can be passed to the specified parameter. - - The parameter of a parameterized test. - - - - The IParameterInfo interface is an abstraction of a .NET parameter. - - - - - Gets a value indicating whether the parameter is optional - - - - - Gets an IMethodInfo representing the method for which this is a parameter - - - - - Gets the underlying .NET ParameterInfo - - - - - Gets the Type of the parameter - - - - - Implemented by filters for use in deciding which - Types and Methods should be used to generate tests. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - A PropertyBag represents a collection of name/value pairs - that allows duplicate entries with the same key. Methods - are provided for adding a new pair as well as for setting - a key to a single value. All keys are strings but values - may be of any type. Null values are not permitted, since - a null entry represents the absence of the key. - - The entries in a PropertyBag are of two kinds: those that - take a single value and those that take multiple values. - However, the PropertyBag has no knowledge of which entries - fall into each category and the distinction is entirely - up to the code using the PropertyBag. - - When working with multi-valued properties, client code - should use the Add method to add name/value pairs and - indexing to retrieve a list of all values for a given - key. For example: - - bag.Add("Tag", "one"); - bag.Add("Tag", "two"); - Assert.That(bag["Tag"], - Is.EqualTo(new string[] { "one", "two" })); - - When working with single-valued properties, client code - should use the Set method to set the value and Get to - retrieve the value. The GetSetting methods may also be - used to retrieve the value in a type-safe manner while - also providing default. For example: - - bag.Set("Priority", "low"); - bag.Set("Priority", "high"); // replaces value - Assert.That(bag.Get("Priority"), - Is.EqualTo("high")); - Assert.That(bag.GetSetting("Priority", "low"), - Is.EqualTo("high")); - - - - - Adds a key/value pair to the property bag - - The key - The value - - - - Sets the value for a key, removing any other - values that are already in the property set. - - - - - - - Gets a single value for a key, using the first - one if multiple values are present and returning - null if the value is not found. - - - - - Gets a flag indicating whether the specified key has - any entries in the property set. - - The key to be checked - True if their are values present, otherwise false - - - - Gets or sets the list of values for a particular key - - The key for which the values are to be retrieved or set - - - - Gets a collection containing all the keys in the property set - - - - - The IReflectionInfo interface is implemented by NUnit wrapper objects that perform reflection. - - - - - Returns an array of custom attributes of the specified type applied to this object - - - - - Returns a value indicating whether an attribute of the specified type is defined on this object. - - - - - The ISimpleTestBuilder interface is exposed by a class that knows how to - build a single tests from a specified method. In general, - it is exposed by an attribute, but it may be implemented in a helper class - used by the attribute in some cases. - - - - - Builds a single test from the specified method and context. - - The method to be used as a test - The TestSuite to which the method will be added - - - - The ISuiteBuilder interface is exposed by a class that knows how to - build a single test suite from a specified type. - - - - - Examine the type and determine if it is suitable for - this builder to use in building a TestSuite. - - Note that returning false will cause the type to be ignored - in loading the tests. If it is desired to load the suite - but label it as non-runnable, ignored, etc., then this - method must return true. - - The type of the fixture to be used - - - - Builds a single test suite from the specified type. - - The type of the fixture to be used - - - - Builds a single test suite from the specified type, subject - to a filter that decides which methods are included. - - The type of the fixture to be used - A PreFilter for selecting methods. - - - - Common interface supported by all representations - of a test. Only includes informational fields. - The Run method is specifically excluded to allow - for data-only representations of a test. - - - - - Gets the id of the test - - - - - Gets the name of the test - - - - - Gets the type of the test - - - - - Gets the fully qualified name of the test - - - - - Gets the name of the class containing this test. Returns - null if the test is not associated with a class. - - - - - Gets the name of the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - Gets the Type of the test fixture, if applicable, or - null if no fixture type is associated with this test. - - - - - Gets the method which declares the test, or - if no method is associated with this test. - - - - - Gets the RunState of the test, indicating whether it can be run. - - - - - Count of the test cases ( 1 if this is a test case ) - - - - - Gets the properties of the test - - - - - Gets the parent test, if any. - - The parent test or null if none exists. - - - - Returns true if this is a test suite - - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets this test's child tests - - A list of child tests - - - - Gets a fixture object for running this test. - - - - - The arguments to use in creating the test or empty array if none are required. - - - - - The ITestBuilder interface is exposed by a class that knows how to - build tests from a specified method. In general, it is exposed - by an attribute which has additional information available to provide - the necessary test parameters to distinguish the test cases built. - - - - - Builds any number of tests from the specified method and context. - - The method to be used as a test - The TestSuite to which the method will be added - - - - The ITestCaseBuilder interface is exposed by a class that knows how to - build a test from a specified method, possibly containing child test cases. - - - - - Examine the method and determine if it is suitable for - this builder to use in building a TestCase to be - included in the suite being populated. - - Note that returning false will cause the method to be ignored - in loading the tests. If it is desired to load the method - but label it as non-runnable, ignored, etc., then this - method must return true. - - The test method to examine - The suite being populated - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method to be used as a test case - The test suite being populated, or null - - - - The ITestCaseData interface is implemented by a class - that is able to return complete test cases for use by - a parameterized test method. - - - - - Gets the expected result of the test case - - - - - Returns true if an expected result has been set - - - - - The ITestData interface is implemented by a class that - represents a single instance of a parameterized test. - - - - - Gets the name to be used for the test - - - - - Gets the RunState for this test case. - - - - - Gets the argument list to be provided to the test - - - - - Gets the property dictionary for the test case - - - - - Interface to be implemented by filters applied to tests. - The filter applies when running the test, after it has been - loaded, since this is the only time an ITest exists. - - - - - Determine if a particular test passes the filter criteria. Pass - may examine the parents and/or descendants of a test, depending - on the semantics of the particular filter - - The test to which the filter is applied - True if the test passes the filter, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - The ITestCaseData interface is implemented by a class - that is able to return the data required to create an - instance of a parameterized test fixture. - - - - - Get the TypeArgs if separately set - - - - - The ITestListener interface is used internally to receive - notifications of significant events while a test is being - run. The events are propagated to clients by means of an - AsyncCallback. NUnit extensions may also monitor these events. - - - - - Called when a test has just started - - The test that is starting - - - - Called when a test has finished - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - The ITestResult interface represents the result of a test. - - - - - Gets the ResultState of the test result, which - indicates the success or failure of the test. - - - - - Gets the name of the test result - - - - - Gets the full name of the test result - - - - - Gets the elapsed time for running the test in seconds - - - - - Gets or sets the time the test started running. - - - - - Gets or sets the time the test finished running. - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - Gets the total number of tests executed - when running the test and all its children. - - - - - Gets the number of asserts executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - Accessing HasChildren should not force creation of the - Children collection in classes implementing this interface. - - - - - Gets the collection of child results. - - - - - Gets the Test to which this result applies. - - - - - Gets any text output written to this result. - - - - - Gets a list of AssertionResults associated with the test - - - - - Gets the collection of files attached to the test - - - - - The ITypeInfo interface is an abstraction of a .NET Type - - - - - Gets the underlying Type on which this ITypeInfo is based - - - - - Gets the base type of this type as an ITypeInfo - - - - - Returns true if the Type wrapped is equal to the argument - - - - - Gets the name of the Type - - - - - Gets the full name of the Type - - - - - Gets the assembly in which the type is declared - - - - - Gets the namespace of the Type - - - - - Gets a value indicating whether the type is abstract. - - - - - Gets a value indicating whether the Type is a generic Type - - - - - Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. - - - - - Gets a value indicating whether the Type is a generic Type definition - - - - - Gets a value indicating whether the type is sealed. - - - - - Gets a value indicating whether this type is a static class. - - - - - Get the display name for this typeInfo. - - - - - Get the display name for an object of this type, constructed with specific arguments - - - - - Returns a Type representing a generic type definition from which this Type can be constructed. - - - - - Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments - - - - - Returns a value indicating whether this type has a method with a specified public attribute - - - - - Returns an array of IMethodInfos for methods of this Type - that match the specified flags. - - - - - Gets the public constructor taking the specified argument Types - - - - - Returns a value indicating whether this Type has a public constructor taking the specified argument Types. - - - - - Construct an object of this Type, using the specified arguments. - - - - - Returns all methods declared by this type that have the specified attribute, optionally - including base classes. Methods from a base class are always returned before methods from a class that - inherits from it. - - Specifies whether to search the fixture type inheritance chain. - - - - An object implementing IXmlNodeBuilder is able to build - an XML representation of itself and any children. - - - - - Returns a TNode representing the current object. - - If true, children are included where applicable - A TNode representing the result - - - - Returns a TNode representing the current object after - adding it as a child of the supplied parent node. - - The parent node. - If true, children are included, where applicable - - - - - The ResultState class represents the outcome of running a test. - It contains two pieces of information. The Status of the test - is an enum indicating whether the test passed, failed, was - skipped or was inconclusive. The Label provides a more - detailed breakdown for use by client runners. - - - - - Initializes a new instance of the class. - - The TestStatus. - - - - Initializes a new instance of the class. - - The TestStatus. - The label. - - - - Initializes a new instance of the class. - - The TestStatus. - The stage at which the result was produced - - - - Initializes a new instance of the class. - - The TestStatus. - The label. - The stage at which the result was produced - - - - The result is inconclusive - - - - - The test has been skipped. - - - - - The test has been ignored. - - - - - The test was skipped because it is explicit - - - - - The test succeeded - - - - - The test issued a warning - - - - - The test failed - - - - - The test encountered an unexpected exception - - - - - The test was cancelled by the user - - - - - The test was not runnable. - - - - - A suite failed because one or more child tests failed or had errors - - - - - A suite failed because one or more child tests had warnings - - - - - A suite is marked ignored because one or more child tests were ignored - - - - - A suite failed in its OneTimeSetUp - - - - - A suite had an unexpected exception in its OneTimeSetUp - - - - - A suite had an unexpected exception in its OneTimeDown - - - - - Gets the TestStatus for the test. - - The status. - - - - Gets the label under which this test result is - categorized, or if none. - - - - - Gets the stage of test execution in which - the failure or other result took place. - - - - - Get a new ResultState, which is the same as the current - one but with the FailureSite set to the specified value. - - The FailureSite to use - A new ResultState - - - - Test whether this ResultState has the same Status and Label - as another one. In other words, the whether two are equal - ignoring the Site. - - - - - - Determines whether the specified object is equal to the current object. - The object to compare with the current object. - - - Indicates whether the current object is equal to another object of the same type. - An object to compare with this object. - - - Serves as the default hash function. - - - - Overload == operator for ResultStates - - - - - Overload != operator for ResultStates - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - The FailureSite enum indicates the stage of a test - in which an error or failure occurred. - - - - - Failure in the test itself - - - - - Failure in the SetUp method - - - - - Failure in the TearDown method - - - - - Failure of a parent test - - - - - Failure of a child test - - - - - The RunState enum indicates whether a test can be executed. - - - - - The test is not runnable. - - - - - The test is runnable. - - - - - The test can only be run explicitly - - - - - The test has been skipped. This value may - appear on a Test when certain attributes - are used to skip the test. - - - - - The test has been ignored. May appear on - a Test, when the IgnoreAttribute is used. - - - - - The TestAttachment class represents a file attached to a TestResult, - with an optional description. - - - - - Absolute file path to attachment file - - - - - User specified description of attachment. May be null. - - - - - Creates a TestAttachment class to represent a file attached to a test result. - - Absolute file path to attachment file - User specified description of attachment. May be null. - - - - The class holds a message sent by a test to all listeners - - - - - Construct with text, destination type and - the name of the test that produced the message. - - Destination of the message - Text to be sent - ID of the test that produced the message - - - - Converts object to string - - - - - The message to send to listeners - - - - - The Destination of the message. - - - - - The ID of the test that sent the message - - - - - Returns the XML representation of the object. - - - - - The TestOutput class holds a unit of output from - a test to a specific output stream - - - - - Construct with text, output destination type and - the name of the test that produced the output. - - Text to be output - Name of the stream or channel to which the text should be written - Id of the test that produced the output - FullName of test that produced the output - - - - Return string representation of the object for debugging - - - - - - Get the text - - - - - Get the output type - - - - - Get the name of the test that created the output - - - - - Get the id of the test that created the output - - - - - Convert the TestOutput object to an XML string - - - - - The TestStatus enum indicates the result of running a test - - - - - The test was inconclusive - - - - - The test has skipped - - - - - The test succeeded - - - - - There was a warning - - - - - The test failed - - - - - TNode represents a single node in the XML representation - of a Test or TestResult. It replaces System.Xml.XmlNode and - System.Xml.Linq.XElement, providing a minimal set of methods - for operating on the XML in a platform-independent manner. - - - - - Constructs a new instance of TNode - - The name of the node - - - - Constructs a new instance of TNode with a value - - The name of the node - The text content of the node - - - - Constructs a new instance of TNode with a value - - The name of the node - The text content of the node - Flag indicating whether to use CDATA when writing the text - - - - Gets the name of the node - - - - - Gets the value of the node - - - - - Gets a flag indicating whether the value should be output using CDATA. - - - - - Gets the dictionary of attributes - - - - - Gets a list of child nodes - - - - - Gets the first ChildNode - - - - - Gets the XML representation of this node. - - - - - Create a TNode from its XML text representation - - The XML text to be parsed - A TNode - - - - Adds a new element as a child of the current node and returns it. - - The element name. - The newly created child element - - - - Adds a new element with a value as a child of the current node and returns it. - - The element name - The text content of the new element - The newly created child element - - - - Adds a new element with a value as a child of the current node and returns it. - The value will be output using a CDATA section. - - The element name - The text content of the new element - The newly created child element - - - - Adds an attribute with a specified name and value to the XmlNode. - - The name of the attribute. - The value of the attribute. - - - - Finds a single descendant of this node matching an XPath - specification. The format of the specification is - limited to what is needed by NUnit and its tests. - - - - - - - Finds all descendants of this node matching an XPath - specification. The format of the specification is - limited to what is needed by NUnit and its tests. - - - - - Writes the XML representation of the node to an XmlWriter - - - - - - Class used to represent a list of XmlResults - - - - - Class used to represent the attributes of a node - - - - - Gets or sets the value associated with the specified key. - Overridden to return null if attribute is not found. - - The key. - Value of the attribute or null - - - - A production implementation that delegates directly to .NET's . - - - - - Returns whether a debugger is currently attached to the process - - - - - A layer of abstraction around to facilitate testing. - - - - - Whether a debugger is currently attached to the process. - - - - - AssemblyHelper provides static methods for working - with assemblies. - - - - - Gets the path from which an assembly was loaded. - For builds where this is not possible, returns - the name of the assembly. - - The assembly. - The path. - - - - Gets the path to the directory from which an assembly was loaded. - - The assembly. - The path. - - - - Gets the AssemblyName of an assembly. - - The assembly - An AssemblyName - - - - Loads an assembly given a string, which is the AssemblyName - - - - - Gets the assembly path from code base. - - Public for testing purposes - The code base. - - - - - Adapts various styles of asynchronous waiting to a common API. - - - - - CombinatorialStrategy creates test cases by using all possible - combinations of the parameter data. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - Provides data from fields marked with the DatapointAttribute or the - DatapointsAttribute. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - Built-in SuiteBuilder for all types of test classes. - - - - - Examine the type and determine if it is suitable for - this builder to use in building a TestSuite. - - Note that returning false will cause the type to be ignored - in loading the tests. If it is desired to load the suite - but label it as non-runnable, ignored, etc., then this - method must return true. - - The fixture type to check - - - - Builds a single test suite from the specified type. - - The fixture type to build - - - - Builds a single test suite from the specified type, subject - to a filter that decides which methods are included. - - The fixture type to build - A PreFilter for selecting methods. - - - - We look for attributes implementing IFixtureBuilder at one level - of inheritance at a time. Attributes on base classes are not used - unless there are no fixture builder attributes at all on the derived - class. This is by design. - - The type being examined for attributes - - - - Class to build ether a parameterized or a normal NUnitTestMethod. - There are four cases that the builder must deal with: - 1. The method needs no params and none are provided - 2. The method needs params and they are provided - 3. The method needs no params but they are provided in error - 4. The method needs params but they are not provided - This could have been done using two different builders, but it - turned out to be simpler to have just one. The BuildFrom method - takes a different branch depending on whether any parameters are - provided, but all four cases are dealt with in lower-level methods - - - - - Determines if the method can be used to build an NUnit test - test method of some kind. The method must normally be marked - with an identifying attribute for this to be true. - - Note that this method does not check that the signature - of the method for validity. If we did that here, any - test methods with invalid signatures would be passed - over in silence in the test run. Since we want such - methods to be reported, the check for validity is made - in BuildFrom rather than here. - - An IMethodInfo for the method being used as a test method - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method for which a test is to be built - - - - Determines if the method can be used to build an NUnit test - test method of some kind. The method must normally be marked - with an identifying attribute for this to be true. - - Note that this method does not check that the signature - of the method for validity. If we did that here, any - test methods with invalid signatures would be passed - over in silence in the test run. Since we want such - methods to be reported, the check for validity is made - in BuildFrom rather than here. - - An IMethodInfo for the method being used as a test method - The test suite being built, to which the new test would be added - - - - Builds a single test from the specified method and context, - possibly containing child test cases. - - The method for which a test is to be built - The test fixture being populated, or null - - - - Builds a ParameterizedMethodSuite containing individual test cases. - - The method for which a test is to be built. - The list of test cases to include. - - - - Build a simple, non-parameterized TestMethod for this method. - - The MethodInfo for which a test is to be built - The test suite for which the method is being built - - - - Class that can build a tree of automatic namespace - suites from a group of fixtures. - - - - - NamespaceDictionary of all test suites we have created to represent - namespaces. Used to locate namespace parent suites for fixtures. - - - - - Point in the tree where items in the global namespace are added - - - - - Initializes a new instance of the class. - - The root suite. - - - - Gets the root entry in the tree created by the NamespaceTreeBuilder. - - The root suite. - - - - Adds the specified fixtures to the tree. - - The fixtures to be added. - - - - Adds the specified fixture to the tree. - - The fixture to be added. - - - - NUnitTestCaseBuilder is a utility class used by attributes - that build test cases. - - - - - Constructs an - - - - - Builds a single NUnitTestMethod, either as a child of the fixture - or as one of a set of test cases under a ParameterizedTestMethodSuite. - - The MethodInfo from which to construct the TestMethod - The suite or fixture to which the new test will be added - The ParameterSet to be used, or null - - - - Checks to see if we have valid combinations of attributes. - - The TestMethod to be checked. If it - is found to be non-runnable, it will be modified. - True if the method signature is valid, false if not - - - - Helper method that checks the signature of a TestMethod and - any supplied parameters to determine if the test is valid. - - Currently, NUnitTestMethods are required to be public, - non-abstract methods, either static or instance, - returning void. They may take arguments but the values must - be provided or the TestMethod is not considered runnable. - - Methods not meeting these criteria will be marked as - non-runnable and the method will return false in that case. - - The TestMethod to be checked. If it - is found to be non-runnable, it will be modified. - Parameters to be used for this test, or null - True if the method signature is valid, false if not - - The return value is no longer used internally, but is retained - for testing purposes. - - - - - NUnitTestFixtureBuilder is able to build a fixture given - a class marked with a TestFixtureAttribute or an unmarked - class containing test methods. In the first case, it is - called by the attribute and in the second directly by - NUnitSuiteBuilder. - - - - - Build a TestFixture from type provided. A non-null TestSuite - must always be returned, since the method is generally called - because the user has marked the target class as a fixture. - If something prevents the fixture from being used, it should - be returned nonetheless, labeled as non-runnable. - - An ITypeInfo for the fixture to be used. - Filter used to select methods as tests. - A TestSuite object or one derived from TestSuite. - - - - Overload of BuildFrom called by tests that have arguments. - Builds a fixture using the provided type and information - in the ITestFixtureData object. - - The TypeInfo for which to construct a fixture. - Filter used to select methods as tests. - An object implementing ITestFixtureData or null. - - - - - Method to add test cases to the newly constructed fixture. - - - - - Method to create a test case from a MethodInfo and add - it to the fixture being built. It first checks to see if - any global TestCaseBuilder addin wants to build the - test case. If not, it uses the internal builder - collection maintained by this fixture builder. - - The default implementation has no test case builders. - Derived classes should add builders to the collection - in their constructor. - - The method for which a test is to be created - The test suite being built. - A newly constructed Test - - - - PairwiseStrategy creates test cases by combining the parameter - data so that all possible pairs of data items are used. - - - - The number of test cases that cover all possible pairs of test function - parameters values is significantly less than the number of test cases - that cover all possible combination of test function parameters values. - And because different studies show that most of software failures are - caused by combination of no more than two parameters, pairwise testing - can be an effective ways to test the system when it's impossible to test - all combinations of parameters. - - - The PairwiseStrategy code is based on "jenny" tool by Bob Jenkins: - https://burtleburtle.net/bob/math/jenny.html - - - - - - FleaRand is a pseudo-random number generator developed by Bob Jenkins: - https://burtleburtle.net/bob/rand/talksmall.html#flea - - - - - Initializes a new instance of the FleaRand class. - - The seed. - - - - FeatureInfo represents coverage of a single value of test function - parameter, represented as a pair of indices, Dimension and Feature. In - terms of unit testing, Dimension is the index of the test parameter and - Feature is the index of the supplied value in that parameter's list of - sources. - - - - - Initializes a new instance of FeatureInfo class. - - Index of a dimension. - Index of a feature. - - - - A FeatureTuple represents a combination of features, one per test - parameter, which should be covered by a test case. In the - PairwiseStrategy, we are only trying to cover pairs of features, so the - tuples actually may contain only single feature or pair of features, but - the algorithm itself works with triplets, quadruples and so on. - - - - - Initializes a new instance of FeatureTuple class for a single feature. - - Single feature. - - - - Initializes a new instance of FeatureTuple class for a pair of features. - - First feature. - Second feature. - - - - TestCase represents a single test case covering a list of features. - - - - - Initializes a new instance of TestCaseInfo class. - - A number of features in the test case. - - - - PairwiseTestCaseGenerator class implements an algorithm which generates - a set of test cases which covers all pairs of possible values of test - function. - - - - The algorithm starts with creating a set of all feature tuples which we - will try to cover (see method). This set - includes every single feature and all possible pairs of features. We - store feature tuples in the 3-D collection (where axes are "dimension", - "feature", and "all combinations which includes this feature"), and for - every two feature (e.g. "A" and "B") we generate both ("A", "B") and - ("B", "A") pairs. This data structure extremely reduces the amount of - time needed to calculate coverage for a single test case (this - calculation is the most time-consuming part of the algorithm). - - - Then the algorithm picks one tuple from the uncovered tuple, creates a - test case that covers this tuple, and then removes this tuple and all - other tuples covered by this test case from the collection of uncovered - tuples. - - - Picking a tuple to cover - - - There are no any special rules defined for picking tuples to cover. We - just pick them one by one, in the order they were generated. - - - Test generation - - - Test generation starts from creating a completely random test case which - covers, nevertheless, previously selected tuple. Then the algorithm - tries to maximize number of tuples which this test covers. - - - Test generation and maximization process repeats seven times for every - selected tuple and then the algorithm picks the best test case ("seven" - is a magic number which provides good results in acceptable time). - - Maximizing test coverage - - To maximize tests coverage, the algorithm walks through the list of mutable - dimensions (mutable dimension is a dimension that are not included in - the previously selected tuple). Then for every dimension, the algorithm - walks through the list of features and checks if this feature provides - better coverage than randomly selected feature, and if yes keeps this - feature. - - - This process repeats while it shows progress. If the last iteration - doesn't improve coverage, the process ends. - - - In addition, for better results, before start every iteration, the - algorithm "scrambles" dimensions - so for every iteration dimension - probes in a different order. - - - - - - Creates a set of test cases for specified dimensions. - - - An array which contains information about dimensions. Each element of - this array represents a number of features in the specific dimension. - - - A set of test cases. - - - - - Gets the test cases generated by this strategy instance. - - A set of test cases. - - - - The ParameterDataProvider class implements IParameterDataProvider - and hosts one or more individual providers. - - - - - Construct with a collection of individual providers - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - ParameterDataSourceProvider supplies individual argument values for - single parameters using attributes implementing IParameterDataSource. - - - - - Determines whether any data is available for a parameter. - - The parameter of a parameterized test - - - - Retrieves data for use with the supplied parameter. - - The parameter of a parameterized test - - - - SequentialStrategy creates test cases by using all of the - parameter data sources in parallel, substituting - when any of them run out of data. - - - - - Gets the test cases generated by the CombiningStrategy. - - The test cases. - - - - TestActionAfterCommand handles the AfterTest method of a single - TestActionItem, provided the items BeforeTest has been run. - - - - - Initializes a new instance of the class. - - The inner command. - The TestActionItem to run before the inner command. - - - - AfterCommand is a DelegatingTestCommand that performs some - specific action after the inner command is run. - - - - - Construct an AfterCommand - - - - - Execute the command - - - - - Set this to perform action after the inner command. - - - - - ContextSettingsCommand applies specified changes to the - TestExecutionContext prior to running a test. No special - action is needed after the test runs, since the prior - context will be restored automatically. - - - - - TestActionCommand handles a single ITestAction applied - to a test. It runs the BeforeTest method, then runs the - test and finally runs the AfterTest method. - - - - - Initializes a new instance of the class. - - The inner command. - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Perform the before test action - - - - - Perform the after test action - - - - - TestActionBeforeCommand handles the BeforeTest method of a single - TestActionItem, relying on the item to remember it has been run. - - - - - Initializes a new instance of the class. - - The inner command. - The TestActionItem to run before the inner command. - - - - BeforeTestCommand is a DelegatingTestCommand that performs some - specific action before the inner command is run. - - - - - Construct a BeforeCommand - - - - - Execute the command - - - - - Action to perform before the inner command. - - - - - ConstructFixtureCommand constructs the user test object if necessary. - - - - - Constructs a OneTimeSetUpCommand for a suite - - The inner command to which the command applies - - - - DelegatingTestCommand wraps an inner TestCommand. - Derived classes may do what they like before or - after running the inner command. - - - - TODO: Documentation needed for field - - - - Initializes a new instance of the class. - - The inner command. - - - - OneTimeTearDownCommand performs any teardown actions - specified for a suite and calls Dispose on the user - test object, if any. - - - - - Construct a OneTimeTearDownCommand - - The command wrapped by this command - - - - EmptyTestCommand is a TestCommand that does nothing. It simply - returns the current result from the context when executed. We - use it to avoid testing for null when executing a chain of - DelegatingTestCommands. - - - - - Construct a NullCommand for a test - - - - - Execute the command - - - - - ConstructFixtureCommand constructs the user test object if necessary. - - - - - Handles the construction and disposement of a fixture per test case - - The inner command to which the command applies - - - - adjusts the result of a successful test - to a failure if the elapsed time has exceeded the specified maximum - time allowed. - - - - - Initializes a new instance of the class. - - The inner command. - The max time allowed in milliseconds - - - - OneTimeSetUpCommand runs any one-time setup methods for a suite, - constructing the user test object if necessary. - - - - - Constructs a OneTimeSetUpCommand for a suite - - The inner command to which the command applies - A SetUpTearDownList for use by the command - - - - OneTimeTearDownCommand performs any teardown actions - specified for a suite and calls Dispose on the user - test object, if any. - - - - - Construct a OneTimeTearDownCommand - - The command wrapped by this command - A SetUpTearDownList for use by the command - - - - SetUpTearDownCommand runs SetUp methods for a suite, - runs the test and then runs TearDown methods. - - - - - Initializes a new instance of the class. - - The inner command. - List of setup/teardown items - - - - SetUpTearDownItem holds the setup and teardown methods - for a single level of the inheritance hierarchy. - - - - - Construct a SetUpTearDownNode - - A list of setup methods for this level - A list teardown methods for this level - A method validator to validate each method before calling. - - - - Returns true if this level has any methods at all. - This flag is used to discard levels that do nothing. - - - - - Run SetUp on this level. - - The execution context to use for running. - - - - Run TearDown for this level. - - - - - - TODO: Documentation needed for class - - - - - Initializes a new instance of the class. - - The test being skipped. - - - - Overridden to simply set the CurrentResult to the - appropriate Skipped state. - - The execution context for the test - A TestResult - - - - TestActionCommand handles a single ITestAction applied - to a test. It runs the BeforeTest method, then runs the - test and finally runs the AfterTest method. - - - - - Initializes a new instance of the class. - - The inner command. - The TestAction with which to wrap the inner command. - - - - TestActionItem wraps a single execution of an ITestAction. - Its primary purpose is to track whether the BeforeTest - method has been called and suppress calling the - AfterTest method if it has not. This is necessary when - ITestActions are used before and after a CompositeWorkItem, - since the OneTimeSetUpCommand and OneTimeTearDownCommand - are separate command chains. By sharing a TestActionItem - between the setup and teardown chains, the two calls can - be coordinated. - - - - - Construct a TestActionItem - - The ITestAction to be included - - - - Get flag indicating if the BeforeTest entry was already called. - - - - - Run the BeforeTest method of the action and remember that it has been run. - - The test to which the action applies - - - - Run the AfterTest action, but only if the BeforeTest - action was actually run. - - The test to which the action applies - - - - TestCommand is the abstract base class for all test commands - in the framework. A TestCommand represents a single stage in - the execution of a test, e.g.: SetUp/TearDown, checking for - Timeout, verifying the returned result from a method, etc. - - TestCommands may decorate other test commands so that the - execution of a lower-level command is nested within that - of a higher level command. All nested commands are executed - synchronously, as a single unit. Scheduling test execution - on separate threads is handled at a higher level, using the - task dispatcher. - - - - - Construct a TestCommand for a test. - - The test to be executed - - - - Gets the test associated with this command. - - - - - Runs the test in a specified context, returning a TestResult. - - The TestExecutionContext to be used for running the test. - A TestResult - - - - TestMethodCommand is the lowest level concrete command - used to run actual test cases. - - - - - Initializes a new instance of the class. - - The test. - - - - Runs the test, saving a TestResult in the execution context, as - well as returning it. If the test has an expected result, it - is asserts on that value. Since failed tests and errors throw - an exception, this command must be wrapped in an outer command, - will handle that exception and records the failure. This role - is usually played by the SetUpTearDown command. - - The execution context - - - - TheoryResultCommand adjusts the result of a Theory so that - it fails if all the results were inconclusive. - - - - - Constructs a TheoryResultCommand - - The command to be wrapped by this one - - - - creates a timer in order to cancel - a test if it exceeds a specified time and adjusts - the test result if it did time out. - - - - - Initializes a new instance of the class. - - The inner command - Timeout value - - - - Initializes a new instance of the class. - - The inner command - Timeout value - An instance - - - - Runs the test, saving a TestResult in the supplied TestExecutionContext. - - The context in which the test should run. - A TestResult - - - - Provides methods to support consistent checking in constraints. - - - - - Requires that the provided object is actually of the type required. - - The object to verify. - Name of the parameter as passed into the checking method. - - If and can be null, returns null rather than throwing when is null. - If cannot be null, this parameter is ignored. - The type to require. - - - - CultureDetector is a helper class used by NUnit to determine - whether a test should be run based on the current culture. - - - - - Default constructor uses the current culture. - - - - - Construct a CultureDetector for a particular culture for testing. - - The culture to be used - - - - Test to determine if one of a collection of cultures - is being used currently. - - - - - - - Tests to determine if the current culture is supported - based on a culture attribute. - - The attribute to examine - - - - - Test to determine if the a particular culture or comma- - delimited set of cultures is in use. - - Name of the culture or comma-separated list of culture ids - True if the culture is in use on the system - - - - Return the last failure reason. Results are not - defined if called before IsSupported( Attribute ) - is called. - - - - - Useful when wrapping awaiters whose GetResult method does not block until complete. - Contains a default mechanism to implement - via and . - - - - - ExceptionHelper provides static methods for working with exceptions - - - - - Rethrows an exception, preserving its stack trace - - The exception to rethrow - - - - Builds up a message, using the Message field of the specified exception - as well as any InnerExceptions. Optionally excludes exception names, - creating a more readable message. - - The exception. - Flag indicating whether exception names should be excluded. - A combined message string. - - - - Builds up a message, using the Message field of the specified exception - as well as any InnerExceptions. - - The exception. - A combined stack trace. - - - - Executes a parameterless synchronous or async delegate and returns the exception it throws, if any. - - - - - A CompositeWorkItem represents a test suite and - encapsulates the execution of the suite as well - as all its child tests. - - - - - List of Child WorkItems - - - - - Indicates whether this work item should use a separate dispatcher. - - - - - Construct a CompositeWorkItem for executing a test suite - using a filter to select child tests. - - The TestSuite to be executed - A filter used to select child tests - - - - Method that actually performs the work. Overridden - in CompositeWorkItem to do one-time setup, run all child - items and then dispatch the one-time teardown work item. - - - - - - - - - - Cancel (abort or stop) a CompositeWorkItem and all of its children - - true if the CompositeWorkItem and all of its children should be aborted, false if it should allow all currently running tests to complete - - - - OneTimeTearDownWorkItem represents the cleanup - and one-time teardown phase of a CompositeWorkItem - - - - - Construct a OneTimeTearDownWOrkItem wrapping a CompositeWorkItem - - The CompositeWorkItem being wrapped - - - - The WorkItem name, overridden to indicate this is the teardown. - - - - - The ExecutionStrategy for use in running this work item - - - - - - - - - - PerformWork is not used in CompositeWorkItem - - - - - WorkItemCancelled is called directly by the parallel dispatcher - when a test suite is left hanging after a forced StopRun. We - simulate WorkItemComplete() but without the ripple effect to - higher level suites, since we are controlling it all directly. - - - - - EventListenerTextWriter sends text output to the currently active - ITestEventListener in the form of a TestOutput object. If no event - listener is active in the context, or if there is no context, - the output is forwarded to the supplied default writer. - - - - - Construct an EventListenerTextWriter - - The name of the stream to use for events - The default writer to use if no listener is available - - - - Get the Encoding for this TextWriter - - - - - Write formatted string - - - - - Write formatted string - - - - - Write formatted string - - - - - Write an object - - - - - Write a string - - - - - Write a decimal - - - - - Write a double - - - - - Write formatted string - - - - - Write a ulong - - - - - Write a long - - - - - Write a uint - - - - - Write an int - - - - - Write a char - - - - - Write a boolean - - - - - Write chars - - - - - Write chars - - - - - Write a float - - - - - Write a string with newline - - - - - Write an object with newline - - - - - Write formatted string with newline - - - - - Write formatted string with newline - - - - - Write formatted string with newline - - - - - Write a decimal with newline - - - - - Write a formatted string with newline - - - - - Write a double with newline - - - - - Write a uint with newline - - - - - Write a ulong with newline - - - - - Write a long with newline - - - - - Write an int with newline - - - - - Write a bool with newline - - - - - Write chars with newline - - - - - Write chars with newline - - - - - Write a char with newline - - - - - Write a float with newline - - - - - Write newline - - - - - The EventPumpState enum represents the state of an - EventPump. - - - - - The pump is stopped - - - - - The pump is pumping events with no stop requested - - - - - The pump is pumping events but a stop has been requested - - - - - EventPump pulls events out of an EventQueue and sends - them to a listener. It is used to send events back to - the client without using the CallContext of the test - runner thread. - - - - - The downstream listener to which we send events - - - - - The queue that holds our events - - - - - Thread to do the pumping - - - - - The current state of the event pump - - - - - Constructor - - The EventListener to receive events - The event queue to pull events from - - - - Gets or sets the current state of the pump - - - - - Gets or sets the name of this EventPump - (used only internally and for testing). - - - - - Dispose stops the pump - Disposes the used WaitHandle, too. - - - - - Start the pump - - - - - Tell the pump to stop after emptying the queue. - - - - - Our thread proc for removing items from the event - queue and sending them on. Note that this would - need to do more locking if any other thread were - removing events from the queue. - - - - - NUnit.Core.Event is the abstract base for all stored events. - An Event is the stored representation of a call to the - ITestListener interface and is used to record such calls - or to queue them for forwarding on another thread or at - a later time. - - - - - The Send method is implemented by derived classes to send the event to the specified listener. - - The listener. - - - - TestStartedEvent holds information needed to call the TestStarted method. - - - - - Initializes a new instance of the class. - - The test. - - - - Calls TestStarted on the specified listener. - - The listener. - - - - TestFinishedEvent holds information needed to call the TestFinished method. - - - - - Initializes a new instance of the class. - - The result. - - - - Calls TestFinished on the specified listener. - - The listener. - - - - TestOutputEvent holds information needed to call the TestOutput method. - - - - - Initializes a new instance of the class. - - The output object. - - - - Calls TestOutput on the specified listener. - - The listener. - - - - TestMessageEvent holds information needed to call the SendMessage method. - - - - - Initializes a new instance of the class. - - The test message object. - - - - Calls on the specified listener. - - The listener. - - - - Holds object for sending to all listeners - - - - - Implements a queue of work items each of which - is queued as a WaitCallback. - - - - - Gets the count of items in the queue. - - - - - Enqueues the specified event - - The event to enqueue. - - - - Removes the first element from the queue and returns it (or ). - - - If and the queue is empty, the calling thread is blocked until - either an element is enqueued, or is called. - - - - - If the queue not empty - the first element. - - - otherwise, if == - or has been called - . - - - - - - - Stop processing of the queue - - - - - Validates method to execute. - - - - - Determines whether a method is allowed to execute and throws an exception otherwise. - - The method to validate. - - - - An IWorkItemDispatcher handles execution of work items. - - - - - The level of parallelism supported. Zero if not supported. - - - - - Start execution, performing any initialization. Sets - the top level work item and dispatches it. - - - - - Dispatch a single work item for execution. The first - work item dispatched is saved as the top-level - work item and used when stopping the run. - - The item to dispatch - - - - Cancel the ongoing run completely. - If no run is in process, the call has no effect. - - true if the IWorkItemDispatcher should abort all currently running WorkItems, false if it should allow all currently running WorkItems to complete - - - - MainThreadWorkItemDispatcher handles execution of WorkItems by - directly executing them on the main thread. This is different - from the SimpleWorkItemDispatcher where the work item is dispatched - onto its own thread. - - - - - The level of parallelism supported - - - - - Start execution, dispatching the top level - work into the main thread. - - - - - Dispatch a single work item for execution by - executing it directly. - - The item to dispatch - - - - This method is not supported for - this dispatcher. Using it will throw a - NotSupportedException. - - Not used - If used, it will always throw this. - - - - Enumeration representing the strategy to follow in executing a work item. - The value is only relevant when running under the parallel dispatcher. - - - - - Run directly on same thread - - - - - Enqueue for parallel execution - - - - - Enqueue for non-parallel execution - - - - - ParallelWorkItemDispatcher handles execution of work items by - queuing them for worker threads to process. - - - - - Event raised whenever a shift is starting. - - - - - Event raised whenever a shift has ended. - - - - - Construct a ParallelWorkItemDispatcher - - Number of workers to use - - - - Number of parallel worker threads - - - - - Enumerates all the shifts supported by the dispatcher - - - - - Enumerates all the Queues supported by the dispatcher - - - - - Start execution, setting the top level work, - enqueuing it and starting a shift to execute it. - - - - - Dispatch a single work item for execution. The first - work item dispatched is saved as the top-level - work item and used when stopping the run. - - The item to dispatch - - - - Cancel the ongoing run completely. - If no run is in process, the call has no effect. - - - - - Save the state of the queues and create a new isolated set - - - - - Try to remove isolated queues and restore old ones - - - - - QueuingEventListener uses an EventQueue to store any - events received on its EventListener interface. - - - - - The EventQueue created and filled by this listener - - - - - Construct a QueuingEventListener - - - - - A test has started - - The test that is starting - - - - A test case finished - - Result of the test case - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - A SimpleWorkItem represents a single test case and is - marked as completed immediately upon execution. This - class is also used for skipped or ignored test suites. - - - - - Construct a simple work item for a test. - - The test to be executed - The filter used to select this test - - - - Construct a simple work item for a test. - - The test to be executed - The filter used to select this test - An instance - - - - Method that performs actually performs the work. - - - - - Creates a test command for use in running this test. - - A TestCommand - - - - SimpleWorkItemDispatcher handles execution of WorkItems by - directly executing them. It is provided so that a dispatcher - is always available in the context, thereby simplifying the - code needed to run child tests. - - - - - The level of parallelism supported - - - - - Start execution, creating the execution thread, - setting the top level work and dispatching it. - - - - - Dispatch a single work item for execution by - executing it directly. - - The item to dispatch - - - - Cancel (abort or stop) the ongoing run. - If no run is in process, the call has no effect. - - true if the run should be aborted, false if it should allow its currently running test to complete - - - - Checks whether the method to execute is static. - - - - - Construct a StaticMethodValidator. - - The error message to output in case the validation fails. - - - - Determines whether a method to execute is static and throws an InvalidOperationException otherwise. - - The method to validate. - - - - A TestWorker pulls work items from a queue - and executes them. - - - - - Event handler for TestWorker events - - The TestWorker sending the event - The WorkItem that caused the event - - - - Event signaled immediately before executing a WorkItem - - - - - Event signaled immediately after executing a WorkItem - - - - - Construct a new TestWorker. - - The queue from which to pull work items - The name of this worker - - - - The WorkItemQueue from which this worker pulls WorkItems - - - - - The name of this worker - also used for the thread - - - - - Indicates whether the worker thread is running - - - - - Our ThreadProc, which pulls and runs tests in a loop - - - - - Create thread and start processing work items. - - - - - Stop the thread, either immediately or after finishing the current WorkItem - - true if the thread should be aborted, false if it should allow the currently running test to complete - - - - The TextCapture class intercepts console output and writes it - to the current execution context, if one is present on the thread. - If no execution context is found, the output is written to a - default destination, normally the original destination of the - intercepted output. - - - - - Construct a TextCapture object - - The default destination for non-intercepted output - - - - Gets the Encoding in use by this TextWriter - - - - - Writes a single character - - The char to write - - - - Writes a string - - The string to write - - - - Writes a string followed by a line terminator - - The string to write - - - - A WorkItem may be an individual test case, a fixture or - a higher level grouping of tests. All WorkItems inherit - from the abstract WorkItem class, which uses the template - pattern to allow derived classes to perform work in - whatever way is needed. - - A WorkItem is created with a particular TestExecutionContext - and is responsible for re-establishing that context in the - current thread before it begins or resumes execution. - - - - - Construct a WorkItem for a particular test. - - The test that the WorkItem will run - Filter used to include or exclude child items - - - - Construct a work Item that wraps another work Item. - Wrapper items are used to represent independently - dispatched tasks, which form part of the execution - of a single test, such as OneTimeTearDown. - - The WorkItem being wrapped - - - - Initialize the TestExecutionContext. This must be done - before executing the WorkItem. - - - Originally, the context was provided in the constructor - but delaying initialization of the context until the item - is about to be dispatched allows changes in the parent - context during OneTimeSetUp to be reflected in the child. - - The TestExecutionContext to use - - - - Event triggered when the item is complete - - - - - Gets the current state of the WorkItem - - - - - The test being executed by the work item - - - - - The name of the work item - defaults to the Test name. - - - - - Filter used to include or exclude child tests - - - - - The execution context - - - - - The worker executing this item. - - - - - The ParallelExecutionStrategy to use for this work item - - - - - Indicates whether this work item should use a separate dispatcher. - - - - - The test result - - - - - Gets the ParallelScope associated with the test, if any, - otherwise returning ParallelScope.Default; - - - - - Execute the current work item, including any - child work items. - - - - - Wait until the execution of this item is complete - - - - - Marks the WorkItem as NotRunnable. - - Reason for test being NotRunnable. - - - - Cancel (abort or stop) a WorkItem - - true if the WorkItem should be aborted, false if it should run to completion - - - - Standard Dispose - - - - - Method that performs actually performs the work. It should - set the State to WorkItemState.Complete when done. - - - - - Method called by the derived class when all work is complete - - - - - Builds the set up tear down list. - - Unsorted array of setup MethodInfos. - Unsorted array of teardown MethodInfos. - Method validator used before each method execution. - A list of SetUpTearDownItems - - - - Changes the result of the test, logging the old and new states - - The new ResultState - The new message - - - - Recursively walks up the test hierarchy to see if the - has been set on any of the parent tests. - - - - - WorkItemBuilder class knows how to build a tree of work items from a tree of tests - - - - - Creates a work item. - - The test for which this WorkItem is being created. - The filter to be used in selecting any child Tests. - True if child work items should be created and added. - - - - - Creates a work item. - - The test for which this WorkItem is being created. - The filter to be used in selecting any child Tests. - An instance. - True if child work items should be created and added. - if work item needs to be created unconditionally, if will be returned for tests that don't match the filter. - - - - - Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. - - - A signed integer that indicates the relative values of and , as shown in the following table.Value Meaning Less than zero is less than .Zero equals .Greater than zero is greater than . - - The first object to compare.The second object to compare. - - - - WorkItemQueueState indicates the current state of a WorkItemQueue - - - - - The queue is paused - - - - - The queue is running - - - - - The queue is stopped - - - - - A WorkItemQueue holds work items that are ready to - be run, either initially or after some dependency - has been satisfied. - - - - - Initializes a new instance of the class. - - The name of the queue. - Flag indicating whether this is a parallel queue - ApartmentState to use for items on this queue - - - - Gets the name of the work item queue. - - - - - Gets a flag indicating whether this queue is used for parallel execution - - - - - Gets the target ApartmentState for work items on this queue - - - - - Gets the total number of items processed so far - - - - - Gets the current state of the queue - - - - - Get a bool indicating whether the queue is empty. - - - - - Enqueue a WorkItem to be processed - - The WorkItem to process - - - - Enqueue a WorkItem to be processed - internal for testing - - The WorkItem to process - The priority at which to process the item - - - - Dequeue a WorkItem for processing - - A WorkItem or null if the queue has stopped - - - - Start or restart processing of items from the queue - - - - - Signal the queue to stop - - - - - Pause the queue for restarting later - - - - - Save the current inner queue and create new ones for use by - a non-parallel fixture with parallel children. - - - - - Restore the inner queue that was previously saved - - - - - The current state of a work item - - - - - Ready to run or continue - - - - - Work Item is executing - - - - - Complete - - - - - Handler for ShiftChange events. - - The shift that is starting or ending. - - - - The dispatcher needs to do different things at different, - non-overlapped times. For example, non-parallel tests may - not be run at the same time as parallel tests. We model - this using the metaphor of a working shift. The WorkShift - class associates one or more WorkItemQueues with one or - more TestWorkers. - - Work in the queues is processed until all queues are empty - and all workers are idle. Both tests are needed because a - worker that is busy may end up adding more work to one of - the queues. At that point, the shift is over and another - shift may begin. This cycle continues until all the tests - have been run. - - - - - Construct a WorkShift - - - - - Event that fires when the shift has ended - - - - - The Name of this shift - - - - - Gets a flag indicating whether the shift is currently active - - - - - Gets a bool indicating whether this shift has any work to do - - - - - Gets a list of the queues associated with this shift. - - Internal for testing - immutable once initialized - - - - Gets the list of workers associated with this shift. - - Internal for testing - immutable once initialized - - - - Add a WorkItemQueue to the shift, starting it if the - shift is currently active. - - - - - Assign a worker to the shift. - - - - - - Start or restart processing for the shift - - - - - End the shift, pausing all queues and raising - the EndOfShift event. - - - - - Shut down the shift. - - - - - Cancel (abort or stop) the shift without completing all work - - true if the WorkShift should be aborted, false if it should allow its currently running tests to complete - - - - TextMessageWriter writes constraint descriptions and messages - in displayable form as a text stream. It tailors the display - of individual message components to form the standard message - format of NUnit assertion failure messages. - - - - - Prefix used for the expected value line of a message - - - - - Prefix used for the actual value line of a message - - - - - Prefix used for the actual difference between actual and expected values if compared with a tolerance - - - - - Length of a message prefix - - - - - Construct a TextMessageWriter - - - - - Construct a TextMessageWriter, specifying a user message - and optional formatting arguments. - - - - - - - Gets or sets the maximum line length for this writer - - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a given - indentation level. - - The indentation level of the message - The message to be written - Any arguments used in formatting the message - - - - Display Expected and Actual lines for a constraint. This - is called by MessageWriter's default implementation of - WriteMessageTo and provides the generic two-line display. - - The result of the constraint that failed - - - - Gets the unique type name between expected and actual. - - The expected value - The actual value causing the failure - Output of the unique type name for expected - Output of the unique type name for actual - - - - Display Expected and Actual lines for given values. This - method may be called by constraints that need more control over - the display of actual and expected values than is provided - by the default implementation. - - The expected value - The actual value causing the failure - - - - Display Expected and Actual lines for given values, including - a tolerance value on the expected line. - - The expected value - The actual value causing the failure - The tolerance within which the test was made - - - - Display the expected and actual string values on separate lines. - If the mismatch parameter is >=0, an additional line is displayed - line containing a caret that points to the mismatch point. - - The expected string value - The actual string value - The point at which the strings don't match or -1 - If true, case is ignored in string comparisons - If true, clip the strings to fit the max line length - - - - Writes the text for an actual value. - - The actual value. - - - - Writes the text for a generalized value. - - The value. - - - - Writes the text for a collection value, - starting at a particular point, to a max length - - The collection containing elements to write. - The starting point of the elements to write - The maximum number of elements to write - - - - Write the generic 'Expected' line for a constraint - - The constraint that failed - - - - Write the generic 'Expected' line for a given value - and tolerance. - - The expected value - The tolerance within which the test was made - - - - Write the generic 'Actual' line for a constraint - - The ConstraintResult for which the actual value is to be written - - - - Write the generic 'Actual' line for a given value - - The actual value causing a failure - - - - Extensions to . - - - - - Adds the skip reason to tests that are ignored until a specific date. - - The test properties to add the skip reason to - The date that the test is being ignored until - The reason the test is being ignored until that date - - - - Combines multiple filters so that a test must pass all - of them in order to pass this filter. - - - - - Constructs an empty AndFilter - - - - - Constructs an AndFilter from an array of filters - - - - - - Checks whether the AndFilter is matched by a test - - The test to be matched - If set to we are carrying a negation through - True if all the component filters pass, otherwise false - - - - Checks whether the AndFilter is matched by a test - - The test to be matched - True if all the component filters match, otherwise false - - - - Checks whether the AndFilter is explicit matched by a test. - - The test to be matched - True if all the component filters explicit match, otherwise false - - - - Gets the element name - - Element name - - - - CategoryFilter is able to select or exclude tests - based on their categories. - - - - - Construct a CategoryFilter using a single category name - - A category name - - - - Check whether the filter matches a test - - The test to be matched - - - - - Gets the element name - - Element name - - - - ClassName filter selects tests based on the class FullName - - - - - Construct a FullNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - A base class for multi-part filters - - - - - Constructs an empty CompositeFilter - - - - - Constructs a CompositeFilter from an array of filters - - - - - - Return a list of the composing filters. - - - - - Checks whether the CompositeFilter is matched by a test. - - The test to be matched - If set to we are carrying a negation through - - - - Checks whether the CompositeFilter is matched by a test. - - The test to be matched - - - - Checks whether the CompositeFilter is explicit matched by a test. - - The test to be matched - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - FullName filter selects tests based on their FullName - - - - - Construct a FullNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - IdFilter selects tests based on their id - - - - - Construct an IdFilter for a single value - - The id the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - FullName filter selects tests based on their FullName - - - - - Construct a MethodNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - ClassName filter selects tests based on the class FullName - - - - - Construct a NamespaceFilter for a single namespace - - The namespace the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - NotFilter negates the operation of another filter - - - - - Construct a not filter on another filter - - The filter to be negated - - - - Gets the base filter - - - - - Determine if a particular test passes the filter criteria. - - The test to which the filter is applied - If set to we are carrying a negation through - True if the test passes the filter, otherwise false - - - - Check whether the filter matches a test - - The test to be matched - True if it matches, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Combines multiple filters so that a test must pass one - of them in order to pass this filter. - - - - - Constructs an empty OrFilter - - - - - Constructs an OrFilter from an array of filters - - - - - - Checks whether the OrFilter is matched by a test - - The test to be matched - If set to we are carrying a negation through - True if any of the component filters pass, otherwise false - - - - Checks whether the OrFilter is matched by a test - - The test to be matched - True if any of the component filters match, otherwise false - - - - Checks whether the OrFilter is explicit matched by a test - - The test to be matched - True if any of the component filters explicit match, otherwise false - - - - Gets the element name - - Element name - - - - PropertyFilter is able to select or exclude tests - based on their properties. - - - - - Construct a PropertyFilter using a property name and expected value - - A property name - The expected value of the property - - - - Check whether the filter matches a test - - The test to be matched - - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - TestName filter selects tests based on their Name - - - - - Construct a TestNameFilter for a single name - - The name the filter will recognize. - - - - Match a test against a single value. - - - - - Gets the element name - - Element name - - - - ValueMatchFilter selects tests based on some value, which - is expected to be contained in the test. - - - - - Returns the value matched by the filter - used for testing - - - - - Indicates whether the value is a regular expression - - - - - Construct a ValueMatchFilter for a single value. - - The value to be included. - - - - Match the input provided by the derived class - - The value to be matched - True for a match, false otherwise. - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - Gets the element name - - Element name - - - - GenericMethodHelper is able to deduce the Type arguments for - a generic method from the actual arguments provided. - - - - - A special value, which is used to indicate that BestCommonType() method - was unable to find a common type for the specified arguments. - - - - - Construct a GenericMethodHelper for a method - - MethodInfo for the method to examine - - - - Return the type arguments for the method, deducing them - from the arguments actually provided. - - The arguments to the method - If successful, an array of type arguments. - - - - A minimalistic implementation of an immutable stack. Add members as needed. - - - - - Represents an empty stack. may be used instead. - - - - - Returns a new immutable stack which begins with the specified value and continues with the values in the - current stack. - - The beginning value of the new stack. - - - - InvalidTestFixtureException is thrown when an appropriate test - fixture constructor using the provided arguments cannot be found. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - InvalidPlatformException is thrown when the platform name supplied - to a test is not recognized. - - - - - Instantiates a new instance of the class. - - - - - Instantiates a new instance of the class - - The message. - - - - Instantiates a new instance of the class - - The message. - The inner. - - - - Serialization constructor for the class - - - - - InvalidTestFixtureException is thrown when an appropriate test - fixture constructor using the provided arguments cannot be found. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - Interface for logging within the engine - - - - - Logs the specified message at the error level. - - The message. - - - - Logs the specified message at the error level. - - The message. - The arguments. - - - - Logs the specified message at the warning level. - - The message. - - - - Logs the specified message at the warning level. - - The message. - The arguments. - - - - Logs the specified message at the info level. - - The message. - - - - Logs the specified message at the info level. - - The message. - The arguments. - - - - Logs the specified message at the debug level. - - The message. - - - - Logs the specified message at the debug level. - - The message. - The arguments. - - - - InternalTrace provides facilities for tracing the execution - of the NUnit framework. Tests and classes under test may make use - of Console writes, System.Diagnostics.Trace or various loggers and - NUnit itself traps and processes each of them. For that reason, a - separate internal trace is needed. - - Note: - InternalTrace uses a global lock to allow multiple threads to write - trace messages. This can easily make it a bottleneck so it must be - used sparingly. Keep the trace Level as low as possible and only - insert InternalTrace writes where they are needed. - TODO: add some buffering and a separate writer thread as an option. - TODO: figure out a way to turn on trace in specific classes only. - - - - - Gets a flag indicating whether the InternalTrace is initialized - - - - - Initialize the internal trace facility using the name of the log - to be written to and the trace level. - - The log name - The trace level - - - - Initialize the internal trace using a provided TextWriter and level - - A TextWriter - The InternalTraceLevel - - - - Get a named Logger - - - - - - Get a logger named for a particular Type. - - - - - InternalTraceLevel is an enumeration controlling the - level of detailed presented in the internal log. - - - - - Use the default settings as specified by the user. - - - - - Do not display any trace messages - - - - - Display Error messages only - - - - - Display Warning level and higher messages - - - - - Display informational and higher messages - - - - - Display debug messages and higher - i.e. all messages - - - - - Display debug messages and higher - i.e. all messages - - - - - A trace listener that writes to a separate file per domain - and process using it. - - - - - Construct an InternalTraceWriter that writes to a file. - - Path to the file to use - - - - Construct an InternalTraceWriter that writes to a - TextWriter provided by the caller. - - - - - - Returns the character encoding in which the output is written. - - The character encoding in which the output is written. - - - - Writes a character to the text string or stream. - - The character to write to the text stream. - - - - Writes a string to the text string or stream. - - The string to write. - - - - Writes a string followed by a line terminator to the text string or stream. - - The string to write. If is null, only the line terminator is written. - - - - Releases the unmanaged resources used by the and optionally releases the managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Clears all buffers for the current writer and causes any buffered data to be written to the underlying device. - - - - - Provides internal logging to the NUnit framework - - - - - Initializes a new instance of the class. - - The name. - The log level. - The writer where logs are sent. - - - - Logs the message at error level. - - The message. - - - - Logs the message at error level. - - The message. - The message arguments. - - - - Logs the message at warm level. - - The message. - - - - Logs the message at warning level. - - The message. - The message arguments. - - - - Logs the message at info level. - - The message. - - - - Logs the message at info level. - - The message. - The message arguments. - - - - Logs the message at debug level. - - The message. - - - - Logs the message at debug level. - - The message. - The message arguments. - - - - The MethodWrapper class wraps a MethodInfo so that it may - be used in a platform-independent manner. - - - - - Construct a MethodWrapper for a Type and a MethodInfo. - - - - - Construct a MethodInfo for a given Type and method name. - - - - - Gets the Type from which this method was reflected. - - - - - Gets the MethodInfo for this method. - - - - - Gets the name of the method. - - - - - Gets a value indicating whether the method is abstract. - - - - - Gets a value indicating whether the method is public. - - - - - Gets a value indicating whether the method is static. - - - - - Gets a value indicating whether the method contains unassigned generic type parameters. - - - - - Gets a value indicating whether the method is a generic method. - - - - - Gets a value indicating whether the MethodInfo represents the definition of a generic method. - - - - - Gets the return Type of the method. - - - - - Gets the parameters of the method. - - - - - - Returns the Type arguments of a generic method or the Type parameters of a generic method definition. - - - - - Replaces the type parameters of the method with the array of types provided and returns a new IMethodInfo. - - The type arguments to be used - A new IMethodInfo with the type arguments replaced - - - - Returns an array of custom attributes of the specified type applied to this method - - - - - Gets a value indicating whether one or more attributes of the specified type are defined on the method. - - - - - Invokes the method, converting any TargetInvocationException to an NUnitException. - - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - Override ToString() so that error messages in NUnit's own tests make sense - - - - - Thrown when an assertion failed. Here to preserve the inner - exception and hence its stack trace. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The error message that explains - the reason for the exception - - - - Initializes a new instance of the class. - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - Enables the syntax. - - - - - Wraps an action so that it is executed when the returned object is disposed. - This disposal is thread-safe and the action will be executed at most once. - - - - - OSPlatform represents a particular operating system platform - - - - - Platform ID for Unix as defined by .NET - - - - - Platform ID for Unix as defined by Mono - - - - - Platform ID for XBox as defined by .NET and Mono - - - - - Platform ID for MacOSX as defined by .NET and Mono - - - - - Get the OSPlatform under which we are currently running - - - - - Gets the actual OS Version, not the incorrect value that might be - returned for Win 8.1 and Win 10 - - - If an application is not manifested as Windows 8.1 or Windows 10, - the version returned from Environment.OSVersion will not be 6.3 and 10.0 - respectively, but will be 6.2 and 6.3. The correct value can be found in - the registry. - - The original version - The correct OS version - - - - Product Type Enumeration used for Windows - - - - - Product type is unknown or unspecified - - - - - Product type is Workstation - - - - - Product type is Domain Controller - - - - - Product type is Server - - - - - Construct from a platform ID and version - - - - - Construct from a platform ID, version and product type - - - - - Get the platform ID of this instance - - - - - Implemented to use in place of Environment.OSVersion.ToString() - - A representation of the platform ID and version in an approximation of the format used by Environment.OSVersion.ToString() - - - - Get the Version of this instance - - - - - Get the Product Type of this instance - - - - - Return true if this is a windows platform - - - - - Return true if this is a Unix or Linux platform - - - - - Return true if the platform is Win32S - - - - - Return true if the platform is Win32Windows - - - - - Return true if the platform is Win32NT - - - - - Return true if the platform is Windows CE - - - - - Return true if the platform is Xbox - - - - - Return true if the platform is MacOSX - - - - - Return true if the platform is Windows 95 - - - - - Return true if the platform is Windows 98 - - - - - Return true if the platform is Windows ME - - - - - Return true if the platform is NT 3 - - - - - Return true if the platform is NT 4 - - - - - Return true if the platform is NT 5 - - - - - Return true if the platform is Windows 2000 - - - - - Return true if the platform is Windows XP - - - - - Return true if the platform is Windows 2003 Server - - - - - Return true if the platform is NT 6 - - - - - Return true if the platform is NT 6.0 - - - - - Return true if the platform is NT 6.1 - - - - - Return true if the platform is NT 6.2 - - - - - Return true if the platform is NT 6.3 - - - - - Return true if the platform is Vista - - - - - Return true if the platform is Windows 2008 Server (original or R2) - - - - - Return true if the platform is Windows 2008 Server (original) - - - - - Return true if the platform is Windows 2008 Server R2 - - - - - Return true if the platform is Windows 2012 Server (original or R2) - - - - - Return true if the platform is Windows 2012 Server (original) - - - - - Return true if the platform is Windows 2012 Server R2 - - - - - Return true if the platform is Windows 7 - - - - - Return true if the platform is Windows 8 - - - - - Return true if the platform is Windows 8.1 - - - - - Return true if the platform is Windows 10 - - - - - Return true if the platform is Windows Server. This is named Windows - Server 10 to distinguish it from previous versions of Windows Server. - - - - - - Examines an attribute argument and tries to simulate what that value would have been if the literal syntax - which might have defined the value in C# had instead been used as an argument to a given method parameter in a direct call. - - - For example, since you can’t apply attributes using arguments, we allow the C# syntax - 10 ( value) or 0.1 ( value) to be specified. - NUnit then converts it to match the method’s parameters, just as if you were actually - using the syntax TestMethod(10) or TestMethod(0.1). - - - For another example, you might have written the syntax 10 and picked up the attribute - constructor overload; however, the test method for which this value is intended only has a - signature. Again, NUnit simulates what would have happened if the inferred C# syntax was transplanted - and you were actually using the syntax TestMethod(10). - - - - - - Converts an array of objects to the , if it is supported. - - - - - Converts a single value to the , if it is supported. - - - - - Performs several special conversions allowed by NUnit in order to - permit arguments with types that cannot be used in the constructor - of an Attribute such as TestCaseAttribute or to simplify their use. - - The value to be converted - The target in which the should be converted - If conversion was successfully applied, the converted into - - if was converted and should be used; - is no conversion was applied and should be ignored - - - - - The ParameterWrapper class wraps a ParameterInfo so that it may - be used in a platform-independent manner. - - - - - Construct a ParameterWrapper for a given method and parameter - - - - - - - Gets a value indicating whether the parameter is optional - - - - - Gets an IMethodInfo representing the method for which this is a parameter. - - - - - Gets the underlying ParameterInfo - - - - - Gets the Type of the parameter - - - - - Returns an array of custom attributes of the specified type applied to this method - - - - - Gets a value indicating whether one or more attributes of the specified type are defined on the parameter. - - - - - PlatformHelper class is used by the PlatformAttribute class to - determine whether a platform is supported. - - - - - Comma-delimited list of all supported OS platform constants - - - - - Comma-delimited list of all supported Runtime platform constants - - - - - Default constructor uses the operating system and - common language runtime of the system. - - - - - Construct a PlatformHelper for a particular operating - system and common language runtime. Used in testing. - - RuntimeFramework to be used - OperatingSystem to be used - - - - Test to determine if one of a collection of platforms - is being used currently. - - - - - - - Tests to determine if the current platform is supported - based on a platform attribute. - - The attribute to examine - - - - - Tests to determine if the current platform is supported - based on a platform attribute. - - The attribute to examine - - - - - Test to determine if a particular platform or comma-delimited set of platforms is in use. - - Name of the platform or comma-separated list of platform ids - True if the platform is in use on the system - - - - Return the last failure reason. Results are not - defined if called before IsSupported( Attribute ) - is called. - - - - - Implements a simplified filter for use in deciding which - Types and Methods should be used to generate tests. It is constructed with a - list of strings, each of which may end up being interpreted in various ways. - - - - - Return a new PreFilter, without elements, which is considered - empty and always matches. - - - - - Return true if the filter is empty, in which case it - always succeeds. Technically, this is just a filter and - you can add elements but it's best to use Empty when - you need an empty filter and new when you plan to add. - - - - - Add a new filter element to the filter - - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - Use the filter on a Type, returning true if the type matches the filter - and should therefore be included in the discovery process. - - - - - A PropertyBag represents a collection of name value pairs - that allows duplicate entries with the same key. Methods - are provided for adding a new pair as well as for setting - a key to a single value. All keys are strings but values - may be of any type. Null values are not permitted, since - a null entry represents the absence of the key. - - - - - Adds a key/value pair to the property set - - The key - The value - - - - Sets the value for a key, removing any other - values that are already in the property set. - - - - - - - Gets a single value for a key, using the first - one if multiple values are present and returning - null if the value is not found. - - - - - - - Gets a flag indicating whether the specified key has - any entries in the property set. - - The key to be checked - - True if their are values present, otherwise false - - - - - Gets a collection containing all the keys in the property set - - - - - - Gets or sets the list of values for a particular key - - - - - Returns an XmlNode representing the current PropertyBag. - - Not used - An XmlNode representing the PropertyBag - - - - Returns an XmlNode representing the PropertyBag after - adding it as a child of the supplied parent node. - - The parent node. - Not used - - - - - The PropertyNames class provides static constants for the - standard property ids that NUnit uses on tests. - - - - - The FriendlyName of the AppDomain in which the assembly is running - - - - - The selected strategy for joining parameter data into test cases - - - - - The process ID of the executing assembly - - - - - The stack trace from any data provider that threw - an exception. - - - - - The reason a test was not run - - - - - The author of the tests - - - - - The ApartmentState required for running the test - - - - - The categories applying to a test - - - - - The Description of a test - - - - - The number of threads to be used in running tests - - - - - The maximum time in ms, above which the test is considered to have failed - - - - - The ParallelScope associated with a test - - - - - The number of times the test should be repeated - - - - - Indicates that the test should be run on a separate thread - - - - - The culture to be set for a test - - - - - The UI culture to be set for a test - - - - - The type that is under test - - - - - The timeout value for the test - - - - - The test will be ignored until the given date - - - - - The optional Order the test will run in - - - - - Randomizer returns a set of random values in a repeatable - way, to allow re-running of tests if necessary. It extends - the .NET Random class, providing random values for a much - wider range of types. - - The class is used internally by the framework to generate - test case data and is also exposed for use by users through - the TestContext.Random property. - - - For consistency with the underlying Random Type, methods - returning a single value use the prefix "Next..." Those - without an argument return a non-negative value up to - the full positive range of the Type. Overloads are provided - for specifying a maximum or a range. Methods that return - arrays or strings use the prefix "Get..." to avoid - confusion with the single-value methods. - - - - - Initial seed used to create randomizers for this run - - - - - Get a Randomizer for a particular member, returning - one that has already been created if it exists. - This ensures that the same values are generated - each time the tests are reloaded. - - - - - Get a randomizer for a particular parameter, returning - one that has already been created if it exists. - This ensures that the same values are generated - each time the tests are reloaded. - - - - - Create a new Randomizer using the next seed - available to ensure that each randomizer gives - a unique sequence of values. - - - - - - Default constructor - - - - - Construct based on seed value - - - - - - Returns a random unsigned int. - - - - - Returns a random unsigned int less than the specified maximum. - - - - - Returns a random unsigned int within a specified range. - - - - - Returns a non-negative random short. - - - - - Returns a non-negative random short less than the specified maximum. - - - - - Returns a non-negative random short within a specified range. - - - - - Returns a random unsigned short. - - - - - Returns a random unsigned short less than the specified maximum. - - - - - Returns a random unsigned short within a specified range. - - - - - Returns a random long. - - - - - Returns a random long less than the specified maximum. - - - - - Returns a non-negative random long within a specified range. - - - - - Returns a random ulong. - - - - - Returns a random ulong less than the specified maximum. - - - - - Returns a non-negative random long within a specified range. - - - - - Returns a random Byte - - - - - Returns a random Byte less than the specified maximum. - - - - - Returns a random Byte within a specified range - - - - - Returns a random SByte - - - - - Returns a random sbyte less than the specified maximum. - - - - - Returns a random sbyte within a specified range - - - - - Returns a random bool - - - - - Returns a random bool based on the probability a true result - - - - - Returns a random double between 0.0 and the specified maximum. - - - - - Returns a random double within a specified range. - - - - - Returns a random float. - - - - - Returns a random float between 0.0 and the specified maximum. - - - - - Returns a random float within a specified range. - - - - - Returns a random enum value of the specified Type as an object. - - - - - Returns a random enum value of the specified Type. - - - - - Default characters for random functions. - - Default characters are the English alphabet (uppercase & lowercase), Arabic numerals, and underscore - - - - Generate a random string based on the characters from the input string. - - desired length of output string. - string representing the set of characters from which to construct the resulting string - A random string of arbitrary length - - - - Generate a random string based on the characters from the input string. - - desired length of output string. - A random string of arbitrary length - Uses DefaultStringChars as the input character set - - - - Generate a random string based on the characters from the input string. - - A random string of the default length - Uses DefaultStringChars as the input character set - - - - Returns a random decimal. - - - - - Returns a random decimal between positive zero and the specified maximum. - - - - - Returns a random decimal within a specified range, which is not - permitted to exceed decimal.MaxVal in the current implementation. - - - A limitation of this implementation is that the range from min - to max must not exceed decimal.MaxVal. - - - - - Generates a valid version 4 . - - - - - Helper methods for inspecting a type by reflection. - - Many of these methods take ICustomAttributeProvider as an - argument to avoid duplication, even though certain attributes can - only appear on specific types of members, like MethodInfo or Type. - - In the case where a type is being examined for the presence of - an attribute, interface or named member, the Reflect methods - operate with the full name of the member being sought. This - removes the necessity of the caller having a reference to the - assembly that defines the item being sought and allows the - NUnit core to inspect assemblies that reference an older - version of the NUnit framework. - - - - - Examine a fixture type and return true if it has a method with - a particular attribute. - - The type to examine - The attribute Type to look for - True if found, otherwise false - - - - Invoke the default constructor on a Type - - The Type to be constructed - An instance of the Type - - - - Invoke a constructor on a Type with arguments - - The Type to be constructed - Arguments to the constructor - An instance of the Type - - - - Returns an array of types from an array of objects. - Differs from by returning - for null elements rather than throwing . - - - - - Gets the constructors to which the specified argument types can be coerced. - - - - - Determines if the given types can be coerced to match the given parameters. - - - - - Determines whether the current type can be implicitly converted to the specified type. - - - - - Invoke a parameterless method returning void on an object. - - A MethodInfo for the method to be invoked - The object on which to invoke the method - - - - Invoke a method, converting any TargetInvocationException to an NUnitException. - - A MethodInfo for the method to be invoked - The object on which to invoke the method - The argument list for the method - The return value from the invoked method - - - - - Selects the ultimate shadowing property just like dynamic would, - rather than throwing - for properties that shadow properties of a different property type - which is what does. - - - If you request both public and nonpublic properties, every public property is preferred - over every nonpublic property. It would violate the principle of least surprise for a - derived class’s implementation detail to be chosen over the public API for a type. - - - See . - See . - See . - - - - Same as GetMethod(, | - , , , - ) except that it also chooses only non-generic methods. - Useful for avoiding the you can have with GetMethod. - - - - - Returns the get accessor for the indexer. - - Type to reflect on for the indexer. - List of indexer types that matches the indexer type order. - The Get accessor - - - - Represents the result of running a single test case. - - - - - Construct a TestCaseResult based on a TestMethod - - A TestMethod to which the result applies. - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that executed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - The TestResult class represents the result of a test. - - - - - Error message for when child tests have errors - - - - - Error message for when child tests have warnings - - - - - Error message for when child tests are ignored - - - - - Error message for when user has cancelled the test run - - - - - The minimum duration for tests - - - - - Aggregate assertion count - - - - - ReaderWriterLock - - - - - Construct a test result given a Test - - The test to be used - - - - Gets the test with which this result is associated. - - - - - Gets the ResultState of the test result, which - indicates the success or failure of the test. - - - - - Gets the name of the test result - - - - - Gets the full name of the test result - - - - - Gets or sets the elapsed time for running the test in seconds - - - - - Gets or sets the time the test started running. - - - - - Gets or sets the time the test finished running. - - - - - Adds a test attachment to the test result - - The TestAttachment object to attach - - - - Gets the collection of files attached to the test - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - - Gets or sets the count of asserts executed - when running the test. - - - - - Gets the number of test cases executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - Gets a TextWriter, which will write output to be included in the result. - - - - - Gets any text output written to this result. - - - - - Gets a list of assertion results associated with the test. - - - - - Returns the XML representation of the result. - - If true, descendant results are included - An XmlNode representing the result - - - - Adds the XML representation of the result as a child of the - supplied parent node.. - - The parent node. - If true, descendant results are included - - - - - Gets a count of pending failures (from Multiple Assert) - - - - - Gets the worst assertion status (highest enum) in all the assertion results - - - - - Set the result of the test - - The ResultState to use in the result - - - - Set the result of the test - - The ResultState to use in the result - A message associated with the result state - - - - Set the result of the test - - The ResultState to use in the result - A message associated with the result state - Stack trace giving the location of the command - - - - Set the test result based on the type of exception thrown - - The exception that was thrown - - - - Set the test result based on the type of exception thrown - - The exception that was thrown - The FailureSite to use in the result - - - - RecordTearDownException appends the message and stack trace - from an exception arising during teardown of the test - to any previously recorded information, so that any - earlier failure information is not lost. Note that - calling Assert.Ignore, Assert.Inconclusive, etc. during - teardown is treated as an error. If the current result - represents a suite, it may show a teardown error even - though all contained tests passed. - - The Exception to be recorded - - - - Update overall test result, including legacy Message, based - on AssertionResults that have been saved to this point. - - - - - Record an assertion result - - - - - Record an assertion result - - - - - Record an assertion result - - - - - Creates a failure message incorporating failures - from a Multiple Assert block for use by runners - that don't know about AssertionResults. - - Message as a string - - - - Adds a failure element to a node and returns it. - - The target node. - The new failure element. - - - - Adds an attachments element to a node and returns it. - - The target node. - The new attachments element. - - - - Represents the result of running a test suite - - - - - Construct a TestSuiteResult base on a TestSuite - - The TestSuite to which the result applies - - - - Gets the number of test cases that executed - when running the test and all its children. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - Indicates whether this result has any child results. - - - - - Gets the collection of child results. - - - - - Adds a child result to this result, setting this result's - ResultState to Failure if the child result failed. - - The result to be added - - - - RuntimeFramework represents a particular version - of a common language runtime implementation. - - - - - DefaultVersion is an empty Version, used to indicate that - NUnit should select the CLR version to use for the test. - - - - - Construct from a runtime type and version. If the version has - two parts, it is taken as a framework version. If it has three - or more, it is taken as a CLR version. In either case, the other - version is deduced based on the runtime type and provided version. - - The runtime type of the framework - The version of the framework - - - - Static method to return a RuntimeFramework object - for the framework that is currently in use. - - - - - The type of this runtime framework - - - - - The framework version for this runtime framework - - - - - The CLR version for this runtime framework - - - - - Return true if any CLR version may be used in - matching this RuntimeFramework object. - - - - - Returns the Display name for this framework - - - - - Parses a string representing a RuntimeFramework. - The string may be just a RuntimeType name or just - a Version or a hyphenated RuntimeType-Version or - a Version prefixed by 'versionString'. - - - - - - - Overridden to return the short name of the framework - - - - - - Returns true if the current framework matches the - one supplied as an argument. Two frameworks match - if their runtime types are the same or either one - is RuntimeType.Any and all specified version components - are equal. Negative (i.e. unspecified) version - components are ignored. - - The RuntimeFramework to be matched. - True on match, otherwise false - - - - Enumeration identifying a common language - runtime implementation. - - - - Any supported runtime framework - - - Microsoft .NET Framework - - - Microsoft .NET Framework - - - Microsoft Shared Source CLI - - - Mono - - - MonoTouch - - - Microsoft .NET Core, including .NET 5+ - - - - Holds thread state which is captured and restored in order to sandbox user code. - - - - - Thread principal. - This will be null on platforms that don't support . - - - - - Captures a snapshot of the tracked state of the current thread to be restored later. - - - - - Restores the tracked state of the current thread to the previously captured state. - - - - - Returns a copy with the specified culture. - - - - - Returns a copy with the specified UI culture. - - - - - Returns a copy with the specified principal. - - - - - May be called from any thread. - - - - - May be called from any thread. - - - - - May be called from any thread. - - - - - May be called from any thread, but may only be called once. - - - - - StackFilter class is used to remove internal NUnit - entries from a stack trace so that the resulting - trace provides better information about the test. - - - - - Single instance of our default filter - - - - - Construct a stack filter instance - - Regex pattern used to delete lines from the top of the stack - Regex pattern used to delete lines from the bottom of the stack - - - - Construct a stack filter instance - - Regex pattern used to delete lines from the top of the stack - - - - Construct a stack filter instance - - - - - Filters a raw stack trace and returns the result. - - The original stack trace - A filtered stack trace - - - - Provides methods to support legacy string comparison methods. - - - - - Compares two strings for equality, ignoring case if requested. - - The first string. - The second string.. - if set to , the case of the letters in the strings is ignored. - Zero if the strings are equivalent, a negative number if strA is sorted first, a positive number if - strB is sorted first - - - - Compares two strings for equality, ignoring case if requested. - - The first string. - The second string.. - if set to , the case of the letters in the strings is ignored. - True if the strings are equivalent, false if not. - - - - The TestCaseParameters class encapsulates method arguments and - other selected parameters needed for constructing - a parameterized test case. - - - - - The expected result to be returned - - - - - Default Constructor creates an empty parameter set - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a ParameterSet from an object implementing ITestCaseData - - - - - - The expected result of the test, which - must match the method return type. - - - - - Gets a value indicating whether an expected result was specified. - - - - - TestCaseTimeoutException is thrown when a test running directly - on a TestWorker thread is cancelled due to timeout. - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - The message. - - - - Initializes a new instance of the class. - - The message. - The inner. - - - - Serialization Constructor - - - - - Helper class used to save and restore certain static or - singleton settings in the environment that affect tests - or which might be changed by the user tests. - - - - - Link to a prior saved context - - - - - Indicates that a stop has been requested - - - - - The event listener currently receiving notifications - - - - - The number of assertions for the current test - - - - - The current test result - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - An existing instance of TestExecutionContext. - - - - Gets and sets the current context. - - - - - Gets or sets the current test - - - - - The time the current test started execution - - - - - The time the current test started in Ticks - - - - - Gets the elapsed time for running the test in seconds - - - - - Gets or sets the current test result - - - - - Gets a TextWriter that will send output to the current test result. - - - - - The current test object - that is the user fixture - object on which tests are being executed. - - - - - Get or set indicator that run should stop on the first error - - - - - Gets an enum indicating whether a stop has been requested. - - - - - The current test event listener - - - - - The current WorkItemDispatcher. Made public for - use by nunitlite.tests - - - - - The ParallelScope to be used by tests running in this context. - For builds with out the parallel feature, it has no effect. - - - - - Default tolerance value used for floating point equality - when no other tolerance is specified. - - - - - The worker that spawned the context. - For builds without the parallel feature, it is null. - - - - - Gets the RandomGenerator specific to this Test - - - - - Gets the assert count. - - The assert count. - - - - The current nesting level of multiple assert blocks - - - - - Gets or sets the test case timeout value - - - - - Gets a list of ITestActions set by upstream tests - - - - - Saves or restores the CurrentCulture - - - - - Saves or restores the CurrentUICulture - - - - - Gets or sets the current for the Thread. - - - - - The current head of the ValueFormatter chain, copied from MsgUtils.ValueFormatter - - - - - If true, all tests must run on the same thread. No new thread may be spawned. - - - - - The number of times the current test has been scheduled for execution. - Currently only being executed in a test using the - - - - - Record any changes in the environment made by - the test code in the execution context so it - will be passed on to lower level tests. - - - - - Set up the execution environment to match a context. - Note that we may be running on the same thread where the - context was initially created or on a different thread. - - - - - Increments the assert count by one. - - - - - Increments the assert count by a specified amount. - - - - - Adds a new ValueFormatterFactory to the chain of formatters - - The new factory - - - - Sends a message from test to listeners. This message is not kind of test output and doesn't go to test result. - - A name recognized by the intended listeners. - A message to be sent - - - - Obtain lifetime service object - - - - - - An IsolatedContext is used when running code - that may effect the current result in ways that - should not impact the final result of the test. - A new TestExecutionContext is created with an - initially clear result, which is discarded on - exiting the context. - - - using (new TestExecutionContext.IsolatedContext()) - { - // Code that should not impact the result - } - - - - - Save the original current TestExecutionContext and - make a new isolated context current. - - - - - Restore the original TestExecutionContext. - - - - - An AdhocTestExecutionContext is created whenever a context is needed - but not available in CurrentContext. This happens when tests are run - on an ad-hoc basis or Asserts are used outside of tests. - - - - - Construct an AdhocTestExecutionContext, which is used - whenever the current TestExecutionContext is found to be null. - - - - - Enumeration indicating whether the tests are - running normally or being cancelled. - - - - - Running normally with no stop requested - - - - - A graceful stop has been requested - - - - - A forced stop has been requested - - - - - Interface to be implemented by filters applied to tests. - The filter applies when running the test, after it has been - loaded, since this is the only time an ITest exists. - - - - - Unique Empty filter. - - - - - Indicates whether this is the EmptyFilter - - - - - Indicates whether this is a top-level filter, - not contained in any other filter. - - - - - Determine if a particular test passes the filter criteria. The default - implementation checks the test itself, its parents and any descendants. - - Derived classes may override this method or any of the Match methods - to change the behavior of the filter. - - The test to which the filter is applied - True if the test passes the filter, otherwise false - - - - Determine if a particular test passes the filter criteria. The default - implementation checks the test itself, its parents and any descendants. - - Derived classes may override this method or any of the Match methods - to change the behavior of the filter. - - The test to which the filter is applied - If set to we are carrying a negation through - True if the test passes the filter, otherwise false - - - - Determine if a test matches the filter explicitly. That is, it must - be a direct match of the test itself or one of its children. - - The test to which the filter is applied - True if the test matches the filter explicitly, otherwise false - - - - Determine whether the test itself matches the filter criteria, without - examining either parents or descendants. This is overridden by each - different type of filter to perform the necessary tests. - - The test to which the filter is applied - True if the filter matches the any parent of the test - - - - Determine whether any ancestor of the test matches the filter criteria - - The test to which the filter is applied - True if the filter matches the an ancestor of the test - - - - Determine whether any descendant of the test matches the filter criteria. - - The test to be matched - True if at least one descendant matches the filter criteria - - - - Create a TestFilter instance from an XML representation. - - - - - Create a TestFilter from its TNode representation - - - - - Nested class provides an empty filter - one that always - returns true when called. It never matches explicitly. - - - - - Adds an XML node - - True if recursive - The added XML node - - - - Adds an XML node - - Parent node - True if recursive - The added XML node - - - - The TestCaseParameters class encapsulates method arguments and - other selected parameters needed for constructing - a parameterized test case. - - - - - Default Constructor creates an empty parameter set - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a ParameterSet from an object implementing ITestCaseData - - - - - - Type arguments used to create a generic fixture instance - - - - - TestListener provides an implementation of ITestListener that - does nothing. It is used only through its NULL property. - - - - - Called when a test has just started - - The test that is starting - - - - Called when a test case has finished - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the message to send - - - - Construct a new TestListener - private so it may not be used. - - - - - Get a listener that does nothing - - - - - TestNameGenerator is able to create test names according to - a coded pattern. - - - - - Default pattern used to generate names - - - - - Construct a TestNameGenerator - - - - - Construct a TestNameGenerator - - The pattern used by this generator. - - - - Get the display name for a TestMethod and its arguments - - A TestMethod - The display name - - - - Get the display name for a TestMethod and its arguments - - A TestMethod - Arguments to be used - The display name - - - - TestParameters is the abstract base class for all classes - that know how to provide data for constructing a test. - - - - - Default Constructor creates an empty parameter set - - - - - Construct a parameter set with a list of arguments - - - - - - Construct a non-runnable ParameterSet, specifying - the provider exception that made it invalid. - - - - - Construct a ParameterSet from an object implementing ITestData - - - - - - The RunState for this set of parameters. - - - - - The arguments to be used in running the test, - which must match the method signature. - - - - - A name to be used for this test case in lieu - of the standard generated name containing - the argument list. - - - - - Gets the property dictionary for this test - - - - - Applies ParameterSet values to the test itself. - - A test. - - - - The original arguments provided by the user, - used for display purposes. - - - - - The list of display names to use as the parameters in the test name. - - - - - TestProgressReporter translates ITestListener events into - the async callbacks that are used to inform the client - software about the progress of a test run. - - - - - Initializes a new instance of the class. - - The callback handler to be used for reporting progress. - - - - Called when a test has just started - - The test that is starting - - - - Called when a test has finished. Sends a result summary to the callback. - to - - The result of the test - - - - Called when a test produces output for immediate display - - A TestOutput object containing the text to display - - - - Called when a test produces a message to be sent to listeners - - A object containing the text to send - - - - Returns the parent test item for the target test item if it exists - - - parent test item - - - - Makes a string safe for use as an attribute, replacing - characters that can't be used with their - corresponding XML representations. - - The string to be used - A new string with the values replaced - - - - ParameterizedFixtureSuite serves as a container for the set of test - fixtures created from a given Type using various parameters. - - - - - Initializes a new instance of the class. - - The ITypeInfo for the type that represents the suite. - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets a string representing the type of test - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - ParameterizedMethodSuite holds a collection of individual - TestMethods with their arguments applied. - - - - - Initializes a new instance of the class. - - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets a MethodInfo for the method implementing this test. - - - - - Gets a string representing the type of test - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - SetUpFixture extends TestSuite and supports - Setup and TearDown methods. - - - - - Initializes a new instance of the class. - - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the TypeInfo of the fixture used in running this test. - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - The Test abstract class represents a test within the framework. - - - - - Static value to seed ids. It's started at 1000 so any - uninitialized ids will stand out. - - - - - Used to cache the declaring type for this MethodInfo - - - - - Method property backing field - - - - - Constructs a test given its name - - The name of the test - - - - Constructs a test given the path through the - test hierarchy to its parent and a name. - - The parent tests full name - The name of the test - - - - Constructs a test for a specific type. - - - - - Constructs a test for a specific method. - - - - - Gets or sets the id of the test - - - - - - Gets or sets the name of the test - - - - - Gets or sets the fully qualified name of the test - - - - - - Gets the name of the class where this test was declared. - Returns null if the test is not associated with a class. - - - - - Gets the name of the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - The arguments to use in creating the test or empty array if none required. - - - - - Gets the TypeInfo of the fixture used in running this test - or null if no fixture type is associated with it. - - - - - Gets a MethodInfo for the method implementing this test. - Returns null if the test is not implemented as a method. - - - - - Whether or not the test should be run - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Gets a string representing the type of test. Used as an attribute - value in the XML representation of a test and has no other - function in the framework. - - - - - Gets a count of test cases represented by - or contained under this test. - - - - - Gets the properties for this test - - - - - Returns true if this is a TestSuite - - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets the parent as a Test object. - Used by the core to set the parent. - - - - - Gets this test's child tests - - A list of child tests - - - - Gets or sets a fixture object for running this test. - - - - - Static prefix used for ids in this AppDomain. - Set by FrameworkController. - - - - - Gets or Sets the Int value representing the seed for the RandomGenerator - - - - - - The SetUp methods. - - - - - The teardown methods - - - - - Creates a TestResult for this test. - - A TestResult suitable for this type of test. - - - - Modify a newly constructed test by applying any of NUnit's common - attributes, based on a supplied , which is - usually the reflection element from which the test was constructed, - but may not be in some instances. The attributes retrieved are - saved for use in subsequent operations. - - - - - Mark the test as Invalid (not runnable) specifying a reason - - The reason the test is not runnable - - - - Get custom attributes applied to a test - - - - - Add standard attributes and members to a test node. - - - - - - - Returns the XML representation of the test - - If true, include child tests recursively - - - - - Returns an XmlNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - An object to compare with this instance. - - - Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. - An object to compare with this instance. - - - - TestAssembly is a TestSuite that represents the execution - of tests in a managed assembly. - - - - - Initializes a new instance of the class - specifying the Assembly and the suite name. - - The assembly this test represents. - - This becomes the full name of the suite and the filename part is used as the suite name. - - - - - Initializes a new instance of the class - specifying the suite name for an assembly that could not be loaded. - - - This becomes the full name of the suite and the filename part is used as the suite name. - - - - - Creates a copy of the given assembly with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the Assembly represented by this instance. - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Get custom attributes specified on the assembly - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - TestFixture is a surrogate for a user test fixture class, - containing one or more tests. - - - - - The life cycle specified for the current test fixture. - - - - - Initializes a new instance of the class. - - Type of the fixture. - Arguments used to instantiate the test fixture, or null if none used - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Gets the TypeInfo of the fixture used in running this test. - - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - The TestMethod class represents a Test implemented as a method. - - - - - The ParameterSet used to create this test method - - - - - Initializes a new instance of the class. - - The method to be used as a test. - - - - Initializes a new instance of the class. - - The method to be used as a test. - The suite or fixture to which the new test will be added - - - - Gets a MethodInfo for the method implementing this test. - - - - - The arguments to use in executing the test method, or empty array if none are provided. - - - - - Overridden to return a TestCaseResult. - - A TestResult for this test. - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Returns a TNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - - Gets this test's child tests - - A list of child tests - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Returns the name of the method - - - - - TestSuite represents a composite test, which contains other tests. - - - - - Our collection of child tests - - - - - Initializes a new instance of the class. - - The name of the suite. - - - - Initializes a new instance of the class. - - Name of the parent suite. - The name of the suite. - - - - Initializes a new instance of the class. - - Type of the fixture. - Arguments used to instantiate the test fixture, or null if none used. - - - - Initializes a new instance of the class. - - Type of the fixture. - - - - Creates a copy of the given suite with only the descendants that pass the specified filter. - - The to copy. - Determines which descendants are copied. - - - - Sorts tests under this suite. - - - - - Adds a test to the suite. - - The test. - - - - Creates a filtered copy of the test suite. - - Determines which descendants are copied. - - - - Gets this test's child tests - - The list of child tests - - - - Gets a count of test cases represented by - or contained under this test. - - - - - - The arguments to use in creating the fixture, or empty array if none are provided. - - - - - Set to true to suppress sorting this suite's contents - - - - - OneTimeSetUp methods for this suite - - - - - OneTimeTearDown methods for this suite - - - - - Overridden to return a TestSuiteResult. - - A TestResult for this test. - - - - Gets a bool indicating whether the current test - has any descendant tests. - - - - - Gets the name used for the top-level element in the - XML representation of this test - - - - - Returns an XmlNode representing the current result after - adding it as a child of the supplied parent node. - - The parent node. - If true, descendant results are included - - - - - Check that setup and teardown methods marked by certain attributes - meet NUnit's requirements and mark the tests not runnable otherwise. - - - - - ThreadUtility provides a set of static methods convenient - for working with threads. - - - - Gets or if the current platform does not support it. - - - Sets if current platform supports it. - Value to set. If the current platform does not support then the only allowed value is . - - - - TypeHelper provides static methods that operate on Types. - - - - - Gets the display name for a Type as used by NUnit. - - The Type for which a display name is needed. - The display name for the Type - - - - Gets the display name for a Type as used by NUnit. - - The Type for which a display name is needed. - The arglist provided. - The display name for the Type - - - - Returns the best fit for a common type to be used in - matching actual arguments to a methods Type parameters. - - - - - Determines whether the specified type is numeric. - - The type to be examined. - - if the specified type is numeric; otherwise, . - - - - - Convert an argument list to the required parameter types. - Currently, only widening numeric conversions are performed. - - An array of args to be converted - A ParameterInfo[] whose types will be used as targets - - - - Determines whether this instance can deduce type args for a generic type from the supplied arguments. - - The type to be examined. - The arglist. - The type args to be used. - - if this the provided args give sufficient information to determine the type args to be used; otherwise, . - - - - - Return the interfaces implemented by a Type. - - The Type to be examined. - An array of Types for the interfaces. - - - - Return whether or not the given type is a ValueTuple. - - Type. - Whether or not the given type is a ValueTuple. - - - - Return whether or not the given type is a Tuple. - - Type. - Whether or not the given type is a Tuple. - - - - Determines whether the cast to the given type would succeed. - If is and - can be , the cast succeeds just like the C# language feature. - - The object to cast. - - - - Casts to a value of the given type if possible. - If is and - can be , the cast succeeds just like the C# language feature. - - The object to cast. - The value of the object, if the cast succeeded. - - - - Used for resolving the type difference between objects. - - - - - Gets the shortened type name difference between and . - - The expected object. - The actual object. - Output of the unique type name for the expected object. - Output of the unique type name for actual object. - - - - Gets the shortened type name difference between and . - - The expected object . - The actual object . - Output of the unique type name for the expected object. - Output of the unique type name for actual object. - - - - Obtain the shortened generic template parameters of the given and , - if they are generic. - - The expected . - The actual . - Shortened generic parameters of the expected . - Shortened generic parameters of the actual . - - - - Obtain a shortened name of the given . - - - - - Shorten the given names by only including the relevant differing namespaces/types, if they differ. - - The expected . - The actual . - The shortened expected name. - The shortened actual name. - - - - Returns whether or not the is generic. - - - - - Returns the fully qualified generic name of a given . - - - - - Reconstruct a generic type name using the provided generic type name, and a - of the template parameters. - - The name of the generic type, including the number of template parameters expected. - A of names of the template parameters of the provided generic type. - - - - Obtain the shortened generic names of the given expected and actual s. - - The expected . - The actual . - The shortened expected generic name. - The shortened actual generic name. - - - - The TypeWrapper class wraps a Type so it may be used in - a platform-independent manner. - - - - - Construct a TypeWrapper for a specified Type. - - - - - Gets the underlying Type on which this TypeWrapper is based. - - - - - Gets the base type of this type as an ITypeInfo - - - - - Gets the Name of the Type - - - - - Gets the FullName of the Type - - - - - Gets the assembly in which the type is declared - - - - - Gets the namespace of the Type - - - - - Gets a value indicating whether the type is abstract. - - - - - Gets a value indicating whether the Type is a generic Type - - - - - Returns true if the Type wrapped is T - - - - - Gets a value indicating whether the Type has generic parameters that have not been replaced by specific Types. - - - - - Gets a value indicating whether the Type is a generic Type definition - - - - - Gets a value indicating whether the type is sealed. - - - - - Gets a value indicating whether this type represents a static class. - - - - - Get the display name for this type - - - - - Get the display name for an object of this type, constructed with the specified args. - - - - - Returns a new ITypeInfo representing an instance of this generic Type using the supplied Type arguments - - - - - Returns a Type representing a generic type definition from which this Type can be constructed. - - - - - Returns an array of custom attributes of the specified type applied to this type - - - - - Returns a value indicating whether the type has an attribute of the specified type. - - - - - - - - Returns a flag indicating whether this type has a method with an attribute of the specified type. - - - - - - - Returns an array of IMethodInfos for methods of this Type - that match the specified flags. - - - - - Gets the public constructor taking the specified argument Types - - - - - Returns a value indicating whether this Type has a public constructor taking the specified argument Types. - - - - - Construct an object of this Type, using the specified arguments. - - - - - Override ToString() so that error messages in NUnit's own tests make sense - - - - - Returns all methods declared by this type that have the specified attribute, optionally - including base classes. Methods from a base class are always returned before methods from a class that - inherits from it. - - Specifies whether to search the fixture type inheritance chain. - - - - Encapsulates the ability to increment a value by an amount which may be of a different type. - - - - - Creates a from the specified value if the current instance is able to - use it to increment the on values which it operates. If the creation fails, - is thrown. - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values on which it operates. A return value indicates - whether the creation succeeded. - - - - - Provides a convenient shorthand when is - and the default value of represents zero. - - - - - Initializes a new instance of the class. - - The amount by which to increment each time this step is applied. - - Must increment the given value and return the result. - If the result is outside the range representable by , - must throw . If the result does not change due to lack - of precision representable by , must throw . - - - - - Increments the given value and returns the result. - If the result is outside the range representable by , - throws . If the result does not change due to lack - of precision representable by , throws . - - - - - - - Encapsulates the ability to increment a value by an amount - which may be of a different type. - - - - - Increments the given value and returns the result. - If the result is outside the range representable by , - throws . If the result does not change due to lack - of precision representable by , throws . - - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values of type . If the creation fails, - is thrown. - - - - - - Creates a from the specified value if the current instance is able to - use it to increment values of type . A return value indicates - whether the creation succeeded. - - - - - The IgnoredTestCaseData class represents a ignored TestCaseData. It adds - the ability to set a date until which the test will be ignored. - - - - - The previous RunState - - - - - Set the date that the test is being ignored until - - The date that the test is being ignored until - A modified TestCaseData. - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for equality with zero - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in XML format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the supplied argument - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual - value is of the exact type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is of the type supplied as an argument or a derived type. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable from the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable to the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is assignable to the type supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a collection containing the same elements as the - collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a subset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether the actual value - is a superset of the collection supplied as an argument. - - - - - Returns a constraint that tests whether a collection is ordered - - - - - Returns a constraint that tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is a subpath of the expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is the same path or under an expected path after canonicalization. - - - - - Returns a constraint that tests whether the actual value falls - inclusively within a specified range. - - Inclusive beginning of the range. - Inclusive end of the range. - - - - - Returns a constraint that tests if an item is equal to any of parameters - - Expected values - - - - When implemented by an attribute, this interface implemented to provide actions to execute before and after tests. - - - - - Executed before each test is run - - The test that is going to be run. - - - - Executed after each test is run - - The test that has just been run. - - - - Provides the target for the action attribute - - The target for the action attribute - - - - The Iz class is a synonym for Is intended for use in VB, - which regards Is as a keyword. - - - - - The List class is a helper class with properties and methods - that supply a number of constraints used with lists and collections. - - - - - List.Map returns a ListMapper, which can be used to map - the original collection to another collection. - - - - - - - ListMapper is used to transform a collection used as an actual argument - producing another collection to be used in the assertion. - - - - - Construct a ListMapper based on a collection - - The collection to be transformed - - - - Produces a collection containing all the values of a property - - The collection of property values - - - - - Basic Asserts on strings. - - - - - DO NOT USE! Use StringAssert.AreEqualIgnoringCase(...) or Assert.AreEqual(...) instead. - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - - - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string is not found within another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string is found within another string. - - The expected string - The string to be examined - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string starts with another string. - - The expected string - The string to be examined - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not start with another string. - - The expected string - The string to be examined - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string ends with another string. - - The expected string - The string to be examined - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not end with another string. - - The expected string - The string to be examined - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are equal, without regard to case. - - The expected string - The actual string - - - - Asserts that two strings are not equal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that two strings are not equal, without regard to case. - - The expected string - The actual string - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string matches an expected regular expression pattern. - - The regex pattern to be matched - The actual string - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - The message to display in case of failure - Arguments used in formatting the message - - - - Asserts that a string does not match an expected regular expression pattern. - - The regex pattern to be used - The actual string - - - - The TestCaseData class represents a set of arguments - and other parameter info to be used for a parameterized - test case. It is derived from TestCaseParameters and adds a - fluent syntax for use in initializing the test case. - - - - - Initializes a new instance of the class. - - The arguments. - - - - Initializes a new instance of the class. - - The argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - The third argument. - - - - Sets the expected result for the test - - The expected result - A modified TestCaseData - - - - Sets the name of the test case - - The modified TestCaseData instance - - - - Sets the list of display names to use as the parameters in the test name. - - - - - Sets the description for the test case - being constructed. - - The description. - The modified TestCaseData instance. - - - - Applies a category to the test - - - - - - - Applies a named property to the test - - - - - - - - Applies a named property to the test - - - - - - - - Applies a named property to the test - - - - - - - - Marks the test case as explicit. - - - - - Marks the test case as explicit, specifying the reason. - - - - - Ignores this TestCase, specifying the reason. - - The reason. - - - - - Provide the context information of the current test. - This is an adapter for the internal ExecutionContext - class, hiding the internals from the user test. - - - - - Construct a TestContext for an ExecutionContext - - The ExecutionContext to adapt - - - - Get the current test context. This is created - as needed. The user may save the context for - use within a test, but it should not be used - outside the test for which it is created. - - - - - Gets a TextWriter that will send output to the current test result. - - - - - Gets a TextWriter that will send output directly to Console.Error - - - - - Gets a TextWriter for use in displaying immediate progress messages - - - - - TestParameters object holds parameters for the test run, if any are specified - - - - - Static DefaultWorkDirectory is now used as the source - of the public instance property WorkDirectory. This is - a bit odd but necessary to avoid breaking user tests. - - - - - Get a representation of the current test. - - - - - Gets a Representation of the TestResult for the current test. - - - - - Gets the unique name of the Worker that is executing this test. - - - - - Gets the directory containing the current test assembly. - - - - - Gets the directory to be used for outputting files created - by this test run. - - - - - Gets the random generator. - - - The random generator. - - - - - Gets the number of assertions executed - up to this point in the test. - - - - - Get the number of times the current Test has been repeated - when using the or . - - - - Write the string representation of a boolean value to the current result - - - Write a char to the current result - - - Write a char array to the current result - - - Write the string representation of a double to the current result - - - Write the string representation of an Int32 value to the current result - - - Write the string representation of an Int64 value to the current result - - - Write the string representation of a decimal value to the current result - - - Write the string representation of an object to the current result - - - Write the string representation of a Single value to the current result - - - Write a string to the current result - - - Write the string representation of a UInt32 value to the current result - - - Write the string representation of a UInt64 value to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a formatted string to the current result - - - Write a line terminator to the current result - - - Write the string representation of a boolean value to the current result followed by a line terminator - - - Write a char to the current result followed by a line terminator - - - Write a char array to the current result followed by a line terminator - - - Write the string representation of a double to the current result followed by a line terminator - - - Write the string representation of an Int32 value to the current result followed by a line terminator - - - Write the string representation of an Int64 value to the current result followed by a line terminator - - - Write the string representation of a decimal value to the current result followed by a line terminator - - - Write the string representation of an object to the current result followed by a line terminator - - - Write the string representation of a Single value to the current result followed by a line terminator - - - Write a string to the current result followed by a line terminator - - - Write the string representation of a UInt32 value to the current result followed by a line terminator - - - Write the string representation of a UInt64 value to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - Write a formatted string to the current result followed by a line terminator - - - - This method adds the a new ValueFormatterFactory to the - chain of responsibility used for formatting values in messages. - The scope of the change is the current TestContext. - - The factory delegate - - - - Attach a file to the current test result - - Relative or absolute file path to attachment - Optional description of attachment - - - - This method provides a simplified way to add a ValueFormatter - delegate to the chain of responsibility, creating the factory - delegate internally. It is useful when the Type of the object - is the only criterion for selection of the formatter, since - it can be used without getting involved with a compound function. - - The type supported by this formatter - The ValueFormatter delegate - - - - TestAdapter adapts a Test for consumption by - the user test code. - - - - - Construct a TestAdapter for a Test - - The Test to be adapted - - - - Gets the unique Id of a test - - - - - The name of the test, which may or may not be - the same as the method name. - - - - - The name of the method representing the test. - - - - - The FullName of the test - - - - - The ClassName of the test - - - - - A shallow copy of the properties of the test. - - - - - The arguments to use in creating the test or empty array if none are required. - - - - - ResultAdapter adapts a TestResult for consumption by - the user test code. - - - - - Construct a ResultAdapter for a TestResult - - The TestResult to be adapted - - - - Gets a ResultState representing the outcome of the test - up to this point in its execution. - - - - - Gets a list of the assertion results generated - up to this point in the test. - - - - - Gets the message associated with a test - failure or with not running the test - - - - - Gets any stack trace associated with an - error or failure. - - - - - Gets the number of test cases that failed - when running the test and all its children. - - - - - Gets the number of test cases that had warnings - when running the test and all its children. - - - - - Gets the number of test cases that passed - when running the test and all its children. - - - - - Gets the number of test cases that were skipped - when running the test and all its children. - - - - - Gets the number of test cases that were inconclusive - when running the test and all its children. - - - - - adapts an - for consumption by the user. - - - - - Construct a from a source - . - - - - - Get the first property with the given , if it can be found, otherwise - returns null. - - - - - Indicates whether is found in this - . - - - - - Returns a collection of properties - with the given . - - - - - Returns the count of elements with the given . - - - - - Returns a collection of the property keys. - - - - - The TestFixtureData class represents a set of arguments - and other parameter info to be used for a parameterized - fixture. It is derived from TestFixtureParameters and adds a - fluent syntax for use in initializing the fixture. - - - - - Initializes a new instance of the class. - - The arguments. - - - - Initializes a new instance of the class. - - The argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - - - - Initializes a new instance of the class. - - The first argument. - The second argument. - The third argument. - - - - Sets the name of the test fixture - - The modified TestFixtureData instance - - - - Sets the list of display names to use as the parameters in the test name. - - - - - Marks the test fixture as explicit. - - - - - Marks the test fixture as explicit, specifying the reason. - - - - - Ignores this TestFixture, specifying the reason. - - The reason. - - - - - TestParameters class holds any named parameters supplied to the test run - - - - - Gets the number of test parameters - - - - - Gets a collection of the test parameter names - - - - - Gets a flag indicating whether a parameter with the specified name exists. - - Name of the parameter - True if it exists, otherwise false - - - - Indexer provides access to the internal dictionary - - Name of the parameter - Value of the parameter or null if not present - - - - Get method is a simple alternative to the indexer - - Name of the parameter - Value of the parameter or null if not present - - - - Get the value of a parameter or a default string - - Name of the parameter - Default value of the parameter - Value of the parameter or default value if not present - - - - Get the value of a parameter or return a default - - The return Type - Name of the parameter - Default value of the parameter - Value of the parameter or default value if not present - - - - Adds a parameter to the list - - Name of the parameter - Value of the parameter - - - - Helper class with properties and methods that supply - constraints that operate on exceptions. - - - - - Creates a constraint specifying an expected exception - - - - - Creates a constraint specifying an exception with a given InnerException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying an expected ArgumentException - - - - - Creates a constraint specifying an expected ArgumentNullException - - - - - Creates a constraint specifying an expected InvalidOperationException - - - - - Creates a constraint specifying that no exception is thrown - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Provides static methods to express conditions - that must be met for the test to succeed. If - any test fails, a warning is issued. - - - - - DO NOT USE! - The Equals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - Not applicable - - - - DO NOT USE! - The ReferenceEquals method throws an InvalidOperationException. This is done - to make sure there is no mistake by calling this function. - - The left object. - The right object. - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Asserts that the code represented by a delegate throws an exception - that satisfies the constraint provided. - - A TestDelegate to be executed - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on success. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on success. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning on failure. - - The Type being compared. - An ActualValueDelegate returning the value to be tested - A Constraint expression to be applied - A function to build the message included with the Exception - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - The message to display if the condition is false - Arguments to be used in formatting the message - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - - - - Asserts that a condition is true. If the condition is false, a warning is issued. - - The evaluated condition - A function to build the message included with the Exception - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - The message to display if the condition is true - Arguments to be used in formatting the message - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - - - - Asserts that a condition is false. If the condition is true a warning is issued. - - A lambda that returns a Boolean - A function to build the message included with the Exception - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning if it succeeds. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - fails and issuing a warning if it succeeds. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and issuing a warning on failure. - - The Type being compared. - The actual value to test - A Constraint expression to be applied - A function to build the message included with the Exception - - - - FrameworkPackageSettings is a static class containing constant values that - are used as keys in setting up a TestPackage. These values are used in - the framework, and set in the runner. Setting values may be a string, int or bool. - - - - - Flag (bool) indicating whether tests are being debugged. - - - - - Flag (bool) indicating whether to pause execution of tests to allow - the user to attach a debugger. - - - - - The InternalTraceLevel for this run. Values are: "Default", - "Off", "Error", "Warning", "Info", "Debug", "Verbose". - Default is "Off". "Debug" and "Verbose" are synonyms. - - - - - Full path of the directory to be used for work and result files. - This path is provided to tests by the framework TestContext. - - - - - Integer value in milliseconds for the default timeout value - for test cases. If not specified, there is no timeout except - as specified by attributes on the tests themselves. - - - - - A string representing the default thread culture to be used for - running tests. String should be a valid BCP-47 culture name. If - culture is unset, tests run on the machine's default culture. - - - - - A string representing the default thread UI culture to be used for - running tests. String should be a valid BCP-47 culture name. If - culture is unset, tests run on the machine's default culture. - - - - - A TextWriter to which the internal trace will be sent. - - - - - A list of tests to be loaded. - - - - - The number of test threads to run for the assembly. If set to - 1, a single queue is used. If set to 0, tests are executed - directly, without queuing. - - - - - The random seed to be used for this assembly. If specified - as the value reported from a prior run, the framework should - generate identical random values for tests as were used for - that run, provided that no change has been made to the test - assembly. Default is a random value itself. - - - - - If true, execution stops after the first error or failure. - - - - - If true, use of the event queue is suppressed and test events are synchronous. - - - - - The default naming pattern used in generating test names - - - - - Parameters to be passed on to the tests, serialized to a single string which needs parsing. Obsoleted by ; kept for backward compatibility. - - - - - Parameters to be passed on to the tests, already parsed into an IDictionary<string, string>. Replaces . - - - - - If true, the tests will run on the same thread as the NUnit runner itself - - - - - Provides a platform-independent methods for getting attributes - for use by AttributeConstraint and AttributeExistsConstraint. - - - - - Gets the custom attributes from the given object. - - The actual. - Type of the attribute. - if set to [inherit]. - A list of the given attribute on the given object. - - - - A MarshalByRefObject that lives forever - - - - - Obtains a lifetime service object to control the lifetime policy for this instance. - - - - Specifies that null is allowed as an input even if the corresponding type disallows it. - - - Specifies that null is disallowed as an input even if the corresponding type allows it. - - - Specifies that an output may be null even if the corresponding type disallows it. - - - Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns. - - - Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter may be null. - - - - Gets the return value condition. - - - Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it. - - - Initializes the attribute with the specified return value condition. - - The return value condition. If the method returns this value, the associated parameter will not be null. - - - - Gets the return value condition. - - - Specifies that the output will be non-null if the named parameter is non-null. - - - Initializes the attribute with the associated parameter name. - - The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null. - - - - Gets the associated parameter name. - - - Applied to a method that will never return under any circumstance. - - - Specifies that the method will not return if the associated Boolean parameter is passed the specified value. - - - Initializes the attribute with the specified parameter value. - - The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to - the associated parameter matches this value. - - - - Gets the condition parameter value. - - - - A shim of the .NET interface for platforms that do not support it. - Used to indicate that a control can be the target of a callback event on the server. - - - - - Processes a callback event that targets a control. - - - - - - Returns the results of a callback event that targets a control. - - - - - diff --git a/src/Faker.Net.4.5/Faker.Net.4.5.csproj b/src/Faker.Net.4.5/Faker.Net.4.5.csproj deleted file mode 100644 index b7e4bae..0000000 --- a/src/Faker.Net.4.5/Faker.Net.4.5.csproj +++ /dev/null @@ -1,192 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {977F04DE-CEDD-47DF-A574-0D9FD88BDDDB} - Library - Properties - Faker - Faker.Net.4.5 - v4.5.2 - 512 - 8.0 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - - - - - Address.cs - - - Boolean.cs - - - Company.cs - - - Config.cs - - - Country.cs - - - Currency.cs - - - Enum.cs - - - Extensions\ArrayExtensions.cs - - - Extensions\EnumerableExtensions.cs - - - Extensions\StringExtensions.cs - - - Finance.cs - - - Helpers\UkHelper.cs - - - Identification.cs - - - Internet.cs - - - Lorem.cs - - - Name.cs - - - Phone.cs - - - Properties\AssemblyInfo.cs - - - RandomNumber.cs - - - Resources\Address.Designer.cs - - - Resources\Company.Designer.cs - - - Resources\Country.Designer.cs - - - Resources\Currency.Designer.cs - - - Resources\Identification.Designer.cs - - - Resources\Internet.Designer.cs - - - Resources\Lorem.Designer.cs - - - Resources\Name.Designer.cs - - - Resources\Phone.Designer.cs - - - - - - Resources\Address.de-DE.resx - - - Resources\Address.resx - - - Resources\Company.de-DE.resx - - - Resources\Company.resx - - - Resources\Country.de-DE.resx - - - Resources\Country.resx - - - Resources\Currency.de-DE.resx - - - Resources\Currency.resx - - - Resources\Identification.de-DE.resx - - - Resources\Identification.resx - - - Resources\Internet.de-DE.resx - - - Resources\Internet.resx - - - Resources\Lorem.de-DE.resx - - - Resources\Lorem.resx - - - Resources\Name.de-DE.resx - - - Resources\Name.resx - - - Resources\Phone.de-DE.resx - - - Resources\Phone.resx - - - - - \ No newline at end of file diff --git a/src/Faker.Net.4.6/Faker.Net.4.6.csproj b/src/Faker.Net.4.6/Faker.Net.4.6.csproj deleted file mode 100644 index ee73458..0000000 --- a/src/Faker.Net.4.6/Faker.Net.4.6.csproj +++ /dev/null @@ -1,192 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {2DB90FE5-C60B-4E1E-A584-FE6F8323F18D} - Library - Properties - Faker - Faker.Net.4.6 - v4.6.2 - 512 - - 8.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - - - - - Address.cs - - - Boolean.cs - - - Company.cs - - - Config.cs - - - Country.cs - - - Currency.cs - - - Enum.cs - - - Extensions\ArrayExtensions.cs - - - Extensions\EnumerableExtensions.cs - - - Extensions\StringExtensions.cs - - - Finance.cs - - - Helpers\UkHelper.cs - - - Identification.cs - - - Internet.cs - - - Lorem.cs - - - Name.cs - - - Phone.cs - - - Properties\AssemblyInfo.cs - - - RandomNumber.cs - - - Resources\Address.Designer.cs - - - Resources\Company.Designer.cs - - - Resources\Country.Designer.cs - - - Resources\Currency.Designer.cs - - - Resources\Identification.Designer.cs - - - Resources\Internet.Designer.cs - - - Resources\Lorem.Designer.cs - - - Resources\Name.Designer.cs - - - Resources\Phone.Designer.cs - - - - - - Resources\Address.de-DE.resx - - - Resources\Address.resx - - - Resources\Company.de-DE.resx - - - Resources\Company.resx - - - Resources\Country.de-DE.resx - - - Resources\Country.resx - - - Resources\Currency.de-DE.resx - - - Resources\Currency.resx - - - Resources\Identification.de-DE.resx - - - Resources\Identification.resx - - - Resources\Internet.de-DE.resx - - - Resources\Internet.resx - - - Resources\Lorem.de-DE.resx - - - Resources\Lorem.resx - - - Resources\Name.de-DE.resx - - - Resources\Name.resx - - - Resources\Phone.de-DE.resx - - - Resources\Phone.resx - - - - - \ No newline at end of file diff --git a/src/Faker.Net.4.7/Faker.Net.4.7.csproj b/src/Faker.Net.4.7/Faker.Net.4.7.csproj deleted file mode 100644 index 37abebf..0000000 --- a/src/Faker.Net.4.7/Faker.Net.4.7.csproj +++ /dev/null @@ -1,192 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {D6531C7D-3B24-4B65-A185-E50EC851D102} - Library - Properties - Faker - Faker.Net.4.7 - v4.7.2 - 512 - - 8.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - - - - - Address.cs - - - Boolean.cs - - - Company.cs - - - Config.cs - - - Country.cs - - - Currency.cs - - - Enum.cs - - - Extensions\ArrayExtensions.cs - - - Extensions\EnumerableExtensions.cs - - - Extensions\StringExtensions.cs - - - Finance.cs - - - Helpers\UkHelper.cs - - - Identification.cs - - - Internet.cs - - - Lorem.cs - - - Name.cs - - - Phone.cs - - - Properties\AssemblyInfo.cs - - - RandomNumber.cs - - - Resources\Address.Designer.cs - - - Resources\Company.Designer.cs - - - Resources\Country.Designer.cs - - - Resources\Currency.Designer.cs - - - Resources\Identification.Designer.cs - - - Resources\Internet.Designer.cs - - - Resources\Lorem.Designer.cs - - - Resources\Name.Designer.cs - - - Resources\Phone.Designer.cs - - - - - - Resources\Address.de-DE.resx - - - Resources\Address.resx - - - Resources\Company.de-DE.resx - - - Resources\Company.resx - - - Resources\Country.de-DE.resx - - - Resources\Country.resx - - - Resources\Currency.de-DE.resx - - - Resources\Currency.resx - - - Resources\Identification.de-DE.resx - - - Resources\Identification.resx - - - Resources\Internet.de-DE.resx - - - Resources\Internet.resx - - - Resources\Lorem.de-DE.resx - - - Resources\Lorem.resx - - - Resources\Name.de-DE.resx - - - Resources\Name.resx - - - Resources\Phone.de-DE.resx - - - Resources\Phone.resx - - - - - \ No newline at end of file diff --git a/src/Faker.Net.4.8/Faker.Net.4.8.csproj b/src/Faker.Net.4.8/Faker.Net.4.8.csproj deleted file mode 100644 index b107aec..0000000 --- a/src/Faker.Net.4.8/Faker.Net.4.8.csproj +++ /dev/null @@ -1,183 +0,0 @@ - - - - - Debug - AnyCPU - {2D24F94E-41CD-4A14-A9A7-A4F456368BA7} - Library - Properties - Faker - Faker.Net.4.8 - v4.8 - 512 - true - - 8.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - Address.cs - - - Boolean.cs - - - Company.cs - - - Config.cs - - - Country.cs - - - Currency.cs - - - Enum.cs - - - Extensions\ArrayExtensions.cs - - - Extensions\EnumerableExtensions.cs - - - Extensions\StringExtensions.cs - - - Finance.cs - - - Helpers\UkHelper.cs - - - Identification.cs - - - Internet.cs - - - Lorem.cs - - - Name.cs - - - Phone.cs - - - Properties\AssemblyInfo.cs - - - RandomNumber.cs - - - Resources\Address.Designer.cs - - - Resources\Company.Designer.cs - - - Resources\Country.Designer.cs - - - Resources\Currency.Designer.cs - - - Resources\Identification.Designer.cs - - - Resources\Internet.Designer.cs - - - Resources\Lorem.Designer.cs - - - Resources\Name.Designer.cs - - - Resources\Phone.Designer.cs - - - - - Resources\Address.de-DE.resx - - - Resources\Address.resx - - - Resources\Company.de-DE.resx - - - Resources\Company.resx - - - Resources\Country.de-DE.resx - - - Resources\Country.resx - - - Resources\Currency.de-DE.resx - - - Resources\Currency.resx - - - Resources\Identification.de-DE.resx - - - Resources\Identification.resx - - - Resources\Internet.de-DE.resx - - - Resources\Internet.resx - - - Resources\Lorem.de-DE.resx - - - Resources\Lorem.resx - - - Resources\Name.de-DE.resx - - - Resources\Name.resx - - - Resources\Phone.de-DE.resx - - - Resources\Phone.resx - - - - \ No newline at end of file diff --git a/src/Faker.Net.5.0/Faker.Net.5.0.csproj b/src/Faker.Net.5.0/Faker.Net.5.0.csproj deleted file mode 100644 index a813a96..0000000 --- a/src/Faker.Net.5.0/Faker.Net.5.0.csproj +++ /dev/null @@ -1,72 +0,0 @@ - - - - net5.0 - Faker - 1.0.0 - 1.0.0.0 - 1.0.0.0 - https://github.com/oriches/faker-cs - false - 8.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Faker.Net.6.0/Faker.Net.6.0.csproj b/src/Faker.Net.6.0/Faker.Net.6.0.csproj deleted file mode 100644 index 7dc8bd4..0000000 --- a/src/Faker.Net.6.0/Faker.Net.6.0.csproj +++ /dev/null @@ -1,72 +0,0 @@ - - - - net6.0 - Faker - enable - 1.0.0 - 1.0.0.0 - 1.0.0.0 - https://github.com/oriches/faker-cs - false - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Faker.Net.Core.3.0/Faker.Net.Core.3.0.csproj b/src/Faker.Net.Core.3.0/Faker.Net.Core.3.0.csproj deleted file mode 100644 index a418204..0000000 --- a/src/Faker.Net.Core.3.0/Faker.Net.Core.3.0.csproj +++ /dev/null @@ -1,72 +0,0 @@ - - - - netcoreapp3.0 - Faker.Net - Faker - Faker.Net.Core.3.0 - 1.0.0 - 1.0.0.0 - 1.0.0.0 - https://github.com/oriches/faker-cs - false - 8.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Faker.Net.Core.3.1/AssemblyInfo.cs b/src/Faker.Net.Core.3.1/AssemblyInfo.cs deleted file mode 100644 index 74727a6..0000000 --- a/src/Faker.Net.Core.3.1/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("Faker.Tests.Net.Core.3.1")] \ No newline at end of file diff --git a/src/Faker.Net.Core.3.1/Faker - Backup.Net.Core.3.1.csproj b/src/Faker.Net.Core.3.1/Faker - Backup.Net.Core.3.1.csproj deleted file mode 100644 index 91c6b28..0000000 --- a/src/Faker.Net.Core.3.1/Faker - Backup.Net.Core.3.1.csproj +++ /dev/null @@ -1,75 +0,0 @@ - - - - netcoreapp3.1 - Faker - Faker - 1.0.0 - 1.0.0.0 - 1.0.0.0 - https://github.com/oriches/faker-cs - false - 8.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ResXFileCodeGenerator - - - - diff --git a/src/Faker.Net.Core.3.1/Faker.Net.Core.3.1.csproj b/src/Faker.Net.Core.3.1/Faker.Net.Core.3.1.csproj deleted file mode 100644 index 3359990..0000000 --- a/src/Faker.Net.Core.3.1/Faker.Net.Core.3.1.csproj +++ /dev/null @@ -1,71 +0,0 @@ - - - - netcoreapp3.1 - Faker - Faker - 1.0.0 - 1.0.0.0 - 1.0.0.0 - https://github.com/oriches/faker-cs - false - 8.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Faker.Net.Standard.2.0/Faker.Net.Standard.2.0.csproj b/src/Faker.Net.Standard.2.0/Faker.Net.Standard.2.0.csproj deleted file mode 100644 index c73dbe7..0000000 --- a/src/Faker.Net.Standard.2.0/Faker.Net.Standard.2.0.csproj +++ /dev/null @@ -1,70 +0,0 @@ - - - - netstandard2.0 - Faker - 1.0.0 - 1.0.0.0 - 1.0.0.0 - https://github.com/oriches/faker-cs - false - 8.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Faker.Net.Standard.2.1/Faker.Net.Standard.2.1.csproj b/src/Faker.Net.Standard.2.1/Faker.Net.Standard.2.1.csproj deleted file mode 100644 index d1964aa..0000000 --- a/src/Faker.Net.Standard.2.1/Faker.Net.Standard.2.1.csproj +++ /dev/null @@ -1,70 +0,0 @@ - - - - netstandard2.1 - Faker - 1.0.0 - 1.0.0.0 - 1.0.0.0 - https://github.com/oriches/faker-cs - false - 8.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Faker/Faker.csproj b/src/Faker/Faker.csproj index caedf25..39b9463 100644 --- a/src/Faker/Faker.csproj +++ b/src/Faker/Faker.csproj @@ -1,167 +1,70 @@ - - + + - Debug - AnyCPU - 9.0.21022 - 2.0 - {598D73F1-9EBD-494A-A244-7AA4E7FB7591} - Library - Properties - Faker - Faker - v3.5 - 512 - - - 3.5 - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - ..\..\..\faker-cs\ - true - + {598D73F1-9EBD-494A-A244-7AA4E7FB7591} + Library + Faker + Faker + netstandard2.0;netcoreapp3.0;net40 + 8.0 + 2.1.0 + 2.1.0.0 + 2.1.0.0 + https://github.com/oriches/faker-cs + false + bin\ + 2.1.0.0 + Faker.Net + Faker.Net + 2.1.0.0 + Ben Smith, Ollie Riches, Robin Michael 2022 + True + Faker, Testing, TDD, .Net, .Net Standard, .Net Core + C# port of the Ruby Faker gem (http://faker.rubyforge.org/) and is used to easily generate fake data: names, addresses, phone numbers, etc. + Ben Smith,Ollie Riches,Robin Michael + Faker.Net + https://github.com/oriches/faker-cs - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - AllRules.ruleset - false - - - - - 3.5 - - - - - - - - - - - - - - - - - - - - True - True - Address.resx - - - True - True - Company.resx - - - True - True - Internet.resx - - - True - True - Lorem.resx - - - True - True - Name.resx - - - True - True - Phone.resx - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - False - Windows Installer 3.1 - true - - - - - - ResXFileCodeGenerator - Address.Designer.cs - - - - ResXFileCodeGenerator - Company.Designer.cs - - - - ResXFileCodeGenerator - Internet.Designer.cs - - - - ResXFileCodeGenerator - Lorem.Designer.cs - - - - ResXFileCodeGenerator - Name.Designer.cs - - - - ResXFileCodeGenerator - Phone.Designer.cs - - - - - + \ No newline at end of file diff --git a/tests/Faker.Tests/Properties/AssemblyInfo.cs b/tests/Faker.Tests/Properties/AssemblyInfo.cs deleted file mode 100644 index ebfddbb..0000000 --- a/tests/Faker.Tests/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Faker.Tests")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Faker.Tests")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("eb5f7f1f-5dbf-4941-974c-6eb159de604b")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/tests/Faker.Tests/packages.config b/tests/Faker.Tests/packages.config deleted file mode 100644 index eec7bad..0000000 --- a/tests/Faker.Tests/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file From 0732d7b868b0f45de3b1ab7b709583d0f12870f0 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Sun, 21 Jan 2024 20:43:30 +1100 Subject: [PATCH 2/4] fix readme --- README.markdown | 154 ++++++++++++++++++++++++------------------------ 1 file changed, 77 insertions(+), 77 deletions(-) diff --git a/README.markdown b/README.markdown index 79dff31..fe4b5e5 100644 --- a/README.markdown +++ b/README.markdown @@ -1,77 +1,77 @@ -# Faker - -[![NuGet](https://img.shields.io/nuget/v/faker.net.svg)](https://www.nuget.org/packages/faker.net) -[![Build status](https://ci.appveyor.com/api/projects/status/uy628dn0tfl0triy?svg=true)](https://ci.appveyor.com/project/oriches/faker-cs) -[![FuGet](https://www.fuget.org/packages/Faker.Net/badge.svg)](https://www.fuget.org/packages/Faker.Net/badge.svg) - -Codebase is built with AppVeyor and manually deployed to the offical nuGet feed from there. - -C# port of the Ruby Faker gem (http://faker.rubyforge.org/) and is used to easily generate fake data: - - addresses (UK, US), - boolean, - companies, - countries, - currencies, - enums, - finance (isin, ticker, coupon, maturity, bond name), - identification (social security number (US), MBI (US), national insurance number (UK), passport number (UK & US), Bulgarian Person Identification Number(PIN/ENG)) - internet (email, domain names, user names), - lorem ipsum, - names, - phone numbers - -Available as a NuGet package (https://nuget.org/packages/Faker.Net). - -Get the code via git: - - git clone git://github.com/slashdotdash/faker-cs.git - -Example code -```CSharp -var name = Faker.Name.FullName(); // Tod Yundt -var firstName = Faker.Name.First(); // Orlando -var lastName = Faker.Name.Last(); // Brekke -var address = Faker.Address.StreetAddress(); // 713 Pfeffer Bridge -var city = Faker.Address.City(); // Reynaton -var number = Faker.RandomNumber.Next(100); // 30 -var dob = Faker.Identification.DateOfBirth(); // 1971-11-16T00:00:00.0000000Z - -// US - United States -var ssn = Faker.Identification.SocialSecurityNumber(); // 249-17-9666 -var mbi = Faker.Identification.MedicareBeneficiaryIdentifier(); // 8NK0Q74KT53 -var usPassport = Faker.Identification.UsPassportNumber(); // 335587506 - -// UK - United Kingdom -var nin = Faker.Identification.UkNationalInsuranceNumber(); // YA171053Y -var ninFormatted = Faker.Identification.UkNationalInsuranceNumber(true); // YA 17 10 53 Y -var ukPassport = Faker.Identification.UkPassportNumber(); // 496675685 -var ukNhs = Faker.Identification.UkNhsNumber(); // 6584168301 -var ukNhsFormatted = Faker.Identification.UkNhsNumber(true); // 658 416 8301 - -// BG - Bulgaria -var bulgarianPin = Faker.Identification.BulgarianPin(); //6402142606 -``` - -Supported versions: - - .NET framework 4.5, - .NET framework 4.6, - .NET framework 4.7, - .NET framework 4.8, - .NET Standard 2.0, - .NET Standard 2.1, - .NET Core 3.0, - .NET Core 3.1, - .NET 5.0, - .NET 6.0 - -No longer supported in nuGet package (1.1 going forward): - - .NET framework 3.5 SP1, - .NET framework 4.0, - Silverlight 3.0, - Silverlight 4.0, - Silverlight 5.0, - Windows Phone 7, - Windows Phone 7.1 +# Faker + +[![NuGet](https://img.shields.io/nuget/v/faker.net.svg)](https://www.nuget.org/packages/faker.net) +[![Build status](https://ci.appveyor.com/api/projects/status/uy628dn0tfl0triy?svg=true)](https://ci.appveyor.com/project/oriches/faker-cs) +[![FuGet](https://www.fuget.org/packages/Faker.Net/badge.svg)](https://www.fuget.org/packages/Faker.Net/badge.svg) + +Codebase is built with AppVeyor and manually deployed to the offical nuGet feed from there. + +C# port of the Ruby Faker gem (http://faker.rubyforge.org/) and is used to easily generate fake data: + + addresses (UK, US), + boolean, + companies, + countries, + currencies, + enums, + finance (isin, ticker, coupon, maturity, bond name), + identification (social security number (US), MBI (US), national insurance number (UK), passport number (UK & US), Bulgarian Person Identification Number(PIN/ENG)) + internet (email, domain names, user names), + lorem ipsum, + names, + phone numbers + +Available as a NuGet package (https://nuget.org/packages/Faker.Net). + +Get the code via git: + + git clone git://github.com/slashdotdash/faker-cs.git + +Example code +```CSharp +var name = Faker.Name.FullName(); // Tod Yundt +var firstName = Faker.Name.First(); // Orlando +var lastName = Faker.Name.Last(); // Brekke +var address = Faker.Address.StreetAddress(); // 713 Pfeffer Bridge +var city = Faker.Address.City(); // Reynaton +var number = Faker.RandomNumber.Next(100); // 30 +var dob = Faker.Identification.DateOfBirth(); // 1971-11-16T00:00:00.0000000Z + +// US - United States +var ssn = Faker.Identification.SocialSecurityNumber(); // 249-17-9666 +var mbi = Faker.Identification.MedicareBeneficiaryIdentifier(); // 8NK0Q74KT53 +var usPassport = Faker.Identification.UsPassportNumber(); // 335587506 + +// UK - United Kingdom +var nin = Faker.Identification.UkNationalInsuranceNumber(); // YA171053Y +var ninFormatted = Faker.Identification.UkNationalInsuranceNumber(true); // YA 17 10 53 Y +var ukPassport = Faker.Identification.UkPassportNumber(); // 496675685 +var ukNhs = Faker.Identification.UkNhsNumber(); // 6584168301 +var ukNhsFormatted = Faker.Identification.UkNhsNumber(true); // 658 416 8301 + +// BG - Bulgaria +var bulgarianPin = Faker.Identification.BulgarianPin(); //6402142606 +``` + +Supported versions: + + .NET framework 4.0, + .NET framework 4.5, + .NET framework 4.6, + .NET framework 4.7, + .NET framework 4.8, + .NET Standard 2.0, + .NET Standard 2.1, + .NET Core 3.0, + .NET Core 3.1, + .NET 5.0, + .NET 6.0 + +No longer supported in nuGet package (1.1 going forward): + + .NET framework 3.5 SP1, + Silverlight 3.0, + Silverlight 4.0, + Silverlight 5.0, + Windows Phone 7, + Windows Phone 7.1 From 4e3ba570b5c0c01a505441a524477615e9c9be14 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Mon, 22 Jan 2024 08:07:26 +1100 Subject: [PATCH 3/4] #32 Licence expression is being set correctly --- src/Faker/Faker.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Faker/Faker.csproj b/src/Faker/Faker.csproj index 39b9463..c948ef1 100644 --- a/src/Faker/Faker.csproj +++ b/src/Faker/Faker.csproj @@ -23,6 +23,7 @@ C# port of the Ruby Faker gem (http://faker.rubyforge.org/) and is used to easily generate fake data: names, addresses, phone numbers, etc. Ben Smith,Ollie Riches,Robin Michael Faker.Net + MIT https://github.com/oriches/faker-cs From dea38692aa5f19f118cb3a9c378394eb3c5e625a Mon Sep 17 00:00:00 2001 From: James Thompson Date: Thu, 25 Jan 2024 19:03:59 +1100 Subject: [PATCH 4/4] switch to netstandard 2.1 over netcoreapp --- src/Faker/Faker.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Faker/Faker.csproj b/src/Faker/Faker.csproj index c948ef1..bc3e7b0 100644 --- a/src/Faker/Faker.csproj +++ b/src/Faker/Faker.csproj @@ -5,7 +5,7 @@ Library Faker Faker - netstandard2.0;netcoreapp3.0;net40 + netstandard2.0;netstandard2.1;net40 8.0 2.1.0 2.1.0.0

mf0uEhNzU6;~Z5o5@E}sa>uHz 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 - - - nunit.framework - - - -

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