From 77e839099759e65639c05c6165237282df258c77 Mon Sep 17 00:00:00 2001 From: ShaKaRee Date: Fri, 19 Jun 2015 13:38:34 +0200 Subject: [PATCH] update to Concordion.NET 1.3.0 and NUnit 2.6.4 --- Kickstart.Spec/Kickstart.Spec.csproj | 124 +- Kickstart.Test/Kickstart.Test.csproj | 122 +- lib/Concordion/Concordion.NUnit.dll | Bin 9216 -> 9216 bytes lib/Concordion/Concordion.dll | Bin 103936 -> 103424 bytes lib/{NUnit.2.6.3 => NUnit-2.6.4}/license.txt | 30 +- lib/NUnit-2.6.4/nunit.framework.dll | Bin 0 -> 151552 bytes lib/NUnit.2.6.3/nunit.framework.dll | Bin 151552 -> 0 bytes lib/NUnit.2.6.3/nunit.framework.xml | 10960 ----------------- 8 files changed, 138 insertions(+), 11098 deletions(-) rename lib/{NUnit.2.6.3 => NUnit-2.6.4}/license.txt (89%) create mode 100644 lib/NUnit-2.6.4/nunit.framework.dll delete mode 100644 lib/NUnit.2.6.3/nunit.framework.dll delete mode 100644 lib/NUnit.2.6.3/nunit.framework.xml diff --git a/Kickstart.Spec/Kickstart.Spec.csproj b/Kickstart.Spec/Kickstart.Spec.csproj index 5a2bb9b..7d86098 100644 --- a/Kickstart.Spec/Kickstart.Spec.csproj +++ b/Kickstart.Spec/Kickstart.Spec.csproj @@ -1,69 +1,69 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {F170F9C9-3398-47E2-96E4-D24AF979DE10} - Library - Properties - Kickstart.Spec - Kickstart.Spec - v4.0 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\lib\Concordion\Concordion.dll - - - False - ..\lib\NUnit.2.6.3\nunit.framework.dll - - - ..\lib\Concordion\OGNL.dll - - - - - - - - - - - {6C4F96CB-9762-4F3D-A7BF-F74422B186CA} - Kickstart - - - - - - + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {F170F9C9-3398-47E2-96E4-D24AF979DE10} + Library + Properties + Kickstart.Spec + Kickstart.Spec + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\lib\Concordion\Concordion.dll + + + False + ..\lib\NUnit-2.6.4\nunit.framework.dll + + + ..\lib\Concordion\OGNL.dll + + + + + + + + + + + {6C4F96CB-9762-4F3D-A7BF-F74422B186CA} + Kickstart + + + + + + + --> \ No newline at end of file diff --git a/Kickstart.Test/Kickstart.Test.csproj b/Kickstart.Test/Kickstart.Test.csproj index f9fe5f8..0a85174 100644 --- a/Kickstart.Test/Kickstart.Test.csproj +++ b/Kickstart.Test/Kickstart.Test.csproj @@ -1,68 +1,68 @@ - - - - Debug - AnyCPU - - - 2.0 - {57B2B687-19C0-42F4-9AAF-610869474BBA} - Library - Properties - Kickstart.Test - Kickstart.Test - v4.0 - 512 - {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\lib\NUnit.2.6.3\nunit.framework.dll - - - - 3.5 - - - - - False - - - - - - - - - {6C4F96CB-9762-4F3D-A7BF-F74422B186CA} - Kickstart - - - + + + + Debug + AnyCPU + + + 2.0 + {57B2B687-19C0-42F4-9AAF-610869474BBA} + Library + Properties + Kickstart.Test + Kickstart.Test + v4.0 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\lib\NUnit-2.6.4\nunit.framework.dll + + + + 3.5 + + + + + False + + + + + + + + + {6C4F96CB-9762-4F3D-A7BF-F74422B186CA} + Kickstart + + + + --> \ No newline at end of file diff --git a/lib/Concordion/Concordion.NUnit.dll b/lib/Concordion/Concordion.NUnit.dll index 3983c8d274fc88ac75128371bf72b3b1245b8e5e..9b87a2a4bf6929d9c599fe8b411173899a618c35 100644 GIT binary patch delta 498 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⩔FR7k(Ke+jhUWtC3T6fJmNrH@Fr5r0tWHt9Cv1C=z%KN>jtZxF#W>BEzM zA+l{yPP0BWS!djYiK;R`*`Fv~A-USmW3xigqmRw_JRa?$NaJR_BgsoThp`otnw2S{ z`#h=Nf=)?ZeL|mXqFhBsKC|^NU~#kf{Gs(7)aPs6i@01dg<*Y80skDV?8*bXD=#CL>$6`q>5R)Ba*?|ozjmZwT?Zk90EH}f20ole~xQB@5 z_v-&V;2zt9uS=y@e|NykL~lt_ioX{>S9H)lWsGqzW^58}I@o9aFS31@uhLiknXn({ zs`S18PPQMtD&6zn&kka%N)O2L5FQaEKL4}5I1(eb>T!Vo2?L8W9# zCsoP}EQiB*Ri#Oi{voLeN&_=V_oJetYo~*J_TH?7y*}_ZJAykTc{&W60`IX`@S&nK z?3Z*}2Gar?vfr@1f&tP^3tS`mJr=9F^Myr_6t1nLZ z5ZZ8(N;N5UM1=}@^i3&WvE#U0q9}JA9LKj5g3T#2j3+Q-i*VBf+a#S<>4>D17Zly8 zlrpkhq|!x6Csn#3>G2nZrB@%7T4XqZc`A9*Quq0szycLVr7kf30jpHXPpu|uP-$jr zy|Ep+O0}s?L|Y{_$s|tVS%oNxeLg4A@jE#oY)H+7*YG__P4G(UM&oOky;TYOh=;N` zg=H#=NKfG^l|)XbaIZr07@oqTk~YK0wAV;?MWsd2XYrm&)6y;&&!d*U zoTC~_FYjQ0q|M+;^L%W42gg66d=Cp$Wp&yY#`myUl2^Yht;lcz_p8*Jw$JAR9_<>p z&*zVLUJ^YA2KB~^cvZC&kMfuBwo2l%zJx!j^m0_%5S4DGePg_g zu`2y7?KV-0B$35E;|G}A7I@`;cir7A`m+{>wVA#&pl)QgfRSxsf4Qu8?u3${94OZ; z%knWlqiM-9n(v}3Ey&E6csjj{tAcFihs+r<%H)G@51VE>#x`f&3OdGiWR-yE&od9w zoXNEDf!{}XPMZValP44W0%5MTgucakmfB;i$MEy!3GnU6O~HY1GHWl6gn$U{=Y@+| z9qbs}+kL1d9FLmxesx&s9B=6@`vz9){E8K6j+(YviZsKsc2g@PVy+{W=SaSjy#?YA zqPO7tu*Iep&BI}V9_v9;IIK|=dL~3M7BPbQ55hkQKBoEJnP)AM1MX6YE3L;^NXBmK zYntDjm-KNoWhNNVlAUc#!SBP)`km8E9+_aP!`kej)HY_1u{|!sI>v5>KWjV2mS`~vI&SdVB_O&hxELZ{i*E&g^>xOvcK3wdxq_VGnqn?!B^al?RnZRr04Ai z;jNsD_7=F1^H2KByp{8*{fg#(&e#0%?Y=qlLla;Wyg=;$m`?3%xIpbZ_>|gM$f0%w zaBA~lJGJ$2huSLmn%ZTMp-F%+&{IDe!rO-5N!79YZMFB8G0!g{5#|_kf_bnx-&|>4 zWL{(5Z9Z(iWd7cK*Zi~D$6~UiTb5bYSvFc;wVbuQYx&ahlO@`kWF2UI!kS|pV=b_j zTWhTwtXr&yt!J$tTCZ9EYQ1ZHX!W(#+E&_{Z6|E^Z9mz3?J@Qz?YZ^>`z-rP`&RoA z`ycEd+3(mNXzah*+Zz5EW9;cPk1;PdA2&NKRhFC9ZninL7i}NdeC+e>3+;{e@A$dj z5`BEYFP;DR+YbC!&hwku;J6x`XZZw{Sf0Zk*1fpIvY%cxSZUjfg&}R26Y@I#&9#?X6!HvYSRz0+c~D%!i8hGezw08lyEATu=)o;BLK8!jjq}=CIwy zfZcJww=}-@*r`obl0gsZa7U0zyN9r@sd73#MT}gSfeHb{9Ctg zU=giR6Ih5YfvV$%(pFP5ds|Zsk*yy!vq4hT`qWrv)Fnd_^oP{;)E4H$3_Fy6CN>Xl N58T9lU@b|y{{s~`0I~o8 delta 7770 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 diff --git a/lib/NUnit.2.6.3/license.txt b/lib/NUnit-2.6.4/license.txt similarity index 89% rename from lib/NUnit.2.6.3/license.txt rename to lib/NUnit-2.6.4/license.txt index b12903a..3b2ad74 100644 --- a/lib/NUnit.2.6.3/license.txt +++ b/lib/NUnit-2.6.4/license.txt @@ -1,15 +1,15 @@ -Copyright © 2002-2013 Charlie Poole -Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov -Copyright © 2000-2002 Philip A. Craig - -This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required. - -Portions Copyright © 2002-2013 Charlie Poole or Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright © 2000-2002 Philip A. Craig - -2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. - -3. This notice may not be removed or altered from any source distribution. +Copyright © 2002-2014 Charlie Poole +Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov +Copyright © 2000-2002 Philip A. Craig + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required. + +Portions Copyright © 2002-2014 Charlie Poole or Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright © 2000-2002 Philip A. Craig + +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + +3. This notice may not be removed or altered from any source distribution. diff --git a/lib/NUnit-2.6.4/nunit.framework.dll b/lib/NUnit-2.6.4/nunit.framework.dll new file mode 100644 index 0000000000000000000000000000000000000000..ed6550bb0556d716de525cd64e1a6cefb8a945bf GIT binary patch literal 151552 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%0ANEfz#`T+5knLeJ%5cmKE0sc26YHG1oPt)XZ; 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≺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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 - - - - - Delegate used by tests that execute code and - capture any thrown exception. - - - - - The Assert class contains a collection of static methods that - implement the most common assertions used in NUnit. - - - - - We don't actually want any instances of this object, but some people - like to inherit from it to add other static methods. Hence, the - protected constructor disallows any instances of this object. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - 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. - - - - - Throws an with the message and arguments - that are passed in. This is used by the other Assert functions. - - The message to initialize the with. - Arguments to be used in formatting the message - - - - Throws an with the message that is - passed in. This is used by the other Assert functions. - - The message to initialize the with. - - - - Throws an . - This is used by the other Assert functions. - - - - - 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. - - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint to be applied - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - 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 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 - The message to display if the condition is false - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - - - - 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 - - - - 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 - - - - 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 - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint to be applied - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint to be applied - The message that will be displayed on failure - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint 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 ThrowsConstraint used in the test - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - 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 to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - 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 to be applied - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - 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 - - - - Verifies that a delegate throws a particular exception when called. - - A constraint to be satisfied by the 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. - - A constraint to be satisfied by the exception - A TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws a particular exception when called. - - A constraint to be satisfied by the exception - A TestDelegate - - - - Verifies that a delegate throws a particular exception when called. - - 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 exception Type expected - A TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws a particular exception when called. - - The exception Type expected - A TestDelegate - - - - Verifies that a delegate throws a particular exception when called. - - 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. - - Type of the expected exception - A TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws a particular exception when called. - - Type of the expected exception - A TestDelegate - - - - Verifies that a delegate throws an exception when called - and returns it. - - 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. - - A TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws an exception when called - and returns it. - - A TestDelegate - - - - Verifies that a delegate throws an exception of a certain Type - or one derived from it when called and returns it. - - 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 expected Exception Type - A TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws an exception of a certain Type - or one derived from it when called and returns it. - - 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 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 expected Exception Type - A TestDelegate - The message that will be displayed on failure - - - - Verifies that a delegate throws an exception of a certain Type - or one derived from it when called and returns it. - - The expected Exception Type - 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 - The message that will be displayed on failure - - - - Verifies that a delegate does not throw an exception. - - A TestDelegate - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - 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. If the condition is false the method throws - an . - - The evaluated condition - The message to display in case of failure - - - - 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 - The message to display in case of failure - Array of objects 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 - The message to display in case of failure - - - - Asserts that a condition is true. If the condition is false the method throws - an . - - The evaluated condition - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - 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. If the condition is true the method throws - an . - - The evaluated condition - The message to display in case of failure - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - 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. If the condition is true the method throws - an . - - The evaluated condition - The message to display in case of failure - - - - Asserts that a condition is false. If the condition is true the method throws - an . - - The evaluated condition - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - 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 null - If the object is null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - 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 null - If the object is null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - - - - Verifies that the object that is passed in is not equal to null - If the object is null then an - is thrown. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - 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 null - If the object is not null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - The object that is to be tested - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - 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 null - If the object is not null then an - is thrown. - - The object that is to be tested - The message to display in case of failure - - - - Verifies that the object that is passed in is equal to null - If the object is not null then an - is thrown. - - The object that is to be tested - - - - Verifies that two ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two unsigned ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two unsigned ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two unsigned ints are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two unsigned longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two unsigned longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two unsigned longs are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two decimals are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two decimals are equal. If they are not, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two decimals are equal. If they are not, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equal then an is - thrown. - - 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. If - they are not equal then an is - thrown. - - 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 - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equal then an is - thrown. - - 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. If - they are not equal then an is - thrown. - - 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. If - they are not equal then an is - thrown. - - 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 - - - - Verifies that two doubles are equal considering a delta. If the - expected value is infinity then the delta value is ignored. If - they are not equal then an is - thrown. - - 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. - If they are not equal an is thrown. - - 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. - If they are not equal an is thrown. - - The value that is expected - The actual value - The message to display in case of failure - - - - 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. - If they are not equal an is thrown. - - The value that is expected - The actual value - - - - Verifies that two ints are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two ints are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two ints are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two longs are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two longs are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two longs are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two unsigned ints are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two unsigned ints are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two unsigned ints are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two unsigned longs are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two unsigned longs are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two unsigned longs are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two decimals are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two decimals are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two decimals are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two floats are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two floats are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two floats are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - - - - Verifies that two doubles are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - Array of objects to be used in formatting the message - - - - Verifies that two doubles are not equal. If they are equal, then an - is thrown. - - The expected value - The actual value - The message to display in case of failure - - - - Verifies that two doubles are not equal. If they are equal, then an - is thrown. - - The expected value - 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. - If they are equal an is thrown. - - 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. - If they are equal an is thrown. - - The value that is expected - The actual value - The message to display in case of failure - - - - 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. - If they are equal an is thrown. - - The value that is expected - The actual value - - - - Asserts that two objects refer to the same object. If they - are not the same an is thrown. - - 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. If they - are not the same an is thrown. - - The expected object - The actual object - The message to display in case of failure - - - - Asserts that two objects refer to the same object. If they - are not the same an is thrown. - - The expected object - The actual object - - - - Asserts that two objects do not refer to the same object. If they - are the same an is thrown. - - 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. If they - are the same an is thrown. - - The expected object - The actual object - The message to display in case of failure - - - - Asserts that two objects do not refer to the same object. If they - are the same an is thrown. - - The expected object - The actual object - - - - Verifies that the double that is passed in is an NaN value. - If the object is not NaN then an - is thrown. - - 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. - If the object is not NaN then an - is thrown. - - The value that is to be tested - The message to display in case of failure - - - - Verifies that the double that is passed in is an NaN value. - If the object is not NaN then an - is thrown. - - The value that is to be tested - - - - Verifies that the double that is passed in is an NaN value. - If the object is not NaN then an - is thrown. - - 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. - If the object is not NaN then an - is thrown. - - The value that is to be tested - The message to display in case of failure - - - - Verifies that the double that is passed in is an NaN value. - If the object is not NaN then an - is thrown. - - The value that is to be tested - - - - Assert that a string is empty - that is equal to string.Empty - - 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 - that is equal to string.Empty - - The string to be tested - The message to display in case of failure - - - - Assert that a string is empty - that is equal to string.Empty - - The string to be tested - - - - Assert that an array, list or other collection is empty - - 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 - - An array, list or other collection implementing ICollection - The message to display in case of failure - - - - Assert that an array, list or other collection is empty - - An array, list or other collection implementing ICollection - - - - Assert that a string is not empty - that is not equal to string.Empty - - 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 - that is not equal to string.Empty - - The string to be tested - The message to display in case of failure - - - - Assert that a string is not empty - that is not equal to string.Empty - - The string to be tested - - - - Assert that an array, list or other collection is not empty - - 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 - - An array, list or other collection implementing ICollection - The message to display in case of failure - - - - Assert that an array, list or other collection is not empty - - An array, list or other collection implementing ICollection - - - - Assert that a string is either null or equal to string.Empty - - 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 either null or equal to string.Empty - - The string to be tested - The message to display in case of failure - - - - Assert that a string is either null or equal to string.Empty - - The string to be tested - - - - Assert that a string is not null or empty - - 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 null or empty - - The string to be tested - The message to display in case of failure - - - - Assert that a string is not null or empty - - The string to be tested - - - - Asserts that an object may be assigned a value of a given Type. - - 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. - - The expected Type. - The object under examination - The message to display in case of failure - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - - - - Asserts that an object may be assigned a value of a given Type. - - 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. - - The expected Type. - The object under examination - The message to display in case of failure - - - - Asserts that an object may be assigned a value of a given Type. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. - - 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. - - The expected Type. - The object under examination - The message to display in case of failure - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - - - - Asserts that an object may not be assigned a value of a given Type. - - 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. - - The expected Type. - The object under examination - The message to display in case of failure - - - - Asserts that an object may not be assigned a value of a given Type. - - The expected Type. - The object under examination - - - - Asserts that an object is an instance of a given type. - - 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. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is an instance of a given type. - - 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. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is an instance of a given type. - - 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. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. - - 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. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. - - 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. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - - - - Asserts that an object is not an instance of a given type. - - 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. - - The expected Type - The object being examined - The message to display in case of failure - - - - Asserts that an object is not an instance of a given type. - - The expected Type - The object being examined - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 tothe 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 tothe 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 - - - - Verifies that the first value is greater than or equal tothe 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 tothe 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 tothe 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 - - - - Verifies that the first value is greater than or equal tothe 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 tothe 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 tothe 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 - - - - Verifies that the first value is greater than or equal tothe 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 tothe 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 tothe 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 - - - - Verifies that the first value is greater than or equal tothe 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 tothe 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 tothe 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 - - - - Verifies that the first value is greater than or equal tothe 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 tothe 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 tothe 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 - - - - Verifies that the first value is greater than or equal tothe 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 tothe 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 tothe 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 - - - - Verifies that the first value is greater than or equal tothe 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 tothe 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 tothe 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 - - - - Verifies that the first value is greater than or equal tothe 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 an object is contained in a list. - - The expected object - The list 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 list. - - The expected object - The list to be examined - The message to display in case of failure - - - - Asserts that an object is contained in a list. - - The expected object - The list to be examined - - - - 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 - - - - Gets the number of assertions executed so far and - resets the counter to zero. - - - - - AssertionHelper is an optional base class for user tests, - allowing the use of shorter names for constraints and - asserts and avoiding conflict with the definition of - , from which it inherits much of its - behavior, in certain mock object frameworks. - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - 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 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 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 suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled 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 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 new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - Returns a new CollectionContainsConstraint 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 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 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 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 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 the same path or under an 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. - - - - - 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 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 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 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 whether a collection is ordered - - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to Assert.That. - - The actual value to test - A Constraint to be applied - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to Assert.That. - - The actual value to test - A Constraint to be applied - The message to be displayed in case of failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. Works - identically to Assert.That. - - The actual value to test - A Constraint to be applied - The message to be displayed in case of failure - Arguments to use 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 - 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 - The message to display if the condition is false - - - - 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. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - The message that will be displayed on failure - - - - 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 - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint to be applied - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint to be applied - The message that will be displayed on failure - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an assertion exception on failure. - - The actual value to test - A Constraint 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 ThrowsConstraint used in the test - - - - Returns a ListMapper based on a collection. - - The original collection - - - - - 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. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException 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 InconclusiveException on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException 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 - - - - 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 - The message to display if the condition is false - - - - Asserts that a condition is true. If the condition is false the - method throws an . - - The evaluated condition - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException 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 InconclusiveException on failure. - - A Constraint expression to be applied - An ActualValueDelegate returning the value to be tested - The message that will be displayed on failure - - - - Apply a constraint to an actual value, succeeding if the constraint - is satisfied and throwing an InconclusiveException 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 - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - A Constraint expression to be applied - The actual value to test - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an InconclusiveException on failure. - - A Constraint expression to be applied - The actual value to test - The message that will be displayed on failure - - - - Apply a constraint to a referenced value, succeeding if the constraint - is satisfied and throwing an InconclusiveException 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 - - - - 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 - - - - Waits for pending asynchronous operations to complete, if appropriate, - and returns a proper result of the invocation by unwrapping task results - - The raw result of the method invocation - The unwrapped result, if necessary - - - - A set of Assert methods operationg on one or more collections - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - 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 - - - - 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 containing objects to be considered - The message that will be displayed on failure - - - - 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 - - - - 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 - - - - 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 - - - - 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 - - - - 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 - - - - 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 - - - - 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 - - - - 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 - - - - 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 - - - - 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 superset is not a subject of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that superset is not a subject of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - - - - Asserts that superset is not a subject of subset. - - 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 superset is a subset of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - - - - Asserts that superset is a subset of subset. - - The IEnumerable superset to be considered - The IEnumerable subset to be considered - The message that will be displayed on failure - - - - Asserts that superset is a subset of subset. - - 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 - The message to be displayed on failure - - - - 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 - The message to be displayed on failure - - - - 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 - The message to be displayed on failure - - - - 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 - The message to be displayed on failure - - - - 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 - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - Returns a constraint that succeeds if the actual - value contains the substring supplied as an argument. - - - - - Summary description for DirectoryAssert - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - We don't actually want any instances of this object, but some people - like to inherit from it to add other static methods. Hence, the - protected constructor disallows any instances of this object. - - - - - Verifies that two directories are equal. Two directories 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 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 - - - - Verifies that two directories are equal. Two directories 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 directory containing the value that is expected - A directory containing the actual value - The message to display if directories are not equal - - - - Verifies that two directories are equal. Two directories 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 directory containing the value that is expected - A directory containing the actual value - - - - Verifies that two directories are equal. Two directories 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 directory path string containing the value that is expected - A directory path string containing the actual value - The message to display if 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 have the same value byte for byte. - If they are not equal an is thrown. - - A directory path string containing the value that is expected - A directory path string containing the actual value - The message to display if directories are not equal - - - - Verifies that two directories are equal. Two directories 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 directory path string containing the value that is expected - A directory path string 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 - The message to display if directories are not equal - - - - 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 two directories are not equal. If they are equal - an is thrown. - - A directory path string containing the value that is expected - A directory path string containing the actual value - The message to display if directories are 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 path string containing the value that is expected - A directory path string containing the actual value - The message to display if directories are equal - - - - Asserts that two directories are not equal. If they are equal - an is thrown. - - A directory path string containing the value that is expected - A directory path string containing the actual value - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - The message to display if directories are not equal - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - The message to display if directories are not equal - - - - Asserts that the directory is empty. If it is not empty - an is thrown. - - A directory to search - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - The message to display if directories are not equal - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - The message to display if directories are not equal - Arguments to be used in formatting the message - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - The message to display if directories are not equal - - - - Asserts that the directory is not empty. If it is empty - an is thrown. - - A directory to search - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - Arguments to be used in formatting the message - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - Arguments to be used in formatting the message - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - - - - Asserts that path contains actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - Arguments to be used in formatting the message - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - Arguments to be used in formatting the message - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - The message to display if directory is not within the path - - - - Asserts that path does not contain actual as a subdirectory or - an is thrown. - - A directory to search - sub-directory asserted to exist under directory - - - - Summary description for FileAssert. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - We don't actually want any instances of this object, but some people - like to inherit from it to add other static methods. Hence, the - protected constructor disallows any instances of this object. - - - - - 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 - The message to display if objects are not equal - - - - 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 - The message to display if objects are not equal - - - - 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 - The message to display if objects are not equal - - - - 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 - The message to be displayed when the Streams are the same. - - - - 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 - The message to display if objects are not equal - - - - 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 - The message to display if objects are not equal - - - - 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 - - - - GlobalSettings is a place for setting default values used - by the framework in performing asserts. - - - - - Default tolerance for floating point equality - - - - - Class used to guard against unexpected argument values - 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 - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - 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 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 CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - 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 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. - - - - - Interface implemented by a user fixture in order to - validate any expected exceptions. It is only called - for test methods marked with the ExpectedException - attribute. - - - - - Method to handle an expected exception - - The exception to be handled - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - 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 suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled 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 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 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 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 tests whether the path provided - is the same as an expected path after canonicalization. - - - - - Returns a constraint that tests whether the path provided - is under an 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. - - - - - 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 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 whether a collection is ordered - - - - - The ITestCaseData interface is implemented by a class - that is able to return complete testcases for use by - a parameterized test method. - - NOTE: This interface is used in both the framework - and the core, even though that results in two different - types. However, sharing the source code guarantees that - the various implementations will be compatible and that - the core is able to reflect successfully over the - framework implementations of ITestCaseData. - - - - - Gets the argument list to be provided to the test - - - - - Gets the expected result - - - - - Indicates whether a result has been specified. - This is necessary because the result may be - null, so it's value cannot be checked. - - - - - Gets the expected exception Type - - - - - Gets the FullName of the expected exception - - - - - Gets the name to be used for the test - - - - - Gets the description of the test - - - - - Gets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets a value indicating whether this is explicit. - - true if explicit; otherwise, false. - - - - Gets the ignore reason. - - The ignore reason. - - - - 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 - - - - - Randomizer returns a set of random values in a repeatable - way, to allow re-running of tests if necessary. - - - - - 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. - - - - - Construct a randomizer using a random seed - - - - - Construct a randomizer using a specified seed - - - - - Return an array of random doubles between 0.0 and 1.0. - - - - - - - Return an array of random doubles with values in a specified range. - - - - - Return an array of random ints with values in a specified range. - - - - - Get a random seed for use in creating a randomizer. - - - - - The SpecialValue enum is used to represent TestCase arguments - that cannot be used as arguments to an Attribute. - - - - - Null represents a null value, which cannot be used as an - argument to an attribute under .NET 1.x - - - - - Basic Asserts on strings. - - - - - The Equals method throws an AssertionException. This is done - to make sure there is no mistake by calling this function. - - - - - - - override the default ReferenceEquals to throw an AssertionException. This - implementation makes sure there is no mistake in calling this function - as part of Assert. - - - - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 Notequal, without regard to case. - - The expected string - The actual string - The message to display in case of failure - - - - 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 - The message to display in case of failure - - - - 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 message to display in case of failure - - - - 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 provides a number of instance modifiers - for use in initializing the test case. - - Note: Instance modifiers are getters that return - the same instance after modifying it's state. - - - - - The argument list to be provided to the test - - - - - The expected result to be returned - - - - - Set to true if this has an expected result - - - - - The expected exception Type - - - - - The FullName of the expected exception - - - - - The name to be used for the test - - - - - The description of the test - - - - - A dictionary of properties, used to add information - to tests without requiring the class to change. - - - - - If true, indicates that the test case is to be ignored - - - - - If true, indicates that the test case is marked explicit - - - - - The reason for ignoring a 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 expected exception type for the test - - Type of the expected exception. - The modified TestCaseData instance - - - - Sets the expected exception type for the test - - FullName of the expected exception. - The modified TestCaseData instance - - - - Sets the name of the test case - - The modified TestCaseData instance - - - - 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 - - - - - - - - Ignores this TestCase. - - - - - - Ignores this TestCase, specifying the reason. - - The reason. - - - - - Marks this TestCase as Explicit - - - - - - Marks this TestCase as Explicit, specifying the reason. - - The reason. - - - - - Gets the argument list to be provided to the test - - - - - Gets the expected result - - - - - Returns true if the result has been set - - - - - Gets the expected exception Type - - - - - Gets the FullName of the expected exception - - - - - Gets the name to be used for the test - - - - - Gets the description of the test - - - - - Gets a value indicating whether this is ignored. - - true if ignored; otherwise, false. - - - - Gets a value indicating whether this is explicit. - - true if explicit; otherwise, false. - - - - Gets the ignore reason. - - The ignore reason. - - - - Gets a list of categories associated with this test. - - - - - Gets the property dictionary for this test - - - - - Provide the context information of the current test - - - - - Constructs a TestContext using the provided context dictionary - - A context dictionary - - - - 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 TestAdapter representing the currently executing test in this context. - - - - - Gets a ResultAdapter representing the current result for the test - executing in this context. - - - - - Gets the directory containing the current test assembly. - - - - - Gets the directory to be used for outputing files created - by this test run. - - - - - TestAdapter adapts a Test for consumption by - the user test code. - - - - - Constructs a TestAdapter for this context - - The context dictionary - - - - The name of the test. - - - - - The FullName of the test - - - - - The properties of the test. - - - - - ResultAdapter adapts a TestResult for consumption by - the user test code. - - - - - Construct a ResultAdapter for a context - - The context holding the result - - - - The TestState of current test. This maps to the ResultState - used in nunit.core and is subject to change in the future. - - - - - The TestStatus of current test. This enum will be used - in future versions of NUnit and so is to be preferred - to the TestState value. - - - - - Provides details about a test - - - - - Creates an instance of TestDetails - - The fixture that the test is a member of, if available. - The method that implements the test, if available. - The full name of the test. - A string representing the type of test, e.g. "Test Case". - Indicates if the test represents a suite of tests. - - - - The fixture that the test is a member of, if available. - - - - - The method that implements the test, if available. - - - - - The full name of the test. - - - - - A string representing the type of test, e.g. "Test Case". - - - - - Indicates if the test represents a suite of tests. - - - - - The ResultState enum indicates the result of running a test - - - - - The result is inconclusive - - - - - The test was not runnable. - - - - - The test has been skipped. - - - - - The test has been ignored. - - - - - The test succeeded - - - - - The test failed - - - - - The test encountered an unexpected exception - - - - - The test was cancelled by the user - - - - - The TestStatus enum indicates the result of running a test - - - - - The test was inconclusive - - - - - The test has skipped - - - - - The test succeeded - - - - - The test failed - - - - - Helper class with static methods used to supply constraints - that operate on strings. - - - - - 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 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 fails if the actual - value ends with the substring supplied as an argument. - - - - - Returns a constraint that succeeds if the actual - value matches the Regex pattern supplied as an argument. - - - - - Returns a constraint that fails if the actual - value matches the pattern supplied as an argument. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - 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. - - - - - 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 - - - - - 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 givel - 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 constraint that failed - - - - 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 a connector. - - The connector. - - - - Writes the text for a predicate. - - The predicate. - - - - Writes the text for an expected value. - - The expected value. - - - - Writes the text for a modifier - - The modifier. - - - - 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 - - - - Abstract method to get the max line length - - - - - Prefix used for the expected value line of a message - - - - - Prefix used for the actual value line of a message - - - - - Length of a message prefix - - - - - Construct a TextMessageWriter - - - - - Construct a TextMessageWriter, specifying a user message - and optional formatting arguments. - - - - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a givel - 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 constraint that failed - - - - 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 a connector. - - The connector. - - - - Writes the text for a predicate. - - The predicate. - - - - Write the text for a modifier. - - The modifier. - - - - Writes the text for an expected value. - - The expected value. - - - - 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 - - The expected value - - - - 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 constraint for which the actual value is to be written - - - - Write the generic 'Actual' line for a given value - - The actual value causing a failure - - - - Gets or sets the maximum line length for this writer - - - - - Helper class with properties and methods that supply - constraints that operate on exceptions. - - - - - 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 - - - - - 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 TargetInvocationException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying that no exception is thrown - - - - - Attribute used to apply 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 - - - - - Used to mark a field for use as a datapoint when executing a theory - within the same fixture that requires an argument of the field's Type. - - - - - Used to mark an array as containing a set of datapoints to be used - executing a theory within the same fixture that requires an argument - of the Type of the array elements. - - - - - Attribute used to provide descriptive text about a - test case or fixture. - - - - - Construct the attribute - - Text describing the test - - - - Gets the test description - - - - - Enumeration indicating how the expected message parameter is to be used - - - - Expect an exact match - - - Expect a message containing the parameter string - - - Match the regular expression provided as a parameter - - - Expect a message that starts with the parameter string - - - - ExpectedExceptionAttribute - - - - - - Constructor for a non-specific exception - - - - - Constructor for a given type of exception - - The type of the expected exception - - - - Constructor for a given exception name - - The full name of the expected exception - - - - Gets or sets the expected exception type - - - - - Gets or sets the full Type name of the expected exception - - - - - Gets or sets the expected message text - - - - - Gets or sets the user message displayed in case of failure - - - - - Gets or sets the type of match to be performed on the expected message - - - - - Gets the name of a method to be used as an exception handler - - - - - ExplicitAttribute marks a test or test fixture so that it will - only be run if explicitly executed from the gui or command line - or if it is included by use of a 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 - - - - The reason test is marked explicit - - - - - Attribute used to mark a test that is to be ignored. - Ignored tests result in a warning message when the - tests are run. - - - - - Constructs the attribute without giving a reason - for ignoring the test. - - - - - Constructs the attribute giving a reason for ignoring the test - - The reason for ignoring the test - - - - The reason for ignoring a test - - - - - 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 itemss 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 - - - - - PlatformAttribute is used to mark a test fixture or an - individual method as applying to a particular platform only. - - - - - Constructor with no platforms specified, for use - with named property syntax. - - - - - Constructor taking one or more platforms - - Comma-deliminted list of platforms - - - - CultureAttribute is used to mark a test fixture or an - individual method as applying to a particular Culture only. - - - - - Constructor with no cultures specified, for use - with named property syntax. - - - - - Constructor taking one or more cultures - - Comma-deliminted list of cultures - - - - Marks a test to use a combinatorial join of any argument data - provided. NUnit will create a test case for every combination of - the arguments provided. This can result in a large number of test - cases and so should be used judiciously. This is the default join - type, so the attribute need not be used except as documentation. - - - - - PropertyAttribute is used to attach information to a test 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 - - - - - Default constructor - - - - - Marks a test to use pairwise join of any argument data provided. - NUnit will attempt too excercise every pair of argument values at - least once, using as small a number of test cases as it can. With - only two arguments, this is the same as a combinatorial join. - - - - - Default constructor - - - - - Marks a test to use a sequential join of any argument data - provided. NUnit will use arguements for each parameter in - sequence, generating test cases up to the largest number - of argument values provided and using null for any arguments - for which it runs out of values. Normally, this should be - used with the same number of arguments for each parameter. - - - - - Default constructor - - - - - Summary description for MaxTimeAttribute. - - - - - Construct a MaxTimeAttribute, given a time in milliseconds. - - The maximum elapsed time in milliseconds - - - - RandomAttribute is used to supply a set of random values - to a single parameter of a parameterized test. - - - - - ValuesAttribute is used to provide literal arguments for - an individual parameter of a test. - - - - - Abstract base class for attributes that apply to parameters - and supply data for the parameter. - - - - - Gets the data to be provided to the specified parameter - - - - - 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. - - - - - Construct with one argument - - - - - - Construct with two arguments - - - - - - - Construct with three arguments - - - - - - - - Construct with an array of arguments - - - - - - Get the collection of values to be used as arguments - - - - - Construct a set of doubles from 0.0 to 1.0, - specifying only the count. - - - - - - Construct a set of doubles from min to max - - - - - - - - Construct a set of ints from min to max - - - - - - - - Get the collection of values to be used as arguments - - - - - RangeAttribute is used to supply a range of values to an - individual parameter of a parameterized test. - - - - - Construct a range of ints using default step of 1 - - - - - - - Construct a range of ints specifying the step size - - - - - - - - Construct a range of longs - - - - - - - - Construct a range of doubles - - - - - - - - Construct a range of floats - - - - - - - - RepeatAttribute may be applied to test case in order - to run it multiple times. - - - - - Construct a RepeatAttribute - - The number of times to run the test - - - - RequiredAddinAttribute may be used to indicate the names of any addins - that must be present in order to run some or all of the tests in an - assembly. If the addin is not loaded, the entire assembly is marked - as NotRunnable. - - - - - Initializes a new instance of the class. - - The required addin. - - - - Gets the name of required addin. - - The required addin name. - - - - Summary description for SetCultureAttribute. - - - - - Construct given the name of a culture - - - - - - Summary description for SetUICultureAttribute. - - - - - Construct given the name of a culture - - - - - - SetUpAttribute is used in a TestFixture to identify a method - that is called immediately before each test is run. It is - also used in a SetUpFixture to identify the method that is - called once, before any of the subordinate tests are run. - - - - - Attribute used to mark a class that contains one-time SetUp - and/or TearDown methods that apply to all the tests in a - namespace or an assembly. - - - - - Attribute used to mark a static (shared in VB) property - that returns a list of tests. - - - - - Attribute used in a TestFixture to identify a method that is - called immediately after each test is run. It is also used - in a SetUpFixture to identify the method that is called once, - after all subordinate tests have run. In either case, the method - is guaranteed to be called, even if an exception is thrown. - - - - - Provide actions to execute before and after tests. - - - - - When implemented by an attribute, this interface implemented to provide actions to execute before and after tests. - - - - - Executed before each test is run - - Provides details about the test that is going to be run. - - - - Executed after each test is run - - Provides details about the test that has just been run. - - - - Provides the target for the action attribute - - The target for the action attribute - - - - 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")] - publc void TestDescriptionMethod() - {} - } - - - - - - Descriptive text for this test - - - - - TestCaseAttribute is used to mark parameterized test cases - and provide them with their arguments. - - - - - 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 the list of arguments to a test case - - - - - Gets or sets the expected result. Use - ExpectedResult by preference. - - The result. - - - - Gets or sets the expected result. - - The result. - - - - Gets a flag indicating whether an expected - result has been set. - - - - - Gets a list of categories associated with this test; - - - - - Gets or sets the category associated with this test. - May be a single category or a comma-separated list. - - - - - Gets or sets the expected exception. - - The expected exception. - - - - Gets or sets the name the expected exception. - - The expected name of the exception. - - - - Gets or sets the expected message of the expected exception - - The expected message of the exception. - - - - Gets or sets the type of match to be performed on the expected message - - - - - Gets or sets the description. - - The description. - - - - Gets or sets the name of the test. - - The name of the test. - - - - Gets or sets the ignored status of the test - - - - - Gets or sets the ignored status of the test - - - - - Gets or sets the explicit status of the test - - - - - Gets or sets the reason for not running the test - - - - - Gets or sets the reason for not running the test. - Set has the side effect of marking the test as ignored. - - The ignore reason. - - - - FactoryAttribute indicates the source to be used to - provide test cases for a test method. - - - - - Construct with the name of the data source, which must - be a property, field or method of the test class itself. - - An array of the names of the factories that will provide data - - - - Construct with a Type, which must implement IEnumerable - - The Type that will provide data - - - - Construct with a Type and name. - that don't support params arrays. - - The Type that will provide data - The name of the method, property or field that will provide data - - - - The name of a the method, property or fiend to be used as a source - - - - - A Type to be used as a source - - - - - Gets or sets the category associated with this test. - May be a single category or a comma-separated list. - - - - - [TestFixture] - public class ExampleClass - {} - - - - - Default constructor - - - - - Construct with a object[] representing a set of arguments. - In .NET 2.0, the arguments may later be separated into - type arguments and constructor arguments. - - - - - - Descriptive text for this fixture - - - - - Gets and sets the category for this fixture. - May be a comma-separated list of categories. - - - - - Gets a list of categories for this fixture - - - - - The arguments originally provided to the attribute - - - - - Gets or sets a value indicating whether this should be ignored. - - true if ignore; otherwise, false. - - - - Gets or sets the ignore reason. May set Ignored as a side effect. - - The ignore reason. - - - - Get or set the type arguments. If not set - explicitly, any leading arguments that are - Types are taken as type arguments. - - - - - Attribute used to identify a method that is - called before any tests in a fixture are run. - - - - - Attribute used to identify a method that is called after - all the tests in a fixture have run. The method is - guaranteed to be called, even if an exception is thrown. - - - - - 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")] - publc void TestDescriptionMethod() - {} - } - - - - - - Used on a method, marks the test with a timeout value in milliseconds. - The test will be run in a separate thread and is cancelled if the timeout - is exceeded. Used on a method or assembly, sets the default timeout - for all contained test methods. - - - - - Construct a TimeoutAttribute given a time in milliseconds - - The timeout value in milliseconds - - - - Marks a test that must run in the STA, causing it - to run in a separate thread if necessary. - - On methods, you may also use STAThreadAttribute - to serve the same purpose. - - - - - Construct a RequiresSTAAttribute - - - - - Marks a test that must run in the MTA, causing it - to run in a separate thread if necessary. - - On methods, you may also use MTAThreadAttribute - to serve the same purpose. - - - - - Construct a RequiresMTAAttribute - - - - - Marks a test that must run on a separate thread. - - - - - Construct a RequiresThreadAttribute - - - - - Construct a RequiresThreadAttribute, specifying the apartment - - - - - ValueSourceAttribute indicates the source to be 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 the data source to be used - - - - 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 the method, property or field that will provide data - - - - The name of a the method, property or fiend to be used as a source - - - - - A Type to be used as a source - - - - - AllItemsConstraint applies another constraint to each - item in a collection, succeeding if they all succeed. - - - - - Abstract base class used for prefixes - - - - - The Constraint class is the base of all built-in constraints - within NUnit. It provides the operator overloads used to combine - constraints. - - - - - The IConstraintExpression interface is implemented by all - complete and resolvable constraints and expressions. - - - - - Return the top-level constraint for this expression - - - - - - Static UnsetObject used to detect derived constraints - failing to set the actual value. - - - - - The actual value being tested against a constraint - - - - - The display name of this Constraint for use by ToString() - - - - - Argument fields used by ToString(); - - - - - The builder holding this constraint - - - - - Construct a constraint with no arguments - - - - - Construct a constraint with one argument - - - - - Construct a constraint with two arguments - - - - - Sets the ConstraintBuilder holding this constraint - - - - - Write the failure message to the MessageWriter provided - as an argument. The default implementation simply passes - the constraint 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 occured can override this. - - The MessageWriter on which to display the message - - - - 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 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 - True for success, false for failure - - - - 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 - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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 - - - - 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 DelayedConstraint with the specified delay time. - - The delay in milliseconds. - - - - - Returns a DelayedConstraint with the specified delay time - and polling interval. - - The delay in milliseconds. - The interval at which to test the 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. - - - - - 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. - - - - - Class used to detect any derived constraints - that fail to set the actual value in their - Matches override. - - - - - The base constraint - - - - - Construct given a base constraint - - - - - - Construct an AllItemsConstraint on top of an existing constraint - - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - AndConstraint succeeds only if both members succeed. - - - - - 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 - - - - Create an AndConstraint from two other constraints - - The first constraint - The second 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 a description for this contraint to a MessageWriter - - The MessageWriter to receive the description - - - - 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 - - - - AssignableFromConstraint is used to test that an object - can be assigned from a given Type. - - - - - TypeConstraint is the abstract base for constraints - that take a Type as their expected value. - - - - - The expected Type used by the constraint - - - - - Construct a TypeConstraint for a given Type - - - - - - Write the actual value for a failing constraint test to a - MessageWriter. TypeConstraints override this method to write - the name of the type. - - The writer on which the actual value is displayed - - - - Construct an AssignableFromConstraint for the type provided - - - - - - Test whether an object can be assigned from the specified type - - The object to be tested - True if the object can be assigned a value of the expected Type, otherwise false. - - - - Write a description of this constraint to a MessageWriter - - The MessageWriter to use - - - - AssignableToConstraint is used to test that an object - can be assigned to a given Type. - - - - - Construct an AssignableToConstraint for the type provided - - - - - - Test whether an object can be assigned to the specified type - - The object to be tested - True if the object can be assigned a value of the expected Type, otherwise false. - - - - Write a description of this constraint to a MessageWriter - - The MessageWriter to use - - - - 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 attriute - Type and base constraint. - - - - - - - Determines whether the Type or other provider has the - expected attribute and if its value matches the - additional constraint specified. - - - - - Writes a description of the attribute to the specified writer. - - - - - Writes the actual value supplied to the specified writer. - - - - - 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 - - - - - - Tests whether the object provides the expected attribute. - - A Type, MethodInfo, or other ICustomAttributeProvider - True if the expected attribute is present, otherwise false - - - - Writes the description of the constraint to the specified writer - - - - - BasicConstraint is the abstract base for constraints that - perform a simple comparison to a constant value. - - - - - Initializes a new instance of the class. - - The expected. - The description. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - BinarySerializableConstraint tests whether - an object is serializable in binary format. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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 - - - - 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. - - true if the specified enumerable is empty; otherwise, false. - - - - - 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. - - - - - CollectionItemsEqualConstraint is the abstract base class for all - collection constraints that apply some notion of item equality - as a part of their operation. - - - - - Construct an empty CollectionConstraint - - - - - Construct a CollectionConstraint - - - - - - Flag the constraint to use the supplied EqualityAdapter. - NOTE: For internal use only. - - The EqualityAdapter 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 IComparer object. - - The IComparer object 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. - - - - Compares two collection members for equality - - - - - Return a new CollectionTally for use in making tests - - The collection to be included in the tally - - - - Flag the constraint to ignore case and return self. - - - - - Construct a CollectionContainsConstraint - - - - - - Test whether the expected item is contained in the collection - - - - - - - Write a descripton of the constraint to a MessageWriter - - - - - - CollectionEquivalentCOnstraint is used to determine whether two - collections are equivalent. - - - - - Construct a CollectionEquivalentConstraint - - - - - - Test whether two collections are equivalent - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - CollectionOrderedConstraint is used to test whether a collection is ordered. - - - - - Construct a CollectionOrderedConstraint - - - - - Modifies the constraint to use an IComparer and returns self. - - - - - Modifies the constraint to use an IComparer<T> and returns self. - - - - - Modifies the constraint to use a Comparison<T> and returns self. - - - - - Modifies the constraint to test ordering by the value of - a specified property and returns self. - - - - - Test whether the collection is ordered - - - - - - - Write a description of the constraint to a MessageWriter - - - - - - Returns the string representation of the constraint. - - - - - - If used performs a reverse comparison - - - - - 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 - - - - Test whether the actual collection is a subset of - the expected collection provided. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - CollectionTally counts (tallies) the number of - occurences of each object in one or more enumerations. - - - - - Construct a CollectionTally object from a comparer and a collection - - - - - Try to remove an object from the tally - - The object to remove - True if successful, false if the object was not found - - - - Try to remove a set of objects from the tally - - The objects to remove - True if successful, false if any object was not found - - - - The number of objects remaining in the tally - - - - - ComparisonAdapter class centralizes all comparisons of - values in NUnit, adapting to the use of any provided - IComparer, IComparer<T> or Comparison<T> - - - - - Returns a ComparisonAdapter that wraps an IComparer - - - - - Returns a ComparisonAdapter that wraps an IComparer<T> - - - - - Returns a ComparisonAdapter that wraps a Comparison<T> - - - - - Compares two objects - - - - - Gets the default ComparisonAdapter, which wraps an - NUnitComparer object. - - - - - Construct a ComparisonAdapter for an IComparer - - - - - Compares two objects - - - - - - - - Construct a default ComparisonAdapter - - - - - ComparisonAdapter<T> extends ComparisonAdapter and - allows use of an IComparer<T> or Comparison<T> - to actually perform the comparison. - - - - - Construct a ComparisonAdapter for an IComparer<T> - - - - - Compare a Type T to an object - - - - - Construct a ComparisonAdapter for a Comparison<T> - - - - - 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. This class supplies the Using modifiers. - - - - - ComparisonAdapter to be used in making the comparison - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class. - - - - - Modifies the constraint to use an IComparer and returns self - - - - - Modifies the constraint to use an IComparer<T> and returns self - - - - - Modifies the constraint to use a Comparison<T> and returns self - - - - - Delegate used to delay evaluation of the actual value - to be used in evaluating a 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 reognized. a ConstraintStack holds - input constraints as well as the results of each - operator applied. - - - - - 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 expresson 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. - - - true if this instance is resolvable; otherwise, false. - - - - - OperatorStack is a type-safe stack for holding ConstraintOperators - - - - - Initializes a new instance of the class. - - The builder. - - - - Pushes the specified operator onto the stack. - - The op. - - - - Pops the topmost operator from the stack. - - - - - - Gets a value indicating whether this is empty. - - true if empty; otherwise, false. - - - - Gets the topmost operator without modifying the stack. - - The top. - - - - ConstraintStack is a type-safe stack for holding Constraints - - - - - Initializes a new instance of the class. - - The builder. - - - - Pushes the specified constraint. As a side effect, - the constraint's builder field is set to the - ConstraintBuilder owning this stack. - - The constraint. - - - - Pops this topmost constrait from the stack. - As a side effect, the constraint's builder - field is set to null. - - - - - - Gets a value indicating whether this is empty. - - true if empty; otherwise, false. - - - - Gets the topmost constraint without modifying the stack. - - The topmost constraint - - - - 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 - reognized. Once an actual Constraint is appended, the expression - returns a resolvable Constraint. - - - - - ConstraintExpressionBase is the abstract base class for the - ConstraintExpression class, which represents a - compound constraint in the process of being constructed - from a series of syntactic elements. - - NOTE: ConstraintExpressionBase is separate because the - ConstraintExpression class was generated in earlier - versions of NUnit. The two classes may be combined - in a future version. - - - - - 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. - - - - - 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 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 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 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 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 suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is greater than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled argument - - - - - Returns a constraint that tests whether the - actual value is less than or equal to the suppled 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 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 new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - Returns a new CollectionContainsConstraint 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 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 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 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 same path or under an 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. - - - - - 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 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. - - - - - With is currently a NOP - reserved for future use. - - - - - 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 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 whether a collection is ordered - - - - - 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. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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 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 ignore case and return self. - - - - - Applies a delay to the match so that a match can be evaluated in the future. - - - - - Creates a new DelayedConstraint - - The inner constraint two 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 two decorate - The time interval after which the match is performed - The time interval used for polling - If the value of is less than 0 - - - - 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 - True for if the base constraint fails, false if it succeeds - - - - 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 - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a MessageWriter. - - The writer on which the actual value is displayed - - - - Returns the string representation of the constraint. - - - - - EmptyCollectionConstraint tests whether a collection is empty. - - - - - Check that the collection is empty - - - - - - - Write the constraint description to a MessageWriter - - - - - - 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. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - EmptyDirectoryConstraint is used to test that a directory is empty - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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 - - - - EmptyStringConstraint tests whether a string is empty. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - EndsWithConstraint can test whether a string ends - with an expected substring. - - - - - 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 - - - - - Constructs a StringConstraint given an expected value - - The expected value - - - - 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 - - - - Modify the constraint to ignore case in matching. - - - - - 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. - - - - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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. - - - - - If true, strings in error messages will be clipped - - - - - NUnitEqualityComparer used to test equality. - - - - - Initializes a new instance of the class. - - The expected value. - - - - Flag the constraint to use a tolerance when determining equality. - - Tolerance value to be used - 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 IComparer object. - - The IComparer object 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. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write a failure message. Overridden to provide custom - failure messages for EqualConstraint. - - The MessageWriter to write to - - - - Write description of this constraint - - 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 enumerations, 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 - - - - 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. - - - - - 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 - - - - EqualityAdapter class handles all equality comparisons - that use an IEqualityComparer, IEqualityComparer<T> - or a ComparisonAdapter. - - - - - 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 EqualityAdapter that wraps an IComparer. - - - - - Returns an EqualityAdapter that wraps an IEqualityComparer. - - - - - Returns an EqualityAdapter that wraps an IEqualityComparer<T>. - - - - - Returns an EqualityAdapter that wraps an IComparer<T>. - - - - - Returns an EqualityAdapter that wraps a Comparison<T>. - - - - - EqualityAdapter that wraps an IComparer. - - - - - Returns true if the two objects can be compared by this adapter. - Generic adapter requires objects of the specified type. - - - - - EqualityAdapter that wraps an IComparer. - - - - - EqualityAdapterList represents a list of EqualityAdapters - in a common class across platforms. - - - - - ExactCountConstraint applies another constraint to each - item in a collection, succeeding only if a specified - number of items succeed. - - - - - 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. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - 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. - - - - Test that an object is of the exact type specified - - The actual value. - True if the tested object is of the exact type provided, otherwise false. - - - - Write the description of this constraint to a MessageWriter - - The MessageWriter to use - - - - ExceptionTypeConstraint is a special version of ExactTypeConstraint - used to provided detailed info about the exception thrown in - an error message. - - - - - Constructs an ExceptionTypeConstraint - - - - - Write the actual value for a failing constraint test to a - MessageWriter. Overriden to write additional information - in the case of an Exception. - - The MessageWriter to use - - - - 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 - - - - - FailurePointList represents a set of FailurePoints - in a cross-platform way. - - - - - FalseConstraint tests that the actual value is false - - - - - Initializes a new instance of the class. - - - - Helper routines for working with floating point numbers - - - The floating point comparison code is based on this excellent article: - http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm - - - "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. - - - - - 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 inbetween 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 inbetween 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/ - - - - - - Reinterprets the memory contents of a floating point value as an integer value - - - Floating point value whose memory contents to reinterpret - - - The memory contents of the floating point value interpreted as an integer - - - - - Reinterprets the memory contents of a double precision floating point - value as an integer value - - - Double precision floating point value whose memory contents to reinterpret - - - The memory contents of the double precision floating point value - interpreted as an integer - - - - - Reinterprets the memory contents of an integer as a floating point value - - Integer value whose memory contents to reinterpret - - The memory contents of the integer value interpreted as a floating point value - - - - - Reinterprets the memory contents of an integer value as a double precision - floating point value - - Integer whose memory contents to reinterpret - - The memory contents of the integer interpreted as a double precision - floating point value - - - - 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 - - - - Tests whether a value is greater than the value supplied to its constructor - - - - - The value against which a comparison is to be made - - - - - Initializes a new instance of the class. - - The expected value. - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Tests whether a value is greater than or equal to the value supplied to its constructor - - - - - The value against which a comparison is to be made - - - - - Initializes a new instance of the class. - - The expected value. - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - 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 - - - - Test whether an object is of the specified type or a derived type - - The object to be tested - True if the object is of the provided type or derives from it, otherwise false. - - - - Write a description of this constraint to a MessageWriter - - The MessageWriter to use - - - - Tests whether a value is less than the value supplied to its constructor - - - - - The value against which a comparison is to be made - - - - - Initializes a new instance of the class. - - The expected value. - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Tests whether a value is less than or equal to the value supplied to its constructor - - - - - The value against which a comparison is to be made - - - - - Initializes a new instance of the class. - - The expected value. - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Static methods used in creating messages - - - - - Static string used when strings are clipped - - - - - 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 - - - - 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 enumerable, - 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 - - - - - Test that the actual value is an NaN - - - - - - - Write the constraint description to a specified writer - - - - - - NoItemConstraint applies another constraint to each - item in a collection, failing if any of them succeeds. - - - - - Construct a NoItemConstraint on top of an existing constraint - - - - - - Apply the item constraint to each item in the collection, - failing if any item fails. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - 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 - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a MessageWriter. - - The writer on which the actual value is displayed - - - - NullConstraint tests that the actual value is null - - - - - Initializes a new instance of the class. - - - - - NullEmptyStringConstraint tests whether a string is either null or empty. - - - - - Constructs a new NullOrEmptyStringConstraint - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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 - - - - NUnitComparer encapsulates NUnit's default behavior - in comparing two objects. - - - - - Compares two objects - - - - - - - - Returns the default NUnitComparer. - - - - - Generic version of NUnitComparer - - - - - - Compare two objects of the same type - - - - - NUnitEqualityComparer encapsulates NUnit's handling of - equality tests between objects. - - - - - - - - - - Compares two objects for equality within a tolerance - - The first object to compare - The second object to compare - The tolerance to use in the comparison - - - - - 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 occured. - - - - - RecursionDetector used to check for recursion when - evaluating self-referencing enumerables. - - - - - Compares two objects for equality within a tolerance, setting - the tolerance to the actual tolerance used if an empty - tolerance is supplied. - - - - - Helper method to compare two arrays - - - - - Method to compare two DirectoryInfo objects - - first directory to compare - second directory to compare - true if equivalent, false if not - - - - 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 depthy. - - - - - RecursionDetector detects when a comparison - between two enumerables has reached a point - where the same objects that were previously - compared are again being compared. This allows - the caller to stop the comparison if desired. - - - - - Check whether two objects have previously - been compared, returning true if they have. - The two objects are remembered, so that a - second call will always return true. - - - - - OrConstraint succeeds if either member succeeds - - - - - Create an OrConstraint from two other constraints - - The first constraint - The second 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 - - - - Write a description for this contraint to a MessageWriter - - The MessageWriter to receive the description - - - - PathConstraint serves as the abstract base of constraints - that operate on paths and provides several helper methods. - - - - - The expected path used in the constraint - - - - - Flag indicating whether a caseInsensitive comparison should be made - - - - - Construct a PathConstraint for a give expected path - - The expected path - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Returns true if the expected path and actual path match - - - - - Returns the string representation of this constraint - - - - - Transform the provided path to its canonical form so that it - may be more easily be compared with other paths. - - The original path - The path in canonical form - - - - Test whether one path in canonical form is under another. - - The first path - supposed to be the parent path - The second path - supposed to be the child path - Indicates whether case should be ignored - - - - - Modifies the current instance to be case-insensitve - and returns it. - - - - - Modifies the current instance to be case-sensitve - and returns it. - - - - - Predicate constraint wraps a Predicate in a constraint, - returning success if the predicate is true. - - - - - Construct a PredicateConstraint from a predicate - - - - - Determines whether the predicate succeeds when applied - to the actual value. - - - - - Writes the description to a MessageWriter - - - - - 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 - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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 - - - - Returns the string representation of the constraint. - - - - - - 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 vaue - of the property. The two constraints are now separate. - - - - - Initializes a new instance of the class. - - The name of the property. - - - - Test whether the property exists for a given object - - The object to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. - - The writer on which the actual value is displayed - - - - Returns the string representation of the constraint. - - - - - - RangeConstraint tests whether two values are within a - specified range. - - - - - Initializes a new instance of the class. - - From. - To. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - RegexConstraint can test whether a string matches - the pattern provided. - - - - - Initializes a new instance of the class. - - The pattern. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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. - - - - - Resolve the current expression to a Constraint - - - - - This operator creates a constraint that is satisfied only if both - argument constraints are satisfied. - - - - - This operator creates a constraint that is satisfied only if both - argument constraints are satisfied. - - - - - 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 either - of the argument constraints is 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. - - - - - Appends an And Operator to the expression - - - - - Appends an Or operator to the expression. - - - - - 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 the string representation of the constraint. - - A string representing the constraint - - - - Resolves the ReusableConstraint by returning the constraint - that it originally wrapped. - - A resolved constraint - - - - SameAsConstraint tests whether an object is identical to - the object passed to its constructor - - - - - Initializes a new instance of the class. - - The expected object. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Summary description for SamePathConstraint. - - - - - Initializes a new instance of the class. - - The expected path - - - - Test whether the constraint is satisfied by a given value - - The expected path - The actual path - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - SamePathOrUnderConstraint tests that one path is under another - - - - - Initializes a new instance of the class. - - The expected path - - - - Test whether the constraint is satisfied by a given value - - The expected path - The actual path - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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 - - - - - - Apply the item constraint to each item in the collection, - succeeding if any item succeeds. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - 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. - - - - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - SubPathConstraint tests that the actual path is under the expected path - - - - - Initializes a new instance of the class. - - The expected path - - - - Test whether the constraint is satisfied by a given value - - The expected path - The actual path - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - SubstringConstraint can test whether a string contains - the expected substring. - - - - - Initializes a new instance of the class. - - The expected. - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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. - - - - 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 constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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 - - - - Returns the string representation of this constraint - - - - - Get the actual exception thrown - used by Assert.Throws. - - - - - ThrowsNothingConstraint tests that a delegate does not - throw an exception. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True if no exception is thrown, otherwise false - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - Write the actual value for a failing constraint test to a - MessageWriter. Overridden in ThrowsNothingConstraint to write - information about the exception that was actually caught. - - The writer on which the actual value is displayed - - - - 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. - - - - - Constructs a linear tolerance of a specdified amount - - - - - Constructs a tolerance given an amount and ToleranceMode - - - - - Tests that the current Tolerance is linear with a - numeric value, throwing an exception if it is not. - - - - - Returns an empty Tolerance object, equivalent to - specifying no tolerance. In most cases, it results - in an exact match but for floats and doubles a - default tolerance may be used. - - - - - Returns a zero Tolerance object, equivalent to - specifying an exact match. - - - - - Gets the ToleranceMode for the current Tolerance - - - - - Gets the value of the current Tolerance instance. - - - - - 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 TimeSpan as the amount, using - the current amount as a number of days. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of hours. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of minutes. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of seconds. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of milliseconds. - - - - - Returns a new tolerance with a TimeSpan as the amount, using - the current amount as a number of clock ticks. - - - - - Returns true if the current tolerance is empty. - - - - - 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. - - - - - UniqueItemsConstraint tests whether all the items in a - collection are unique. - - - - - Check that all items are unique. - - - - - - - Write a description of this constraint to a MessageWriter - - - - - - XmlSerializableConstraint tests whether - an object is serializable in XML format. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Write the constraint description to a MessageWriter - - The writer on which the description is displayed - - - - 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 - - - - Returns the string representation of this constraint - - - - - Represents a constraint that succeeds if all the - members of a collection match a base constraint. - - - - - Abstract base for operators that indicate how to - apply a constraint to items in a collection. - - - - - PrefixOperator takes a single constraint and modifies - it's action in some way. - - - - - 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. - - - - - 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. - - - - - - The syntax element preceding this operator - - - - - The syntax element folowing 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. - - - - - - Returns the constraint created by applying this - prefix to another constraint. - - - - - - - Constructs a CollectionOperator - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - they all succeed. - - - - - Operator that requires both it's arguments to succeed - - - - - 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. - - - - - - Abstract method that produces a constraint by applying - the operator to its left and right constraint arguments. - - - - - Gets the left precedence of the operator - - - - - Gets the right precedence of the operator - - - - - 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. - - - - - Abstract base class for operators that are able to reduce to a - constraint whether or not another syntactic element follows. - - - - - 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. - - - - - 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 - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - none of them succeed. - - - - - 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 it's arguments to succeed - - - - - Construct an OrOperator - - - - - Apply the operator to produce an OrConstraint - - - - - 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. - - - - - 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. - - - - - - Gets the name of the property to which the operator applies - - - - - 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 modifes the - order of evaluation because of its precedence. - - - - - Constructor for the WithOperator - - - - - Returns a constraint that wraps its argument - - - - - 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 - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - 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 - - - - - Thrown when an assertion failed. - - - - - - - The error message that explains - the reason for the exception - The exception that caused the - current exception - - - - Serialization Constructor - - - - - - - - - - - Compares two objects of a given Type for equality within a tolerance - - The first object to compare - The second object to compare - The tolerance to use in the comparison - - - -