From a174900ce0a0f1df9ed07ad28a1bcd3014855df0 Mon Sep 17 00:00:00 2001 From: "kay.one" Date: Fri, 17 Jun 2011 22:27:11 -0700 Subject: [PATCH] Updated Fluent Assertions to rev.67959 --- Libraries/FluentAssertions.dll | Bin 93696 -> 95232 bytes Libraries/FluentAssertions.xml | 1606 +++++++++++++++++--------------- 2 files changed, 833 insertions(+), 773 deletions(-) diff --git a/Libraries/FluentAssertions.dll b/Libraries/FluentAssertions.dll index 4b19b78bc159e88b333ee2ce4edc52cb5388ddd8..cd2ffbf5af4cb63e37d763c7f90816e6bcd8a1fb 100644 GIT binary patch literal 95232 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 x!~Gt?y}yq}3N+$>pR}=};|A#Q}e*s?h$6f#c literal 93696 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 diff --git a/Libraries/FluentAssertions.xml b/Libraries/FluentAssertions.xml index 6ef4ac5f4..76cc4d4bb 100644 --- a/Libraries/FluentAssertions.xml +++ b/Libraries/FluentAssertions.xml @@ -4,136 +4,60 @@ FluentAssertions - + - Initializes a new instance of the class. + Provides a fluent API for verifying an arbitrary condition. - + - Contains extension methods for custom assertions in unit tests. + Initializes a new instance of the class. - + - Invokes the specified action on an subject so that you can chain it with any of the ShouldThrow or ShouldNotThrow - overloads. + Gets the name or identifier of the current subject, or a default value if the subject is not known. - + - Provides methods for asserting the execution time of a method or property. - - The object that exposes the method or property. - A reference to the method or property to measure the execution time of. - - Returns an object for asserting that the execution time matches certain conditions. - - - - - Provides methods for asserting the execution time of a method or property. - - The object that exposes the method or property. - A reference to the method or property to measure the execution time of. - - Returns an object for asserting that the execution time matches certain conditions. - - - - - Asserts that the throws an exception. - - - The type of the exception it should throw. - - - Returns an object that allows asserting additional members of the thrown exception. - - - - - Asserts that the throws an exception. - - - The type of the exception it should throw. - - - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. - - - Zero or more values to use for filling in any compatible placeholders. - - - Returns an object that allows asserting additional members of the thrown exception. - - - - - Asserts that the does not throw a particular exception. - - - The type of the exception it should not throw. Any other exceptions are ignored and will satisfy the assertion. - - - - - Asserts that the does not throw a particular exception. - - - The type of the exception it should not throw. Any other exceptions are ignored and will satisfy the assertion. - - - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. - - - Zero or more values to use for filling in any compatible placeholders. - - - - - Asserts that the does not throw any exception at all. + Indicates that every argument passed into is displayed on a separate line. - + - Asserts that the does not throw any exception at all. - - - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. - - - Zero or more values to use for filling in any compatible placeholders. - - - - - Forces enumerating a collection. Should be used to assert that a method that uses the - yield keyword throws a particular exception. + Gets or sets the name of the subject for the next verification. - + - Forces enumerating a collection. Should be used to assert that a method that uses the - yield keyword throws a particular exception. + The amount of time that a should exceed compared to another . - + - Asserts that the properties of an object matches those of another object. + The amount of time that a should be equal or exceed compared to another . - + - Safely casts the specified object to the type specified through . + The amount of time that a should differ exactly compared to another . + + + + + The maximum amount of time that a should differ compared to another . + + + + + The amount of time that a should be within another . + + + + + Gets the object which value is being asserted. - - Has been introduced to allow casting objects without breaking the fluent API. - - @@ -195,347 +119,253 @@ - Asserts that the number of items in the collection matches the supplied amount. + Asserts that the number of items in the collection matches the supplied amount. - Asserts that the number of items in the collection matches the supplied amount. + Asserts that the number of items in the collection matches the supplied amount. - Asserts that the number of items in the collection matches a condition stated by a predicate. + Asserts that the number of items in the collection matches a condition stated by a predicate. - Asserts that the number of items in the collection matches a condition stated by a predicate. + Asserts that the number of items in the collection matches a condition stated by a predicate. - Asserts that the collection does not contain any items. + Asserts that the collection does not contain any items. - Asserts that the collection does not contain any items. + Asserts that the collection does not contain any items. - Asserts that the collection contains at least 1 item. + Asserts that the collection contains at least 1 item. - Asserts that the collection contains at least 1 item. + Asserts that the collection contains at least 1 item. - Asserts that the collection does not contain any duplicate items. + Asserts that the collection does not contain any duplicate items. - Asserts that the collection does not contain any duplicate items. + Asserts that the collection does not contain any duplicate items. - Asserts that the collection does not contain any null items. + Asserts that the collection does not contain any null items. - Asserts that the collection does not contain any null items. + Asserts that the collection does not contain any null items. - Expects the current collection to contain all the same elements in the same order as the collection identified by - . Elements are compared using their . + Expects the current collection to contain all the same elements in the same order as the collection identified by + . Elements are compared using their . - Expects the current collection to contain all the same elements in the same order as the collection identified by - . Elements are compared using their . + Expects the current collection to contain all the same elements in the same order as the collection identified by + . Elements are compared using their . - Expects the current collection to contain all the same elements in the same order as the collection identified by - . Elements are compared using their . + Expects the current collection to contain all the same elements in the same order as the collection identified by + . Elements are compared using their . - Expects the current collection not to contain all the same elements in the same order as the collection identified by - . Elements are compared using their . + Expects the current collection not to contain all the same elements in the same order as the collection identified by + . Elements are compared using their . - Expects the current collection not to contain all the same elements in the same order as the collection identified by - . Elements are compared using their . + Expects the current collection not to contain all the same elements in the same order as the collection identified by + . Elements are compared using their . - Expects the current collection to contain all elements of the collection identified by , - regardless of the order. Elements are compared using their . + Expects the current collection to contain all elements of the collection identified by , + regardless of the order. Elements are compared using their . - Expects the current collection to contain all elements of the collection identified by , - regardless of the order. Elements are compared using their . + Expects the current collection to contain all elements of the collection identified by , + regardless of the order. Elements are compared using their . - Expects the current collection to contain all elements of the collection identified by , - regardless of the order. Elements are compared using their . + Expects the current collection to contain all elements of the collection identified by , + regardless of the order. Elements are compared using their . - Expects the current collection not to contain all elements of the collection identified by , - regardless of the order. Elements are compared using their . - - - - - Expects the current collection to contain the specified elements in any order. Elements are compared - using their implementation. - - - - - Expects the current collection to contain the specified elements in any order. Elements are compared - using their implementation. - - - - - Expects the current collection to contain the specified elements in the exact same order. Elements are compared - using their implementation. - - - - - Expects the current collection to contain the specified elements in the exact same order. Elements are compared - using their implementation. - - - - - Asserts that the collection is a subset of the . - - - - - Asserts that the collection is a subset of the . - - - - - Asserts that the collection is not a subset of the . - - - - - Asserts that the collection is not a subset of the . - - - - - Assert that the current collection has the same number of elements as . - - - - - Assert that the current collection has the same number of elements as . - - - - - Asserts that the current collection has not been initialized yet with an actual collection. - - - - - Asserts that the current collection has not been initialized yet with an actual collection. - - - - - Asserts that the current collection has been initialized with an actual collection. - - - - - Asserts that the current collection has been initialized with an actual collection. - - - - - Asserts that the current collection has the supplied at the supplied . - - - - - Asserts that the current collection has the supplied at the supplied . - - - - - Asserts that the current collection only contains items that are assignable to the type . - - - - - Asserts that the current collection only contains items that are assignable to the type . + Expects the current collection not to contain all elements of the collection identified by , + regardless of the order. Elements are compared using their . - Expects the current collection not to contain all elements of the collection identified by , - regardless of the order. Elements are compared using their . + Expects the current collection not to contain all elements of the collection identified by , + regardless of the order. Elements are compared using their . + + + + + Asserts that the current collection only contains items that are assignable to the type . + + + + + Expects the current collection to contain the specified elements in any order. Elements are compared + using their implementation. + + + + + Expects the current collection to contain the specified elements in any order. Elements are compared + using their implementation. + + + + + Expects the current collection to contain the specified elements in the exact same order. Elements are compared + using their implementation. + + + + + Expects the current collection to contain the specified elements in the exact same order. Elements are compared + using their implementation. + + + + + Asserts that the collection is a subset of the . + + + + + Asserts that the collection is a subset of the . + + + A formatted phrase as is supported by explaining why the assertion + is needed. If the phrase does not start with the word because, it is prepended automatically. + + + Zero or more objects to format using the placeholders in . + + + + + Asserts that the collection is not a subset of the . + + + + + Asserts that the collection is not a subset of the . + + + A formatted phrase as is supported by explaining why the assertion + is needed. If the phrase does not start with the word because, it is prepended automatically. + + + Zero or more objects to format using the placeholders in . + + + + + Assert that the current collection has the same number of elements as . + + + + + Assert that the current collection has the same number of elements as . + + + + + Asserts that the current collection has not been initialized yet with an actual collection. + + + + + Asserts that the current collection has not been initialized yet with an actual collection. + + + + + Asserts that the current collection has been initialized with an actual collection. + + + + + Asserts that the current collection has been initialized with an actual collection. + + + + + Asserts that the current collection has the supplied at the supplied . + + + + + Asserts that the current collection has the supplied at the supplied . + + + + + Asserts that the current collection only contains items that are assignable to the type . - Asserts that the current collection does not contain the supplied item. + Asserts that the current collection does not contain the supplied item. - Asserts that the current collection does not contain the supplied item. + Asserts that the current collection does not contain the supplied item. - + - The amount of time that a should exceed compared to another . + Asserts that the collection contains the specified item. - + - The amount of time that a should be equal or exceed compared to another . + Asserts that the collection contains the specified item. - - - - The amount of time that a should differ exactly compared to another . - - - - - The maximum amount of time that a should differ compared to another . - - - - - The amount of time that a should be within another . - - - - - Gets the object which value is being asserted. - - - - - Asserts that the thrown exception has a message matching the . - - The expected message of the exception. - - - - Asserts that the thrown exception has a message matching the . - - The expected message of the exception. - - The reason why the message of the exception should match the . - - The parameters used when formatting the . - - - - Asserts that the thrown exception contains an inner exception of type . - - The expected type of the inner exception. - An which can be used to chain assertions. - - - - Asserts that the thrown exception contains an inner exception of type . - - The expected type of the inner exception. - The reason why the inner exception should be of the supplied type. - The parameters used when formatting the . - An which can be used to chain assertions. - - - - Asserts that the thrown exception contains an inner exception with the . - - The expected message of the inner exception. - An which can be used to chain assertions. - - - - Asserts that the thrown exception contains an inner exception with the . - - The expected message of the inner exception. - - The reason why the message of the inner exception should match . - - The parameters used when formatting the . - - - - Asserts that the exception matches a particular condition. - - - The condition that the exception must match. - - - - - Asserts that the exception matches a particular condition. - - - The condition that the exception must match. - - - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. - - - Zero or more values to use for filling in any compatible placeholders. - - - - - Gets the exception object of the exception thrown. - - - - - Provides methods for asserting that the execution time of an satifies certain conditions. - - - - - Asserts that the execution time of the operation does not exceed a specified amount of time. - - - The maximum allowed duration. - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not start with the word because, it is prepended to the message. @@ -544,19 +374,81 @@ Zero or more values to use for filling in any compatible placeholders. - + - Asserts that the execution time of the operation does not exceed a specified amount of time. + Asserts that the collection contains some extra items in addition to the original items. - - The maximum allowed duration. + + + + Asserts that the collection contains at least one item that matches the predicate. + + + + + Asserts that the collection contains at least one item that matches the predicate. + + + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. + + + Zero or more values to use for filling in any compatible placeholders. - + - Provides methods for asserting that the execution time of an object member satifies certain conditions. + Asserts that the collection only contains items that match a predicate. + + + + + Asserts that the collection only contains items that match a predicate. + + + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. + + + Zero or more values to use for filling in any compatible placeholders. + + + + + Asserts that the collection does not contain any items that match the predicate. + + + + + Asserts that the collection does not contain any items that match the predicate. + + + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. + + + Zero or more values to use for filling in any compatible placeholders. + + + + + Provides services for formatting an object being used in an assertion in a human readable format. + + + + + A list of objects responsible for formatting the objects represented by placeholders. + + + + + Returns a human-readable representation of a particular object. + + + + + Returns a human-readable representation of a particular object that starts on a new line. - @@ -702,221 +594,407 @@ Zero or more objects to format using the placeholders in . - + - Asserts that the collection contains the specified item. + Records activity for a single event. - + - Asserts that the collection contains the specified item. - - - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. - - - Zero or more values to use for filling in any compatible placeholders. - - - - - Asserts that the collection contains some extra items in addition to the original items. + Records raised events for one event on one object - + - Asserts that the collection contains at least one item that matches the predicate. + Store information about a raised event + + Parameters the event was raised with + + + + The object events are recorded from - + - Asserts that the collection contains at least one item that matches the predicate. - - - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. - - - Zero or more values to use for filling in any compatible placeholders. - - - - - Asserts that the collection only contains items that match a predicate. + The name of the event that's recorded - + - Asserts that the collection only contains items that match a predicate. - - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. - - - Zero or more values to use for filling in any compatible placeholders. - + The object events are recorded from + The name of the event that's recorded - + - Asserts that the collection does not contain any items that match the predicate. + Enumerate raised events - + - Asserts that the collection does not contain any items that match the predicate. + Enumerate raised events - - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. - - - Zero or more values to use for filling in any compatible placeholders. - + - + - Asserts that a value is within a range. - - - Where the range is continuous or incremental depends on the actual type of the value. - - - The minimum valid value of the range. - - - The maximum valid value of the range. - - - - - Asserts that a value is within a range. - - - Where the range is continuous or incremental depends on the actual type of the value. - - - The minimum valid value of the range. - - - The maximum valid value of the range. - - - A formatted phrase as is supported by explaining why the assertion - is needed. If the phrase does not start with the word because, it is prepended automatically. - - - Zero or more objects to format using the placeholders in . - - - - - Asserts that a nullable numeric value is not null. + Called by the auto-generated IL, to record information about a raised event. - + - Asserts that a nullable numeric value is not null. - - - A formatted phrase as is supported by explaining why the assertion - is needed. If the phrase does not start with the word because, it is prepended automatically. - - - Zero or more objects to format using the placeholders in . - - - - - Asserts that a nullable numeric value is null. + The object events are recorded from - + - Asserts that a nullable numeric value is null. + The name of the event that's recorded - - A formatted phrase as is supported by explaining why the assertion - is needed. If the phrase does not start with the word because, it is prepended automatically. + + + + Helper class for verifying a condition and/or throwing a test harness specific exception representing an assertion failure. + + + + + Asserts that the supplied is met. + + The condition to assert. + + The message that will be used in the exception. This should describe what was expected and why. This message + can contain the following three placeholders:
+ + {0} = the expected value + {1} = the actual value + {2} = a reason explaining the expectations +
+ Any additional placeholders are allowed and will be satisfied using the . - - Zero or more objects to format using the placeholders in . - + + The expected value, or null if there is no explicit expected value. + + The actual value, or null if there is no explicit actual value. + Should describe the reason for the expectation. + Optional args for formatting placeholders in the . + + Optional arguments to satisfy any additional placeholders in the + +
+ + + Asserts that the supplied is met. + + The condition to assert. + + The message that will be used in the exception. This should describe what was expected and why. This message + can contain the following three placeholders:
+ + {0} = the expected value + {1} = the actual value + {2} = a reason explaining the expectations +
+ Any additional placeholders are allowed and will be satisfied using the . + + + The expected value, or null if there is no explicit expected value. + + The actual value, or null if there is no explicit actual value. + Should describe the reason for the expectation. + Optional args for formatting placeholders in the . + + Optional arguments to satisfy any additional placeholders in the + +
+ + + Handles an assertion failure. + + + The message that will be used in the exception. This should describe what was expected and why. This message + can contain the following three placeholders:
+ + {0} = the expected value + {1} = the actual value + {2} = a reason explaining the expectations +
+ Any additional placeholders are allowed and will be satisfied using the . + + + The expected value, or null if there is no explicit expected value. + + The actual value, or null if there is no explicit actual value. + Should describe the reason for the expectation. + Optional args for formatting placeholders in the . + + Optional arguments to satisfy any additional placeholders in the + +
+ + + Gets an object that wraps and executes a conditional or unconditional verification. + Gets the object which value is being asserted. + + + Is responsible for validating the equality of one or more properties of a subject with another object. + + + + + Returns a based on a number of seconds. + + + + + Returns a based on a number of seconds. + + + + + Returns a based on a number of minutes. + + + + + Returns a based on a number of hours. + + + + + Returns a based on a number of days. + + + + + Initializes a new instance of the class. + + + + + Static methods that aid in generic event subscription + + + + + Generates an eventhandler for an event of type eventSignature that calls RegisterEvent on recorder + when invoked. + + + + + Finds the Return Type of a Delegate. + + + + + Returns an Array of Types that make up a delegate's parameter signature. + + + + + Returns an array of types appended with an EventRecorder reference at the beginning. + + + + + Returns T/F Dependent on a Type Being a Delegate. + + + + + Returns the MethodInfo for the Delegate's "Invoke" Method. + + - Asserts that the value of an object equals another object when using it's method. + Asserts that the value of an object equals another object when using it's method. - Asserts that an object equals another object using its implementation. + Asserts that an object equals another object using its implementation. - A formatted phrase as is supported by explaining why the assertion - is needed. If the phrase does not start with the word because, it is prepended automatically. + A formatted phrase as is supported by explaining why the assertion + is needed. If the phrase does not start with the word because, it is prepended automatically. - Zero or more objects to format using the placeholders in . + Zero or more objects to format using the placeholders in . - Asserts that an object does not equal another object using it's method. + Asserts that an object does not equal another object using it's method. - Asserts that an object does not equal another object using it's method. + Asserts that an object does not equal another object using it's method. - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. - Zero or more values to use for filling in any compatible placeholders. + Zero or more values to use for filling in any compatible placeholders. - Asserts that an object reference refers to the exact same object as another object reference. + Asserts that an object reference refers to the exact same object as another object reference. - Asserts that an object reference refers to the exact same object as another object reference. + Asserts that an object reference refers to the exact same object as another object reference. - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. - Zero or more values to use for filling in any compatible placeholders. + Zero or more values to use for filling in any compatible placeholders. - Asserts that an object reference refers to a different object than another object reference refers to. + Asserts that an object reference refers to a different object than another object reference refers to. - Asserts that an object reference refers to a different object than another object reference refers to. + Asserts that an object reference refers to a different object than another object reference refers to. - A formatted phrase explaining why the assertion should be satisfied. If the phrase does not - start with the word because, it is prepended to the message. + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. - Zero or more values to use for filling in any compatible placeholders. + Zero or more values to use for filling in any compatible placeholders. + + + Asserts that an object can be serialized and deserialized using the binary serializer and that it stills retains + the values of all properties. + + + + + Asserts that an object can be serialized and deserialized using the binary serializer and that it stills retains + the values of all properties. + + + A formatted phrase as is supported by explaining why the assertion + is needed. If the phrase does not start with the word because, it is prepended automatically. + + + Zero or more objects to format using the placeholders in . + + + + + Asserts that an object can be serialized and deserialized using the XML serializer and that it stills retains + the values of all properties. + + + + + Asserts that an object can be serialized and deserialized using the XML serializer and that it stills retains + the values of all properties. + + + A formatted phrase as is supported by explaining why the assertion + is needed. If the phrase does not start with the word because, it is prepended automatically. + + + Zero or more objects to format using the placeholders in . + + + + + Asserts that the thrown exception has a message matching the . + + The expected message of the exception. + + + + Asserts that the thrown exception has a message matching the . + + The expected message of the exception. + + The reason why the message of the exception should match the . + + The parameters used when formatting the . + + + + Asserts that the thrown exception contains an inner exception of type . + + The expected type of the inner exception. + An which can be used to chain assertions. + + + + Asserts that the thrown exception contains an inner exception of type . + + The expected type of the inner exception. + The reason why the inner exception should be of the supplied type. + The parameters used when formatting the . + An which can be used to chain assertions. + + + + Asserts that the thrown exception contains an inner exception with the . + + The expected message of the inner exception. + An which can be used to chain assertions. + + + + Asserts that the thrown exception contains an inner exception with the . + + The expected message of the inner exception. + + The reason why the message of the inner exception should match . + + The parameters used when formatting the . + + + + Asserts that the exception matches a particular condition. + + + The condition that the exception must match. + + + + + Asserts that the exception matches a particular condition. + + + The condition that the exception must match. + + + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. + + + Zero or more values to use for filling in any compatible placeholders. + + + + + Gets the exception object of the exception thrown. + + Provides methods for selecting one or properties of an object and comparing them with another object. @@ -927,6 +1005,12 @@ Includes all properties of when comparing the subject with another object using . + + + Includes all properties of including those of the run-time type when comparing the subject + with another object using . + + Includes all properties of when comparing the subject with another object using , @@ -977,11 +1061,166 @@ Gets the object which value is being asserted. - + - Is responsible for validating the equality of one or more properties of a subject with another object. + Contains extension methods for custom assertions in unit tests. + + + Invokes the specified action on an subject so that you can chain it with any of the ShouldThrow or ShouldNotThrow + overloads. + + + + + Provides methods for asserting the execution time of a method or property. + + The object that exposes the method or property. + A reference to the method or property to measure the execution time of. + + Returns an object for asserting that the execution time matches certain conditions. + + + + + Provides methods for asserting the execution time of a method or property. + + The object that exposes the method or property. + A reference to the method or property to measure the execution time of. + + Returns an object for asserting that the execution time matches certain conditions. + + + + + Asserts that the throws an exception. + + + The type of the exception it should throw. + + + Returns an object that allows asserting additional members of the thrown exception. + + + + + Asserts that the throws an exception. + + + The type of the exception it should throw. + + + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. + + + Zero or more values to use for filling in any compatible placeholders. + + + Returns an object that allows asserting additional members of the thrown exception. + + + + + Asserts that the does not throw a particular exception. + + + The type of the exception it should not throw. Any other exceptions are ignored and will satisfy the assertion. + + + + + Asserts that the does not throw a particular exception. + + + The type of the exception it should not throw. Any other exceptions are ignored and will satisfy the assertion. + + + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. + + + Zero or more values to use for filling in any compatible placeholders. + + + + + Asserts that the does not throw any exception at all. + + + + + Asserts that the does not throw any exception at all. + + + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. + + + Zero or more values to use for filling in any compatible placeholders. + + + + + Forces enumerating a collection. Should be used to assert that a method that uses the + yield keyword throws a particular exception. + + + + + Forces enumerating a collection. Should be used to assert that a method that uses the + yield keyword throws a particular exception. + + + + + Asserts that the properties of an object matches those of another object. + + + + + Safely casts the specified object to the type specified through . + + + Has been introduced to allow casting objects without breaking the fluent API. + + + + + + Provides methods for asserting that the execution time of an satifies certain conditions. + + + + + Asserts that the execution time of the operation does not exceed a specified amount of time. + + + The maximum allowed duration. + + + A formatted phrase explaining why the assertion should be satisfied. If the phrase does not + start with the word because, it is prepended to the message. + + + Zero or more values to use for filling in any compatible placeholders. + + + + + Asserts that the execution time of the operation does not exceed a specified amount of time. + + + The maximum allowed duration. + + + + + Provides methods for asserting that the execution time of an object member satifies certain conditions. + + + Initializes a new instance of the class. @@ -1149,14 +1388,72 @@ Gets the object which value is being asserted. - + - Dedicated class for comparing two strings and generating consistent error messages. + Asserts that a value is within a range. + + + Where the range is continuous or incremental depends on the actual type of the value. + + + The minimum valid value of the range. + + + The maximum valid value of the range. + + + + + Asserts that a value is within a range. + + + Where the range is continuous or incremental depends on the actual type of the value. + + + The minimum valid value of the range. + + + The maximum valid value of the range. + + + A formatted phrase as is supported by explaining why the assertion + is needed. If the phrase does not start with the word because, it is prepended automatically. + + + Zero or more objects to format using the placeholders in . + + + + + Determines whether this instance can handle the specified value. + + The value. + + true if this instance can handle the specified value; otherwise, false. + + + + + Returns a that represents this instance. + + The value. + + A that represents this instance. + + + + + This class is used to store data about an intercepted event - + - Gets or sets a value indicating whether the comparison is case sensitive. + Default constructor stores the parameters the event was raised with + + + + + Parameters for the event @@ -1215,89 +1512,6 @@ Provides the logic and the display text for a .
- - - Returns a based on a number of seconds. - - - - - Returns a based on a number of seconds. - - - - - Returns a based on a number of minutes. - - - - - Returns a based on a number of hours. - - - - - Returns a based on a number of days. - - - - - Finds the first index at which the does not match the - string anymore, including the exact casing. - - - - - Finds the first index at which the does not match the - string anymore, accounting for the specified . - - - - - Gets the quoted three characters at the specified index of a string, including the index itself. - - - - - Replaces all characters that might conflict with formatting placeholders and newlines with their escaped counterparts. - - - - - Static methods that aid in generic event subscription - - - - - Generates an eventhandler for an event of type eventSignature that calls RegisterEvent on recorder - when invoked. - - - - - Finds the Return Type of a Delegate. - - - - - Returns an Array of Types that make up a delegate's parameter signature. - - - - - Returns an array of types appended with an EventRecorder reference at the beginning. - - - - - Returns T/F Dependent on a Type Being a Delegate. - - - - - Returns the MethodInfo for the Delegate's "Invoke" Method. - - Provides extension methods for monitoring and querying events. @@ -1431,62 +1645,14 @@ Asserts that at least one occurrence of the event had an object matching a predicate. - + - Records activity for a single event. + Dedicated class for comparing two strings and generating consistent error messages. - + - Records raised events for one event on one object - - - - - Store information about a raised event - - Parameters the event was raised with - - - - The object events are recorded from - - - - - The name of the event that's recorded - - - - - - The object events are recorded from - The name of the event that's recorded - - - - Enumerate raised events - - - - - Enumerate raised events - - - - - - Called by the auto-generated IL, to record information about a raised event. - - - - - The object events are recorded from - - - - - The name of the event that's recorded + Gets or sets a value indicating whether the comparison is case sensitive. @@ -1495,167 +1661,61 @@ This should ensure the Garbage Collector can still clean-up the event source object.
- + - This class is used to store data about an intercepted event + Finds the first index at which the does not match the + string anymore, including the exact casing. - + - Default constructor stores the parameters the event was raised with + Finds the first index at which the does not match the + string anymore, accounting for the specified . - + - Parameters for the event + Gets the quoted three characters at the specified index of a string, including the index itself. - + - Helper class for verifying a condition and/or throwing a test harness specific exception representing an assertion failure. + Replaces all characters that might conflict with formatting placeholders and newlines with their escaped counterparts. - + - Asserts that the supplied is met. + Asserts that a nullable numeric value is not null. - The condition to assert. - - The message that will be used in the exception. This should describe what was expected and why. This message - can contain the following three placeholders:
- - {0} = the expected value - {1} = the actual value - {2} = a reason explaining the expectations -
- Any additional placeholders are allowed and will be satisfied using the . +
+ + + Asserts that a nullable numeric value is not null. + + + A formatted phrase as is supported by explaining why the assertion + is needed. If the phrase does not start with the word because, it is prepended automatically. - - The expected value, or null if there is no explicit expected value. + + Zero or more objects to format using the placeholders in . + + + + + Asserts that a nullable numeric value is null. + + + + + Asserts that a nullable numeric value is null. + + + A formatted phrase as is supported by explaining why the assertion + is needed. If the phrase does not start with the word because, it is prepended automatically. - The actual value, or null if there is no explicit actual value. - Should describe the reason for the expectation. - Optional args for formatting placeholders in the . - - Optional arguments to satisfy any additional placeholders in the - - - - - Asserts that the supplied is met. - - The condition to assert. - - The message that will be used in the exception. This should describe what was expected and why. This message - can contain the following three placeholders:
- - {0} = the expected value - {1} = the actual value - {2} = a reason explaining the expectations -
- Any additional placeholders are allowed and will be satisfied using the . - - - The expected value, or null if there is no explicit expected value. - - The actual value, or null if there is no explicit actual value. - Should describe the reason for the expectation. - Optional args for formatting placeholders in the . - - Optional arguments to satisfy any additional placeholders in the - -
- - - Handles an assertion failure. - - - The message that will be used in the exception. This should describe what was expected and why. This message - can contain the following three placeholders:
- - {0} = the expected value - {1} = the actual value - {2} = a reason explaining the expectations -
- Any additional placeholders are allowed and will be satisfied using the . - - - The expected value, or null if there is no explicit expected value. - - The actual value, or null if there is no explicit actual value. - Should describe the reason for the expectation. - Optional args for formatting placeholders in the . - - Optional arguments to satisfy any additional placeholders in the - -
- - - Gets an object that wraps and executes a conditional or unconditional verification. - - - - - Determines whether this instance can handle the specified value. - - The value. - - true if this instance can handle the specified value; otherwise, false. - - - - - Returns a that represents this instance. - - The value. - - A that represents this instance. - - - - - Provides services for formatting an object being used in an assertion in a human readable format. - - - - - A list of objects responsible for formatting the objects represented by placeholders. - - - - - Returns a human-readable representation of a particular object. - - - - - Returns a human-readable representation of a particular object that starts on a new line. - - - - - Provides a fluent API for verifying an arbitrary condition. - - - - - Initializes a new instance of the class. - - - - - Gets the name or identifier of the current subject, or a default value if the subject is not known. - - - - - Indicates that every argument passed into is displayed on a separate line. - - - - - Gets or sets the name of the subject for the next verification. - + + Zero or more objects to format using the placeholders in . +