From 122925d9c83cc1cc2beb971007eac3134e478aef Mon Sep 17 00:00:00 2001 From: BobSilent Date: Fri, 3 Apr 2020 16:43:58 +0200 Subject: [PATCH] use nuget dependency NUnitV2.Core --- lib/mock-assembly.dll | Bin 20480 -> 0 bytes lib/nunit.core.dll | Bin 147456 -> 0 bytes lib/nunit.core.interfaces.dll | Bin 53248 -> 0 bytes lib/nunit.framework.dll | Bin 135168 -> 0 bytes lib/nunit.framework.xml | 11079 ---------------- src/NUnitTestAdapter/NUnitTestAdapter.csproj | 10 +- src/NUnitTestAdapter/packages.config | 1 + .../NUnitTestAdapterInstall.csproj | 10 +- src/NUnitTestAdapterInstall/packages.config | 2 +- .../NUnitTestAdapterTests.csproj | 9 +- src/NUnitTestAdapterTests/packages.config | 1 + 11 files changed, 15 insertions(+), 11097 deletions(-) delete mode 100644 lib/mock-assembly.dll delete mode 100644 lib/nunit.core.dll delete mode 100644 lib/nunit.core.interfaces.dll delete mode 100644 lib/nunit.framework.dll delete mode 100644 lib/nunit.framework.xml diff --git a/lib/mock-assembly.dll b/lib/mock-assembly.dll deleted file mode 100644 index eb0bcf9dde691aaf92a4596c7a5febcfe0e96c03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 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 P0yimelLG(0QsDmriSU?m diff --git a/lib/nunit.core.interfaces.dll b/lib/nunit.core.interfaces.dll deleted file mode 100644 index be287830e1a617597f2d4588d84bf7a2f24146f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53248 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

@_6#uDHV{ij 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 diff --git a/lib/nunit.framework.dll b/lib/nunit.framework.dll deleted file mode 100644 index 6cec2821ca3e342e251119f880c4828c2071595f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135168 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

NR3pIVLUN46koR-)5 zsdJw?iUEyN)#my9l){GLWhu;LG^dH#%4b>xf~IW@A2AJ7kDyEO#X;HF14ELF$u+TD zOs;8{3rj^dhDu)jZx_#*Bdz_U4G5dcha&qT5kHvNnpT|rqz-Dvl1P$DWkn`qV>HQB z%1m6(EAt5)CvY@_)My$PpV9c&S>PemK7`U9$EwJ7k7}cyDw!ACI3iqSS&fHHyQ5uQ z?cN)sDASG(du&1GEbh~s#r+imd_rO@cZtp;7^qXK|7pvAh>+3B1t`{Gg_8%Vgukh1 zXyNk;n=e}UisfW2oNGA`TKr`T@3+v`S!1P_s1xQ#g?-9tJVDoil|5y(pHf-#4$Ha6 z;)fMZ9<(sD@OjIB(ZW|OCu`wc%X!e^FI#xOg}%-jD?Mc45epx&9v54A3U3a%tMyL(9Wo!`+oH=!N1 zu{YG|Q+#l8JI~|%O3IyPw1g9T!>u8wQ28(Kgu8cyQ%GJmc)_6FYY@{MywS#)gdFg-j}tfCX(?A%QF4aVS@98FIv|SYQ0DR8bZ3p>4evOMg8r22Q-Mx2 z)cI{XPJ>66m~~sZcK(umMxnEI`~?PfOkJf_d(=KI;pV5@+*Tf^NhGirq}+)eC2jD# zTDAJKacGFi&O|7P}dK1vT`sS)l-)RSKlB-LOPeNpnJT z-Gl%1k#oym`nzvj{*#CIf8rw}fBO8%Z~MkePww1*_67ew@*nPZzLM{|dGbqF{K=-* zAD#TmuTGqD)sbhv_T_iIW9+8e=bZH2+m{_!@zKhbzk2+KdtO|->zl7i2>svp6%XT7 z=k@WndK@ydV)vd)ckUdO;j_`1)^_^DAEqJbeH5FxWxs?AYpz2xd%eXg5j2!Q`Pl6_70Ji%$7-D20%?%j}{usTD$0p4z0SIsLSUP+VEe-o0J#u ze<}Zk&nh>U`r?2daEOoHN-)wR#_{=VdMm&`Oq-m~wjB=P>bQfcF9Bx_F!b2&PNVQf zXcLy#@%Stc`c9J<@&?`t-o6WYr(Aqm#)%DzErm~dSJ1~VB(?$=8Z$kuuLq;oF(UqP z>p?p@O&sm)ZzkA7zz#Vw%TuCp8Pi_Q;Qw@V?Y%@x6?)ka3zx2jzy6{PU*~TyuKK-W`kJ{%yM9s1G5~M<-jZlW;rm+fmsgx zGIHSM6c5`v_X7EV3q^39GK<6EC*&eFw22i4$N|3mIJdKnB~AM2WC0&|C0m% E3-Nl72LJ#7 diff --git a/lib/nunit.framework.xml b/lib/nunit.framework.xml deleted file mode 100644 index 66ba98e..0000000 --- a/lib/nunit.framework.xml +++ /dev/null @@ -1,11079 +0,0 @@ - - - - nunit.framework - - - -

- 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. - - - - - Constructor is used to issue a compatibility warning, if needed - - - - - 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 - - - - 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 - - - - - 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 - - - - Marks a test that must run in a particular threading apartment state, causing it - to run in a separate thread if necessary. - - - - - Construct an ApartmentAttribute - - The apartment state that this test must be run under. You must pass in a valid apartment state. - - - - 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. - - - - - 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 - - - - Attribute used to identify a method that is called once - to perform setup before any child tests are run. - - - - - Attribute used to identify a method that is called once - after all the child tests have run. The method is - guaranteed to be called, even if an exception is thrown. - - - - - 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 - - - - - RandomAttribute is used to supply a set of random values - to a single parameter of a parameterized test. - - - - - 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. - - - - - Method called before each test - - Info about the test to be run - - - - Method called after each test - - Info about the test that was just run - - - - Gets or sets the ActionTargets for this 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 - - - - - 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 - - - - - ValuesAttribute is used to provide literal arguments for - an individual parameter of a test. - - - - - The collection of data to be returned. Must - be set by any derived attribute classes. - We use an object[] so that the individual - elements may have their type changed in GetData - if necessary. - - - - - 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 - - - - - 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 - - - - - 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 the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - - - - Asserts that the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - - - - Asserts that the superset does not contain the subset - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - - - - Asserts that the superset contains the subset. - - The IEnumerable subset to be considered - The IEnumerable superset to be considered - The message that will be displayed on failure - Arguments to be used in formatting the message - - - - 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 - - - - Class used to report compatibility errors at execution - time from the framework, using the writer passed in by - the core runners. - - - - - Construct a new CompatibilityLogger - - The TextWriter to use for logging - - - - Report a compatibility error - - - - - Report a compatibility warning - - - - - Report a compatibility note - - - - - AllItemsConstraint applies another constraint to each - item in a collection, succeeding if they all succeed. - - - - - 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. - - - - - 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. - - - - - 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 - - - - 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 - - - - 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. - - - - - 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 - - - - - - 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 ignore case and return self. - - - - - 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 - - - - 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 - - - - - The number of objects remaining in the tally - - - - - 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 - - - - ComparisonAdapter class centralizes all comparisons of - values in NUnit, adapting to the use of any provided - IComparer, IComparer<T> or Comparison<T> - - - - - Gets the default ComparisonAdapter, which wraps an - NUnitComparer object. - - - - - 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 - - - - - Construct a default ComparisonAdapter - - - - - Construct a ComparisonAdapter for an IComparer - - - - - Compares two objects - - - - - - - - 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 - - - - - The Constraint class is the base of all built-in constraints - within NUnit. It provides the operator overloads used to combine - constraints. - - - - - Class used to detect any derived constraints - that fail to set the actual value in their - Matches override. - - - - - 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 - - - - - 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. - - - - - 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 ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending And - to the current constraint. - - - - - Returns a ConstraintExpression by appending Or - to the current constraint. - - - - - Returns a DelayedConstraint 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. - - - - - 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. - - - - - OperatorStack is a type-safe stack for holding ConstraintOperators - - - - - Initializes a new instance of the class. - - The builder. - - - - Gets a value indicating whether this is empty. - - true if empty; otherwise, false. - - - - Gets the topmost operator without modifying the stack. - - The top. - - - - Pushes the specified operator onto the stack. - - The op. - - - - Pops the topmost operator from the stack. - - - - - - ConstraintStack is a type-safe stack for holding Constraints - - - - - Initializes a new instance of the class. - - The builder. - - - - Gets a value indicating whether this is empty. - - true if empty; otherwise, false. - - - - Gets the topmost constraint without modifying the stack. - - The topmost constraint - - - - 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. - - - - - - Initializes a new instance of the class. - - - - - Gets a value indicating whether this instance is resolvable. - - - true if this instance is resolvable; otherwise, false. - - - - - 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 - - - - 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. - - - - - 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 that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - With is currently a NOP - reserved for future use. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns the constraint provided as an argument - used to allow custom - custom constraints to easily participate in the syntax. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in xml format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the 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 tests whether a collection is ordered - - - - - 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. - - - - - 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. - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in xml format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the 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 tests whether a collection is ordered - - - - - 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. - - - - - 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. - - - - Flag the constraint to ignore case and return self. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - 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. - - - - 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. - - - - - 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 ignore case and return self. - - - - - Flag the constraint to suppress string clipping - and return self. - - - - - Flag the constraint to compare arrays as collections - and return self. - - - - - Flag the constraint to use a tolerance when determining equality. - - Tolerance value to be used - Self. - - - - Switches the .Within() modifier to interpret its tolerance as - a distance in representable values (see remarks). - - Self. - - Ulp stands for "unit in the last place" and describes the minimum - amount a given value can change. For any integers, an ulp is 1 whole - digit. For floating point values, the accuracy of which is better - for smaller numbers and worse for larger numbers, an ulp depends - on the size of the number. Using ulps for comparison of floating - point results instead of fixed tolerances is safer because it will - automatically compensate for the added inaccuracy of larger numbers. - - - - - Switches the .Within() modifier to interpret its tolerance as - a percentage that the actual values is allowed to deviate from - the expected value. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in days. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in hours. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in minutes. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in seconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in milliseconds. - - Self - - - - Causes the tolerance to be interpreted as a TimeSpan in clock ticks. - - Self - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied IComparer object. - - The IComparer object to use. - Self. - - - - Flag the constraint to use the supplied 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 - - - - 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. - - - - - EqualityAdapter that wraps an IComparer. - - - - - Returns an EqualityAdapter that wraps an IEqualityComparer. - - - - - Returns true if the two objects can be compared by this adapter. - Generic adapter requires objects of the specified type. - - - - - Returns an EqualityAdapter that wraps an IEqualityComparer<T>. - - - - - Returns an EqualityAdapter that wraps an IComparer<T>. - - - - - EqualityAdapter that wraps an IComparer. - - - - - Returns an EqualityAdapter that wraps a Comparison<T>. - - - - - 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. - - - - - Union of a floating point variable and an integer - - - The union's value as a floating point variable - - - The union's value as an integer - - - The union's value as an unsigned integer - - - Union of a double precision floating point variable and a long - - - The union's value as a double precision floating point variable - - - The union's value as a long - - - The union's value as an unsigned long - - - Compares two floating point values for equality - First floating point value to be compared - Second floating point value t be compared - - Maximum number of representable floating point values that are allowed to - be between the left and the right floating point values - - True if both numbers are equal or close to being equal - - - Floating point values can only represent a finite subset of natural numbers. - For example, the values 2.00000000 and 2.00000024 can be stored in a float, - but nothing 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 - - - - - 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 - - - - The IConstraintExpression interface is implemented by all - complete and resolvable constraints and expressions. - - - - - Return the top-level constraint for this expression - - - - - - 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 - - - - MessageWriter is the abstract base for classes that write - constraint descriptions and messages in some form. The - class has separate methods for writing various components - of a message, allowing implementations to tailor the - presentation as needed. - - - - - Construct a MessageWriter given a culture - - - - - Abstract method to get the max line length - - - - - Method to write single line message with optional args, usually - written to precede the general failure message. - - The message to be written - Any arguments used in formatting the message - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a 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 - - - - 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. - - - - - Returns the default NUnitComparer. - - - - - Compares two objects - - - - - - - - Generic version of NUnitComparer - - - - - - Compare two objects of the same type - - - - - NUnitEqualityComparer encapsulates NUnit's handling of - equality tests between objects. - - - - - If true, all string comparisons will ignore case - - - - - If true, arrays will be treated as collections, allowing - those of different dimensions to be compared - - - - - Comparison objects used in comparisons for some constraints. - - - - - List of points at which a failure occured. - - - - - RecursionDetector used to check for recursion when - evaluating self-referencing enumerables. - - - - - 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. - - - - - 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 - - - - 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. - - - - - Represents a constraint that succeeds if all the - members of a collection match a base constraint. - - - - - Returns a constraint that will apply the argument - to the members of a collection, succeeding if - they all succeed. - - - - - Operator that requires both it's arguments to succeed - - - - - Construct an AndOperator - - - - - Apply the operator to produce an AndConstraint - - - - - Operator that tests for the presence of a particular attribute - on a type and optionally applies further tests to the attribute. - - - - - Construct an AttributeOperator for a particular Type - - The Type of attribute tested - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - Abstract base class for all binary operators - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Gets the left precedence of the operator - - - - - Gets the right precedence of the operator - - - - - Abstract method that produces a constraint by applying - the operator to its left and right constraint arguments. - - - - - Abstract base for operators that indicate how to - apply a constraint to items in a collection. - - - - - Constructs a CollectionOperator - - - - - CollectionOrderedConstraint is used to test whether a collection is ordered. - - - - - Construct a CollectionOrderedConstraint - - - - - If used performs a reverse comparison - - - - - 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. - - - - - - The ConstraintOperator class is used internally by a - ConstraintBuilder to represent an operator that - modifies or combines constraints. - - Constraint operators use left and right precedence - values to determine whether the top operator on the - stack should be reduced before pushing a new operator. - - - - - The precedence value used when the operator - is about to be pushed to the stack. - - - - - The precedence value used when the operator - is on the top of the stack. - - - - - The syntax element preceding this operator - - - - - The syntax element 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. - - - - - - 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 - - - - - PrefixOperator takes a single constraint and modifies - it's action in some way. - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Returns the constraint created by applying this - prefix to another constraint. - - - - - - - Operator used to test for the presence of a named Property - on an object and optionally apply further tests to the - value of that property. - - - - - Gets the name of the property to which the operator applies - - - - - Constructs a PropOperator for a particular named property - - - - - Reduce produces a constraint from the operator and - any arguments. It takes the arguments from the constraint - stack and pushes the resulting constraint on it. - - - - - - Abstract base class for operators that are able to reduce to a - constraint whether or not another syntactic element follows. - - - - - 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 - - - - - 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 - - - - Modifies the current instance to be case-insensitve - and returns it. - - - - - Modifies the current instance to be case-sensitve - and returns it. - - - - - 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 - - - - - 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 - - - - - Abstract base class used for prefixes - - - - - The base constraint - - - - - Construct given a base constraint - - - - - - 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. - - - - - Appends an And Operator to the expression - - - - - Appends an Or operator to the expression. - - - - - 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. - - - - - 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 - - - - 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 - - - - - 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. - - - - - 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 - - - - 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 - - - - Modify the constraint to ignore case in matching. - - - - - Test whether the constraint is satisfied by a given value - - The value to be tested - True for success, false for failure - - - - Test whether the constraint is satisfied by a given string - - The string to be tested - True for success, false for failure - - - - SubPathConstraint tests that the actual path is under the expected path - - - - - Initializes a new instance of the class. - - The expected path - - - - 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. - - - - Get the actual exception thrown - used by Assert.Throws. - - - - - 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 - - - - - 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 - - - - Test whether the constraint is satisfied by a given delegate - - Delegate returning 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. - - - - - 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. - - - - - Constructs a linear tolerance of a specdified amount - - - - - Constructs a tolerance given an amount and ToleranceMode - - - - - Gets the ToleranceMode for the current Tolerance - - - - - Tests that the current Tolerance is linear with a - numeric value, throwing an exception if it is not. - - - - - 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. - - - - - 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 - - - - 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 - - - - - 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 - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a new . This constraint - will, in turn, make use of the appropriate second-level - constraint, depending on the type of the actual 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. - - - - - 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 - - - - - 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 that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if at least one of them succeeds. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them fail. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding only if a specified number of them succeed. - - - - - Returns a new PropertyConstraintExpression, which will either - test for the existence of the named property on the object - being tested or apply any following constraint to that property. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Length property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Count property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the Message property of the object being tested. - - - - - Returns a new ConstraintExpression, which will apply the following - constraint to the InnerException property of the object being tested. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new AttributeConstraint checking for the - presence of a particular attribute on an object. - - - - - Returns a new CollectionContainsConstraint checking for the - presence of a particular object in the collection. - - - - - - - - - - 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 - - - - - - - - - - - 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 - - - - - 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 - - - - 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 - - - - 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. - - - - - Helper class with properties and methods that supply - a number of constraints used in Asserts. - - - - - Returns a ConstraintExpression that negates any - following constraint. - - - - - Returns a ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - Returns a constraint that tests for null - - - - - Returns a constraint that tests for True - - - - - Returns a constraint that tests for False - - - - - Returns a constraint that tests for a positive value - - - - - Returns a constraint that tests for a negative value - - - - - Returns a constraint that tests for NaN - - - - - Returns a constraint that tests for empty - - - - - Returns a constraint that tests whether a collection - contains all unique items. - - - - - Returns a constraint that tests whether an object graph is serializable in binary format. - - - - - Returns a constraint that tests whether an object graph is serializable in xml format. - - - - - Returns a constraint that tests two items for equality - - - - - Returns a constraint that tests that two references are the same object - - - - - Returns a constraint that tests whether the - actual value is greater than the 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 tests whether a collection is ordered - - - - - 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. - - - - - 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 random seed for use in creating a randomizer. - - - - - 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. - - - - - 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. - - - - 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 - - - - - 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. - - - - - 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. - - - - - 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 ConstraintExpression, which will apply - the following constraint to all members of a collection, - succeeding if all of them succeed. - - - - - 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. - - - - - TextMessageWriter writes constraint descriptions and messages - in displayable form as a text stream. It tailors the display - of individual message components to form the standard message - format of NUnit assertion failure messages. - - - - - Prefix used for the expected value line of a message - - - - - Prefix used for the actual value line of a message - - - - - Length of a message prefix - - - - - Construct a TextMessageWriter - - - - - Construct a TextMessageWriter, specifying a user message - and optional formatting arguments. - - - - - - - Gets or sets the maximum line length for this writer - - - - - Method to write single line message with optional args, usually - written to precede the general failure message, at a 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 - - - - Helper class with properties and methods that supply - constraints that operate on exceptions. - - - - - Creates a constraint specifying an expected exception - - - - - Creates a constraint specifying an exception with a given InnerException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying an expected TargetInvocationException - - - - - Creates a constraint specifying that no exception is thrown - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the exact type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - - Creates a constraint specifying the type of exception expected - - - - diff --git a/src/NUnitTestAdapter/NUnitTestAdapter.csproj b/src/NUnitTestAdapter/NUnitTestAdapter.csproj index a8e8abf..61c6844 100644 --- a/src/NUnitTestAdapter/NUnitTestAdapter.csproj +++ b/src/NUnitTestAdapter/NUnitTestAdapter.csproj @@ -64,13 +64,11 @@ ..\..\packages\Mono.Cecil.0.9.6.4\lib\net35\Mono.Cecil.Rocks.dll - - False - ..\..\lib\nunit.core.dll + + ..\..\packages\NUnitV2.Core.2.7.1\lib\nunit.core.dll - - False - ..\..\lib\nunit.core.interfaces.dll + + ..\..\packages\NUnitV2.Core.2.7.1\lib\nunit.core.interfaces.dll False diff --git a/src/NUnitTestAdapter/packages.config b/src/NUnitTestAdapter/packages.config index 28bed71..f241105 100644 --- a/src/NUnitTestAdapter/packages.config +++ b/src/NUnitTestAdapter/packages.config @@ -2,4 +2,5 @@ + \ No newline at end of file diff --git a/src/NUnitTestAdapterInstall/NUnitTestAdapterInstall.csproj b/src/NUnitTestAdapterInstall/NUnitTestAdapterInstall.csproj index 370f62e..4a243fe 100644 --- a/src/NUnitTestAdapterInstall/NUnitTestAdapterInstall.csproj +++ b/src/NUnitTestAdapterInstall/NUnitTestAdapterInstall.csproj @@ -114,13 +114,11 @@ False ..\..\packages\Mono.Cecil.0.9.6.4\lib\net35\Mono.Cecil.Rocks.dll - - False - ..\..\lib\nunit.core.dll + + ..\..\packages\NUnitV2.Core.2.7.1\lib\nunit.core.dll - - False - ..\..\lib\nunit.core.interfaces.dll + + ..\..\packages\NUnitV2.Core.2.7.1\lib\nunit.core.interfaces.dll False diff --git a/src/NUnitTestAdapterInstall/packages.config b/src/NUnitTestAdapterInstall/packages.config index 9a4f979..4652a10 100644 --- a/src/NUnitTestAdapterInstall/packages.config +++ b/src/NUnitTestAdapterInstall/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/src/NUnitTestAdapterTests/NUnitTestAdapterTests.csproj b/src/NUnitTestAdapterTests/NUnitTestAdapterTests.csproj index fbb56fa..2b0c91b 100644 --- a/src/NUnitTestAdapterTests/NUnitTestAdapterTests.csproj +++ b/src/NUnitTestAdapterTests/NUnitTestAdapterTests.csproj @@ -52,12 +52,11 @@ ..\..\packages\Mono.Cecil.0.9.6.4\lib\net45\Mono.Cecil.Rocks.dll - - False - ..\..\lib\nunit.core.dll + + ..\..\packages\NUnitV2.Core.2.7.1\lib\nunit.core.dll - - ..\..\lib\nunit.core.interfaces.dll + + ..\..\packages\NUnitV2.Core.2.7.1\lib\nunit.core.interfaces.dll ..\..\packages\NUnit.2.7.0\lib\nunit.framework.dll diff --git a/src/NUnitTestAdapterTests/packages.config b/src/NUnitTestAdapterTests/packages.config index 6008319..d38a9e3 100644 --- a/src/NUnitTestAdapterTests/packages.config +++ b/src/NUnitTestAdapterTests/packages.config @@ -3,4 +3,5 @@ + \ No newline at end of file