From fd2c0ba812294a68d933e5fffcb4cd043401904d Mon Sep 17 00:00:00 2001 From: Rick Yoesting Date: Wed, 14 Mar 2012 00:41:46 -0500 Subject: [PATCH] #6 Added support for Expression friendly Solution --- PusherRESTDotNet.Tests/Libs/Rhino.Mocks.dll | Bin 0 -> 315904 bytes PusherRESTDotNet.Tests/Libs/Rhino.Mocks.xml | 5413 +++++++++ .../Libs/nunit.framework.dll | Bin 0 -> 126976 bytes .../Libs/nunit.framework.xml | 9803 +++++++++++++++++ .../PusherRESTDotNet.Tests.csproj | 16 +- PusherRESTDotNet.sln | 8 +- .../Libs/Newtonsoft.Json.Net35.dll | Bin 0 -> 331264 bytes .../Libs/Newtonsoft.Json.Net35.pdb | Bin 0 -> 986624 bytes .../Libs/Newtonsoft.Json.Net35.xml | 6845 ++++++++++++ PusherRESTDotNet/PusherRESTDotNet.csproj | 5 +- 10 files changed, 22078 insertions(+), 12 deletions(-) create mode 100644 PusherRESTDotNet.Tests/Libs/Rhino.Mocks.dll create mode 100644 PusherRESTDotNet.Tests/Libs/Rhino.Mocks.xml create mode 100644 PusherRESTDotNet.Tests/Libs/nunit.framework.dll create mode 100644 PusherRESTDotNet.Tests/Libs/nunit.framework.xml create mode 100644 PusherRESTDotNet/Libs/Newtonsoft.Json.Net35.dll create mode 100644 PusherRESTDotNet/Libs/Newtonsoft.Json.Net35.pdb create mode 100644 PusherRESTDotNet/Libs/Newtonsoft.Json.Net35.xml diff --git a/PusherRESTDotNet.Tests/Libs/Rhino.Mocks.dll b/PusherRESTDotNet.Tests/Libs/Rhino.Mocks.dll new file mode 100644 index 0000000000000000000000000000000000000000..3fc4b2ae43749290088c7502237fcfd2bc436cb5 GIT binary patch literal 315904 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 + + + Rhino.Mocks + + + + + Defines constraints and return values for arguments of a mock. + Only use Arg inside a method call on a mock that is recording. + Example: + ExpectCall( + mock.foo( + Arg<int>.Is.GreaterThan(2), + Arg<string>.Is.Anything + )); + Use Arg.Text for string specific constraints + Use Arg<ListClass>.List for list specific constraints + + + + + + Register the predicate as a constraint for the current call. + + The predicate. + default(T) + + Allow you to use code to create constraints + + demo.AssertWasCalled(x => x.Bar(Arg{string}.Matches(a => a.StartsWith("b") && a.Contains("ba")))); + + + + + + Define a complex constraint for this argument by passing several constraints + combined with operators. (Use Is in simple cases.) + Example: Arg<string>.Matches(Is.Equal("Hello") || Text.EndsWith("u")); + + Constraints using Is, Text and List + Dummy to satisfy the compiler + + + + Define a Ref argument. + + Constraints for this argument + value returned by the mock + + + + + Define a out parameter. Use it together with the keyword out and use the + Dummy field available by the return value. + Example: mock.foo( out Arg<string>.Out("hello").Dummy ); + + + + + + + Define a simple constraint for this argument. (Use Matches in simple cases.) + Example: + Arg<int>.Is.Anthing + Arg<string>.Is.Equal("hello") + + + + + Define Constraints on list arguments. + + + + + Use the Arg class (without generic) to define Text constraints + + + + + Evaluate an equal constraint for . + + The object the parameter should equal to + + + + Define constraints on text arguments. + + + + + Used to manage the static state of the Arg<T> class"/> + + + + + Resets the static state + + + + + Returns return values for the out and ref parameters + Note: the array returned has the size of the number of out and ref + argument definitions + + + + + + Returns the constraints for all arguments. + Out arguments have an Is.Anything constraint and are also in the list. + + + + + + What should BackToRecord clear + + + + + Retain all expectations and behaviors and return to mock + + + + + All expectations + + + + + Event subscribers for this instance + + + + + Methods that should be forwarded to the base class implementation + + + + + Properties that should behave like properties + + + + + Remove all the behavior of the object + + + + + Interface for constraints + + + + + Determines if the object pass the constraints + + + + + And operator for constraints + + + + + Not operator for constraints + + + + + Or operator for constraints + + + + + Allow overriding of || or && + + + + + + + Allow overriding of || or && + + + + + + + Gets the message for this constraint + + + + + + Constrain that the public field has a specified value + + + + + Constrain that the public field matches another constraint. + + + + + Creates a new instance. + + Name of the public field. + Constraint to place on the public field value. + + + + Creates a new instance, specifying a disambiguating + for the public field. + + The type that declares the public field, used to disambiguate between public fields. + Name of the public field. + Constraint to place on the public field value. + + + + Determines if the object passes the constraint. + + + + + Gets the message for this constraint + + + + + + Creates a new instance. + + Name of the public field. + Expected value. + + + + Creates a new instance, specifying a disambiguating + for the public field. + + The type that declares the public field, used to disambiguate between public fields. + Name of the public field. + Expected value. + + + + Constrain that the property has a specified value + + + + + Constrain that the property matches another constraint. + + + + + Creates a new instance. + + Name of the property. + Constraint to place on the property value. + + + + Creates a new instance, specifying a disambiguating + for the property. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + Constraint to place on the property value. + + + + Determines if the object passes the constraint. + + + + + Gets the message for this constraint + + + + + + Creates a new instance. + + Name of the property. + Expected value. + + + + Creates a new instance, specifying a disambiguating + for the property. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + Expected value. + + + + Constrain that the parameter must be of the specified type + + + + + Creates a new instance. + + Type. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Constraint that determines whether an object is the same object as another. + + + + + Creates a new instance. + + Obj. + + + + Determines if the object passes the constraints. + + + + + Gets the message for this constraint. + + + + + Evaluate a parameter using constraints + + + + + Create new instance + + + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + A constraint based on lambda expression, we are using Expression{T} + because we want to be able to get good error reporting on that. + + + + + Initializes a new instance of the class. + + The expr. + + + + Determines if the object pass the constraints + + + + + + + Gets the message for this constraint + + + + + + Constrain that the list contains the same items as the parameter list + + + + + Creates a new instance. + + In list. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Constrain that the parameter is one of the items in the list + + + + + Creates a new instance. + + In list. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Constrain that the object is inside the parameter list + + + + + Creates a new instance. + + In list. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Applies another AbstractConstraint to the collection count. + + + + + Creates a new instance. + + The constraint that should be applied to the collection count. + + + + Determines if the parameter conforms to this constraint. + + + + + Gets the message for this constraint. + + + + + Applies another AbstractConstraint to a specific list element. + + + + + Creates a new instance. + + The zero-based index of the list element. + The constraint that should be applied to the list element. + + + + Determines if the parameter conforms to this constraint. + + + + + Gets the message for this constraint + + + + + + Applies another AbstractConstraint to a specific generic keyed list element. + + + + + Creates a new instance. + + The key of the list element. + The constraint that should be applied to the list element. + + + + Determines if the parameter conforms to this constraint. + + + + + Gets the message for this constraint + + + + + + Constrains that all elements are in the parameter list + + + + + Initializes a new instance of the class. + + The these. + + + + Determines if the object pass the constraints + + + + + + + Gets the message for this constraint + + + + + + Combines two constraints, constraint pass if either is fine. + + + + + Creates a new instance. + + C1. + C2. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Negate a constraint + + + + + Creates a new instance. + + C1. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Combines two constraints + + + + + + Creates a new instance. + + C1. + C2. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Constrain the argument to validate according to regex pattern + + + + + Creates a new instance. + + Pattern. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Constraint that evaluate whatever an argument contains the specified string. + + + + + Creates a new instance. + + Inner string. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Constraint that evaluate whatever an argument ends with the specified string + + + + + Creates a new instance. + + End. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Constraint that evaluate whatever an argument start with the specified string + + + + + Creates a new instance. + + Start. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Constraint that evaluate whatever an object equals another + + + + + Creates a new instance. + + Obj. + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Constraint that always returns true + + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Constraint that evaluate whatever a comparable is greater than another + + + + + Creates a new instance. + + + + + Determines if the object pass the constraints + + + + + Gets the message for this constraint + + + + + + Initializes a new constraint object. + + The expected object, The actual object is passed in as a parameter to the method + + + + Evaluate this constraint. + + The actual object that was passed in the method call to the mock. + True when the constraint is met, else false. + + + + Checks if the properties of the object + are the same as the properies of the object. + + The expected object + The actual object + True when both objects have the same values, else False. + + + + + + + + + This is the real heart of the beast. + + + + Used by CheckReferenceType to check all properties of the reference type. + + The expected object + The actual object + True when both objects have the same values, else False. + + + + Used by CheckReferenceType to check all fields of the reference type. + + The expected object + The actual object + True when both objects have the same values, else False. + + + + Checks the items of both collections + + The expected collection + + True if both collections contain the same items in the same order. + + + + Builds a propertyname from the Stack _properties like 'Order.Product.Price' + to be used in the error message. + + A nested property name. + + + + Rhino.Mocks uses this property to generate an error message. + + + A message telling the tester why the constraint failed. + + + + + Provides access to the constraintes defined in the class to be used in context + with the syntax. + + The type of the argument + + + + Evaluate a greater than constraint for . + + The object the parameter should be greater than + + + + Evaluate a less than constraint for . + + The object the parameter should be less than + + + + Evaluate a less than or equal constraint for . + + The object the parameter should be less than or equal to + + + + Evaluate a greater than or equal constraint for . + + The object the parameter should be greater than or equal to + + + + Evaluate an equal constraint for . + + The object the parameter should equal to + + + + Evaluate a not equal constraint for . + + The object the parameter should not equal to + + + + Evaluate a same as constraint. + + The object the parameter should the same as. + + + + Evaluate a not same as constraint. + + The object the parameter should not be the same as. + + + + Throws NotSupportedException. Don't use Equals to define constraints. Use Equal instead. + + + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + A constraints that accept anything + + + + + + A constraint that accept only nulls + + + + + + A constraint that accept only non null values + + + + + + A constraint that accept only value of the specified type. + The check is performed on the type that has been defined + as the argument type. + + + + + Provides access to the constraints defined in the class to be used in context + with the syntax. + + + + + Determines whether the specified object is in the parameter. + The parameter must be IEnumerable. + + Obj. + + + + + Determines whatever the parameter is in the collection. + + + + + Determines that the parameter collection is identical to the specified collection + + + + + Determines that the parameter collection has the specified number of elements. + + The constraint that should be applied to the collection count. + + + + Determines that an element of the parameter collections conforms to another AbstractConstraint. + + The zero-based index of the list element. + The constraint which should be applied to the list element. + + + + Determines that all elements of the specified collection are in the the parameter collection + + The collection to compare against + The constraint which should be applied to the list parameter. + + + + Throws NotSupportedException. Don't use Equals to define constraints. Use Equal instead. + + + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Provides a dummy field to pass as out or ref argument. + + + + + + Dummy field to satisfy the compiler. Used for out and ref arguments. + + + + + Central location for constraints for object's public fields + + + + + Constrains the parameter to have a public field with the specified value + + Name of the public field. + Expected value. + + + + + Constrains the parameter to have a public field with the specified value. + + The type that declares the public field, used to disambiguate between public fields. + Name of the public field. + Expected value. + + + + + Constrains the parameter to have a public field satisfying a specified constraint. + + Name of the public field. + Constraint for the public field. + + + + Constrains the parameter to have a public field satisfying a specified constraint. + + The type that declares the public field, used to disambiguate between public fields. + Name of the public field. + Constraint for the public field. + + + + Determines whether the parameter has the specified public field and that it is null. + + Name of the public field. + + + + + Determines whether the parameter has the specified public field and that it is null. + + The type that declares the public field, used to disambiguate between public fields. + Name of the public field. + + + + + Determines whether the parameter has the specified public field and that it is not null. + + Name of the public field. + + + + + Determines whether the parameter has the specified public field and that it is not null. + + The type that declares the public field, used to disambiguate between public fields. + Name of the public field. + + + + + Central location for constraints + + + + + Evaluate a greater than constraint for . + + The object the parameter should be greater than + + + + Evaluate a less than constraint for . + + The object the parameter should be less than + + + + Evaluate a less than or equal constraint for . + + The object the parameter should be less than or equal to + + + + Evaluate a greater than or equal constraint for . + + The object the parameter should be greater than or equal to + + + + Evaluate an equal constraint for . + + The object the parameter should equal to + + + + Evaluate a not equal constraint for . + + The object the parameter should not equal to + + + + Evaluate a same as constraint. + + The object the parameter should the same as. + + + + Evaluate a not same as constraint. + + The object the parameter should not be the same as. + + + + A constraints that accept anything + + + + + + A constraint that accept only nulls + + + + + + A constraint that accept only non null values + + + + + + A constraint that accept only value of the specified type + + + + + A constraint that accept only value of the specified type + + + + + Evaluate a parameter using a predicate + + The predicate to use + + + + Central location for constraints about lists and collections + + + + + Determines whether the specified obj is in the parameter. + The parameter must be IEnumerable. + + Obj. + + + + + Determines whatever the parameter is in the collection. + + + + + Determines that the parameter collection is identical to the specified collection + + + + + Determines that the parameter collection has the specified number of elements. + + The constraint that should be applied to the collection count. + + + + Determines that an element of the parameter collections conforms to another AbstractConstraint. + + The zero-based index of the list element. + The constraint which should be applied to the list element. + + + + Determines that an element of the parameter collections conforms to another AbstractConstraint. + + The key of the element. + The constraint which should be applied to the element. + + + + Determines that all elements of the specified collection are in the the parameter collection + + The collection to compare against + The constraint which should be applied to the list parameter. + + + + Central location for constraints for object's properties + + + + + Constrains the parameter to have property with the specified value + + Name of the property. + Expected value. + + + + + Constrains the parameter to have property with the specified value. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + Expected value. + + + + + Constrains the parameter to have a property satisfying a specified constraint. + + Name of the property. + Constraint for the property. + + + + Constrains the parameter to have a property satisfying a specified constraint. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + Constraint for the property. + + + + Determines whether the parameter has the specified property and that it is null. + + Name of the property. + + + + + Determines whether the parameter has the specified property and that it is null. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + + + + + Determines whether the parameter has the specified property and that it is not null. + + Name of the property. + + + + + Determines whether the parameter has the specified property and that it is not null. + + The type that declares the property, used to disambiguate between properties. + Name of the property. + + + + + constraints the parameter to have the exact same property values as the expected object. + + An object, of the same type as the parameter, whose properties are set with the expected values. + An instance of the constraint that will do the actual check. + + The parameter's public property values and public field values will be matched against the expected object's + public property values and public field values. The first mismatch will be reported and no further matching is done. + The matching is recursive for any property or field that has properties or fields of it's own. + Collections are supported through IEnumerable, which means the constraint will check if the actual and expected + collection contain the same values in the same order, where the values contained by the collection can have properties + and fields of their own that will be checked as well because of the recursive nature of this constraint. + + + + + Central location for all text related constraints + + + + + Constrain the argument to starts with the specified string + + + + + Constrain the argument to end with the specified string + + + + + Constrain the argument to contain the specified string + + + + + Constrain the argument to validate according to regex pattern + + + + + Provides access to the constraintes defined in the class to be used in context + with the syntax. + + + + + Constrain the argument to starts with the specified string + + + + + + Constrain the argument to end with the specified string + + + + + Constrain the argument to contain the specified string + + + + + Constrain the argument to validate according to regex pattern + + + + + Throws NotSupportedException. Don't use Equals to define constraints. Use Equal instead. + + + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + This class defines a lot of method signatures, which we will use + to allow compatability on net-2.0 + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + dummy + + + + + Allows expectations to be set on methods that should never be called. + For methods with void return value, you need to use LastCall or + DoNotExpect.Call() with a delegate. + + + + + Sets LastCall.Repeat.Never() on /any/ proxy on /any/ repository on the current thread. + This method if not safe for multi threading scenarios. + + + + + Accepts a delegate that will execute inside the method which + LastCall.Repeat.Never() will be applied to. + It is expected to be used with anonymous delegates / lambda expressions and only one + method should be called. + + + IService mockSrv = mocks.CreateMock(typeof(IService)) as IService; + DoNotExpect.Call(delegate{ mockSrv.Stop(); }); + ... + + + + + An expectaton violation was detected. + + + + + Creates a new instance. + + Message. + + + + Serialization constructor + + + + + Signals that an object was call on a mock repository which doesn't + belong to this mock repository or not a mock + + + + + Creates a new instance. + + Message. + + + + Serialization constructor + + + + + Allows to set expectation on methods that has return values. + For methods with void return value, you need to use LastCall + + + + + The method options for the last call on /any/ proxy on /any/ repository on the current thread. + This method if not safe for multi threading scenarios, use . + + + + + Accepts a delegate that will execute inside the method, and then return the resulting + instance. + It is expected to be used with anonymous delegates / lambda expressions and only one + method should be called. + + + IService mockSrv = mocks.CreateMock(typeof(IService)) as IService; + Expect.Call(delegate{ mockSrv.Start(); }).Throw(new NetworkException()); + ... + + + + + Get the method options for the last method call on the mockInstance. + + + + + A delegate that can be used to get better syntax on Expect.Call(delegate { foo.DoSomething(); }); + + + + + Abstract class that holds common information for + expectations. + + + + + Interface to validate that a method call is correct. + + + + + Validate the arguments for the method. + This method can be called numerous times, so be careful about side effects + + The arguments with which the method was called + + + + Add an actual method call to this expectation + + + + + Returns the return value or throw the exception and setup any output / ref parameters + that has been set. + + + + + Builds the verification failure message. + + + + + + Gets the error message. + + + + + + Range of expected calls + + + + + Number of call actually made for this method + + + + + If this expectation is still waiting for calls. + + + + + The return value for a method matching this expectation + + + + + Gets or sets the exception to throw on a method matching this expectation. + + + + + Gets a value indicating whether this instance's action is staisfied. + A staisfied instance means that there are no more requirements from + this method. A method with non void return value must register either + a return value or an exception to throw. + + + + + Gets the method this expectation is for. + + + + + Gets or sets what special condtions there are for this method + repeating. + + + + + Gets a value indicating whether this expectation was satisfied + + + + + Specify whatever this expectation has a return value set + You can't check ReturnValue for this because a valid return value include null. + + + + + An action to execute when the method is matched. + + + + + Set the out / ref parameters for the method call. + The indexing is zero based and ignores any non out/ref parameter. + It is possible not to pass all the parameters. This method can be called only once. + + + + + Documentation Message + + + + + Gets the invocation for this expectation + + The invocation. + + + + Occurs when the exceptation is match on a method call + + + + + Allow to set the return value in the future, if it was already set. + + + + + Number of actuall calls made that passed this expectation + + + + + Range of expected calls that should pass this expectation. + + + + + The return value for a method matching this expectation + + + + + The exception to throw on a method matching this expectation. + + + + + The method this expectation is for. + + + + + The return value for this method was set + + + + + Whether this method will repeat + unlimited number of times. + + + + + A delegate that will be run when the + expectation is matched. + + + + + The arguments that matched this expectation. + + + + + Documentation message + + + + + The method originalInvocation + + + + + Get the hash code + + + + + Add an actual actualMethodCall call to this expectation + + + + + Builds the verification failure message. + + + + + + Returns the return value or throw the exception and setup output / ref parameters + + + + + Validate the arguments for the method on the child methods + + The arguments with which the method was called + + + + Creates a new instance. + + The originalInvocation for this method, required because it contains the generic type infromation + Number of method calls for this expectations + + + + Creates a new instance. + + Expectation. + + + + Validate the arguments for the method on the child methods + + The arguments with which the method was called + + + + Determines if this object equal to obj + + + + + The error message for these arguments + + + + + Asserts that the delegate has the same parameters as the expectation's method call + + + + + Setter for the outpur / ref parameters for this expecataion. + Can only be set once. + + + + + Specify whether this expectation has a return value set + You can't check ReturnValue for this because a valid return value include null. + + + + + Gets the method this expectation is for. + + + + + Gets the originalInvocation for this expectation + + The originalInvocation. + + + + Gets or sets what special condtions there are for this method + + + + + Range of expected calls + + + + + Number of call actually made for this method + + + + + If this expectation is still waiting for calls. + + + + + Gets a value indicating whether this expectation was satisfied + + + + + The return value for a method matching this expectation + + + + + An action to execute when the method is matched. + + + + + Gets or sets the exception to throw on a method matching this expectation. + + + + + Gets a value indicating whether this instance's action is staisfied. + A staisfied instance means that there are no more requirements from + this method. A method with non void return value must register either + a return value or an exception to throw or an action to execute. + + + + + Documentation message + + + + + Occurs when the exceptation is match on a method call + + + + + Allow to set the return value in the future, if it was already set. + + + + + Gets the error message. + + + + + + Expectation that matches any arguments for the method. + + + + + Creates a new instance. + + Invocation for this expectation + Number of method calls for this expectations + + + + Creates a new instance. + + Expectation. + + + + Validate the arguments for the method. + + The arguments with which the method was called + + + + Determines if the object equal to expectation + + + + + Get the hash code + + + + + Gets the error message. + + + + + + Summary description for ArgsEqualExpectation. + + + + + Creates a new instance. + + Expected args. + The invocation for this expectation + Number of method calls for this expectations + + + + Validate the arguments for the method. + + The arguments with which the method was called + + + + Determines if the object equal to expectation + + + + + Get the hash code + + + + + Gets the error message. + + + + + + Get the expected args. + + + + + Call a specified callback to verify the expectation + + + + + Creates a new instance. + + Expectation. + Callback. + + + + Creates a new instance. + + Invocation for this expectation + Callback. + Number of method calls for this expectations + + + + Validate the arguments for the method on the child methods + + The arguments with which the method was called + + + + Determines if the object equal to expectation + + + + + Get the hash code + + + + + Gets the error message. + + + + + + Expect the method's arguments to match the contraints + + + + + Creates a new instance. + + Invocation for this expectation + Constraints. + Number of method calls for this expectations + + + + Creates a new instance. + + Expectation. + Constraints. + + + + Validate the arguments for the method. + + The arguments with which the method was called + + + + Determines if the object equal to expectation + + + + + Get the hash code + + + + + Gets the error message. + + + + + + Doesn't log anything, just makes happy noises + + + + + Log expectations - allows to see what is going on inside Rhino Mocks + + + + + Logs the expectation as is was recorded + + The invocation. + The expectation. + + + + Logs the expectation as it was recorded + + The invocation. + The expectation. + + + + Logs the unexpected method call. + + The invocation. + The message. + + + + Logs the expectation as is was recorded + + The invocation. + The expectation. + + + + Logs the expectation as it was recorded + + The invocation. + The expectation. + + + + Logs the unexpected method call. + + The invocation. + The message. + + + + Operation on a remoting proxy + + + It is not possible to directly communicate to a real proxy via transparent proxy. + Transparent proxy impersonates a user type and only methods of that user type are callable. + The only methods that are guaranteed to exist on any transparent proxy are methods defined + in Object: namely ToString(), GetHashCode(), and Equals()). + + These three methods are the only way to tell the real proxy to do something. + Equals() is the most suitable of all, since it accepts an arbitrary object parameter. + The RemotingProxy code is built so that if it is compared to an IRemotingProxyOperation, + transparentProxy.Equals(operation) will call operation.Process(realProxy). + This way we can retrieve a real proxy from transparent proxy and perform + arbitrary operation on it. + + + + + Generates remoting proxies and provides utility functions + + + + + Create the proxy using remoting + + + + + Check whether an object is a transparent proxy with a RemotingProxy behind it + + Object to check + true if the object is a transparent proxy with a RemotingProxy instance behind it, false otherwise + We use Equals() method to communicate with the real proxy behind the object. + See IRemotingProxyOperation for more details + + + + Retrieve a mocked object from a transparent proxy + + Transparent proxy with a RemotingProxy instance behind it + Mocked object associated with the proxy + We use Equals() method to communicate with the real proxy behind the object. + See IRemotingProxyOperation for more details + + + + Implementation of IInvocation based on remoting proxy + + Some methods are marked NotSupported since they either don't make sense + for remoting proxies, or they are never called by Rhino Mocks + + + + Rudimetry implementation that simply logs methods calls as text. + + + + + Initializes a new instance of the class. + + The writer. + + + + Logs the expectation as it was recorded + + The invocation. + The expectation. + + + + Logs the expectation as it was recorded + + The invocation. + The expectation. + + + + Logs the unexpected method call. + + The invocation. + The message. + + + + Behave like a stub, all properties and events acts normally, methods calls + return default values by default (but can use expectations to set them up), etc. + + + + + Records all the expectations for a mock + + + + + Different actions on this mock + + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Verify that this mock expectations have passed. + + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Gets a mock state that match the original mock state of the object. + + + + + Get the options for the last method call + + + + + Set the exception to throw when Verify is called. + This is used to report exception that may have happened but where caught in the code. + This way, they are reported anyway when Verify() is called. + + + + + This method is called to indicate that a property behavior call. + This is done so we generate good error message in the common case of people using + Stubbed properties with Return(). + + + + + Gets the matching verify state for this state + + + + + Get the options for the last method call + + + + + Get the options for the last method call + + + + + Set the exception to throw when Verify is called. + This is used to report exception that may have happened but where caught in the code. + This way, they are reported anyway when Verify() is called. + + + + + This method is called to indicate that a property behavior call. + This is done so we generate good error message in the common case of people using + Stubbed properties with Return(). + + + + + Creates a new instance. + + Repository. + The proxy that generates the method calls + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Verify that this mock expectations have passed. + + + + + Gets a mock state that match the original mock state of the object. + + + + + Asserts the previous method is closed (had an expectation set on it so we can replay it correctly) + + + + + Get the default call count range expectation + + + + + + Gets the last expectation. + + + + + Gets the total method calls count. + + + + + Get the options for the last method call + + + + + Gets the matching verify state for this state + + + + + Initializes a new instance of the class. + + The proxy that generates the method calls + Repository. + + + + We don't care much about expectations here, so we will remove the expectation if + it is not closed. + + + + + Verify that we can move to replay state and move + to the reply state. + + + + + + Get the default call count range expectation + + + + + + Validate expectations on recorded methods, but in general completely ignoring them. + Similar to except that it would return a + when BackToRecord is called. + + + + + Validate all expectations on a mock + + + + + The repository for this state + + + + + The proxy object for this state + + + + + Get the options for the last method call + + + + + Creates a new instance. + + The previous state for this method + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Add a method call for this state' mock. + This allows derived method to cleanly get a the setupresult behavior while adding + their own. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Set the exception to throw when Verify is called. + This is used to report exception that may have happened but where caught in the code. + This way, they are reported anyway when Verify() is called. + + + + + not relevant + + + + + Verify that this mock expectations have passed. + + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Gets a mock state that match the original mock state of the object. + + + + + Get the options for the last method call + + + + + Gets the matching verify state for this state + + + + + Initializes a new instance of the class. + + The previous state for this method + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Gets a mock state that matches the original mock state of the object. + + + + + Write rhino mocks log info to the trace + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + if set to true [log recorded]. + if set to true [log replayed]. + if set to true [log unexpected]. + + + + Logs the expectation as is was recorded + + The invocation. + The expectation. + + + + Logs the expectation as it was recorded + + The invocation. + The expectation. + + + + Logs the unexpected method call. + + The invocation. + The message. + + + + Writes log information as stack traces about rhino mocks activity + + + + + Allows to redirect output to a different location. + + + + + Logs the expectation as is was recorded + + The invocation. + The expectation. + + + + Logs the expectation as it was recorded + + The invocation. + The expectation. + + + + Logs the unexpected method call. + + The invocation. + The message. + + + + Marker interface used to indicate that this is a partial mock. + + + + + Options for CallOriginalMethod + + + + + No expectation is created, the method will be called directly + + + + + Normal expectation is created, but when the method is later called, it will also call the original method + + + + + This is a data structure that is used by + to pass + the current method to the relevant delegate + + + + + Initializes a new instance of the class. + + The invocation. + + + + Gets the args for this method invocation + + + + + Get the method that was caused this invocation + + + + + Gets or sets the return value for this method invocation + + The return value. + + + + Adds optional new usage: + using(mockRepository.Record()) { + Expect.Call(mock.Method()).Return(retVal); + } + using(mockRepository.Playback()) { + // Execute code + } + N.B. mockRepository.ReplayAll() and mockRepository.VerifyAll() + calls are taken care of by Record/Playback + + + Creates proxied instances of types. + + + + Generates a stub without needing a + Arguments for 's constructor + The of stub to create. + The stub + + + + Generates a stub without needing a + The of stub. + Arguments for the 's constructor. + The stub + + + + Generate a mock object without needing a + type of mock object to create. + Arguments for 's constructor + the mock object + + + + Generate a multi-mock object without needing a + The typeof object to generate a mock for. + A second interface to generate a multi-mock for. + Arguments for 's constructor + the multi-mock object + + + + Generate a multi-mock object without without needing a + The typeof object to generate a mock for. + An interface to generate a multi-mock for. + A second interface to generate a multi-mock for. + Arguments for 's constructor + the multi-mock object + + + + Creates a multi-mock without without needing a + The type of mock to create, this can be a class + Any extra interfaces to add to the multi-mock, these can only be interfaces. + Arguments for 's constructor + the multi-mock object + + + + Creates a strict mock without without needing a + Any arguments required for the 's constructor + The type of mock object to create. + The mock object with strict replay semantics + + + + Creates a strict multi-mock without needing a + Any arguments required for the 's constructor + The type of mock object to create, this can be a class. + An interface to generate a multi-mock for, this must be an interface! + The multi-mock object with strict replay semantics + + + + Creates a strict multi-mock without needing a + Any arguments required for the 's constructor + The type of mock object to create, this can be a class. + An interface to generate a multi-mock for, this must be an interface! + A second interface to generate a multi-mock for, this must be an interface! + The multi-mock object with strict replay semantics + + + + Creates a strict multi-mock without needing a + The type of mock object to create, this can be a class + Any extra interfaces to generate a multi-mock for, these must be interaces! + Any arguments for the 's constructor + The strict multi-mock object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generate a mock object with dynamic replay semantics and remoting without needing the mock repository + + + + + Generate a mock object with strict replay semantics and remoting without needing the mock repository + + + + Helper method to create a mock object without a repository instance and put the object back into replay mode. + The type of mock object to create + A delegate that uses a mock repository instance to create the underlying mock + The mock object in the replay mode. + + + + + + + + + + + + + + This is a map of types to ProxyGenerators. + + + + + This is used to record the last repository that has a method called on it. + + + + + this is used to get to the last proxy on this repository. + + + + + For mock delegates, maps the proxy instance from intercepted invocations + back to the delegate that was originally returned to client code, if any. + + + + + All the proxies in the mock repositories + + + + + This is here because we can't put it in any of the recorders, since repeatable methods + have no orderring, and if we try to handle them using the usual manner, we would get into + wierd situations where repeatable method that was defined in an orderring block doesn't + exists until we enter this block. + + + + + Creates a new instance. + + + + + Move the repository to ordered mode + + + + + Move the repository to un-ordered mode + + + + + Creates a mock for the specified type. + + Type. + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a strict mock for the specified type. + + Type. + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a remoting mock for the specified type. + + Type. + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a strict remoting mock for the specified type. + + Type. + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a remoting mock for the specified type. + + + Arguments for the class' constructor, if mocking a concrete class + + + + + Creates a strict remoting mock for the specified type. + + + Arguments for the class' constructor, if mocking a concrete class + + + + + Creates a mock from several types, with strict semantics. + Only may be a class. + + + + + Creates a strict mock from several types, with strict semantics. + Only may be a class. + + + + + Creates a mock from several types, with strict semantics. + Only may be a class. + + The main type to mock. + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class. + + + + Creates a strict mock from several types, with strict semantics. + Only may be a class. + + The main type to mock. + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class. + + + + Creates a mock from several types, with dynamic semantics. + Only may be a class. + + The main type to mock. + Extra interface types to mock. + + + + Creates a mock from several types, with dynamic semantics. + Only may be a class. + + The main type to mock. + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class. + + + Creates a dynamic mock for the specified type. + Type. + Arguments for the class' constructor, if mocking a concrete class + + + Creates a dynamic mock for the specified type. + Type. + Arguments for the class' constructor, if mocking a concrete class + + + Creates a dynamic mock for the specified type. + + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a mock object that defaults to calling the class methods if no expectation is set on the method. + Type. + Arguments for the class' constructor. + + + Creates a mock object that defaults to calling the class methods. + Type. + Extra interface types to mock. + + + Creates a mock object that defaults to calling the class methods. + Type. + Extra interface types to mock. + Arguments for the class' constructor. + + + Creates a mock object using remoting proxies + Type to mock - must be MarshalByRefObject + Mock object + Proxy mock can mock non-virtual methods, but not static methods + Creates the mock state for this proxy + + + + Cause the mock state to change to replay, any further call is compared to the + ones that were called in the record state. + + This method *cannot* be called from inside an ordering. + the object to move to replay state + + + + Cause the mock state to change to replay, any further call is compared to the + ones that were called in the record state. + + the object to move to replay state + + + + Move the mocked object back to record state.You can (and it's recommended) to run {Verify()} before you use this method. + Will delete all current expectations! + + + + Move the mocked object back to record state. + Optionally, can delete all current expectations, but allows more granularity about how + it would behave with regard to the object state. + + + + + Verify that all the expectations for this object were fulfilled. + + the object to verify the expectations for + + + + Get the method options for the last call on + mockedInstance. + + The mock object + Method options for the last call + + + + Maps an invocation proxy back to the mock object instance that was originally + returned to client code which might have been a delegate to this proxy. + + The mock object proxy from the intercepted invocation + The mock object + + + This is provided to allow advance extention functionality, where Rhino Mocks standard functionality is not enough. + The type to mock + Delegate that create the first state of the mocked object (usualy the record state). + Additional types to be implemented, this can be only interfaces + optional arguments for the constructor + + + + + Method: GetMockedObject + Get an IProxy from a mocked object instance, or throws if the + object is not a mock object. + + + + + Method: GetMockedObjectOrNull + Get an IProxy from a mocked object instance, or null if the + object is not a mock object. + + + + Pops the recorder. + + + Pushes the recorder. + New recorder. + + + + All the mock objects in this repository will be moved + to record state. + + + + + All the mock objects in this repository will be moved + to record state. + + + + + Replay all the mocks from this repository + + + + + Verify all the mocks from this repository + + + + + Gets the proxy generator for a specific type. Having a single ProxyGenerator + with multiple types linearly degrades the performance so this implementation + keeps one ProxyGenerator per type. + + + + Set the exception to be thrown when verified is called. + + + + Creates a mock for the spesified type with strict mocking semantics. + Strict semantics means that any call that wasn't explicitly recorded is considered an error and would cause an exception to be thrown. + + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a mock for the spesified type with strict mocking semantics. + Strict semantics means that any call that wasn't explicitly recorded is considered an error and would cause an exception to be thrown. + + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a dynamic mock for the specified type. + + Arguments for the class' constructor, if mocking a concrete class + + + + Creates a mock object from several types. + + + + + Creates a strict mock object from several types. + + + + + Create a mock object from several types with dynamic semantics. + + + + + Create a mock object from several types with partial semantics. + + + + + Create a mock object from several types with strict semantics. + + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class + + + + Create a strict mock object from several types with strict semantics. + + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class + + + + Create a mock object from several types with dynamic semantics. + + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class + + + + Create a mock object from several types with partial semantics. + + Extra interface types to mock. + Arguments for the class' constructor, if mocking a concrete class + + + + Create a mock object with from a class that defaults to calling the class methods + + Arguments for the class' constructor, if mocking a concrete class + + + + Create a stub object, one that has properties and events ready for use, and + can have methods called on it. It requires an explicit step in order to create + an expectation for a stub. + + The arguments for constructor. + + + + Create a stub object, one that has properties and events ready for use, and + can have methods called on it. It requires an explicit step in order to create + an expectation for a stub. + + The type. + The arguments for constructor. + The stub + + + + Returns true if the passed mock is currently in replay mode. + + The mock to test. + True if the mock is in replay mode, false otherwise. + + + + Determines whether the specified proxy is a stub. + + The proxy. + + + + Register a call on a prperty behavior + + + + + + Gets the recorder. + + + + + + Gets the replayer for this repository. + + + + + + Gets the last proxy which had a method call. + + + + + Delegate: CreateMockState + This is used internally to cleanly handle the creation of different + RecordMockStates. + + + + + A set of extension methods that adds Arrange Act Assert mode to Rhino Mocks + + + + + Create an expectation on this mock for this action to occur + + + The mock. + The action. + + + + + Reset all expectations on this mock object + + + The mock. + + + + Reset the selected expectation on this mock object + + + The mock. + The options to reset the expectations on this mock. + + + + Cause the mock state to change to replay, any further call is compared to the + ones that were called in the record state. + + the mocked object to move to replay state + + + + Gets the mock repository for this specificied mock object + + + The mock. + + + + + Create an expectation on this mock for this action to occur + + + + The mock. + The action. + + + + + Tell the mock object to perform a certain action when a matching + method is called. + Does not create an expectation for this method. + + + The mock. + The action. + + + + + Tell the mock object to perform a certain action when a matching + method is called. + Does not create an expectation for this method. + + + + The mock. + The action. + + + + + Gets the arguments for calls made on this mock object and the method that was called + in the action. + + + The mock. + The action. + + + Here we will get all the arguments for all the calls made to DoSomething(int) + + var argsForCalls = foo54.GetArgumentsForCallsMadeOn(x => x.DoSomething(0)) + + + + + + Gets the arguments for calls made on this mock object and the method that was called + in the action and matches the given constraints + + + The mock. + The action. + The setup constraints. + + + Here we will get all the arguments for all the calls made to DoSomething(int) + + var argsForCalls = foo54.GetArgumentsForCallsMadeOn(x => x.DoSomething(0)) + + + + + + Asserts that a particular method was called on this mock object + + + The mock. + The action. + + + + Asserts that a particular method was called on this mock object that match + a particular constraint set. + + + The mock. + The action. + The setup constraints. + + + + Asserts that a particular method was called on this mock object that match + a particular constraint set. + + + The mock. + The action. + + + + Asserts that a particular method was called on this mock object that match + a particular constraint set. + + + The mock. + The action. + The setup constraints. + + + + Asserts that a particular method was NOT called on this mock object + + + The mock. + The action. + + + + Asserts that a particular method was NOT called on this mock object that match + a particular constraint set. + + + The mock. + The action. + The setup constraints. + + + + Asserts that a particular method was NOT called on this mock object + + + The mock. + The action. + + + + Asserts that a particular method was NOT called on this mock object + + + The mock. + The action. + The setup constraints. + + + + Finds the approprite implementation type of this item. + This is the class or an interface outside of the rhino mocks. + + The mocked obj. + + + + + Verifies all expectations on this mock object + + The mock object. + + + + Gets the event raiser for the event that was called in the action passed + + The type of the event source. + The mock object. + The event subscription. + + + + + Raise the specified event using the passed arguments. + The even is extracted from the passed labmda + + The type of the event source. + The mock object. + The event subscription. + The sender. + The instance containing the event data. + + + + Raise the specified event using the passed arguments. + The even is extracted from the passed labmda + + The type of the event source. + The mock object. + The event subscription. + The args. + + + TODO: Make this better! It currently breaks down when mocking classes or + ABC's that call other virtual methods which are getting intercepted too. I wish + we could just walk Expression{Action{Action{T}} to assert only a single + method is being made. + + The workaround is to not call foo.AssertWasCalled .. rather foo.VerifyAllExpectations() + The type of mock object + The mock repository + The actual mock object to assert expectations on. + + + + Fake type that disallow creating it. + Should have been System.Type, but we can't use it. + + + + + Utility class for dealing with messing generics scenarios. + + + + + There are issues with trying to get this to work correctly with open generic types, since this is an edge case, + I am letting the runtime handle it. + + + + + Gets the real type, including de-constructing and constructing the type of generic + methods parameters. + + The type. + The invocation. + + + + + Because we need to support complex types here (simple generics were handled above) we + need to be aware of the following scenarios: + List[T] and List[Foo[T]] + + + + + ExpectationsList + + + + + Dictionary + + + + + Dictionary class + + + + + Create a new instance of ProxyStateDictionary + + + + + Allows to call a method and immediately get it's options. + + + + + Interface to allow calling a method and immediately get it's options. + + + + + Get the method options for the call + + The method call should go here, the return value is ignored + + + + Creates a new instance. + + + + + Get the method options for the call + + The method call should go here, the return value is ignored + + + + Allows to call a method and immediately get it's options. + Set the expected number for the call to Any() + + + + + Creates a new instance. + + Proxy. + Mocked instance. + + + + Get the method options for the call + + The method call should go here, the return value is ignored + + + + This class is reponsible for taking a delegate and creating a wrapper + interface around it, so it can be mocked. + + + + + The scope for all the delegate interfaces create by this mock repository. + + + + + Gets a type with an "Invoke" method suitable for use as a target of the + specified delegate type. + + + + + + + Raise events for all subscribers for an event + + + + + Raise events for all subscribers for an event + + + + + Raise the event + + + + + The most common form for the event handler signature + + + + + Create an event raiser for the specified event on this instance. + + + + + Creates a new instance of EventRaiser + + + + + Raise the event + + + + + The most common signature for events + Here to allow intellisense to make better guesses about how + it should suggest parameters. + + + + + Allows to define what would happen when a method + is called. + + + + + Allows to define what would happen when a method + is called. + + + + + Set the return value for the method. + + The object the method will return + IRepeat that defines how many times the method will return this value + + + + Allow to override this return value in the future + + IRepeat that defines how many times the method will return this value + + + + Throws the specified exception when the method is called. + + Exception to throw + + + + Ignores the arguments for this method. Any argument will be matched + againt this method. + + + + + Add constraints for the method's arguments. + + + + + Set a callback method for the last call + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched + and allow to optionally modify the invocation as needed + + + + + Call the original method on the class, bypassing the mocking layers. + + + + + + Call the original method on the class, optionally bypassing the mocking layers. + + + + + + Use the property as a simple property, getting/setting the values without + causing mock expectations. + + + + + Expect last (property) call as property setting, ignore the argument given + + + + + + Expect last (property) call as property setting with a given argument. + + + + + + + Get an event raiser for the last subscribed event. + + + + + Set the parameter values for out and ref parameters. + This is done using zero based indexing, and _ignoring_ any non out/ref parameter. + + + + + Documentation message for the expectation + + Message + + + + Better syntax to define repeats. + + + + + Allows to specify the number of time for method calls + + + + + Repeat the method twice. + + + + + Repeat the method once. + + + + + Repeat the method at least once, then repeat as many time as it would like. + + + + + Repeat the method any number of times. + This has special affects in that this method would now ignore orderring. + + + + + Set the range to repeat an action. + + Min. + Max. + + + + Set the amount of times to repeat an action. + + + + + This method must not appear in the replay state. + This has special affects in that this method would now ignore orderring. + + + + + Creates a new instance. + + the repository for this expectation + the recorder for this proxy + the proxy for this expectation + Expectation. + + + + Add constraints for the method's arguments. + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Set the return value for the method. + + The object the method will return + IRepeat that defines how many times the method will return this value + + + + Set the return value for the method, but allow to override this return value in the future + + IRepeat that defines how many times the method will return this value + + + + Throws the specified exception when the method is called. + + Exception to throw + + + + Ignores the arguments for this method. Any argument will be matched + againt this method. + + + + + Call the original method on the class, bypassing the mocking layers. + + + + + + Call the original method on the class, optionally bypassing the mocking layers + + + + + + Use the property as a simple property, getting/setting the values without + causing mock expectations. + + + + + Expect last (property) call as property setting, ignore the argument given + + + + + + Expect last (property) call as property setting with a given argument. + + + + + + + Gets the event raiser for the last event + + + + + Set the parameter values for out and ref parameters. + This is done using zero based indexing, and _ignoring_ any non out/ref parameter. + + + + + Repeat the method twice. + + + + + Repeat the method once. + + + + + Repeat the method at least once, then repeat as many time as it would like. + + + + + This method must not appear in the replay state. + + + + + Documentation message for the expectation + + Message + + + + Repeat the method any number of times. + + + + + Set the range to repeat an action. + + Min. + Max. + + + + Set the amount of times to repeat an action. + + + + + Better syntax to define repeats. + + + + + This class will provide hash code for hashtables without needing + to call the GetHashCode() on the object, which may very well be mocked. + This class has no state so it is a singelton to avoid creating a lot of objects + that does the exact same thing. See flyweight patterns. + + + + + Get the hash code for a proxy object without calling GetHashCode() + on the object. + + + + + Compares two instances of mocked objects + + + + + Compare two mocked objects + + + + + The next hash code value for a mock object. + This is safe for multi threading. + + + + + The sole instance of + + + + + This is a dummy type that is used merely to give DynamicProxy the proxy instance that + it needs to create IProxy's types. + + + + + Interface to find the repository of a mocked object + + + + + Return true if it should call the original method on the object + instead of pass it to the message chain. + + The method to call + + + + Register a method to be called on the object directly + + + + + Register a property on the object that will behave as a simple property + + + + + Check if the method was registered as a property method. + + + + + Do get/set on the property, according to need. + + + + + Do add/remove on the event + + + + + Get the subscribers of a spesific event + + + + + Gets the declaring type of the method, taking into acccount the possible generic + parameters that it was created with. + + + + + Clears the state of the object, remove original calls, property behavior, subscribed events, etc. + + + + + Get all the method calls arguments that were made against this object with the specificed + method. + + + Only method calls in replay mode are counted + + + + + Records the method call + + + + + Mocks that are tied to this mock lifestyle + + + + + The unique hash code of this mock, which is not related + to the value of the GetHashCode() call on the object. + + + + + Gets the repository. + + + + + Gets the implemented types by this mocked object + + The implemented. + + + + Gets or sets the constructor arguments. + + The constructor arguments. + + + + The mocked instance that this is representing + + + + + Create a new instance of + + + + + Return true if it should call the original method on the object + instead of pass it to the message chain. + + The method to call + + + + Register a method to be called on the object directly + + + + + Register a property on the object that will behave as a simple property + Return true if there is already a value for the property + + + + + Check if the method was registered as a property method. + + + + + Do get/set on the property, according to need. + + + + + Do add/remove on the event + + + + + Get the subscribers of a spesific event + + + + + Gets the declaring type of the method, taking into acccount the possible generic + parameters that it was created with. + + + + + Get all the method calls arguments that were made against this object with the specificed + method. + + + + + Only method calls in replay mode are counted + + + + + Records the method call + + + + + + + Clears the state of the object, remove original calls, property behavior, subscribed events, etc. + + + + + Mocks that are tied to this mock lifestyle + + + + + The unique hash code of this proxy, which is not related + to the value of the GetHashCode() call on the object. + + + + + Gets the repository. + + + + + Gets or sets the constructor arguments. + + The constructor arguments. + + + + The mocked instance that this is representing + + + + + Gets the implemented types by this mocked object + + The implemented. + + + + Range for expected method calls + + + + + Creates a new instance. + + Min. + Max. + + + + Return the string representation of this range. + + + + + Gets or sets the min. + + + + + + Gets or sets the max. + + + + + + Records all the expectations for a mock and + return a ReplayDynamicMockState when Replay() + is called. + + + + + Creates a new instance. + + Repository. + The proxy that generates the method calls + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Get the default call count range expectation + + + + + + Gets a mock state that match the original mock state of the object. + + + + + Records all the expectations for a mock and + return a ReplayPartialMockState when Replay() + is called. + + + + + Creates a new instance. + + Repository. + The proxy that generates the method calls + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Gets a mock state that matches the original mock state of the object. + + + + + Options for special repeat option + + + + + This method can be called only as many times as the IMethodOptions.Expect allows. + + + + + This method should never be called + + + + + This method can be call any number of times + + + + + This method will call the original method + + + + + This method will call the original method, bypassing the mocking layer + + + + + This method will simulate simple property behavior + + + + + Validate all expectations on a mock and ignores calls to + any method that was not setup properly. + + + + + Creates a new instance. + + The previous state for this method + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Gets a mock state that match the original mock state of the object. + + + + + Validate all expectations on a mock and ignores calls to + any method that was not setup properly. + + + + + Creates a new instance. + + The previous state for this method + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Gets a mock state that match the original mock state of the object. + + + + + Summary description for RhinoInterceptor. + + + + + Creates a new instance. + + + + + Intercept a method call and direct it to the repository. + + + + + Validate arguments for methods + + + + + Validate that the passed argument is not null. + + The object to validate + The name of the argument + + If the obj is null, an ArgumentNullException with the passed name + is thrown. + + + + + Validate that the arguments are equal. + + Expected args. + Actual Args. + + + + Validate that the two arguments are equals, including validation for + when the arguments are collections, in which case it will validate their values. + + + + + This method is safe for use even if any of the objects is a mocked object + that override equals. + + + + + Throw an object already verified when accessed + + + + + Create a new instance of VerifiedMockState + + The previous mock state, used to get the initial record state + + + + Add a method call for this state' mock. + + The invocation for this method + The method that was called + The arguments this method was called with + + + + Verify that this mock expectations have passed. + + + + + Verify that we can move to replay state and move + to the reply state. + + + + + Gets a mock state that match the original mock state of the object. + + + + + Get the options for the last method call + + + + + Set the exception to throw when Verify is called. + This is used to report exception that may have happened but where caught in the code. + This way, they are reported anyway when Verify() is called. + + + + + not relevant + + + + + Gets the matching verify state for this state + + + + + Get the options for the last method call + + + + + Records the actions on all the mocks created by a repository. + + + + + Records the specified call with the specified args on the mocked object. + + + + + Get the expectation for this method on this object with this arguments + + + + + This check the methods that were setup using the SetupResult.For() + or LastCall.Repeat.Any() and that bypass the whole expectation model. + + + + + Gets the all expectations for a mocked object and method combination, + regardless of the expected arguments / callbacks / contraints. + + Mocked object. + Method. + List of all relevant expectation + + + + Gets the all expectations for proxy. + + Mocked object. + List of all relevant expectation + + + + Removes all the repeatable expectations for proxy. + + Mocked object. + + + + Replaces the old expectation with the new expectation for the specified proxy/method pair. + This replace ALL expectations that equal to old expectations. + + Proxy. + Method. + Old expectation. + New expectation. + + + + Adds the recorder and turn it into the active recorder. + + Recorder. + + + + Moves to previous recorder. + + + + + Gets the recorded expectation or null. + + + + + Gets the next expected calls string. + + + + + Moves to parent recorder. + + + + + Set the expectation so it can repeat any number of times. + + + + + Removes the expectation from the recorder + + + + + Clear the replayer to call (and all its chain of replayers) + This also removes it from the list of expectations, so it will never be considered again + + + + + Get the expectation for this method on this object with this arguments + + + + + Gets a value indicating whether this instance has expectations that weren't satisfied yet. + + + true if this instance has expectations; otherwise, false. + + + + + Allows to set various options for the last method call on + a specified object. + If the method has a return value, it's recommended to use Expect + + + + + Allows to get an interface to work on the last call. + + The mocked object + Interface that allows to set options for the last method call on this object + + + + Set the return value for the method. + + The object the method will return + IRepeat that defines how many times the method will return this value + + + + Set the return value for the method. This overload is needed for LastCall.Return(null) + + The object the method will return + IRepeat that defines how many times the method will return this value + + + + Throws the specified exception when the method is called. + + Exception to throw + + + + Ignores the arguments for this method. Any argument will be matched + againt this method. + + + + + Add constraints for the method's arguments. + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Set a callback method for the last call + + + + + Call the original method on the class, bypassing the mocking layers, for the last call. + + + + + Call the original method on the class, optionally bypassing the mocking layers, for the last call. + + + + + Set a delegate to be called when the expectation is matched. + The delegate return value will be returned from the expectation. + + + + + Gets an interface that will raise the last event when called. + + + + + Set the parameter values for out and ref parameters. + This is done using zero based indexing, and _ignoring_ any non out/ref parameter. + + + + + Documentation message for the expectation + + Message + + + + Use the property as a simple property, getting/setting the values without + causing mock expectations. + + + + + Better syntax to define repeats. + + + + + Base class for method recorders, handle delegating to inner recorder if needed. + + + + + List of the expected actions on for this recorder + The legal values are: + * Expectations + * Method Recorders + + + + + The current recorder. + + + + + The current replayer; + + + + + The parent recorder of this one, may be null. + + + + + This contains a list of all the replayers that should be ignored + for a spesific method call. A replayer gets into this list by calling + ClearReplayerToCall() on its parent. This list is Clear()ed on each new invocation. + + + + + All the repeatable methods calls. + + + + + Counts the recursion depth of the current expectation search stack + + + + + Creates a new instance. + + + + + Creates a new instance. + + Parent recorder. + Repeatable methods + + + + Records the specified call with the specified args on the mocked object. + + + + + Get the expectation for this method on this object with this arguments + + + + + Gets the all expectations for a mocked object and method combination, + regardless of the expected arguments / callbacks / contraints. + + Mocked object. + Method. + List of all relevant expectation + + + + Gets the all expectations for proxy. + + Mocked object. + List of all relevant expectation + + + + Replaces the old expectation with the new expectation for the specified proxy/method pair. + This replace ALL expectations that equal to old expectations. + + Proxy. + Method. + Old expectation. + New expectation. + + + + Remove the all repeatable expectations for proxy. + + Mocked object. + + + + Set the expectation so it can repeat any number of times. + + + + + Removes the expectation from the recorder + + + + + Adds the recorder and turn it into the active recorder. + + Recorder. + + + + Moves to previous recorder. + + + + + Moves to parent recorder. + + + + + Gets the recorded expectation or null. + + + + + Clear the replayer to call (and all its chain of replayers). + This also removes it from the list of expectations, so it will never be considered again + + + + + Get the expectation for this method on this object with this arguments + + + + + Gets the next expected calls string. + + + + + Handles the real getting of the recorded expectation or null. + + + + + Handle the real execution of this method for the derived class + + + + + Handle the real execution of this method for the derived class + + + + + Handle the real execution of this method for the derived class + + + + + Handle the real execution of this method for the derived class + + + + + Handle the real execution of this method for the derived class + + + + + Handle the real execution of this method for the derived class + + + + + Should this replayer be considered valid for this call? + + + + + This check the methods that were setup using the SetupResult.For() + or LastCall.Repeat.Any() and that bypass the whole expectation model. + + + + + Gets a value indicating whether this instance has expectations that weren't satisfied yet. + + + true if this instance has expectations; otherwise, false. + + + + + Handle the real execution of this method for the derived class + + + + + Ordered collection of methods, methods must arrive in specified order + in order to pass. + + + + + Unordered collection of method records, any expectation that exist + will be matched. + + + + + The parent recorder we have redirected to. + Useful for certain edge cases in orderring. + See: FieldProblem_Entropy for the details. + + + + + Creates a new instance. + + Parent recorder. + Repeatable methods + + + + Creates a new instance. + + + + + Records the specified call with the specified args on the mocked object. + + Mocked object. + Method. + Expectation. + + + + Get the expectation for this method on this object with this arguments + + Invocation for this method + Mocked object. + Method. + Args. + True is the call was recorded, false otherwise + + + + Gets the all expectations for a mocked object and method combination, + regardless of the expected arguments / callbacks / contraints. + + Mocked object. + Method. + List of all relevant expectation + + + + Gets the all expectations for proxy. + + Mocked object. + List of all relevant expectation + + + + Replaces the old expectation with the new expectation for the specified proxy/method pair. + This replace ALL expectations that equal to old expectations. + + Proxy. + Method. + Old expectation. + New expectation. + + + + Handle the real execution of this method for the derived class + + + + + Handles the real getting of the recorded expectation or null. + + + + + Handle the real execution of this method for the derived class + + + + + Gets the next expected calls string. + + + + + Create an exception for an unexpected method call. + + + + + Gets a value indicating whether this instance has expectations that weren't satisfied yet. + + + true if this instance has expectations; otherwise, false. + + + + + Creates a new instance. + + Parent recorder. + Repetable methods + + + + Creates a new instance. + + + + + Handles the real getting of the recorded expectation or null. + + + + + Get the expectation for this method on this object with this arguments + + + + + Gets the next expected calls string. + + + + + Hold an expectation for a method call on an object + + + + + Creates a new instance. + + Proxy. + Method. + Expectation. + + + + Determines if the object equal to this instance + + Obj. + + + + + Gets the hash code. + + + + + + Gets the proxy. + + + + + + Gets the method. + + + + + + Gets the expectation. + + + + + + Holds a pair of mocked object and a method + and allows to compare them against each other. + This allows us to have a distinction between mockOne.MyMethod() and + mockTwo.MyMethod()... + + + + + Creates a new instance. + + Proxy. + Method. + + + + Determines whatever obj equals to this instance. + ProxyMethodPairs are equal when they point to the same /instance/ of + an object, and to the same method. + + Obj. + + + + + Gets the hash code. + + + + + + Gets the proxy. + + + + + + Gets the method. + + + + + + Change the recorder from ordered to unordered and vice versa + + + + + Creates a new instance. + + + + + Disposes this instance. + + + + + Accessor for the current mocker + + + + + The current mocker + + + + + Used for [assembly: InternalsVisibleTo(RhinoMocks.StrongName)] + Used for [assembly: InternalsVisibleTo(RhinoMocks.NormalName)] + + + + + Strong name for the Dynamic Proxy assemblies. Used for InternalsVisibleTo specification. + + + + + Normal name for dynamic proxy assemblies. Used for InternalsVisibleTo specification. + + + + + Logs all method calls for methods + + + + + Setup method calls to repeat any number of times. + + + + + Get the method options and set the last method call to repeat + any number of times. + This also means that the method would transcend ordering + + + + + Get the method options for the last method call on the mockInstance and set it + to repeat any number of times. + This also means that the method would transcend ordering + + + + + Utility class for working with method calls. + + + + + Return the string representation of a method call and its arguments. + + The method + The method arguments + Invocation of the method, used to get the generics arguments + Delegate to format the parameter + The string representation of this method call + + + + Return the string representation of a method call and its arguments. + + The invocation of the method, used to get the generic parameters + The method + The method arguments + The string representation of this method call + + + + Delegate to format the argument for the string representation of + the method call. + + + + + Utility to get the default value for a type + + + + + The default value for a type. + Null for reference types and void + 0 for value types. + First element for enums + Note that we need to get the value even for opened generic types, such as those from + generic methods. + + Type. + The invocation. + the default value + + + + Allows easier access to MockRepository, works closely with Mocker.Current to + allow access to a context where the mock repository is automatially verified at + the end of the code block. + + + + + Initialize a code block where Mocker.Current is initialized. + At the end of the code block, all the expectation will be verified. + This overload will create a new MockRepository. + + The code that will be executed under the mock context + + + + Initialize a code block where Mocker.Current is initialized. + At the end of the code block, all the expectation will be verified. + This overload will create a new MockRepository. + + The mock repository to use, at the end of the code block, VerifyAll() will be called on the repository. + The code that will be executed under the mock context + + + + Create a FluentMocker + + The mock repository to use. + + + + A method with no arguments and no return value that will be called under the mock context. + + + + + FluentMocker implements some kind of fluent interface attempt + for saying "With the Mocks [mocks], Expecting (in same order) [things] verify [that]." + + + + + Interface to verify previously defined expectations + + + + + Verifies if a piece of code + + + + + Defines unordered expectations + + A delegate describing the expectations + an IMockVerifier + + + + Defines ordered expectations + + A delegate describing the expectations + an IMockVerifier + + + + Verifies previously defined expectations + + + + + This delegate is compatible with the System.Func{T,R} signature + We have to define our own to get compatability with 2.0 + + + + + This attribute is here so we can get better Pex integration + Using this means that Pex will not try to inspect the work of + the actual proxies being generated by Rhino Mocks + + + + diff --git a/PusherRESTDotNet.Tests/Libs/nunit.framework.dll b/PusherRESTDotNet.Tests/Libs/nunit.framework.dll new file mode 100644 index 0000000000000000000000000000000000000000..50e26cc461c75bb2112d8ede781c7c94286f9dc7 GIT binary patch literal 126976 zcmeEv378edxpq}|pJmSM+nE6d7*?A(Gk^#Q*EwSD#mZJnIr#sNe<<}R?({d2ue-iqz>-MAvVaMAG6($rw1dip_1P1Ux# zaQy!q>c#esvIZ3Eq*7b8QjHS2?k)5D4(?4zxfXq(lznx48WJa z^AiQ|p9{T5(-ZVo#3U?ywNyzsVE0g?Qb>XSmjs^TBc+C~UbJ>K@VQTzbZy0*?aVVl zWWn%Ud+sCzv2C!CdA8#o_?rla49_iEo&}@WDn6hz1^>V|DTu#%{>lSidEhG#eC2_! zJn)qVzVg6V9{9=wUwPmw4}9f;|9?ENfZnU|NAISVim9D%Dm6iCRm7qB%k)O2y7I8c zr=#C{?b#89WKS`fC?Ayy`uTbT8ANtM?+qCE_>W#ZwWIgIcR#=R$z$(-@a>jSIcpsf zz`H zsmI_IL|&<^4os;yHJ|JB=ejsC{u=U@Wx3_BCX09cRJIbAPT~>H9Hdrds}R^yYeJw_ zLZBj})5VFF{+5u^a?4hOy?#!%CZeh|APA|(ZlwCB0%FG4R7S;{I6-7qQDvfX|uDBAUul#5@#VwyQS*#^iz?VKAY&0XW9??Iw()FLq#e1s{=BKjr>LV zQ=B*mh+9JfmJnkYimC78J8{r2bag=N1*|?i#awd0Rw`8zVt_drw zg(jq!^X(wS1OqCSEm>BQY)R&hhnC{Z2z$*KWNJ$yw-h)N%bki_%B_cdyzWAzQI{5_ z?af7QFN73lR08gTPFwZC9i|~|DZ4nH1!p|L*Y@RbKuJa=DehhItqSm2sxS1xe$p3j zPKv@zti2jc?Vo^@kK0n?!He=kex=fxiu=i`Q0*`?4@D5##I z>XDk~k}!t_JuV8HfCM)pF%0(&hq2_# z!38?2gSKYjMWj2g_y@b8xCgzSt>lRUy}#~3@A-aXZ?*3UCwHP?IhNHvmYz`vkXey* zbRe6ZHONq_rNR<$3_#82c1G8+gUG%kymZ4qB#?cRoMrfr6n-?(sd!5gE*nnSix%>2 zFu5ZbbdVu-7OfdkI!OnzpKaO4)4gkT9b~?p9T(7m#u<$ZHO^$?$lRVoqbw(x0S!`?emw}i@ zA((o#e6%}2wLf>Lw8UGUF?C@U^r7pbwk87!7*w3YFl1Fbs!!^SOrM~2XubmRcod3A zlJZkSMmr_V*=(yF?PsbJPVxr@CLQQLO&#nYYPKKvC_kyF^ znGieMh#+XAJT2r$9T)zb)sFTq)rmyC{Aa7x;D8U&x2{rp{=4!bM2ah;Vf4MuP^t2#;X=9mNG$1`?cJ4=rN!q>)T5r;2 zXOYJ|&#Q@N)I85CEUQe*{*dZQl6XKG8~OY#-PDta+i zOXi9#>T`;?E%W+YTkYGU4=ZwgA<>P`;BxqkuF%fTSd7+w1(?%3YH^3bc1b|f3@R|h znngKG8B@{e!EN!TCb`1`&U5MiOx+oQP>c(ajx`uip_CvlRNRty7FC!^ZgHm4qOnDa zMjH}9BP1I4pj}oNR6y4BeQV%)Q6ZJMB6o8%Y1zYI5hrH0KFN(gzB;=XJ`%mb{^w56`@*dU1=H!=T(n*v2xZ4Kh zr9~}hm3Cy3>;Ry5cJxlN1FD@$s)YzjRyv*!sD&c!;)fzNxJ6-XM(LEcl-n%Zo#N%r zcvRm%p+cBCi|R?Gz6rM3>K@2JxKeSRq5WqItDVfrh>x-egN}H13?8aunZA`V4lA(| zN%v?FP~EEIm2p^Ky5nRJsj70oYdgRzDM(Z%kOB@(RwleO;Ejg!Tp=1?Y7?ZKT}joI zBIQNoSB<`%MwY{8@aqkpE7aPJ@=WQ)wtzr-52y5=fqrKy9w2CUq8vL`ZVi( zx3hC_Z^kR=Y}{Fulxs5j^q|os)Sc0Y5=LJdFq&*eJu~f$)j=E_okYe}mek)CR8LGs z{RYc@iCS;y@LO*y_gEkXX=^cvp?5g=rLGhHaip~t8ug(jtDT9~50L~^CaRz%Dp{ID z4Wqi4tW35vaF?F@5nNKG-Mzu#w&K!04wo~m4vK*4Be70VN%PJ~q1o}^pav&dlg0Qf zRa#W2^)KCORn&X4#v@P;DQn_I+3oObbDC^W9iQwDUHk+OIOEt94piorqa6v z%4(jvuPRC<>e`Aaq1;5kJC8T?(E~+FOStMEM_Yrl~an!X+v~Wrt!0iN& z!%_Tk7k`2xWdSAKlts@oFhj<8BOI>@!7GHFn?=y8rR*<$p+5jXCN$d=<_3&!ZE6W+K9J$iWD^fqKeL&EF<&~VYxPPoyr z;@L@pP$Drzq_CD^tAh|{p0p0s{EmouzC$Kdk94>XY~;9ku47FwW(;3bXq!u^ZO$|+ zJ1*l$xExv}noaPGmYDc4dms$qVOv^EOLwwOJn&Ra2YVw=q!ixAO9!PN&i}IMw>n5X z?w$eL*pFu;ao1Dgyplll>||JD8Ysj;aUF*H07|dluafIZ)96_T6;(Rd6w{m@_keLL z;eHM3vj=gKDxJDEs)R)sE&bf7j#b85wwozG?ypaW-hrgo%r~MJim7x-<|H_fw4}V= z8u6GOd^P#HSXl|j?EnXIiiPS*b`1A=Uj)3eqmS43B2pADgeB3Xn{gMSz@{{B%rQ`n zn#t3YNUNo$!6q4VWHGQvIegt~oSnre8i=km7)dn`wb@hRFBh*!sb zK^v@f=(bb+=Y6g_8{uRmP~ISrrzpjorxv|m)7&1n^UP%iePmajmKF^@EvDdlGgtRC z6*8VAwmL|!)j@hNYx^z;n6>?H++6fPGMuEcydARW6Oae>7b531WmlSwy&k!@4r7cI z930E<2yCs!miTTns`}@$D43I~|YNqsSHqg9mp8 zo-nQ|;yQxt_WNe?hTDZAgJA*k*J0BofPF+GA%Btqa^#y!amPdgwK2?Dp)Ju-fk}XB z@FT0~Rvb@oQc%hql&up0sRskBwoMjz>Ps>Q+DoX`cH(t&vS`UuoZR6R zc%kr-41j3PoaP|h*YdWa)5nT$q;CV?ofrAQBEKl1H6YB79@exg{~^jUBb z29;~ja_UaBB5*WaeKwk?DF;u0W_3^mjiW1+qER5t`^eH1z2DHhz)3Jtn0T0B-Z6OA znRI)z7gQfHN;Gxu^t=$pyHc|bLqWl?Lx$(5(v+%vnZkTYG+oI3V7eq(o_!!DBr)`M zM(XluD5e(@DQtamH?t|kAah8s1DiRdge?Q1PE>Zd3ZB80o_VGyzYYVxnD)gRDjg z@rKvjAD~NA!wUIWs2$T(-kbrIi5l?2LgcN{*+NCY=2$U*gyw|nD^;t@%rnP=$~jR{}l2O?k3! zzoGB(1@yfN>EZbQ(oOu7-=ZJmbaVpLC%Cufjqq$VKK?^t8ZDZ0H+g5fSLH=vzr-*3 zYPTOlx&sVeTY&ma`A6%JOkRy4hF6e09vaAlr^e@LF62QF@znY}C__;_2qK<(pJ#X> z4}ys2P@iY7LY@)Ab3BqOHlqMX<3gKHdK{E=;hA5^gMOBHihLeu%L5YHi&||kR@r|BXz%$zLEcAIM6!2hRzJQ#6D;@Taau}05gU(bF8 zdiFLvC;L46|5H3@VcBN1H^$M_dF1`m2>%FAzKpkb!|eHToY9B&%;-xL=o6lRzHXTR zxAcuS_MtN{_Mvu0(knax`?_KF>_czM{==BT=qoDFCp-at-7tIlP^wtpNxnX`G6DOj zyrNVw&tjhkp+1j{5zx1Rr+ulB{&k-0Y=X(Uk^%NglCfBY4dqdnj$<08lGc)9^`0*XR_fr$4@&v z7U99mB&TbG&x7}4pU2@jxPyhqY2WTMVaO&-SD1M=cmr=5;uH6G#e7 zpqW0BZ34?M^1K-;EEbc9WKIB`3iTa$$5020O)|&Fk$7!Gn2xk%I(I>jh3VhIlp?w% z$7+88nbe8iC-iO#1K=65fyOq{hIbHC!MYKKVTPU-g=PTLt?ZMC%j6CD9HmPg!s%n( z*{vXF_r?Y9F2%VYl6O%kXu^-8w%ePC{&Y}>#d~4`_6e(K8W~|{pQ85(rYFch;!E=H z`6c;BeM$bkz9j$XFUgN-*^oQG$UkGdEqq^QNK*~v#wq~O)_v-Yl?w9v|Wtm z3fJ~z>>lE?c9U-xYl zytLQwWiNh*CkUF$V%|gnge0b3Xd`)+ASQDKe<15yuY{ntBohlS$-ugLl0jdlV|*=h z+>b~qv(QUPG29kz%TX3dr2XpWF^frh0@g%&7NNl`3i18{j(q4z5d{5jGrI8g8?t9|u=dkUt zK-)}K@WNY}Gt#c5O-}{JVOXRw2kyj>r5{t4qC8?#>-bBc3RMHn0O3zea9GudvUrRi zyj2yn`~ATfcmE8onB2-Rmpr7xk-C&QL?i=Zkm-#oatf7r7miSNEZ!@NCM1r^To20E z^AyLY_+{rV*oM9nWyeiGCgrR_mqXH>HC^?IHdWGkRQZeQ)js^J>%rC}8 z_%T<=Go+|(q}eWW*5UQZ@%PZiHy365lF^xdL_@P=@(lZHL90u6bdx_jVfW!|Hye-= zJBs5ic3mbO&mId;lq47=7?dW9u*l@Zo8vTbk{4fSTyiD~I2N{`yv6!EwMH3F(L)m4qb$FFCX`*$lbYr=s&CS|WCDsR^)&GacU z8%lU`QFhp)uJEpsB3?ZO`o)gkMZsMq2+MIJ2t;Z;fWs7N85?L^lXo$ zr|X|jPrq)`19wxBXwQY8q&Ie%BwCMD-kyt5s(F4sJ#X$tdj9x-B|Wt9XE)PhHvV|| z6HL#iJ*0=;6;>l3rg6FI7>mLylizS<8_Fiiwv1|In1N85p~g&)3}@PBP{VF@;DwiJ zGsuZ}_HYi1cak!NZF<7rz5vBq!Yq!5*Gq@ez>gS1YqF$Y-jT{+o4kY9by6he71bXD zhw7e-UA@?qf>{a~E2DCmAXEi!Ok=CxL+6pfc1}{vD`Iu>Q3x+{aF0|SYkdOz?U;YV zq7;Xhq)RiU*cyQZrAmtG+UWTNJhOt|B$C;Q0J6fK=znbXM4+LxuuIFSfd#svME_EpG?3t28E?I*11dd4!EkbKr3bh>j2W)2xS!rsi%;JV8}oU85#^}rjU{O5O3yy#*DI$ zU^@AiotBFGJ}Az#D6>R~hQ287r5{V&-=q-^??#bSDO#^gShUCu)*r>aw9A$SZ*9d< zGmxgEf_X_Fu%IKr2LpA*i3>?{zYr@z-Dp8hw3Qac&7Ovzi34Rx*yD?X zFII~SDoE4t+*p*qF3JG^E1DAn+d9TkW8rjScFfE}$@dmR*>2N+w&2?p;*0?9&8e@vr8zowAjnbZxoAJ*_>q6@b_IV3Kx2Dg;ln?O&IO#+XeeQ<#h;hCr+}Mm8-?!|vDKBwkJ3g|A$S(~D9wZHbbE#xb4uta%dT??ksv&c zmKi$GdShynJUtONYO`gJ>1_6M2L-Y;%~>4?NolV+ypCT)F_lM5&53m&BY)RT!p)nT zBGv9VvLN14yl%2jAzLM$V=JoWcbg)S_wDp8ke-NM1>ZNkBqaBzJvm?G}9 z)==*gig>BD2AxSbY?ifVN;K>MYYiInFkg$c25o0J42eSl4u|CvM`ip(?ajTjYw&GK zz(q3SUT<+xw)yI~`%-mlZHAn9jzp-5k%agnYmn)-OIOF;k463)esHE|AsO%G&9oHf z)*@d`bzVb0B6WFRiMn2vdm5{wt25o*pY`3zekDJUOx_FD zoo+6+`Hr%WqD#Z$y5d%R`wa3KkZ-9Lww54U8f@kGpvtE0c&XynkHoJudEZ>S4u#Me zgb@Do-pe6T=`d*%RRC^_jxu>sT6B;DW-Lx9NGYdRAq-F zGA<9i1En~#(#pr_?HTfgGt(hy9m}#9YXqc?(42|K8a+cX1!d@z4ek)EZx?4Oa=%3> z$u*UEYd#6yYlenj%@JQN12g%O?jc{+u`lsv%)TTt`O;_0`*Iyf#jU?ZGGV~K$(JLc z4GptuU5^X7Ln1i`hQBmBqkr`dkSJHYHf*dIWR3lUIbURX* za?i#E-lzSH`0Ublk$sL=R{J_KOD!X`At1y_#h9*R{-iixZiQESVAgRkZ zm-ua}7qW45%(muaY-CJvA}%B+lgn$!EVdv*b%I4o0uTNcbu%tx(1oxNd38%Z zDbyq*DZ7zXr{)!87E!`OIVGB@-nkb+C2rru?O)C*DUaWUy?8I{A+M%T3Q;*Yg%=~% z63#hODyU*p0>fE_p@yGT^C@90mpR%?m!DG-{x9YfjbkzBqVEEzKcjJYbJFI!^pM55 z(bQyr3s#+B$v6#-FOApWWMSzogNu?XxR$Cj?bu7DT0cO#tsch%5TbUcw92;mfwuNR z=m8c&E$((efME>P;A*GJvH8ipoTM`AdL9x$gz7|ftSTnM0@@}Bk;8i)6hMT^UUj?* z)8O<(8}}fBaLO{;O3fSXc|)7LA!3`NyerYd2>H}SIu@``qtj~`vnJc8!GEbtvK`f2 z-n>Yr7p0wL%pMB&V6a8zx+JKC=eoRCzR+gigU}Y_=haSNeRZ7&BQ!X#HXLyc4a6nq zlwka4UV^J-!}GeUDfwt}B$@Qe8UBh8_QvVMS-QjeTn>fBo6n}Uj9RNuJn|lH2JRz+ z(N^Tnhj8G_lO9dj20ruFOPfLugO?Bu@3&YSjn7-AHR(Fs>Nps#K-opWV2ObzFRTu7 z96x5SL3(BBB9-YaJcb;knDL;+C(Ura*}0F&GVikxR>+IYex!KE#XjG_@^aLE^xGWMmPE95pQXsokoWcc7#7B{AG>^l*KynqQGr|t z>vG$WB6q%NHYlvFF859(tS+6-RaJ!f>gv+Dp~0|F%XOtAk{ugpl zFQ6W|(TT!_FB#~Hwvc_h8Ix!tS3-@sojZ}t8%S|^@=V}%_CUmW6359paGKSegJ1*M zfq?{^-p^B3O3E-rV@wc8qcC~G1Z6Nu)DNNy4W}oV98B8g)8b7P6_~!P2h-s%Iio2_ zX1W8go6{>-!SJbg+v+ZSU=RG$df-1Y6b|pnetX-U?h!nDhOs?IdBMJ&5F#?T*kK}OLLLcVelf!A-ycaHK?2n>w*(%QjN;~;vFA1mZ@u6_E z*Thd-;zQx+3n-kn!S7c1SmCGb?jioYC7ian?^bxL@b~i^LH5_eeh$xP9dBP}g`jz9 z94E2^qOu$wko6haTJrda1}++<8Y1e(yV;Qh3NXzmS&hZdy}WiH&zfZ9KFm8}mnE1`M_Hq25*`W9{r7t-YZ;Yx8<`p`Go%7mCY~dh=nTo%nr(&l$9(_UP#F@9ez?f_D0O!s<$e1@UQvdgn8M7yTEt~g#;`oq zRq8ZjZ>3I`w&JbJ8{IM`QCHepfiRibXfBo&N1nl`6HyGSCL@MYK32nCQ-c`@Sq))w zmA#rmoa~J#d!?;EfOSrkr`lm2n|T(Mw%!CL^ZBX6drFGqxd}*g-GwQrqS>%?Vl%c3 zf-hAFpsT6?RC)qS8!p zZaS=x8J!}3T^+`HW0A$|?-v684xA}ubsU4VbCu_PJ%liD@YZTgJ#7o|5DM^|EOi;L zi2*%?0z9bbRNv=>cnAe}mI%+W9uJkTM_|BG4wnO{h-kMI<(L2c;&2f-?dCj%c5C93 ze-xh8MByC6?q?Kt+7omFZp{@5x#OjVl7!JG%U~1tYV$FAPRMOTe^$W@etE6 z7Q%Zw$3*u+AqsW)fC~3{7W#xLj!Z=sR#Z9~;7lqA?gVE3A(*9{G}p_W7d6)4B_SNw z_)EcQSefNEVkxoLU}(bD(LHS4Ap157bolCSMiHQCME4dvB~*JFm`-vRk-Z&C6n59i z8D7*^V?0mak5PT6)+Df_2wk;=I2kwr@0E0BMD`BcO_DfGYaze9+cX`AP4{GUsX0B! z!A@k_hmF&La56@Wc5m;GlUVkuDNH)0kC?DN)Q$NNj4L{0=mu=Oqcl*Sp~jP64@QLl zrt?qmwublni%^MHi0&=WO&h&2aQZ$P@xUi^PBuz=+&>A^&fb}q+ZmOM(t>iRXh;iP z(LGVTNo-+n{U0QD-8^K~g_u9ksr+Lx&Rhm>iNm*2JNs>l*KyO^L&idQBs!I5&87@PWeSyTzavbIfAV3a9l)yW-4 z!2K}Nu^j_snM#nZl22O3oOC+ZyNZrwod_v8bnIJr zIwQ|6U22|vJlLHmyVXIl+P6_84qvkmA%K$~wC!O8{@=HaVh!2$h-Vvo6xy@40DjJo zl?cI+5uOu5JcI%~CcjSfcsyAXev%jN<^62TuG(~pTRi(K_+BO@0}5`e?YN&<=N=` z`xnqZkJ7Or(HLyv?#)J<{MU45JxT-F%clB?_Iy@MG^=Bw=QEl+9RL~e#Yf@`yOZeM zxdi#<M^u!X{mE&Y8;6LQ$N!pq@>#?3UoJ`n!me(np>UvAgXL3dtsSmotH z83?1f0f)a0E$2LAdP>-eZ42KRU^MI%VDQ>}2BVaF@%apxLYoHP1|J=IO!xk&HqQKA z@$WGFbocnZ!a_Fn_RGZI!GTDu`flon%!5dIbNE*oIAX|lucOx&>R5%?JRROSq**Sr zW{SAOUZ~rce`WfwyQoDm9y%;%(KI}0n|JdDPx>pmP{T_n7^Nvb(#E0UnxE%_I zVNw4@r{Rq}QpM+^JEPUz1!#@U3;Y>?gRuF@Oo$+t%&(6;PSJ3gmHv$DRc<3B+4^Z# z`xD^kB%{p2u$(iCw5Z)mkMt<*Pm&hAEMk&}u1MhbDdu1TIXwFmg7XP1;RNQB$>+pU zIuBT&;+SRD{JdDjTTPlD{HN3Ws+VRIAJhsy?)qxnkx>4O>>Be-WkSyTNpgPjuV(D( zyrR!h6e4sv-pym4x-Rdy{v|uv>_c7igC!(UbI1pXAo%G zcAJ0eWhmL6A4vS~j5{dSP~ZM+ceX8))R13oUSBckp>U*UJF?GPRui6sO`0(WYIC80 zOHKjv_5=zcpS)ys5aw|a`j0-jPf@lcOb#U*Rqf4@O5L;R><8MKi2U@vAy@!q-sxwU z3ry!GK*$#P{IDJqp%hhJ_BkZ&qNUh?#FKlpBKZjT{S`^J2Qz8%4ZclhX>h&;4{5`D zS11jHqiLY9p3-nWbe`H{8qn1BoCZ=WX;_VhtWR-*l0sX*Ak`_;1&8m0baGx&1ESEW9$MJ=+bw7Dy*6E6}@mA2)sI#5QO{{0u0RB7+Av=QQ6 zRYIDRJRTdW@V$+}$;HPn=p-3o5}`Ro$7Ak8SK>b_De{;ggf<<~@okQK30#Cvk&q2^ z0xuuHOZMJ{2-`h-ml}Kd4tr4m*j~P?4)8hs_h);}V<`=d=#Olsu%OL^*=BmkGiqTB z*iCe{n;xJD{v*5TCOaex?6&wY@ztK)>}Suvl5Va!FpS#EzPPXPctdHExT3tLdAy!p zcBJZ{?2GcA?(uqh*?84KE@R%n4m32PXpW@W{UNf$YcGz3ecXon?L`sl4W_(kD^zYK z%3Hp1m0#3A519(>{2+DGI%c28qx3#D+Q2E$&3|_83Mlg15E97#h%Tt3soXZ;h5D&iRyw%>pl+ucFtO)+uK`bITtOhYvXeyI^jFiU%Fy~yAH4D^ucCrvgjJD z&roQ52+rikNB{J}S(1;@rPkwKGbzmYx>5} zJ07wo9DauI!}M@C*K4Z->bebwShwLF`EZ-gETF!S`uKg(wXQ>XbFweMWimFT7w`au z=fJZsl1Brf%+Fu&Oa4*W-2-~h6uWUV)8)`sY_-1x@lFb~I_R30K_5@wt8@QDP6+NV z>>Z$yBk)o>mh@2KgM2|9yP}bEdXggt1!-8RF?P8V;3GTxGGZPo9MoUe=IP`^^w&RT z4@t_Tzs}pwezqN%ybLjtu0lTKkPa#wo_h<$x{ET321MH_D(bP}ISh#KPV0xPqjWfi z02{sXXUYu;gvuX$LgkXg{BYDVITN$}YBT{Zs#<>iH$uC97qlC8LBkT5r!#PdCC6vE zH+e*3KgBtW?35!er^DYNTZP8QTlPTXqb&op!Z>e@#7X(fdNB<1w!8QnV%RR3+t`o& z*S^3L_lB+Bm>7m1~?-3b#E@hu7=3mD%&!Pz+{fX9@>^Flm?n8#Ah@NF0L zcs?ox(-!CX8l!x20Fm(3IcT@@yn~~> za{f@Bw>}o&54H28#4n>I&~uFV<^nIA^NLVYKCeuEZt{4RQ57eIlM(19t>1+#6sgw~ z$ni}g8A4VKi$c9$UX1TA@_5+>LIE309)2^#Lny#w^jsX`AymkNkzAnM5#o2+S4`38 zZF@frf>#ZoJt8f^Ze&f=?^L3O7ycCJBFr7}YbXb!Vw z-$bk7v(bC4#pm%!JklAX;1}@*`U-{hI(*v3?^+x!olI5)H=&uL0~y-SL}X_)VG7aR zMA0@Oy=cEv9;9;cFX?CBu>Nm`^$Yx$^-qD*#QtxE^$Yx$^`GVY=klx0(UTyj1^)o z=uP2J&wZg#-@_|Ner#lXGbm5g40%p%452_s*oVn&m`Ag)sq4A2# z59z%|&8a!&$$0^Oq+Wm@ zpC8bp2>I%8lnQrfFsg8gKO zui;=U^19=YyfOy3PaL-r5u*O=E4oX+6%{p^P^1-{}CPlwO*FG_`dMN#<4=!WFQUP$uI$ouT^ z?mf)Go}w`KzgI~&Zl<{X^z}sdZ0mvU8;QjSo?)^0%7bvfaCb-Z^maoF>70U=(Bd6I zg*v0Opw0*_q;m%Aq-&whC@rWnLJR3Unsw5(P-m1D)ES|LbYfhFw9~avXOtGy8KL<) z$77tqr_)}*LyfTvYuo?=t01&n<=TA%Bbem@i5bCAk2M(R%X5vSH!;5u4D{SeFkLi6a|$HY4~KTSwR%tG6bXOjv*8U7cNN!Jr<^-TZUj1 z-7$os;IbxB&|_f~-7*BD=#C*21s6Suf*uQ_=$0WEMRyFLD5mD~f*uQ_=$0WEMRyFL zD0na>si4QgD7s|`M$sLEA4R^^4wa)wu%|8@>?`5A&|FYoIK&h6d3>q7vIm2;Boge& zhl713D=}K!7k)8SuO(YXjUL4nRFEvPd> z3+bdwG*44Ew2;m~Nh;78r3H0HXd#_} zl2o8GN(<_Y&_X%`C8YK&C@rWnLJR2(l%xWkQCd)Egci~nC`ko6 zqqLyT2+h~Yr7NT5u#bw+3*oq>{6pfgGf z>Wt7rIs+xCKxdQ|)ES|LbOuUNfzBu`s53$f=?s*l0-aG>P-lb|(itd81v;a&pw0-* z*U6YK&C@rWnLJR2(l%xWkQCd)Egci~nC`ko6qqLyT2rZ;DP?8FCMrlEv5t^@)OIJu! zKE#vvLjqE^)xID&j-&yngyf}6h%ePoR{26ZBQC|VpX^zZb=hKGH|U^Xo@u|x>`A!{ z0p41()j`PH%AuMz?}A5O40$WZ7ci37WiJPv@hm%Gg0af_HOe||Dz5B?!E&+iA$y-v z@!a1qxu2~<0M-Dpw+0{Q#`#?B{zY^6pm2QdM%uAs#TZBH4dMeV>C;{hBC`)>;8^!G zJ^&kti+e3rK4C+X7r0+{fzyM5zFy|Ak>}~V;Jp)XqFy}=}<8ydZTPc)O78&_?vh5lXmS2G<@%OAE@imtDtaLu| ze6o=TyRj}#{xYjX-yyeqOQr(mg4#X+6}kP>U~S&dUs-yDWrl;T#+7IEA~pOIr97w2 za{kOEe03t#w+MV@1#X2vn5KE>jbs8Jyf$Gti<4JBl5bC_(F zAe&Ci3%n1p{F;5h3(o|-Ab=H}MDcivW_XG?k=+>hJZqsZu=2i$S}8nul@9WFF`VWF zJN#R498b6Qz8JJu0IMW>S;{v$kjNhgg#?g$!)&P<_8vBPw5Te0Bk(;RNEoJQCM5|2O9)p-dJQT0dJoVEucBkO&%r$ z60*s|lkhfy$NAt9cGpxKz7J`Bm`jTe5o4u^Wyg+l!VG{H*K@Sr?+Z9VT( zv_tz8??l-Tjj6B^)QqWO{Cg_2Ps#7h1EZ8qVzfHw8XB%(zfvQ%vQapGBam*Pkqe7; zGiD=3E<4!g>X$QYJf%|&uft6>UE>pColLMhZz8(Wc{APWduGEPRbso5Zgqx@>(ny% z<^n3aw);PL4?^cpQI#b5plBo<6vdkr@sk%;2Su92N!i$|G8T}vcCb<*Sxo8!65G|m zW(i3%NhLy_z8(7Vd&kXKhyvLUvwf%MHlQAK-of0#eZdkE8B0+h%X@jw`^o8Sqzl3n06>-(WalfSMl$gRM^I+T|c zASJ2feaU^w##q56CCky{M zd474XIY`1c9?Zgbub7zD(C+Ve^yb)eV#nfbIL<$~h7*JAQv66=65m;s6x~o1Yb*8Na(`zf0%J)> zAU|mD`AcfbCD>1Pc!~wqYz0{6^?rgkaDk1lScRGZb#>os_pT zU^nI&NQ}d0TkGz_bLaO-kJ}4PDU@)zvK87(`M$T1#cr;U83Xs{GJQoS@A4LQ$K{`S z4vzimBu12yKJ5elO+e?DwFjP2&b&(}Q& zbLZ60NtMN9uCAn9ms|0eTS6YQ-6U=m+L1e|P#P~1r4(jc>+XlBBm|=+{(QR3oHvhD z=8t~2vcDk1@i8@9hInWuENR8uPPUX@X}<$icJ^`NH)?mDajPd^20|YYyhXJ3ikIDTdqeYYuXr-Kk_wYnpfhzh4dx{5%Z*YI(YU zN`5f9^-u7kf24n24LWY^=2*>7m;>WR?eie+mkSTu_hcUO?<)TcHeF2RM@~b782;fy^eW`yqj^tbiw9;S)5TWqcE7koq!}@xNjk{< zdUA0rLe(~GtY`z?%(y#EGNWP z?>CyEoPKW66y4l|enhCY=B%p;YUaiATg-iM1}A>RLR}(hep_4xEBVK)BdNx(i6fE6 zg2(GU>Pq6JnX*Jt(w3j>oI9lC2JrTGEoR3&}1%SlaErm}m23+Ic$*|fjk zQVZ3KBXnP+8g0C-kZx0lc{bGhEp(LaGHcy;{Q^cs^RYnDoPpx^J;Ix)hMAUx^sRzE zsD6~U3pgsFbvIs}tmh0T3C=BwmlJ6i8KleI3`!2In!2~-F z(93Nl9*l|67_eX!!k!C<(R*~>CyV&w^I(m51E_u_T?9Xr1$V+p!m^%n9c?9 zqq67Y4^t5hpDN*5cQ*9@4oU6b!d;u)RzIh%t^ET^9A?YqoE7?g^{Zhs{q>*LMdO6r zr;zEQMCYpN@I=vz52_*6MZILMnF!QVCtQA}T2XoTg*D zNz>I)ehFanh`-xNu8RsufcFaMO}Kmaf*ER$5V#)*m0nq^MVZ5B)6Ctp{}pD?FG9(C zCYMKfm;Dy=;BCiHsGL@Ujy4g$HE}yMT69ELNRD(fJ^xi+1rovU(NP-F3vSZPq?Sm}5&QIp*VFgp?#`muBA1d07_^nlKq z3Fv-kJ(YSu3Qgji>pj7X9uOk~IU82`!CKX}f|r3+AbYlh72__=XD?xr0B$zl)72F3 zh~tc~VhkG+$UxFTJzYtuievswd+z9FPVRcotzP>wk@Q;a)F_yDD)}u94$sfyS#-XM zmm!|)0U}FvJtWKFLD?4yWhaR&RpF2|Q$? z_>7w?HMJpu=EJto(lp(i^#Rnb`arkWzL#-S8nUbcmQ~fuA!v z{FQ47@Y}6u!@v>$FdDH0AkHs}TNq8;FGS<^1KQUhxsfHqmzg`iA}N^G7b$6AmH-(q zY>zMt#-uZA=0ru*|1=^Yn8sDuS)wiv_>v40s>JnLL{c#4+G*ij{4{R;aRmyo`Y7 zBrWT3%Vtvg`=})nfR8vswzwaPEqwpqvgMCaTO^>zn#!*HQ&dO-BKCLZOJ@9c`tp;g zDH5UeQXQ4Gb2_Xzpj=;|TV%+`r@5{Ub@3`DX7K znA#+)5zspY-ZOdb6;mIX(s;tkegu)5`K)@IXD)tk4ymVh8RGzT4ar~%Hx*+!I-tHX zkrcW3T)XXN-dBZL58g`k>x4IEpx*|;SWR6^@-d#OrZ~$HCl=>FMyxk*tTJEnp~O17 z{ZAltk@wo?(-Zm1-vH-3d(zQ|;rGGu){H;A`l-`K4Iept%*ee*?M)#uI)h%##3*9W zI;FPaJ{<`eboA=n(v>H-6Gz2Ql-h}m8Z_%@^%-8hr~(fUks(4^(r z6NwprXrJ^k{ckBQ>Id*Qy%!C3D0YhH9{h)uDi*_;stNg}XC#8pS@;xpn%0F66h?LG zR{Vb&|Dli1S|A-Z{$oVP?NpJ$NV!Q}T;)nmDT%9dO1_5c#r(XbJ7nIZUmF1-ERt|ZDLq6c=B^9JUTS?TntLS=CHA!u) zq40NV=y`lSh3j5)E#s@|P2od&Q^;TXJlCg8jcVxC5Lch||7CyhG}85_jYR$7z=sEd zXW*}JtsFujKORDwe?5dWq=pjp0KU%UYdc>r8cLkE^7FHN{gAKL9>m|5udRGNim&JI zv22gHx{I&x??JN7ZXFKnIKrjpbNG4>U!QU*_FuRZd;eiXox#`R`MPEp>Az*zmBZp{ z$1vh_o9KEPU$1N;{wMfqXNa>tLm?yi`T}2f@b!@f3jctg|Hjwx%@lGtUpMph4!+*Q z*N6D}IA5Q}HKnfXcXUfip*Bd>dz5CF+5u+&lRc-bo|Bu#*{=`2wDkH1LzevdvZ^l6H)|uLf8qDZ1gZ5yw9ViAlOsPZeR~$nL!U&-?0j(74CKR926koa8hvh1PMk90rqk&AT z#L60Rj%QS*4rX*D&_s;g4#)ZB6>23aXAHG;7R#+;S}lIrovgkJXfodRj$?GMK?@kY z$S959WF*etF{)FG8O1D$p&q}BL$m=vCGbj)(Ktr^)M;$XbVmJg5+HFN540R7q@Tkm zXV3;lo0xL|_SX{UZ9t>dAgsu(2YM7JhF>tblxhC~)P-{=uV(ZC%MDfA8T}`tVd^zT zahtS^QJ*lXG3Zl9dl>Y0M*A4_IismSC6Lpatpf%w?RiT8Vj@?v>A*JGiVm0;|*$Klr!j9j^S(|(m9`LR|4%s9a+fe z9)lJ!dcmN@jNUfrWJdo5R06prtTP!SG)js_YHbQhyVOglzB$o^~xs>La54>Ro>hV~f8em$e()JvLb_0s&_fQ7NChh?=x+jK_4(} zD$o?re#5BEpbr@>GU)e=az^eCtmP~qis2)sT@Ex4=wn8k87)$OVe}BA#pG9OP6I$6aSH3FThmf)xEsRry16a&H<7|@Xz zE1avBs5GOK87)=#!6(qxGg_v4vzBXE=P9az(L+F^(Hit;^gQcasRmosm|)ofxn63e z$}rl==u{xG>@(J~8i-o&s$?T3Vb-YOOdAOl0~*a}U!cA?w{r@kSxh@iO=UF4pf(GM zSMz~N)mdsT(@tTza}C}x|Y#rK=0_w)y<5miv(?EG{m4=7>xt!i#PIH86Cpt3Uvpgc|b9Y za__S#k5(}48ue?YoeT7tzDE7VrZijzGyr3{olLs}=pB8n`iRk^27S!vWrP02=vM~) znbF^XY9RLsqg0A4yB51iDSZtDk%?FC1 zJuPRn$e{j=Rx`R&4R9#mPX|)!PBocn8-e-)9prEx0S!=hsVNS5VhhvmQin6=R-h@? zJ?dyiuNX9o(R)A&v|||k8R#8-kDA9QUQ99EqmE5NzO+gW!2D?~uGOXGxYpx} zFLO%k!85sxMgT{ZQC~l+>`GiuC?o27We@Z91zd%*to(I)E`Qg*t|+J8{NwUNkqCJ% zuOQj-3hKY)x}tmup6e^B5I%&jqbgP)WNt+*LKg7#w2B)wPM8DLQI9aSq>}h6E6Fx_ zZm6UbktJFkTRj*BeF0xdf2GP+&#(tT1I50+n)H)Bd#Veot8l%ZulMlvNxr_!*ByNQ zh_9dHN;Z>*&9#)$2WnSf6!xdueE6m5Dix2P0#a?sX!{$n;((<9b4`Ly@j*FXCBI{t-e} zl>axbcl9ogYxQt%^1#!$I_k&0YjNFytCtH8^f?du?S^J>+6^OdT~U4tU)S)J@>)ui zTqibM6pyPr8lJ%Qo`zby)jrVh6rLYxcm~%e8-9T6GY!u}c250^=n>ECOKJZ`-#;Pb zlD=fgReh-p+{@w5@s)BxtC#yyjvv^M%J#H==lS_^Nx#z*v%4;@qU)9Xd_SJGx*j~9 zp8FuB)l;Bq^&@`%8DD#fH^?uslO>g^ej28-w+AjL zc2vv%B`?>%lA~`e#5-TAjlD^o+G% zzTV7N3JLmWPxT4(k5$RRRk+sjwQ+DQ%4Z9n_f-4v^-#Xf=Iil%&GPjezFx%FEBSgW zUmwI39)KRL?jN$C*t5B|dP`}gdVR?6as6n>M_A{kziqMK;|)@)?Tv&s)DJ18ce_9M zs1c}gfJYmGceDwN&QTdm4>@Xz(2`?IX+%^ykU5hFmyQ9dW3)}rE*;NvCq&y8TU2@g z-pU3W+M?2f@jf}(M@QhDK>oJHRzNPLPByeIpklRFkh&D{;Z=4J@vc|bmCgd1$>@sY zouzZp+n#CAcY(^)tp+_;dJ;;>c19bLuaqvsTVnlS(y}4>CZmxCy~k*+AoaV_Rp8v> zqto#|`39qR^~a?tS}zBc*x7r@y?4$l3;A~KJL-X3$>nrRT}?5|b@ zI2+ZO0nP#H?f~aN^}Ns7fK1paD7n1sTA+qKI6l=`b|cVQAKk77tF4UIt8>d5;jqyz zajsW4mfelF*>f3fP*fuKP`?%gFJ*u}6O{ZAF}SLMrX!JKe<}Mu&^STr?}*P;Qw>t( z-^Z-wQbDX`nA&LMNK2F2V$fg8Xs^Z(jNISLZU=hbAXSd-I;sS-wix3>%P)ZTW<wjcPB|%IGq6T=_?M&sfb!EE_`#@%LP8QTbod_B`UtHQ;35 zmweO+^uD0vX=wUe@k^p4w?TcqJO)WwXRQMB9WeJfV!qt!!#kSl9|-uKa&dZwz`i(>$7qn@QE8#J}zGCf-@U?lM!qqdGF zPKmEgHF6=57Hp2X+aM~Rb5tEIff&xY$~B0}^|9(4M&h%1>KY&2qUWi*4JTh) zTLqy<8A%!zsZT^sy;kugXxp*9gU%;@ui_cZ2ULs~^hcm2>OMx4hB5eM-zOMJ%{fJV zY7kkyT-9JlhUDKE{GMzhBjH@B<{3nsS+zF6xk_ycaGt7ACGaPnDJkw4p2vq98O ztX9()k!3II)oP)kkv~sU&c1mqr>n&Vk(RY;twE&aYw9LOl1E=tkN7A9+VcU-y{$XcL?3;i&r}Np!LkO-IGp064A5FZ$)T0Y)H-#QLBkn6YS0)) zZy2;MqfZSwm{I-y68n*rf6(hxtDt0CMg@beSeqw%+MBHYD$=Yy}!^(9@Os0ksKIKdYP!bf!UXR~~Miqi!+5pjg!$YlAA8#4+H7bAj~@HPWDT)ydXIHPav$=sdO7pb=Fo zt@G7&K3Zd4pq@8qY*h!)P9L3ZZBq3IN(={pwnjEAtV`892HjBgq;;8c4w4w|uX@h9T)754UiG4Ng_>&6qS9BaE7dB4o~!z~b(Olz zpqHzDX#@`Q7<~uzDYgmqgMN7 z^@fiQvNx;$5(J%%>K4^-2wRP|Znk}^nqW|A4WTxJ>KUySq=wZ@wr*8V7}`kCZc{rA z8po(%is(Fu(Nu$`F*?(rHb!?Fw2;wT2CZULa;Ruo&uD@mbwSNM#Mfrf*URVGx2rB6 zEwt}YTYPk?y+v*J(K`E1^{J0G*mtSM!zc#v=eO122GP64-D;sh2IPLMoEfA=IDeuV7)cD<)uRSc+W$kn8sL0I?F?}KRBb#uZ_BIdRz~ZS zPt>N=&(z?VL|dQyN$u@G!x>S0jaWyTC|1##r}r6jL{Y9Z?*5+ zKUbS(k2}C@<(-kfb%2utq>xO$oJA4)3fzQ0)QS!->p7Un}t(7o9^R$?9pP+ zrUyEI_R(cEx2wMf&=B>X0o3Gt>Z3bq_HzF2qgT@ysA+-QV($TA`iK9v#r~Xbq@@jm zVs&E_%}vwawpevtqjG#S7zoo(hBl&Zf)m&Gv(;DN4eU6lNdMSRZKEpEzhJZ;xpI<| z(w_(|`DooKPKhp=OKR4ur|TM2iJr%3L-O^yQ$bs8(72j4K-U>GlF@Sp9mMEUgQhWR zK9+QDNVYLrV9-KFml?E*(ennaXY`pt@77%lTk7VK7AZX?x|Put>eISQV9Pv%;`Ns} zrTSKb`T~{duH#7V3bkkb6;8SScs^?Zx(UC0IAMW@?s97NxhHt&A*Wt1KhZ-^Ieql> zlRWgi(@)ng^w57e1N3J;dea%Kw=N>u6>3ubd(Iv@aWWzDbpzH%YXosE9;T--lF~X% zuP}&8Ym@F|BsC|azwVpvPqT3Yn~_;L+uxQ;C$TSVt@ z-M~mq52;IbeOJLA+eJ! zhwE_$QTnFpS&Yc)#@G>hRRA5Sy8?1Y=@$cXGxR40QGax_K5(Vy&&JqHJ)M#GbGF`K z5XEAs&bM2vjU2GJ<}SpASeG)kYRUowbB z>Bs5!4Wd!{eEpe0G)g~S*PP0hDH^3O(9H(XDE$OI*&rIFpQz{gXpMD}?lOo*=_l!{ zd~~+8P(NW1jnWtDSABH0wMc(z5RK9o>581hKE3Lj)?z){AR47F)>D0SoprKaWe|7vza8R}SrTB|F4)Dl~(8+|l7c7|TSNNP@}zRX7lt980{4QV0T z5$Y`cM}w$Vb?M%x35{ywdfjXgy|JII=P|k>`9b}J*x7nDqYw0?`bj`fpPskuT<*1P zZj-0QJhV;!t^QPJgQ0EH4ZUW@^2qHqFSb#?#9AnZ<+1bh`=S#)!nNu={h2`>y>g%> z*K&Nx^Lt&Z&ex3wZ3gXp-E7eJdYvA-KurW^EruQkply~LnD_c}MWNv}32 z-ur^sg?f`9Ro{DWeW9M-LGi6uncf%2zNzmvXz$)v#V*kk&lK8}-p}Yub(cZ2dfybg zTsxgYqgkUX^#X$y_udk_TGyXNH0imn)g_E%Byg>6W<;KNI(Ds|EJ)qn`-edDeDssp zb$Ydr-ilrCkC!M{ZqS>UMzd56>Lz^|BZ}`Yv77W3M%&P%Pm0~Ff9TU1)GhjTAL;ll zdS`(1R^8s^SzR5!U2kM0TJF#l>zS7PsQ0PPo!T|%AH5sZoqDuE<$X?d?$T2YYV6a9 zy+dt`wiWH!XSV*fUS-f^Mx>EOhi!fO#=osMGEGu+x4u|7718e29_N*PKG65*+XI~U z>iZdqukY1w7&+p+SAQI!-KR^==J*uR?$d)AiQN6VIY7H#PY%!?&{G4n2lT=K?Loaf zgf<2^AJo?}k`#SM-zuERTl(y&zN4S;<;DQ*G;);MhxC+l$WF5CLhP_w%V-;W;t~Cd zPis)$)jI>U@9GKXO8Q94qk4&;BzgWZeU(Av`NuTzk>?-jGbsL;ex7M!=i_=iBk{}Q z`csip#QC_c`8vr7?MXd>(Ke<%soM;q5yVsaC4;E#*{XkG5Vbu|>(30Lw&xjLy&KsN~6~c-|*ypR#+j@d66P7DrR&%w?M6biu*Qc6cg_oI~o1iq4qv7K2eC;`@qP& zge3d3L+yQFlqy8+ePB#bh}!$Ws8fjA`@m>qbWZROML+g`U~Ec9;Xn5drW5{LHo?OTNVU#l>y;S0(4u@+rF7Tx>N21^f#TDXfqg|oJ#c$YO z8y7OVDp(#lB=EIyyF!(WwkmWeqg@J3X7rUri07+tU*Y8>%T+j^pAz`SI7p#SvkBEH zRL^;>5{d1Z(~)oaL6S+mnC2LXf@B3gbBaQ*7GH#qR@Ny*Hes2K3VmE$3A9|H@L;_8U|ySB$Ci45~fjaCK1=2k{>2IQDK6`~oCV}2q_2Jasn6FDY*(9xX_5wn2NIYH7y z#2lycNE1&lxM9ujMktTA@^UT{B{n?>em2YlVdB4Ja z`Q|p2NAquhxm)G^9(e=I4-BRSHAW=x~ifg*FX zr{rLh?sB8%5``#g#@h`VQPiA9Blg-57-o*wwG@hd%qfhn3J#Cm9oWZQ#ON}yf9yV> z1LMX=Yv{TR0>3V&Fh?phouv4l+k5bPh@$WHxH_ zVqm)Ezv&ojqsbXf4m=1h&MgBO_#721G0FE&?bbXf2* z^Ky-=^E_}-e%5I=n2&M6SGyL7lP}|ZjE*Z*PE9s^mOd?;0E({ zjou0V+aQS*lyjdr$}r)V_JdCXj)&}*>)&Q|ksjf$No&D%A4G4Pc6s79sEZ_FJU zjdq?k|Dw@2=NS`^9P#HW@ebd2@e-K10bD%o>e~otMmc8od~J z#q3ZhSTf$(X`ZW5wX@5-R->uTo923rYMnosPiQp9dE0zlqk88r=2r^sg*x9gbJs|z z_bRD&{%VfYXsYu!vr3~{=Myuo(H!S9vs@g+`;!f0*}ZRPB6YKCaPJ$MC(V z(0G*e`QFi}+6nl+)M%;`@`Y~}_;ZyQT~h00`bKCp$I13h)TrKx_)b#jXw(_?b!b%W z4Dem3(Nt$I->nLrh?0Bz9@41V8SHyjqp8ji-`o1WTBp<(yhX}#bjciNxNn3;^-h^@ zib53yNoS<5L8CUO+}EX1r&Hlutgu zj`Mw~(W}lJpR?AL^nlEV5re|oJM(}7GF}MqEO0rnns%g zOMMq9)KZdkmivCDQJb^E_l!oJ&KbTBH9EuT_C;=!lC_ka=bY^utI;LSdA?eWRyh~= z+BLe-x!AW#quZRzeD`Uz-nqi}qDGsXt9_qq^ssZCZ?B)Y?QL;Z`^Iau%~|6+QKRRb zTYW1uDh=J{yFsJTp>@7TH5wP%;QOOS<3m65iJ!VHObp%aE79nv(7nDRG|CIz?>j-G zqR_*>R*g0X9`&88&}k)kq0PQ)H7W{i^{v-vbKpteFBCcpC7<%`(5NW%wC`PwHV3x* z%-f}87h{Zm?<>}*&3VB$UZYOuCEu|ct#V%RwP|#t^GDys8r|l+;k!elGo0PNCp0?G zdE57fMwdA6`o7U)>9h%Y{QO{1eiw)GEQ-d zP0{E)XN=XL(Iw9QR+mQWol0x9Mw^_2tp_xE*qLDM&}fTunDwDX+ngh;%nfeq&pVT> z5gLsT9cfi-G%<9vHD9BnLes4k8kL4-TGwbaI#g$E(r8@hIBUB`Geaj>Z)kL4Xs-2% zMh&6)mVKv`<$CCIfi*;j=6GK;6Z)kK>=ql?QjY>n;Sc87<$}&2%+B!g^aiN>6SsKj@-E1{zbYkc> zYpF&Jq1&zV6uJZYyu(_nQJeEKYqLh3&Ry0{jaE7LSf6WjqjSHNw^7P+2ki49Ym7!` zIFDFUH9F7PY%SL466Y~%rAF(W$E`IQZE~Kn9?|GwXPfm0jkY+yvp&&ioAY}s=PtMP z=bh)RQ5ua8y=YC*XkzFUt3jiqLa$j}8kL52S*tY~9olU@pwYO{ThUvaE_WhW=(1YP2-;cdJ~Z(?efahcl9=OaD2Bu`&Wzqp5FA%r(q{PP)|6Qq+ipMSYTd=}*M zU(^HL(gQu9?xS-CpMSeTbk5-Ozw9Y#`QPY)KG5hAe05glCX(fxAl2gcmnuZH`2AxP zqEklOKSv?okToIOf3`w7Lw*8u4Wn*RG^9`j{FmNKbza410s;T+3elN>K80Ei3qX8LX{0}RX z8uF)5rGJ}7pM?(ezobz{#(4j`3bmB{DRh`$+%NmkQu2Q2aDP;z&q5RZBQz2jll=#1 zl#y|if0{-EGN$`aQK%cO*ZNmz^jT=O|9p)yGLHAJQD{|kXvQ4>T^fzdILZI0Mq@ML z{_P5#Q!q3m;eTDDkr|8pA80f-<7B`80ojMk(R#CgfJUE%TKz*c%E(Ch$1Ai3C71b+ z*66cPr~i13GBQ^9PgZDd_Rdh3|1^!B51r*dSEFY_XZx>K=(X6+&^i7)HF`dDzW+gu zo(cWf|CB=OVJ{c@U)JdP&?WvqYxGR$GXLK-nvik1Km4HV-})g(W?bbTq|wZbYyJB& zlBc%U`>7l~*?NA+@fp|q_vbu0-&gx5=#nw9+TWnjFmZ$bQjJyxZt`!|=#s!K{vC{- z5LD-_{`YiVrC96#T%*;2+x-5AsC9Wh_)~wB5lOZ|tn&}ms8HPDpVR{_>VcMP)R1w9 ze~m=K9C}K|djFjowPoDte@LTKGdB8vtKkreJ6Q_kZoqW%Kj7E9E5B>ET z6$k(3U#?ME@KgW28XXY)!v9;14hw$ee_f;M;5YuyG^z=H>&FM)@kh=T!yeQFg&4{8 z*04(%U4?hB4hb0c;R?}H8pEEW&}os+G7P(2p_P%Zfi6_&qKGfku-7Vdb;JRBM4@-G zvVnFebW>^pH%yeWgO-=nyGx;WqPJ#7?Q0oH zE6B5{e)5>-4}Co|&%W7{mv7&%5uTdZ+awCo>=1e&VQ7UUJ#4GKMtydt|*A(ExoK2M>SkXLM9 zE)jd1!S)RrRf@s(I*kfN%-*C?CD3M#-pVYow`=ra#!x%9)$POknfuu78hw&kX7AGI z%gj-B)#Gl-O0l0k%Y(+)4H}ILRM=e-@l(?M?Q0aGr=BE0=Q#5%yfKp}eH`(XP9jfRQw_C}3HS`+N83eo%CKd^uJ zB)1^weeY`fWQFK`?@9Kl3eg+hlkE!>qPM?~v{xxa?|VlQDTR*LENO$xnP8Vt{{H!1XfX*fL79{JuUAWF)Su#+XWhxhL5!y6&jC{$J-ZZ6cZ=dw<~ni zunppe_BKY+N1kZ6|BmXE>%)omg$mL7FxS3Tp;ggQ;d%CYjVizZ?yN?E_>8GtTKFyy^lu4&TaOA3Y~+JKecN#stm8U zkJYHy`I)^)p?e|cM*DP)D#M%XA8SmEZ_Szn3Ll3k`qYdIg`*Dp5#Y6Vf zJ<#(#&@M(-1uq^pCGe1KJ9%u!ltHjHhv%-(s8$Efyv>%Xp zL0av9Y41=aS4Dpq{-yn%Lgy6xFud8$c}|Yl#%Mge#U7#1s)Bg68ACkoMw`;Bev zAX#J_xy{aGM4zHq8s26XYt$XyZtttn1$d)qf<~jl&)W+$stmtmw`f%C?6kWSYAIP7 ze$BpGqweq<_F9cD2>;1`K%-INx9rz6stmttzpGKP^MU=9LUXe(4}WNfpO^Zan|*!w zV|y=+Zo#`pWf~1|{%()gsMz_!o~+S}fiLZ26?!dpdH5^4QKRd_-`dMHx+QD`&eLds zV+MYrQL*C>+^x}zfk5C_3OzV%X*d|zp;31@Gw`}b7lg9|pJ+5H90?41LH6iD%<25V zaE*$cg1|uv{R(vs3e3=`J6s%?qtON7l0d6QqryW2S7}rk9v-+=qhe=dV3R^*A)^A@ z6e0^L54^-kTF98dZk1P2aA$Z-;O`ne5FQu62hs3{tY=I3z(AfxPlXQ-bZPWL_|U*b z8oeGqJg`QiQQ;#3nSXF=sSHmJ?4?n$Qxh1eP)o_3;iCgp8a)u65ty#gmhh~=e2tz8 z*9Ep|^g{Ufz)Kpv9zHSfo<^g>a|6e}BwKGOsSL*h35|-KhQLxra*izwbjiHnm&5K3 zEDWqxCG+?BB)l-NOQWyDivnMJ?pquPzf3JqEgQt*K%qop=stESZ?BJ(&}YYn{F1JQ@g{xF&)sTqx;nUCPjxBXzZ%?~=LSa9Z-4xSl;xr;PfZ0cwaaQz~hybaoDlavBFaLe!1V@t01)%gjUupTJB$qS)eJ=BHpY(T; zHZ#(@k5UiBH^rVt%{$g!dysrtXLT0UEN$Qfwniz>cc-$3J<;!8k1Uz9ud73;N%}@M z>f?OSo@wtW^c_uETXG=X)i<{<$6K4!Em4z4)5q3`UqxZrdh_MX{VpZ9(k5A4_H7JNQVqd8iG3o~hUVhcib?GKSN#@8gj6iG7FCUDCRUn)q%$;z*5oXrH#h$T_~JT(583Q;U1z@5vKN{+{mo?tH0LNxgS@{UrGZ6W`cKHknTQRJEUGzDQ)b;{ix<7Q>k;gUMyoy7pN%;IXc=?dSWrvFdfvycY0E~@9dU3_qOGg zc2DVZc^35DHKcbCK5;k8xu+WX@@ZYe_g3)`F-R`a|}Ug zNqfrEx6I-`^`tq5ptK=mJn8Lwnj>>%$)0Wf_tlfG*&X*Z$CcUZD@by8?)2t+BXD=d zd3!2nC~;)2w|vjp^uJYe?{@#Ud-{Jvo`0_w|66yBz&!1_8hRy3=k~N-;`inJC+hj` zGtMjL_ji4-jkE^5=i5C!tv70wo;l6={w}Wuyy@?C_`No~8t|sSw~g<$;njdQ{k?7c zyV^*vWj%G+o9~Um=$BL|Dx+t7rfB5|ZBJ>LD^F(R36J-b#(Q$&P0PKTJmXELrG)NY zk8*p;OeNi1x#p(#fbK5ryOc@y-P>!Qdh(Udb>;DL=;TmFr# zUryhhRL?Tv8pSI;_+bXS1!Q({5Y6 zIsb2WNvUYWy;dhr9;Ae>od2mZG|K&HDb06Vl=g5j>wzLtuix;d-LqDCGAYZ;IYrbI zeNR*AH!=*dhN(P}kSBZTw5#pj99P@v6G-_^h&-!w?@H(P>}k3-_iTjPb?=h7<&di9 zUEk$gZVK)))zkcq!>D)ithaYx9>BQr}%k_oNH2&|L*7V@`=109kM+`?CH7uyDYPOZ$Z90^bvDD zW-8O4a$3&!^oX14ZGp5OFw{E?Ud#8U>0bAp2O2@w_ImTZYn(UTbB=$1*MGMT>A87- zm|HCnSAwk^EOncl)(_6^IcvG^rm~;&;J!` z#1B1V)W|m6_$19S1f?bYpDjaPsHZ(hsnUE`D(SC!=encQoBzLem)DlO>Hn*C^*`CK z(QKs`^Zfk*r}q?t^^D4V_+7~(@mr7cacvYEj5hqQGU)TBHB65IZS$YNG|rqP(g%g)2E8_ok2 z*>%~4oLk7bg`8W+xrLnj6lyp>^sMol5tWc6YeW}*9gie@kjux#TO-cRe#!WB1isgs z>v_q@E?Z)qFZM3GBl~q@-?BpRsonF%{$-D5pD!kqZ2*VvIz~(?s}S!P^sTb!UD?Ok zA8}j9h%?K+$o|5(xJ=|2CTZ9(?MjwhkP*9GuA`PtPeajvKiWzXW&O$cw?L2WKzyw2@bWt_EFa+&6M{ z4#__`Tw;p7!v*K_v4EazR~ z_{fWqm$;{|i$nK4)_7e^-uJD@>*C_FZz2`A3%`bnl7+Z8x$hhHF=F|?*Msw;tl?3j z<8SHSr^Mc2&Ii#gkmoBx2XY-T1D_7r zVxBYl>D-%9!yT}_t4IGK_gV8F1p>B_JKD#UBchX zUd_M3T!-`{d2{%em>a}Dkfz?@w}*Hf-w_kbpUZnkOe=pmkL>v!q$&3!(2GDR_an}2 z1m{O~Cr05w{BB=Uc89$JX*=KW-Bg~H@A!s=6Zw0AZV(sp?=D}7woc10@$I!=cm6uq z=XIc^`wbIiD1%SM^K4xQI!si6b65Vs+-?=;Rv}#}h^`J0y){q+{>TB(8q>zSlSh_c zC{~LX2i9e;GoBuEF=pblF_nTS+4(DDt{1OkUeH{iSx@~6hflyPdukw!)UyML6Aj0i zvjy||sevW%36wi5{KCM?xb-q)P{j`m;=Vx@Cl}O+5f#T86$bU9!k}J6jBypGflvLd z!Ea}t%Vln4P9gmDhoZ&`iciFJ(9iKp^+EBKI39G0LHwx(@n;&u7bbBmlQ=<>IGHAu zypZ{qGXF~ETfQ2r9KVYCX+gO-T8!GOT0{GnN=*?-EP2vv>g3q*`=~+x~ z1-)Uwo1m`_@Z}Jl2ar#!!zYlzj(-ZSJm+51m!wV+n6Xz_@I}2`QI=}ES^S(%FalLQ4wNlbU zDP3Ac)S67Rf$3JJrAIPn3elA{MAsfg)H<4I=~SZC)0j?Y{tTj9nXa5k>DV#r?TP`_ z$8hc}&Sko?meSRA%%9DCrYnzS{&CDdp7~5yp1}McGXF%PyCt2&W#$qUCp~PVMW%-{ z-Fg!7WAliAIMew|*UlsUn)yR9%A1*Poll%yoECB7$Cw_@bZeY)*Dm0@>iI6FTkH8Q zPKySI!y38GsU5*3TM4AaAzZf3fR>Fz~bW-*nqlAJ!7%QG!KnK*}YdNb2q zOz}hHDBo}jHG!*Zf4JBhA6mFU*fi0)oN)HDocj}^Yk$gg9ntDLh&HSzx^e^a?B?P{ zZg`#O$~TCveUo!{Gyl)be~bBVGyff;yZ=JedXFf5y0MvvXkpsQbP3ZorYZ4M*6*_Z zlJ#v?AUh{}V0J8fpX^cD71@VmPs~0cyD>YJy*&G(>?^ac&%Q1D=h+WsKbHMe_Vd|q zWq*(z$Qhe+WX|lI6LXR|SLZyE^L)`Pk#Ujnk;5aC zBU2-@BF9HgiquCIN17sSk!6t;k?zR3k&7Z%M6Qk86j>Wt7x{T)d*qeK84MF8`$bbMr6FUzLAT{%!f|^Z%It zZT{c^!v>5WFmb?917-}kX28|~zZvlC0Bhi(1Lq7(3~U~_eBio)_YKS`$S;^)FuP!W z!IFaRf*%)LS+KUihm!$(9h=Ayw#dYaoCOpCiUJjgFxJj2Q6h50P%#9*xjtI#hrjeY z=KG5Y_^t6n#UybUc3(5Fy3fRKWgm;wapHKasV9m#*pZ!tRd+siWef3}$<6rNDwc?4 zq7AD^gyN)nBIe!5a*29L_^v1g&=O4J}_UE{TI+zva1atoSYwm z&d9kA^p)&igNg{zkD^rPr%XR*`V~_nm-u$>UroA~XqeNo_59pV!5NhMCFtN>!zaYB z+yJPR9R@AS%>^Bk3x$h`xy7Khxw75gQ#zmM51B4v+Q_t>X(!V&n4Zh@5~iz}zL8J; zdL{cc)NtfL>XDUw8fMJ<1G_>0Ht<}~#{3_HE@Ilww3F!>OwVO{3Dea~=d$+Pn*WM> z|5cs*d)oM0!4yAaF4zeA3d@ihMB{kwp!>kt?xS8@Gw2a6^A6~|y{UJnFkQYk_5EC? z8}=sK@N%S`NDC=1ddn8#pdz~W2Sx88eM}LRU&OSP>31nJx|k$6sCd7C5X*|GhBJ$) zwojw=;C#;XE2c&+aqQeAsFOo9%xQ1y=MSbDu4Q`L;PX-D=bYY?B(l6LDP@-O-&b;W zNQl=;s5U8^%=Pwb@v=9k9>YArpRxd{O|^ zM6~V)%>yz;zHmVIg>N#&Sa>EAJ}4XXK=>0&VG_3&pV_C-TMZxF*kZxq8pZxUsoH=_kp+yYN$!qe;r`V;s&Q($ifdWWb4U5_?R zu|XURdZ#!9^k-<<6h9X~0NscknJFH}9>Wwb!ath$z1$-~UxJS`#Vgp8m|`bnG{vj% zmZo?Odofe|5xWsn>=Lsx#uCshm#fwx zy#*AX+cVaKZZqx#eaZMa_%AcvY1{?QD@@9b-NYT46p3I@Wv&bbs@=pa+;wgC1x;1A378Ea<`JbD-nR=RprK zUj&_Cz65%x`3mS!=BuDbn|}nIYQ7FS&3qGdy7?#28RlD{$C&Sc&NANxtu^0AFHSQ5 ziu7Ej^UROHnGb4;xcM>C3z#;TpMq1*G+}-Q{z6bwEHb}9dNHUen#?ajo6WDmX#vF> zJ?6JaF99`0n`z*uf>TU8OrL?VX1dh$gTD;a6wA#3(w$6CGaYbFWqPief%J90Fz6az zHt1Sk1SM|+#T@bFB7Fxa=7=vJbc1goICp}Y!f)*bnt@-$#b@TMBG3|RFz68c4z4MN zT0=ogtzn?U@awnuB$ibMI^5b9bc8h;w9MKMbfi@Q`U7i!&?Bu%)IZ%i5b0^4hL~v` zjPwkq$5@AeGYixd^Q=Qb=UYDjt+%ScZve&Y#&5cs;-}Um(0i;SLBF(Wuy~Jwrsj)6 z%M`!Qnwp)+zB|Vkxi0UPygTyl&bv2nYu>iJzvg|G_ibKreq(-n{&54WE_wok{GW#Z)A4_S zh~wlUE*kKEu~;OM_l5m_LtS4|*H_f_XhYU_ zjJkHHYp1&YNL{^VO^|$K!w7Nd4u8*6t{wLM-OLZOWll-CTI$T}%RoDI0 zb*{SJpsqKm>o7~+KU`hQ)OEeO9_p9*KTy{ybv;g9Pf*tr)%7WL{jIt_t*+0j>x=68 zlDfX7uJ5SpyXyLdx_+syU#sh<0V&UC>iUJc?iZB&3U%FIU6bnCq^?WUwL@Jy)wR}< z_aBGrKGvG-5%^z<|Eqm#vTwxy!~JWr2Z%M<$KpCRxF)+yl!%e|zc2pd&xC0$4IPb% z!$fmObF#gBVOzW@v8<)-l=6ngMo}{>k!opNnwZ$qoN8~2C!5>F^x0HwvM!d+N{Mt@ z%x+F4+Gi{{IZ@v(>N;D!HB4F_uW#?gt3mzo=K92pg}pMWQmN#k=JO6J5hb44mROivp1w=eEpBUBmg>Wp-qOA} z*}TZZpV-pah~6bzn)_wev?rQUla_SE8~e?!i#IlQib+ka?VbHr1T8P=NN^?n-VbIw z#=|RUx*jx}TpDjoG`IJAZ*9i{3{JmUGuoiCM1v=fMXXM?p{p%zkhNLa0V?rwUGtb3 zZ(r=WyB5~82iAZ&H^Wmlot(71wJiZFX=y$po=SKI zIGrJ8#hVxPFu`8qg3(P^D5@G8dn>-SrK!(gOmCr5p8JsOJtosqi)Obc8&d+ZCF?z9 zr*|}Z4Wq8D!z@oh6nj3nvW+fISyc2F>OH*sS zEt%>ukB)3h#L>CB#c}WK@^B$puQ8kot@JAIvicS#yR7n>*b&L*IGeX?$W_hWSui=C zZ0u-D%xobSIKykS>2aA1w}vSqsuPXz&K`4!eWvUu2CS;S9bVzscw+)Mpp5B&ay#jQ&B zyN^56Ii4O&ZfuFSLx*gkdg?Q`rnw!fNlUY+Zs|a`r?xaNk{F}gkgSLKrR#w}HFb$p z`$V|X>Uev+_i`_KWV)cXrK7Drp~VtY;wdo|K3phIH7(v=zgR$RSVR&Hla|*fT4~)( z-{4l1=G1o7*JDEKvZAKBzNNXou_KjSnn-i$Mm>oT5@7idvl3YT(6y?DhNPzrcM(aq zfk9e;X^%+@n@F=~#*=N!k||GrYEdH=(;lU$<@7y-CMTD-!$+i<=_#Tln;ECD3G3;eR;DBxvFwV8FoZ?$ zU+EH9H5*!*(il#&wJ|{f8hl);zAf2n6fwY!$@-*6O0LR<4n1Fj3F!)*jW)ZtY_Nvl6XX$ULPwux6)WT_WCA-LlMMr8TFj2$Uz#w0J8G zjmNrrwd%>~TNg$Y(~i0!rp1@n!GzK+>)6fh4dy27n-w7@CmXRk@?@%8oao0UlBYr{ zGU8TR5IwcJERQuerRrPS8j}k|ZD$Jcl2DrhiOOqc2&q*S%}i?UXi_E1)AI)g<9bvv z4dV;1<(c<&g2iUTOv{qC9cjn#3%r*Rv!~ZisuNhOu?mZZWU3X*^>oZj5pP>mkL4Yg z3L<000=0!Gr-fZW_3oZxQKEfbwdc-MFU*}$wo}&v?PDMkDZy;d)Ik=rJP`p{buCgO zVxAI?Rv*#QI`4>NJNu>P1`nFiMqp~oBIu+M3$!5Fum=-WRMkQXApXhrt-SAU zuiVv{x3g3^SBy$o=LzN58ML&f1U$70qf(*~BQ>)lwKyRqs!63+R8a-%MrBZJU3$Tv zm0Yx#qVaaJ+gXW*4(tkhY~gxTq0Go*D&BUgg$2%ZP+K^baY&U719J@5GAqz%8PGeS+l2tdf$Q7{O4eY2Q>EURh z6|+&Pg3nZ$tmc&n%N2P__8Tex1~d*j=FPedJ8v)V3)5H=yHOBTm;N5yoF`X z)I{?lHUE?^pnzJ2To^E}6q_tg&<2nby!DfL@#%b(M**Dd8^kiZSNJNUO?VQy%MqS! zlQ*q)MJQL*J~e@9D%|~&PI!wu><18rUh_PH2djrLnriplP0y=WeRt1$=zf-amU#mT(xM(x!BBcfS_T- z5Yq7R(DAUTk#a|gw!WAe7!f%d*nZCKvpF)GJw!Lbxk!nc5%*cK4GA$M4&5$bbR11dOds2ki zg+Q6T9I1U)&s+*bda-)JNmHlR%&e`c6_B2~hzPYU0Z-bF?IZSxn0iaGi8^jE;?z`Y zydJ@OqMetI8u)w+MO8`;LT`RgC7^I(xgbkYr70<6er(K|8|12qK(o1FS~Ar{@zKl{ za^?_$78td+V9P@6IyKpxP;-=e*puT8wy2FhNY!+dbEz9)T zos4Q}cjZ0JOSy-5nyYqrGM3^4zln&pjWl?XT3>@$w=Hdgl~}Snv^QaUb`mM z-}wQSOKfNo4c;>aQPq}^Yj8C-3{8lj)wC6j?K6%Ri6tP5C#OG)aCliSj9JBKKE@WTNk*3Or$M-@RR5j3XTTOG1nbQjG!jt0UBhiMzkPb>7 zl_5moBQq>qOIuDsbWoM*Y_3NbfNceqE2JmJ8ygqUvw|ZMi;~T%7@Afo6&dxI-tF$F zA%H@Y%`{_`GxK&C$H22EPo6YuUTw_}Cke7-PmD$brS9rcHx=uTPvs}|ZjB1}VNywL zLELN_)o{o~CA_XJrFLm5+~WC%7;>5`kPd;|Xg&-=o{7TssofMJ8c(ukh2FDL+<~gwCd0EekYlK7Y(kL8 zqs$B5tOQO65^b$*SVB^mjEJ^93_6JH$zdndlO@kAh0LKUW)o3du3lw@>fV`sK2IDThu~G@vbwyBwukP!6MS&3!mrk*?8O+r+B6Nk`6@RWqrU zjvJKdSd7UNC3+v0vY+n5l_ueetM+NwCb0(8iJlA9-h|++1dhlMU)LsNKXLU62I!s! zQW3qW@l@!kEXAk4EQw6AsH8`EqNX(|A?JE>JX{=i;glFBGY}9DiTWx*bKFRsBL}Xr z17_@U@zkgR55?Hk^%;-;xmrlKyjxewV?QpB`Zn9s9+mN8%IC$2C8OLlqP!^{`P_8x zcD?nb?{-U5oyr6$=^Z@6+T7HH?$cf4Uf5vHsb40+8 zdJu>3W(?s7Jr|`d9PiK&!=zKRWdj2{HOiwcADxL%33&!X0gry5DKmO9(pyyuWo3yz zJnzOA9?jha^Eh*3X`ZYhjkyd|KoZfTOLCaBVWlg0oK!n?-haDWb+rd)o||@uqAlTh z)S>b-}-YSgC#IJ|KW3TjgB&f2x=#6tB3hM4I-Sz$9i67CEq z(V~HfDl8v=(5Y1wI^Is}1ma6PdX*CoM@sVXhxB9VCmlQkL=(2YP4VTTff5arniXFL zvu&4$3ev!38v8YhQE0|s>qSX*QGsWVNIM;f$(fyAp_1}}2Rt4>@!o*;DK0O|6+eY2MUH(~qp1B4#dJu9ry$YKJCc5ViN3+(cf$ z-B%Gpwuv1KA2hA=@7Eg0~wg{Kf_sTdvu z;n{Y{jT=R&a?7SFWj5E!DHS_#T80&pt+q3|RmpW_VC4E}YSX(-Oyh}h#5xS6mB$;| z!;weDk!9N0d+}>h?BaQlF-r3BC?j|VdhdvQ9$)dS5}Oiuj~afj0@ld$g|YL6LpZSjUgQ@rhzzBNy5Y3+pG7ki#`xs4(Y!V`*q zGI*EM?0K5%IxQ8YQ$9wk4U6znI#=O+bP`W9A@wY5X_s@#^BhgB;aqQfazU~YZ;GTv z?e+E^xp*2ao-t}3)U`})S%&pHeVB@^F^)8s$@hq`j}~%MfDdCSVdaBcye>gf3H8{N zO@!PIHpF;w2ScSYM2);3I$4^eSMRW>r_}3W<@Njw4bNC`fQy^qINa?MRnwSMFKwWm z^aPlhNSq=N5aSg@wqC4593`hq(8Eohn(Ej_Bs@=F)Hal6094^Y)9}D!I&B{7(}#o0 z1x{yq%1!KOqo)%B?+?(~ZK|~;#jVSvJf)`v5PqGWoK(s4&&h}`c_>B(E?(tNoQ-v9L9f@3jD?RbyR8?bIpq^!F;Ucg}kW-0lT&|w3#Zv&MICU-Z z@Zu;usOG9Gn98$mY6WL9ID~{!CO5_r8liPMz`^+ktPZbg=uYBTvK4}1bPpIOa0gk) zB3k3)&8JYiYKf$rzW*O zRjYhRfUt#f)Je6Us;D0pPAA29T&-4A8rj-bv_|UZGj1LSejGq4 z_pF=J?s>Q5d(XUEq=qR&o_`+01)H~c2+R`0sF$DeqjRYOCM z2U>2x2?vAc=ZiWT<83GnH%1E*jWxEmGx*h+6!topHFyHvm`Jo@1#Vy5f@4NJAceI^ zq?r6_E6fNd+89MDhJaNaQ&y`L5dvUOs-Et~v525zGBZ33#R8AxOn$|Y*lI(kPu!^# zwE&yLF&*}WiBo29oWV&*jGAa;pl`r)I=mI4i>vb^div|0CE-rb<}&U2Xs6TB+S=0Q zeGv?gzHub(dDTd-AkagvES?;Ey3}hy#n2}3^i{8?kPZv;)Ocr)_ogI18WRn{Qlhb8 z#=?c@S$YQOm&r&cY6z(7?C@2K>DV<@UMt_5K}6Mn<9@u9l77~ga05A>@EY+V;qEqY zOy1JU94*3Zdbd|2JeyUoKi2WO$(y(R)7r&8SC@eMz?%=CFd$4_J|5K~H?`vVbaOjB z0%#PI8j@HQkDxc*X=zK>&?`gkkmC3}3hu&QDxvL|lhg`oqS&CGo^kL>%+YVWS-s{H zSI!|W{TcTcM%pQtxfJj1@R9%?nnTO*zUl=z(GF*VffI4Cc(aBE1)Lo;8jT8-o1I0H&*63&7uRJyKWRBAnOnrLsV@;Q1fhjdZ-qkO{~KQQQHyFv2lnR1Wa+_iluhxcj+$}D0<@P9G1P;1jqr(Yv3LLZ?Z_3!RH0-m z?rKA8Nn9I&6ZkxMD>&G?a=oOL7;1_`#u(BqC>ujN)QT+Cg8P;NH{j#Db@&Vv<y6m$GIw(>EN=vlCTbHDZwSg-u-c<7DOb4b{9a71ZxGeA=k@MHlN*s zUNxW$*&nQ~Y&!0eJ@Hx^*%0*&r$8vT9BFY#x+K{+-frSrX#T~Nl+sH3xp!FqJ?|yU z9`w_*6peN#^h0vNL4uNuN^7vio~1>YN^9F67~}r*xzEuhd>Gqf{yqDxh7_b#n!O}N zCv2%1-UQxaSQSz7~?S09!Qhh_XX61ngO8-P-O#PuxX_94;hg}3IsDG5BxW00%1?2*C@0sAq z9+2OoI~St|Y}2FDc{Ed`6_Pw{Xt_`6+`d*O$|kUX_1Yd;XA-itFOp`vCJ^rx1ZKvzht6F#}?xx<74n)R8RX5hd>}klM zbs>&iv~cu9r082k80Li+-dc2=PBhc#DBWVRgR>kl}C;h&+B1y zFRe1v2DKN%_n*iWV3Znf{IvNQ$Ds|9RF-an3}i86b5wtN?TVvzs-L8z5yQi2o>!Ej zIVgRFlvMgN8j*A~(Er*f0{h}S3PuZK@3d99eb%H*^sWjt8XU zL(m{o>3njFG|}O-vMJ@s@t-K>;#-pE!2Qp`S0)J`z6}K_e5sWW-_U|oGg1zx-~t1* zM8F1|I+WlbDPuBgkC&Ffbfl*X(Nu>v$Qq^dlJ13URJv)hrrv=t4zy6d9&<>#E?Oih zC?wY|M_t+>1-IlTs0MO%=n-0@xkpaZ4JXOD_feotw=j#83y;K3#kVR zCK}OilG4>fD=?)=t29Fvp*4?-teTCyQ}Dk9o`)6`S_=210qSw@aS)EHA93grxL1Y- zeOu}~raiSJ2D%HN98our5{Fblhu?j>Bk8-spm$+Ubds)vi zbU*bot!p>96T^Cz^oFqMg-Z62q7pH(i985JY)S8k0maMeD z^5pm3TE*ZA{obiV#N3H!B^~OKw-Zg%alZ`3%TIbI^SuWg9jdH6CX`V!6Q(Ao+3D$Pka2$0^%ot-qV-5D$* zbPzx>4XuczQITH@Di6*m7LhYu46Z_5RnSBozA|bO*FFzhuR1k4_)aj4l{^TZh_9ZT zik#Ufjn@6NMHK!COeumV4(4y*NbExnL`;g61<~jjjF#{piLb&FJ{*`ahptEBAewkM z1P)V8vhODex#jG=Um)$soFiZX>0O%IjApp^qm<)Xy~rS`lunB#Knrr-P;^SR<;FLV zIb*mgH(VI|b;8=|?`UXb8fXLC+Y~VcTi+)99gmt)sDbug3x!eTw%6CA&>Brg&*T9} z651=!k#^5x6CuRR2S(2Sxc%ix_k4W7?)Vw&>qYSXQ|BDJ*SKBhTQL#MH0?su&NA(w z&yJ4p#e`wS45QE=GmSz}!(e6>F|%xfU5_Ab79wp%yJLYdhGFIu3-GcEgTjnv(qCH` zbitTKyH=uPw7Vb}h@pHzFz6d0viu_`0}YmO3uQ=+!v8U7-sDEQCvZk4HA{DxK|4P> z8ufrLh@yh-2?5E>w16^kKN^I9)R7YES_$z>{P-b-Xa#aWEj!v>N?Fw;RCP3x0r8{N z`O!+FSh(qfk(Swqx~wX&pb@i>x*eT@icoVk+L;uDo=|7B0-}?k)HpR}$i_yPwn^>H zr~Brs_U3!qLz>#d9ntw&RO@_HP{S3}&^?o)HBg+1FYv9QdKyX3StLppmu|GtepWOy zh@xF9p%O}TcSXDB(9JXwjBy9_)fJGLW%d|@AongaKRS&Cz=&+%0o%xQ6VnHnZlk7W zQnGtF(-l;0*M+Q&Zo!wX59Q?(dHGykzT!&(#+jNdpxX)+;GCEOG0G`bpp?Mz(F(fE zVQoh1WOZxE1fyL$E(6hujUyJ=QdFz5)&$jQn)}LwPl>{W>P8yUL+ogBN;?8BSR%ZA(e0(l?Vor@WWw{_d@O4xsC1A zgF+M2hV}oRJ3{YyM+iWU5XK!-2Yu|u{2>76g??uSgVeolRLs?*Gn_UG3((BNz+Zv5EE2hPzJmv+-pXcM3?Xt!^+o+Xa!#}{G_z*QtC$c zN;1?Yu5?5|prR4zNDkFFLUqIi>{RH+5irgO#4@50a+j4xF09QkWQsTkYYwHj7>9C=hf+&bx+O|UO^|p+=&2Dcqh-Tq zW@eI+!T>^+FoKyNp)g2h5F{KjZLC+0X@^Z4=?toMny!^n&}dO1skIEMLJIoA>QV&v z0gIG5v(a+2dn2rzF3~axVHjASHfFh33_0U4Re@VbLQE!D)JmI_(8T~gl>utWVV{cW z2504m=DSuBl?BdR8J$b!#1o=>Gj*K+<^iz`gXE*B#$skgOL$fJQKYMzGNTDhtRVgy zFl)>aP!x59-w21pn58x_F3=BFXv&LXR-?9PFpK6nT``rBf#o`isSiu0L{$h~sVod7+ypUE0aa<@O0An&)R-yj+z}0C3M*O?4Mw|npa7<-3mjpp zq%2Y9Ex|yRpkxNxMN?b_Nh8xi*fXc3*i?Ujd$I#vCA;6jT~%@wvRo`GDTYK1Gb@}4 z>GLC9X9JUjrVAWYBKcHLmbwY9j~!O}_GkO@uE4dAL#uaKi$QOMIM ziYu88`YOw)`XX6MxCr@^ifGsQ@Mv>+hId_LqlYvdV`@6a^mIgqoQ}v+(-E0^I*!rP zaZGwTj`2=M+{e=q6`5J=FS;=kNe1O?&O{hRHV~u>%#MB62BsUCZescX(`^M`n$eC-{;1C43w^5RB zLxN^=v}+aqAs24f1<;;K!W4&5Fmi1WLY%oF+I54QI3JQ1g~>9D;3oJA8wqx;5v7Ra zx`enA!JJKD9q_E$stSRw8~FRoQ5nCiJi6(k%!A*0>}&yRhK@*rqfN8kK4}mzfEYlY-Oe_{~MOj%eIE1%_n70;P3aNm!`oE)}Lp<*Ka^mOM&L zL0^M~p@4-D{C!M_k03}8yuzR#a+qdDz+VV9XGH?R=%hl1ibGXSkyT=Dp~)=RcC_nj zTo6PQ6-EQ0LIla+1l>wt_0ewH$IC1HAnpKzB{y(JK%Tj4m7gv(RDTU5$CQGu{ZL|! z84h4ejJ@h4ZINz=XxC*hQ4<&ZgJ_V=w0+cLY-f$4tRf#xsIo|R zKDECjT4ol}vH_)KWl}e>VJY%q%JXY=AquebR*MEOdnvnjU<{$Nq85cE0}#Dr{%35GUpSfpELc6Zep{6 z^%>C^ky0YZ6PZJ#jtj0~x|8WHrn{NGO+{LXv@<@B%(Lr4b1y^WsrT<=%kVL(*l_+j zE_};71|kT1#x5&_WC%%UAxLTo1|xwGZ7rahU=jWz4~AS=6r_P#;+o4xY)ER9$h5n* z)3Feby-!|nLjVx1)E0)G6Zbe zY@!Tyd=%B2bUp#2e3iSp6_mD%0fU0sFfAXE?n9|uNTq2{kVz|kBu+&#h&V)og=m(m zBxh!Y$+|WZi#8AlTmn`mv;1IDkOY8W2>~o!;Pt7-NE{W1Bk@qcABl&l0_uyIfi7g= zPapu2W|JtPkQ4BS(mV%69mhdY&@`L2F4%Ji{6WnNh9OBX5=R5U3?d;SxD(2O2pJ&< za~yjx>5R5hCdD?;dZc?UE9*T{RyTFeKv7s{A(?%5A`9VC4#uMlf4dVH@n{(aoeGpP zT}h_Zl!2aiAF5^`&C5f1MuOFSsLJCsO<~joE;QDSy&TrmLYNEB==U+<;E6B=$vS9` z69+sR(-YtlqbI3Wd5 zj>D$TWPeIqSJW5Gg{ze%m`%G@xHPm_h=vPsTta5qfz3Win^j0fFI1IXNM+?l6g8n* zt`WYl%w!+eZJNHKXc1g)w7VM#lX@2EUW0!aQAeV+k?yr*5OCVi$r>0pE^9IO2$9DJ zLZm@kyz{B?+hwD)JB5H~6fTg42KE3qjL8td{*Okb4BC;NvO~VIM;r zj`i3Sb!HeJS8iFxUonX<<1y+?r>1!^KFL6zlcrHVb0ypb6*l@5rhM!=_n2>>W#vK; zJW(gs1!>)a)b0jn2E`w@G|0o*B z;F`g37gU&V76mor9eiZ$z90lA_4U;|b*ZcW9MZ*v2xjmk3I=enC?kqJnj2K>F*h;= zI-Eu&IJSmi-|0X_-FM<2A|1@?JF|!Zot?P>GZHb+4Q!zsuwId?hH8pPH~z3pp&t~8 zB7;{GQWgIFSK~Rz5c%ch`{{r3bEYYL<_+6AsvsM`GdH%pvV2VW!4+finFrKcG991v zZ;vHYv3Lw0qmrMhjkPR{F~7V8A59fqzl7Qz)E}&kjhI*#8#`vq*wG*d#pr{1jmbo8 zCVhUbd`{aOd<(q#2yTy(<6=j}@u9ZZapke;iDjoG+fEr3o0hC!98WaHCYHzQmbHwE zRW&A-Cz7$M^4PI0ZTM77s%2^aHIAXS$HrzZ#z$*gV-wrr$wgccE+NL>-II#pD>v|Q z-9!Uk)e0HH&;1c1%MgyIYnauTDEL!M3aT>)9M=|a#n%k#4?*#lTBPusHanp|^{1KA zF&Fi`&i9m)IrtQQTXkdOw0II9V_&;fpPGz5P7#jR#M z%BR;}>BTPkgD+r3yYwPhIlnOR|Fw4pDGkI>7@oOFa9yMf3U#N{g^1uFQZG<+QK7|+ zSMe;K!Xx>8iPN;&Lfw{^GNoi*l9zwpFfILF!Xu;^F^hKX?KPI>uLx6YWNTrUI4115 zRc&Y3vOE-)Vr`a=e$P3^92flM-|@2CuuEZ^l_)5n=+*0nXM&Q0U*^XZkKeP83;LR4 zO}1Y1(SFj;9pjpZ#;S=}teB(TzJSO8;O(eO&$E!w9a+C5^m z%;&GD6_pX(OCTwpopDZpqGT8>0WALG<9I#qj=p-vHbTA5j;`veSbNk1J$uOYs_T3N zhYF@tG7EW%V|B81T}p(Dg^5WyV*n&djlThG6Am%bMFOj}nBg;Ls(p>uKF88MZS=Na ze5|>_C-pM2O0*vuQ=^9OfvBObbK+3kclSNhu&b}}zis>bF4%VuT;{d|ge4?aa$F8= zp9PG!P#_ct1ww&PAQT7%LV-}=SQYqc+1;5R_T*JW2?audP#_ct1ww&PAQT7%LV-{q M6bJ=Ef#X!*8;}GuM*si- literal 0 HcmV?d00001 diff --git a/PusherRESTDotNet.Tests/Libs/nunit.framework.xml b/PusherRESTDotNet.Tests/Libs/nunit.framework.xml new file mode 100644 index 0000000..18cff8b --- /dev/null +++ b/PusherRESTDotNet.Tests/Libs/nunit.framework.xml @@ -0,0 +1,9803 @@ + + + + nunit.framework + + + + + TypeConstraint is the abstract base for constraints + that take a Type as their expected value. + + + + + The Constraint class is the base of all built-in constraints + within NUnit. It provides the operator overloads used to combine + constraints. + + + + + The IConstraintExpression interface is implemented by all + complete and resolvable constraints and expressions. + + + + + Return the top-level constraint for this expression + + + + + + Static UnsetObject used to detect derived constraints + failing to set the actual value. + + + + + The actual value being tested against a constraint + + + + + The display name of this Constraint for use by ToString() + + + + + Argument fields used by ToString(); + + + + + The builder holding this constraint + + + + + Construct a constraint with no arguments + + + + + Construct a constraint with one argument + + + + + Construct a constraint with two arguments + + + + + Sets the ConstraintBuilder holding this constraint + + + + + Write the failure message to the MessageWriter provided + as an argument. The default implementation simply passes + the constraint and the actual value to the writer, which + then displays the constraint description and the value. + + Constraints that need to provide additional details, + such as where the error occured can override this. + + The MessageWriter on which to display the message + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Test whether the constraint is satisfied by an + ActualValueDelegate that returns the value to be tested. + The default implementation simply evaluates the delegate + but derived classes may override it to provide for delayed + processing. + + An ActualValueDelegate + 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. + + + + + + This operator creates a constraint that is satisfied only if both + argument constraints are satisfied. + + + + + This operator creates a constraint that is satisfied if either + of the argument constraints is satisfied. + + + + + This operator creates a constraint that is satisfied if the + argument constraint is not satisfied. + + + + + Returns a DelayedConstraint with the specified delay time. + + The delay in milliseconds. + + + + + Returns a DelayedConstraint with the specified delay time + and polling interval. + + The delay in milliseconds. + The interval at which to test the constraint. + + + + + The display name of this Constraint for use by ToString(). + The default value is the name of the constraint with + trailing "Constraint" removed. Derived classes may set + this to another name in their constructors. + + + + + Returns a ConstraintExpression by appending And + to the current constraint. + + + + + Returns a ConstraintExpression by appending And + to the current constraint. + + + + + Returns a ConstraintExpression by appending Or + to the current constraint. + + + + + Class used to detect any derived constraints + that fail to set the actual value in their + Matches override. + + + + + The 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 + + + + 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 + + + + 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 + + + + 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 + + + + ConstraintBuilder maintains the stacks that are used in + processing a ConstraintExpression. An OperatorStack + is used to hold operators that are waiting for their + operands to be reognized. a ConstraintStack holds + input constraints as well as the results of each + operator applied. + + + + + Initializes a new instance of the class. + + + + + Appends the specified operator to the expression by first + reducing the operator stack and then pushing the new + operator on the stack. + + The operator to push. + + + + Appends the specified constraint to the expresson by pushing + it on the constraint stack. + + The constraint to push. + + + + Sets the top operator right context. + + The right context. + + + + Reduces the operator stack until the topmost item + precedence is greater than or equal to the target precedence. + + The target precedence. + + + + Resolves this instance, returning a Constraint. If the builder + is not currently in a resolvable state, an exception is thrown. + + The resolved constraint + + + + Gets a value indicating whether this instance is resolvable. + + + true if this instance is resolvable; otherwise, false. + + + + + OperatorStack is a type-safe stack for holding ConstraintOperators + + + + + Initializes a new instance of the class. + + The builder. + + + + Pushes the specified operator onto the stack. + + The op. + + + + Pops the topmost operator from the stack. + + + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Gets the topmost operator without modifying the stack. + + The top. + + + + ConstraintStack is a type-safe stack for holding Constraints + + + + + Initializes a new instance of the class. + + The builder. + + + + Pushes the specified constraint. As a side effect, + the constraint's builder field is set to the + ConstraintBuilder owning this stack. + + The constraint. + + + + Pops this topmost constrait from the stack. + As a side effect, the constraint's builder + field is set to null. + + + + + + Gets a value indicating whether this is empty. + + true if empty; otherwise, false. + + + + Gets the topmost constraint without modifying the stack. + + The topmost constraint + + + + ThrowsConstraint is used to test the exception thrown by + a delegate by applying a constraint to it. + + + + + Abstract base class used for prefixes + + + + + The base constraint + + + + + Construct given a base constraint + + + + + + Initializes a new instance of the class, + using a constraint to be applied to the exception. + + A constraint to apply to the caught exception. + + + + Executes the code of the delegate and captures any exception. + If a non-null base constraint was provided, it applies that + constraint to the exception. + + A delegate representing the code to be tested + True if an exception is thrown and the constraint succeeds, otherwise false + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + Write the actual value for a failing constraint test to a + MessageWriter. The default implementation simply writes + the raw value of actual, leaving it to the writer to + perform any formatting. + + The writer on which the actual value is displayed + + + + Returns the string representation of this constraint + + + + + Get the actual exception thrown - used by Assert.Throws. + + + + + ThrowsNothingConstraint tests that a delegate does not + throw an exception. + + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True if no exception is thrown, otherwise false + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + Write the actual value for a failing constraint test to a + MessageWriter. 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 + + + + 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 + + + + + + + CollectionItemsEqualConstraint is the abstract base class for all + collection constraints that apply some notion of item equality + as a part of their operation. + + + + + Construct an empty CollectionConstraint + + + + + Construct a CollectionConstraint + + + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied Comparison object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + Self. + + + + Compares two collection members for equality + + + + + Return a new CollectionTally for use in making tests + + The collection to be included in the tally + + + + Flag the constraint to ignore case and return self. + + + + + CollectionTally counts (tallies) the number of + occurences of each object in one or more enumerations. + + + + + Construct a CollectionTally object from a comparer and a collection + + + + + Try to remove an object from the tally + + The object to remove + True if successful, false if the object was not found + + + + Try to remove a set of objects from the tally + + The objects to remove + True if successful, false if any object was not found + + + + The number of objects remaining in the tally + + + + + EmptyCollectionConstraint tests whether a collection is empty. + + + + + Check that the collection is empty + + + + + + + Write the constraint description to a MessageWriter + + + + + + 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 + + + + + + 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 + + + + + + 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 + + + + + + CollectionOrderedConstraint is used to test whether a collection is ordered. + + + + + Construct a CollectionOrderedConstraint + + + + + Modifies the constraint to use an IComparer and returns self. + + + + + Modifies the constraint to use an IComparer<T> and returns self. + + + + + Modifies the constraint to use a Comparison<T> and returns self. + + + + + Modifies the constraint to test ordering by the value of + a specified property and returns self. + + + + + Test whether the collection is ordered + + + + + + + Write a description of the constraint to a MessageWriter + + + + + + Returns the string representation of the constraint. + + + + + + If used performs a reverse comparison + + + + + 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 + + + + SubDirectoryConstraint is used to test that one directory is a subdirectory of another. + + + + + Initializes a new instance of the class. + + The dir info. + + + + 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 + + + + Builds a list of DirectoryInfo objects, recursing where necessary + + directory to recurse + list of DirectoryInfo objects from the top level + + + + private method to determine whether a directory is within the path + + top-level directory to search + directory to search for + true if found, false if not + + + + Method to compare two DirectoryInfo objects + + first directory to compare + second directory to compare + true if equivalent, false if not + + + + 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 + + + + Returns the string representation of this constraint + + + + + Canonicalize the provided path + + + The path in standardized form + + + + Test whether two paths are the same + + The first path + The second path + + + + + Test whether one path is the same as or under another path + + The first path - supposed to be the parent path + The second path - supposed to be the child path + + + + + Modifies the current instance to be case-insensitve + and returns it. + + + + + Modifies the current instance to be case-sensitve + and returns it. + + + + + 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 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 + + + + 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 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 + + + + 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. + + + + + + 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. + + + + + + ConstraintExpression represents a compound constraint in the + process of being constructed from a series of syntactic elements. + + Individual elements are appended to the expression as they are + reognized. Once an actual Constraint is appended, the expression + returns a resolvable Constraint. + + + + + ConstraintExpressionBase is the abstract base class for the + generated ConstraintExpression class, which represents a + compound constraint in the process of being constructed + from a series of syntactic elements. + + NOTE: ConstraintExpressionBase is aware of some of its + derived classes, which is an apparent violation of + encapsulation. Ideally, these classes would be a + single class, but they must be separated in order to + allow parts to be generated under .NET 1.x and to + provide proper user feedback in syntactically + aware IDEs. + + + + + The ConstraintBuilder holding the elements recognized so far + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class passing in a ConstraintBuilder, which may be pre-populated. + + The builder. + + + + Returns a string representation of the expression as it + currently stands. This should only be used for testing, + since it has the side-effect of resolving the expression. + + + + + + Appends an operator to the expression and returns the + resulting expression itself. + + + + + Appends a self-resolving operator to the expression and + returns a new ResolvableConstraintExpression. + + + + + Appends a constraint to the expression and returns that + constraint, which is associated with the current state + of the expression being built. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the + class passing in a ConstraintBuilder, which may be pre-populated. + + The builder. + + + + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns the constraint provided as an argument - used to allow custom + custom constraints to easily participate in the syntax. + + + + + Returns the constraint provided as an argument - used to allow custom + custom constraints to easily participate in the syntax. + + + + + Returns a constraint that tests two items for equality + + + + + Returns a constraint that tests that two references are the same object + + + + + Returns a constraint that tests whether the + actual value is greater than the suppled argument + + + + + Returns a constraint that tests whether the + actual value is greater than the suppled argument + + + + + 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 the suppled argument + + + + + 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 the suppled argument + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + + + + + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + + + + + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + + + + + Returns a new ContainsConstraint. This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + This overload is only used if the item sought is a string, + since any other type implies that we are looking for a + collection member. + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value 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 Regex 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 actual value falls + within a specified range. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + + + + + With is currently a NOP - reserved for future use. + + + + + Returns a constraint that tests for null + + + + + Returns a constraint that tests for True + + + + + Returns a constraint that tests for False + + + + + Returns a constraint that tests for NaN + + + + + Returns a constraint that tests for empty + + + + + Returns a constraint that tests whether a collection + contains all unique items. + + + + + Returns a constraint that tests whether an object graph is serializable in binary format. + + + + + Returns a constraint that tests whether an object graph is serializable in xml format. + + + + + Returns a constraint that tests whether a collection is ordered + + + + + RangeConstraint tests whethe 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 + + + + 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. + + + + + EqualConstraint is able to compare an actual value with the + expected value provided in its constructor. Two objects are + considered equal if both are null, or if both have the same + value. NUnit has special semantics for some object types. + + + + + If true, strings in error messages will be clipped + + + + + NUnitEqualityComparer used to test equality. + + + + + Initializes a new instance of the class. + + The expected value. + + + + Flag the constraint to use a tolerance when determining equality. + + Tolerance value to be used + Self. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied Comparison object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + Self. + + + + Flag the constraint to use the supplied IEqualityComparer object. + + The IComparer object to use. + Self. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write a failure message. Overridden to provide custom + failure messages for EqualConstraint. + + The MessageWriter to write to + + + + Write description of this constraint + + The MessageWriter to write to + + + + Display the failure information for two collections that did not match. + + The MessageWriter on which to display + The expected collection. + The actual collection + The depth of this failure in a set of nested collections + + + + Displays a single line showing the types and sizes of the expected + and actual 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 + + + + Flag the constraint to ignore case and return self. + + + + + Flag the constraint to suppress string clipping + and return self. + + + + + Flag the constraint to compare arrays as collections + and return self. + + + + + Switches the .Within() modifier to interpret its tolerance as + a distance in representable values (see remarks). + + Self. + + Ulp stands for "unit in the last place" and describes the minimum + amount a given value can change. For any integers, an ulp is 1 whole + digit. For floating point values, the accuracy of which is better + for smaller numbers and worse for larger numbers, an ulp depends + on the size of the number. Using ulps for comparison of floating + point results instead of fixed tolerances is safer because it will + automatically compensate for the added inaccuracy of larger numbers. + + + + + Switches the .Within() modifier to interpret its tolerance as + a percentage that the actual values is allowed to deviate from + the expected value. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in days. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in hours. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in minutes. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in seconds. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in milliseconds. + + Self + + + + Causes the tolerance to be interpreted as a TimeSpan in clock ticks. + + Self + + + + 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 + + + + 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 + + + + + + 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 + + + + + + NoItemConstraint applies another constraint to each + item in a collection, failing if any of them succeeds. + + + + + Construct a SomeItemsConstraint on top of an existing constraint + + + + + + Apply the item constraint to each item in the collection, + failing if any item fails. + + + + + + + Write a description of this constraint to a MessageWriter + + + + + + ContainsConstraint tests a whether a string contains a substring + or a collection contains an object. It postpones the decision of + which test to use until the type of the actual argument is known. + This allows testing whether a string is contained in a collection + or as a substring of another string using the same syntax. + + + + + Initializes a new instance of the class. + + The expected. + + + + Test whether the constraint is satisfied by a given value + + The value to be tested + True for success, false for failure + + + + Write the constraint description to a MessageWriter + + The writer on which the description is displayed + + + + Flag the constraint to ignore case and return self. + + + + + 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 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 + + + + 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 + + + + NullConstraint tests that the actual value is null + + + + + Initializes a new instance of the class. + + + + + TrueConstraint tests that the actual value is true + + + + + Initializes a new instance of the class. + + + + + FalseConstraint tests that the actual value is false + + + + + Initializes a new instance of the class. + + + + + 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 + + + + + + MessageWriter is the abstract base for classes that write + constraint descriptions and messages in some form. The + class has separate methods for writing various components + of a message, allowing implementations to tailor the + presentation as needed. + + + + + Construct a MessageWriter given a culture + + + + + Method to write single line message with optional args, usually + written to precede the general failure message. + + The message to be written + Any arguments used in formatting the message + + + + Method to write single line message with optional args, usually + written to precede the general failure message, at a givel + indentation level. + + The indentation level of the message + The message to be written + Any arguments used in formatting the message + + + + Display Expected and Actual lines for a constraint. This + is called by MessageWriter's default implementation of + WriteMessageTo and provides the generic two-line display. + + The constraint that failed + + + + Display Expected and Actual lines for given values. This + method may be called by constraints that need more control over + the display of actual and expected values than is provided + by the default implementation. + + The expected value + The actual value causing the failure + + + + Display Expected and Actual lines for given values, including + a tolerance value on the Expected line. + + The expected value + The actual value causing the failure + The tolerance within which the test was made + + + + Display the expected and actual string values on separate lines. + If the mismatch parameter is >=0, an additional line is displayed + line containing a caret that points to the mismatch point. + + The expected string value + The actual string value + The point at which the strings don't match or -1 + If true, case is ignored in locating the point where the strings differ + If true, the strings should be clipped to fit the line + + + + Writes the text for a connector. + + The connector. + + + + Writes the text for a predicate. + + The predicate. + + + + Writes the text for an expected value. + + The expected value. + + + + Writes the text for a modifier + + The modifier. + + + + Writes the text for an actual value. + + The actual value. + + + + Writes the text for a generalized value. + + The value. + + + + Writes the text for a collection value, + starting at a particular point, to a max length + + The collection containing elements to write. + The starting point of the elements to write + The maximum number of elements to write + + + + Abstract method to get the max line length + + + + + 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. + + + + + The Tolerance class generalizes the notion of a tolerance + within which an equality test succeeds. Normally, it is + used with numeric types, but it can be used with any + type that supports taking a difference between two + objects and comparing that difference to a value. + + + + + Constructs a linear tolerance of a specdified amount + + + + + Constructs a tolerance given an amount and ToleranceMode + + + + + Tests that the current Tolerance is linear with a + numeric value, throwing an exception if it is not. + + + + + Returns an empty Tolerance object, equivalent to + specifying an exact match. + + + + + Gets the ToleranceMode for the current Tolerance + + + + + Gets the value of the current Tolerance instance. + + + + + Returns a new tolerance, using the current amount as a percentage. + + + + + Returns a new tolerance, using the current amount in Ulps. + + + + + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of days. + + + + + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of hours. + + + + + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of minutes. + + + + + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of seconds. + + + + + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of milliseconds. + + + + + Returns a new tolerance with a TimeSpan as the amount, using + the current amount as a number of clock ticks. + + + + + Returns true if the current tolerance is empty. + + + + + 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 + + + + 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 + + + + 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. + + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + Abstract base class for constraints that compare values to + determine if one is greater than, equal to or less than + the other. + + + + + The value against which a comparison is to be made + + + + + If true, less than returns success + + + + + if true, equal returns success + + + + + if true, greater than returns success + + + + + The predicate used as a part of the description + + + + + ComparisonAdapter to be used in making the comparison + + + + + Initializes a new instance of the class. + + The value against which to make a comparison. + if set to true less succeeds. + if set to true equal succeeds. + if set to true greater succeeds. + String used in describing the constraint. + + + + 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 + + + + 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 + + + + + Tests whether a value is greater than the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + Tests whether a value is greater than or equal to the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + Tests whether a value is less than the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + Tests whether a value is less than or equal to the value supplied to its constructor + + + + + Initializes a new instance of the class. + + The expected value. + + + + 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 + + + + 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 + + + + 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 + + + + 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 + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a constraint that tests two items for equality + + + + + Returns a constraint that tests that two references are the same object + + + + + Returns a constraint that tests whether the + actual value is greater than the suppled argument + + + + + Returns a constraint that tests whether the + actual value is greater than the suppled argument + + + + + 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 the suppled argument + + + + + 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 the suppled argument + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual + value is of the exact type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is of the type supplied as an argument or a derived type. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is assignable from the type supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a collection containing the same elements as the + collection supplied as an argument. + + + + + Returns a constraint that tests whether the actual value + is a subset of the collection supplied as an argument. + + + + + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + + + + + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + + + + + Returns a new ContainsConstraint. This constraint + will, in turn, make use of the appropriate second-level + constraint, depending on the type of the actual argument. + This overload is only used if the item sought is a string, + since any other type implies that we are looking for a + collection member. + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the Regex pattern supplied as an argument. + + + + + Returns a constraint that fails if the actual + value matches the pattern supplied as an argument. + + + + + Returns a 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 actual value falls + within a specified range. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + + + + + Returns a 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 NaN + + + + + Returns a constraint that tests for empty + + + + + Returns a constraint that tests whether a collection + contains all unique items. + + + + + Returns a constraint that tests whether an object graph is serializable in binary format. + + + + + Returns a constraint that tests whether an object graph is serializable in xml format. + + + + + Returns a constraint that tests whether a collection is ordered + + + + + 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. + + + + + NUnitComparer encapsulates NUnit's default behavior + in comparing two objects. + + + + + Compares two objects + + + + + + + + Returns the default NUnitComparer. + + + + + Delegate used to delay evaluation of the actual value + to be used in evaluating a constraint + + + + + 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 + + + + + If non-zero, equality comparisons within the specified + tolerance will succeed. + + + + + Comparison object used in comparisons for some constraints. + + + + + Compares two objects for equality. + + + + + Helper method to compare two arrays + + + + + Method to compare two DirectoryInfo objects + + first directory to compare + second directory to compare + true if equivalent, false if not + + + + Returns the default NUnitEqualityComparer + + + + + Gets and sets a flag indicating whether case should + be ignored in determining equality. + + + + + Gets and sets a flag indicating that arrays should be + compared as collections, without regard to their shape. + + + + + Gets and sets an external comparer to be used to + test for equality. It is applied to members of + collections, in place of NUnit's own logic. + + + + + Gets and sets a tolerance used to compare objects of + certin types. + + + + + Gets the list of failure points for the last Match performed. + + + + + ComparisonAdapter class centralizes all comparisons of + values in NUnit, adapting to the use of any provided + IComparer, IComparer<T> or Comparison<T> + + + + + Returns a ComparisonAdapter that wraps an IComparer + + + + + Returns a ComparisonAdapter that wraps an IComparer<T> + + + + + Returns a ComparisonAdapter that wraps a Comparison<T> + + + + + Compares two objects + + + + + Gets the default ComparisonAdapter, which wraps an + NUnitComparer object. + + + + + Construct a ComparisonAdapter for an IComparer + + + + + Compares two objects + + + + + + + + Construct a default ComparisonAdapter + + + + + ComparisonAdapter<T> extends ComparisonAdapter and + allows use of an IComparer<T> or Comparison<T> + to actually perform the comparison. + + + + + Construct a ComparisonAdapter for an IComparer<T> + + + + + Compare a Type T to an object + + + + + Construct a ComparisonAdapter for a Comparison<T> + + + + + Compare a Type T to an object + + + + + The ConstraintOperator class is used internally by a + ConstraintBuilder to represent an operator that + modifies or combines constraints. + + Constraint operators use left and right precedence + values to determine whether the top operator on the + stack should be reduced before pushing a new operator. + + + + + The precedence value used when the operator + is about to be pushed to the stack. + + + + + The precedence value used when the operator + is on the top of the stack. + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + The syntax element preceding this operator + + + + + The syntax element folowing this operator + + + + + The precedence value used when the operator + is about to be pushed to the stack. + + + + + The precedence value used when the operator + is on the top of the stack. + + + + + 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. + + + + + + + Negates the test of the constraint it wraps. + + + + + Constructs a new NotOperator + + + + + Returns a NotConstraint applied to its argument. + + + + + Abstract base for operators that indicate how to + apply a constraint to items in a collection. + + + + + Constructs a CollectionOperator + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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 + + + + + Abstract base class for operators that are able to reduce to a + constraint whether or not another syntactic element follows. + + + + + Operator used to test for the presence of a named Property + on an object and optionally apply further tests to the + value of that property. + + + + + Constructs a PropOperator for a particular named property + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Gets the name of the property to which the operator applies + + + + + 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. + + + + + 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. + + + + + Abstract base class for all binary operators + + + + + Reduce produces a constraint from the operator and + any arguments. It takes the arguments from the constraint + stack and pushes the resulting constraint on it. + + + + + + Abstract method that produces a constraint by applying + the operator to its left and right constraint arguments. + + + + + Gets the left precedence of the operator + + + + + Gets the right precedence of the operator + + + + + Operator that requires both it's arguments to succeed + + + + + Construct an AndOperator + + + + + Apply the operator to produce an AndConstraint + + + + + Operator that requires at least one of it's arguments to succeed + + + + + Construct an OrOperator + + + + + Apply the operator to produce an OrConstraint + + + + + 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 + + + + + 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 of this constraint + + + + + ResolvableConstraintExpression is used to represent a compound + constraint being constructed at a point where the last operator + may either terminate the expression or may have additional + qualifying constraints added to it. + + It is used, for example, for a Property element or for + an Exception element, either of which may be optionally + followed by constraints that apply to the property or + exception. + + + + + Create a new instance of ResolvableConstraintExpression + + + + + Create a new instance of ResolvableConstraintExpression, + passing in a pre-populated ConstraintBuilder. + + + + + Resolve the current expression to a Constraint + + + + + Appends an And Operator to the expression + + + + + Appends an Or operator to the expression. + + + + + 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 an EqualityAdapter that wraps an IComparer. + + + + + Returns an EqualityAdapter that wraps an IEqualityComparer. + + + + + Returns an EqualityAdapter that wraps an IEqualityComparer<T>. + + + + + Returns an EqualityAdapter that wraps an IComparer<T>. + + + + + Returns an EqualityAdapter that wraps a Comparison<T>. + + + + + 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 + + + + + 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. + + + + Helper routines for working with floating point numbers + + + The floating point comparison code is based on this excellent article: + http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm + + + "ULP" means Unit in the Last Place and in the context of this library refers to + the distance between two adjacent floating point numbers. IEEE floating point + numbers can only represent a finite subset of natural numbers, with greater + accuracy for smaller numbers and lower accuracy for very large numbers. + + + If a comparison is allowed "2 ulps" of deviation, that means the values are + allowed to deviate by up to 2 adjacent floating point values, which might be + as low as 0.0000001 for small numbers or as high as 10.0 for large numbers. + + + + + Compares two floating point values for equality + First floating point value to be compared + Second floating point value t be compared + + Maximum number of representable floating point values that are allowed to + be between the left and the right floating point values + + True if both numbers are equal or close to being equal + + + Floating point values can only represent a finite subset of natural numbers. + For example, the values 2.00000000 and 2.00000024 can be stored in a float, + but nothing inbetween them. + + + This comparison will count how many possible floating point values are between + the left and the right number. If the number of possible values between both + numbers is less than or equal to maxUlps, then the numbers are considered as + being equal. + + + Implementation partially follows the code outlined here: + http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ + + + + + Compares two double precision floating point values for equality + First double precision floating point value to be compared + Second double precision floating point value t be compared + + Maximum number of representable double precision floating point values that are + allowed to be between the left and the right double precision floating point values + + True if both numbers are equal or close to being equal + + + Double precision floating point values can only represent a limited series of + natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004 + can be stored in a double, but nothing inbetween them. + + + This comparison will count how many possible double precision floating point + values are between the left and the right number. If the number of possible + values between both numbers is less than or equal to maxUlps, then the numbers + are considered as being equal. + + + Implementation partially follows the code outlined here: + http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/ + + + + + + Reinterprets the memory contents of a floating point value as an integer value + + + Floating point value whose memory contents to reinterpret + + + The memory contents of the floating point value interpreted as an integer + + + + + Reinterprets the memory contents of a double precision floating point + value as an integer value + + + Double precision floating point value whose memory contents to reinterpret + + + The memory contents of the double precision floating point value + interpreted as an integer + + + + + Reinterprets the memory contents of an integer as a floating point value + + Integer value whose memory contents to reinterpret + + The memory contents of the integer value interpreted as a floating point value + + + + + Reinterprets the memory contents of an integer value as a double precision + floating point value + + Integer whose memory contents to reinterpret + + The memory contents of the integer interpreted as a double precision + floating point value + + + + Union of a floating point variable and an integer + + + The union's value as a floating point variable + + + The union's value as an integer + + + The union's value as an unsigned integer + + + Union of a double precision floating point variable and a long + + + The union's value as a double precision floating point variable + + + The union's value as a long + + + The union's value as an unsigned long + + + + 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 + + + + + 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 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 + + + + + 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 + + + + + The argument list to be provided to the test + + + + + The expected result to be returned + + + + + 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. + + + + + Initializes a new instance of the class. + + The first argument + The remaining arguments. + + + + Initializes a new instance of the class. + + The argument. + + + + Sets the expected result for the test + + The expected result + A modified TestCaseData + + + + Sets the expected exception type for the test + + Type of the expected exception. + The modified TestCaseData instance + + + + Sets the expected exception type for the test + + FullName of the expected exception. + The modified TestCaseData instance + + + + Sets the name of the test case + + The modified TestCaseData instance + + + + Sets the description for the test case + being constructed. + + The description. + The modified TestCaseData instance. + + + + Applies a category to the test + + + + + + + Applies a named property to the test + + + + + + + + Applies a named property to the test + + + + + + + + Applies a named property to the test + + + + + + + + Gets the argument list to be provided to the test + + + + + Gets the expected result + + + + + 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 list of categories associated with this test. + + + + + Gets the property dictionary for this test + + + + + FactoryAttribute indicates the source to be used to + provide test cases for a test method. + + + + + Construct with the name of the factory - for use with languages + that don't support params arrays. + + An array of the names of the factories that will provide data + + + + Construct with a Type and name - for use with languages + that don't support params arrays. + + The Type that will provide data + The name of 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 + + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a new PropertyConstraintExpression, which will either + test for the existence of the named property on the object + being tested or apply any following constraint to that property. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new AttributeConstraint checking for the + presence of a particular attribute on an object. + + + + + Returns a new CollectionContainsConstraint checking for the + presence of a particular object in the collection. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if at least one of them succeeds. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them fail. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Length property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Count property of the object being tested. + + + + + Returns a new ConstraintExpression, which will apply the following + constraint to the Message property of the object being tested. + + + + + 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. + + + + + + + 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 + + + + + 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. + + The result. + + + + 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. + + + + 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 + + + + + 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. + + + + + + + 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 + + + + 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. + + A Constraint to be applied + The actual value to test + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint 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 assertion exception on failure. + + A Constraint expression to be applied + The actual value to test + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + 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. + + A Constraint to be applied + The actual value to test + + + + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint 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 assertion exception on failure. + + A Constraint 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 + + + + 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 + + + + Verifies that a delegate throws a particular exception when called. + + A constraint to be satisfied by the exception + A TestSnippet delegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws a particular exception when called. + + A constraint to be satisfied by the exception + A TestSnippet delegate + 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 TestSnippet delegate + + + + Verifies that a delegate throws a particular exception when called. + + The exception Type expected + A TestSnippet delegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws a particular exception when called. + + The exception Type expected + A TestSnippet delegate + The message that will be displayed on failure + + + + Verifies that a delegate throws a particular exception when called. + + The exception Type expected + A TestSnippet delegate + + + + Verifies that a delegate throws a particular exception when called. + + Type of the expected exception + A TestSnippet delegate + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Verifies that a delegate throws a particular exception when called. + + Type of the expected exception + A TestSnippet delegate + The message that will be displayed on failure + + + + Verifies that a delegate throws a particular exception when called. + + Type of the expected exception + A TestSnippet delegate + + + + Verifies that a delegate does not throw an exception + + A TestSnippet delegate + 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 TestSnippet delegate + The message that will be displayed on failure + + + + Verifies that a delegate does not throw an exception. + + A TestSnippet delegate + + + + 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 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 two values 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 values 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 values are equal. If they are not, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two values 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 values 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 values are equal. If they are not, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two values 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 values 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 values are equal. If they are not, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two values 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 values 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 values are equal. If they are not, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two values 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 values 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 values 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 values 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 values 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 values are not equal. If they are equal, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two values 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 values 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 values are not equal. If they are equal, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two values 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 values 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 values are not equal. If they are equal, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two values 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 values 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 values are not equal. If they are equal, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two values 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 values 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 values are not equal. If they are equal, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two values 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 values 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 values are not equal. If they are equal, then an + is thrown. + + The expected value + The actual value + + + + Verifies that two values 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 values 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 values 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 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 + + + + Gets the number of assertions executed so far and + resets the counter to zero. + + + + + 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. + + + + Marks a test to use a combinatorial join of any argument + data provided. Since this is the default, the attribute is + not needed. + + + + + PropertyAttribute is used to attach information to a test as a name/value pair.. + + + + + Construct a PropertyAttribute with a name and string value + + The name of the property + The property value + + + + Construct a PropertyAttribute with a name and int value + + The name of the property + The property value + + + + Construct a PropertyAttribute with a name and double value + + The name of the property + The property value + + + + Constructor for derived classes that set the + property dictionary directly. + + + + + Constructor for use by derived classes that use the + name of the type as the property name. Derived classes + must ensure that the Type of the property value is + a standard type supported by the BCL. Any custom + types will cause a serialization Exception when + in the client. + + + + + Gets the property dictionary for this attribute + + + + + Default constructor + + + + + Marks a test to use a combinatorial join of any argument + data provided. Since this is the default, the attribute is + not needed. + + + + + Default constructor + + + + + Marks a test to use a combinatorial join of any argument + data provided. Since this is the default, the attribute is + not needed. + + + + + Default constructor + + + + + 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 + + + + + [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 + + + + + The arguments originally provided to the attribute + + + + + Get or set the type arguments. If not set + explicitly, any leading arguments that are + Types are taken as type arguments. + + + + + A set of Assert methods operationg on one or more collections + + + + + The Equals method throws an AssertionException. This is done + to make sure there is no mistake by calling this function. + + + + + + + override the default ReferenceEquals to throw an AssertionException. This + implementation makes sure there is no mistake in calling this function + as part of Assert. + + + + + + + Asserts that all items contained in collection are of the type specified by expectedType. + + IEnumerable containing objects to be considered + System.Type that all objects in collection must be instances of + + + + Asserts that all items contained in collection are of the type specified by expectedType. + + IEnumerable containing objects to be considered + System.Type that all objects in collection must be instances of + The message that will be displayed on failure + + + + Asserts that all items contained in collection are of the type specified by expectedType. + + IEnumerable containing objects to be considered + System.Type that all objects in collection must be instances of + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that all items contained in collection are not equal to null. + + IEnumerable containing objects to be considered + + + + Asserts that all items contained in collection are not equal to null. + + IEnumerable containing objects to be considered + The message that will be displayed on failure + + + + Asserts that all items contained in collection are not equal to null. + + IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Ensures that every object contained in collection exists within the collection + once and only once. + + IEnumerable of objects to be considered + + + + Ensures that every object contained in collection exists within the collection + once and only once. + + IEnumerable of objects to be considered + The message that will be displayed on failure + + + + Ensures that every object contained in collection exists within the collection + once and only once. + + IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + The message that will be displayed on failure + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are exactly equal. The collections must have the same count, + and contain the exact same objects in the same order. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + + + + Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not exactly equal. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + + + + Asserts that expected and actual are not exactly equal. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + + + + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + The message that will be displayed on failure + + + + Asserts that expected and actual are not exactly equal. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not exactly equal. + If comparer is not null then it will be used to compare the objects. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The IComparer to use in comparing objects from each IEnumerable + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that expected and actual are not equivalent. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + + + + Asserts that expected and actual are not equivalent. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + + + + Asserts that expected and actual are not equivalent. + + The first IEnumerable of objects to be considered + The second IEnumerable of objects to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that collection contains actual as an item. + + IEnumerable of objects to be considered + Object to be found within collection + + + + Asserts that collection contains actual as an item. + + IEnumerable of objects to be considered + Object to be found within collection + The message that will be displayed on failure + + + + Asserts that collection contains actual as an item. + + IEnumerable of objects to be considered + Object to be found within collection + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that collection does not contain actual as an item. + + IEnumerable of objects to be considered + Object that cannot exist within collection + + + + Asserts that collection does not contain actual as an item. + + IEnumerable of objects to be considered + Object that cannot exist within collection + The message that will be displayed on failure + + + + Asserts that collection does not contain actual as an item. + + IEnumerable of objects to be considered + Object that cannot exist within collection + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that superset is not a subject of subset. + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + + + + Asserts that superset is not a subject of subset. + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + The message that will be displayed on failure + + + + Asserts that superset is not a subject of subset. + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Asserts that superset is a subset of subset. + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + + + + Asserts that superset is a subset of subset. + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + The message that will be displayed on failure + + + + Asserts that superset is a subset of subset. + + The IEnumerable superset to be considered + The IEnumerable subset to be considered + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + + + + Assert that an array,list or other collection is empty + + An array, list or other collection implementing IEnumerable + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is empty + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + + + + Assert that an array,list or other collection is empty + + An array, list or other collection implementing IEnumerable + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + The message to be displayed on failure + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + A custom comparer to perform the comparisons + The message to be displayed on failure + Arguments to be used in formatting the message + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + A custom comparer to perform the comparisons + The message to be displayed on failure + + + + Assert that an array, list or other collection is ordered + + An array, list or other collection implementing IEnumerable + A custom comparer to perform the comparisons + + + + 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. + + + + + 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 + + + + + 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 + + + + + Marks a test with a timeout value in milliseconds. The + test will be run in a separate thread and cancelled if + the timeout is exceeded. + + + + + Construct a TimeoutAttribute given a time 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 + + + + + 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. + + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. Works + identically to + + A Constraint to be applied + The actual value to test + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. Works + identically to + + A Constraint 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 assertion exception on failure. Works + identically to + + A Constraint to be applied + The actual value to test + The message that will be displayed on failure + Arguments to be used in formatting the message + + + + Apply a constraint to an actual value, succeeding if the constraint + is satisfied and throwing an 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. + + A Constraint to be applied + The actual value to test + + + + Apply a constraint to a referenced value, succeeding if the constraint + is satisfied and throwing an assertion exception on failure. + + A Constraint 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 assertion exception on failure. + + A Constraint 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 . 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 + + + + 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 + + + + + Attribute used to apply a category to a test + + + + + The name of the category + + + + + Construct attribute for a given category + + The name of the category + + + + Protected constructor uses the Type name as the name + of the category. + + + + + The name of the category + + + + + 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 + + + + + Attribute used to provide descriptive text about a + test case or fixture. + + + + + Construct the attribute + + Text describing the test + + + + Gets the test description + + + + + 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 + + + + + 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 + + + + 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 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 + + + + 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 + + + + GlobalSettings is a place for setting default values used + by the framework in performing asserts. + + + + + Default tolerance for floating point equality + + + + + Helper class with properties and methods that supply + a number of constraints used in Asserts. + + + + + Returns a constraint that tests two items for equality + + + + + Returns a constraint that tests that two references are the same object + + + + + Returns a constraint that tests whether the + actual value is greater than the suppled argument + + + + + Returns a constraint that tests whether the + actual value is greater than the suppled argument + + + + + 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 the suppled argument + + + + + 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 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 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 actual value falls + within a specified range. + + + + + Returns a ConstraintExpression that negates any + following constraint. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Returns a constraint that tests for null + + + + + Returns a constraint that tests for True + + + + + Returns a constraint that tests for False + + + + + Returns a constraint that tests for NaN + + + + + Returns a constraint that tests for empty + + + + + Returns a constraint that tests whether a collection + contains all unique items. + + + + + Returns a constraint that tests whether an object graph is serializable in binary format. + + + + + Returns a constraint that tests whether an object graph is serializable in xml format. + + + + + Returns a constraint that tests whether a collection is ordered + + + + + 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 + + + + 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 + + + + + Thrown when an assertion failed. + + + + + + + The error message that explains + the reason for the exception + The exception that caused the + current exception + + + + Serialization Constructor + + + + + 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 + + + + 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 + + + + + + + + Summary description for SetCultureAttribute. + + + + + Construct given the name of a culture + + + + + + 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 + + + + + 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. + + + + + + + Method to write single line message with optional args, usually + written to precede the general failure message, at a givel + indentation level. + + The indentation level of the message + The message to be written + Any arguments used in formatting the message + + + + Display Expected and Actual lines for a constraint. This + is called by MessageWriter's default implementation of + WriteMessageTo and provides the generic two-line display. + + The constraint that failed + + + + Display Expected and Actual lines for given values. This + method may be called by constraints that need more control over + the display of actual and expected values than is provided + by the default implementation. + + The expected value + The actual value causing the failure + + + + Display Expected and Actual lines for given values, including + a tolerance value on the expected line. + + The expected value + The actual value causing the failure + The tolerance within which the test was made + + + + Display the expected and actual string values on separate lines. + If the mismatch parameter is >=0, an additional line is displayed + line containing a caret that points to the mismatch point. + + The expected string value + The actual string value + The point at which the strings don't match or -1 + If true, case is ignored in string comparisons + If true, clip the strings to fit the max line length + + + + Writes the text for a connector. + + The connector. + + + + Writes the text for a predicate. + + The predicate. + + + + Write the text for a modifier. + + The modifier. + + + + Writes the text for an expected value. + + The expected value. + + + + Writes the text for an actual value. + + The actual value. + + + + Writes the text for a generalized value. + + The value. + + + + Writes the text for a collection value, + starting at a particular point, to a max length + + The collection containing elements to write. + The starting point of the elements to write + The maximum number of elements to write + + + + Write the generic 'Expected' line for a constraint + + The constraint that failed + + + + Write the generic 'Expected' line for a given value + + The expected value + + + + Write the generic 'Expected' line for a given value + and tolerance. + + The expected value + The tolerance within which the test was made + + + + Write the generic 'Actual' line for a constraint + + The constraint for which the actual value is to be written + + + + Write the generic 'Actual' line for a given value + + The actual value causing a failure + + + + Gets or sets the maximum line length for this writer + + + + + 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 + + + + 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. + + + + + SetUpFixtureAttribute is used to identify a SetUpFixture + + + + + 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 + + + + Attribute used to mark a static (shared in VB) property + that returns a list of tests. + + + + + Attribute used to identify a method that is called + immediately after each test is run. The method is + guaranteed to be called, even if an exception is thrown. + + + + + The Iz class is a synonym for Is intended for use in VB, + which regards Is as a keyword. + + + + + Helper class with properties and methods that supply + constraints that operate on exceptions. + + + + + Creates a constraint specifying the exact type of exception expected + + + + + Creates a constraint specifying the exact type of exception expected + + + + + Creates a constraint specifying the type of exception expected + + + + + Creates a constraint specifying the type of exception expected + + + + + Creates a constraint specifying an expected exception + + + + + Creates a constraint specifying that no exception is thrown + + + + + 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 + + + + + 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. + + + + + The Catch class is used to capture an exception. + + + + + Capture any exception that is thrown by the delegate + + A TestDelegate + The exception thrown, or null + + + + Helper class with static methods used to supply constraints + that operate on strings. + + + + + Returns a constraint that succeeds if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value contains the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value starts with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that fails if the actual + value ends with the substring supplied as an argument. + + + + + Returns a constraint that succeeds if the actual + value matches the Regex pattern supplied as an argument. + + + + + Returns a constraint that fails if the actual + value matches the pattern supplied as an argument. + + + + + Returns a ConstraintExpression, which will apply + the following constraint to all members of a collection, + succeeding if all of them succeed. + + + + + Summary description for MaxTimeAttribute. + + + + + Construct a MaxTimeAttribute, given a time in milliseconds. + + The maximum elapsed time in milliseconds + + + + 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 + + + + 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 attriute under .NET 1.x + + + + + 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 + + + + 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() + {} + } + + + + + + Randomizer returns a set of random values in a repeatable + way, to allow re-running of tests if necessary. + + + + + Get a randomizer for a particular member, returning + one that has already been created if it exists. + This ensures that the same values are generated + each time the tests are reloaded. + + + + + Get a randomizer for a particular parameter, returning + one that has already been created if it exists. + This ensures that the same values are generated + each time the tests are reloaded. + + + + + Construct a randomizer using a random seed + + + + + Construct a randomizer using a specified seed + + + + + Return an array of random doubles between 0.0 and 1.0. + + + + + + + Return an array of random doubles with values in a specified range. + + + + + Return an array of random ints with values in a specified range. + + + + + Get a random seed for use in creating a randomizer. + + + + + 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. + + + + diff --git a/PusherRESTDotNet.Tests/PusherRESTDotNet.Tests.csproj b/PusherRESTDotNet.Tests/PusherRESTDotNet.Tests.csproj index 9dfc746..4eee4be 100644 --- a/PusherRESTDotNet.Tests/PusherRESTDotNet.Tests.csproj +++ b/PusherRESTDotNet.Tests/PusherRESTDotNet.Tests.csproj @@ -48,11 +48,13 @@ AllRules.ruleset - - ..\lib\nunit.framework.dll + + False + Libs\nunit.framework.dll - - ..\lib\Rhino.Mocks.dll + + False + Libs\Rhino.Mocks.dll @@ -100,6 +102,12 @@ PusherRESTDotNet + + + + + + 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�*g22elXCg%x33$xPi5On!S&Rk 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ⅇzInp&BJ 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

G`2qcxjJBN{<=^A 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/xv9xZ8VT3_C6j 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 + + + Newtonsoft.Json + + + +

+ Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Initializes a new instance of the class with the specified . + + + + + Reads the next JSON token from the stream. + + true if the next token was read successfully; false if there are no more tokens to read. + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A or a null reference if the next JSON token is null. + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Skips the children of the current token. + + + + + Sets the current token. + + The new token. + + + + Sets the current token and value. + + The new token. + The value. + + + + Sets the state based on current token type. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Changes the to Closed. + + + + + Gets the current reader state. + + The current reader state. + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the reader is closed. + + + true to close the underlying stream or when + the reader is closed; otherwise false. The default is true. + + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + Gets the type of the current Json token. + + + + + Gets the text value of the current Json token. + + + + + Gets The Common Language Runtime (CLR) type for the current Json token. + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets or sets the culture used when reading JSON. Defaults to . + + + + + Specifies the state of the reader. + + + + + The Read method has not been called. + + + + + The end of the file has been reached successfully. + + + + + Reader is at a property. + + + + + Reader is at the start of an object. + + + + + Reader is in an object. + + + + + Reader is at the start of an array. + + + + + Reader is in an array. + + + + + The Close method has been called. + + + + + Reader has just read a value. + + + + + Reader is at the start of a constructor. + + + + + Reader in a constructor. + + + + + An error occurred that prevents the read operation from continuing. + + + + + The end of the file has been reached successfully. + + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The reader. + + + + Initializes a new instance of the class. + + The stream. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Initializes a new instance of the class. + + The reader. + if set to true the root object will be read as a JSON array. + The used when reading values from BSON. + + + + Reads the next JSON token from the stream as a . + + + A or a null reference if the next JSON token is null. + + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + + A . + + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Changes the to Closed. + + + + + Gets or sets a value indicating whether binary data reading should compatible with incorrect Json.NET 3.5 written binary. + + + true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. + + + + + Gets or sets a value indicating whether the root object will be read as a JSON array. + + + true if the root object will be read as a JSON array; otherwise, false. + + + + + Gets or sets the used when reading values from BSON. + + The used when reading values from BSON. + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. + + + + + Creates an instance of the JsonWriter class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a Json object. + + + + + Writes the end of a Json object. + + + + + Writes the beginning of a Json array. + + + + + Writes the end of an array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end constructor. + + + + + Writes the property name of a name/value pair on a Json object. + + The name of the property. + + + + Writes the end of the current Json object or array. + + + + + Writes the current token. + + The to read the token from. + + + + Writes the specified end token. + + The end token to write. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON without changing the writer's state. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + An error will raised if the value cannot be written as a single JSON token. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + Gets or sets a value indicating whether the underlying stream or + should be closed when the writer is closed. + + + true to close the underlying stream or when + the writer is closed; otherwise false. The default is true. + + + + + Gets the top. + + The top. + + + + Gets the state of the writer. + + + + + Indicates how the output is formatted. + + + + + Initializes a new instance of the class. + + The stream. + + + + Initializes a new instance of the class. + + The writer. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Writes the end. + + The token. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes raw JSON where a value is expected and updates the writer's state. + + The raw JSON to write. + + + + Writes the beginning of a Json array. + + + + + Writes the beginning of a Json object. + + + + + Writes the property name of a name/value pair on a Json object. + + The name of the property. + + + + Closes this stream and the underlying stream. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value that represents a BSON object id. + + + + + + Writes a BSON regex. + + The regex pattern. + The regex options. + + + + Gets or sets the used when writing values to BSON. + When set to no conversion will occur. + + The used when writing values to BSON. + + + + Represents a BSON Oid (object id). + + + + + Initializes a new instance of the class. + + The Oid value. + + + + Gets or sets the value of the Oid. + + The value of the Oid. + + + + Converts a binary value to and from a base 64 string value. + + + + + Converts an object to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets the of the JSON produced by the JsonConverter. + + The of the JSON produced by the JsonConverter. + + + + Gets a value indicating whether this can read JSON. + + true if this can read JSON; otherwise, false. + + + + Gets a value indicating whether this can write JSON. + + true if this can write JSON; otherwise, false. + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Create a custom object + + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Creates an object which will then be populated by the serializer. + + Type of the object. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets a value indicating whether this can write JSON. + + + true if this can write JSON; otherwise, false. + + + + + Provides a base class for converting a to and from JSON. + + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an Entity Framework EntityKey to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts a to and from JSON and BSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Converts an to and from its name string value. + + + Converts an to and from its name string value. + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + A cached representation of the Enum string representation to respect per Enum field name. + + The type of the Enum. + A map of enum field name to either the field name, or the configured enum member name (). + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Gets or sets a value indicating whether the written enum text should be camel case. + + true if the written enum text will be camel case; otherwise, false. + + + + Specifies how constructors are used when initializing objects during deserialization by the . + + + + + First attempt to use the public default constructor then fall back to single paramatized constructor. + + + + + Allow Json.NET to use a non-public default constructor. + + + + + Converts a to and from a string (e.g. "1.2.3.4"). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Determines whether this instance can convert the specified object type. + + Type of the object. + + true if this instance can convert the specified object type; otherwise, false. + + + + + Instructs the to use the specified constructor when deserializing that object. + + + + + Represents a view of a . + + + + + Initializes a new instance of the class. + + The name. + Type of the property. + + + + When overridden in a derived class, returns whether resetting an object changes its value. + + + true if resetting the component changes its value; otherwise, false. + + The component to test for reset capability. + + + + + When overridden in a derived class, gets the current value of the property on a component. + + + The value of a property for a given component. + + The component with the property for which to retrieve the value. + + + + + When overridden in a derived class, resets the value for this property of the component to the default value. + + The component with the property value that is to be reset to the default value. + + + + + When overridden in a derived class, sets the value of the component to a different value. + + The component with the property value that is to be set. + The new value. + + + + + When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted. + + + true if the property should be persisted; otherwise, false. + + The component with the property to be examined for persistence. + + + + + When overridden in a derived class, gets the type of the component this property is bound to. + + + A that represents the type of component this property is bound to. When the or methods are invoked, the object specified might be an instance of this type. + + + + + When overridden in a derived class, gets a value indicating whether this property is read-only. + + + true if the property is read-only; otherwise, false. + + + + + When overridden in a derived class, gets the type of the property. + + + A that represents the type of the property. + + + + + Gets the hash code for the name of the member. + + + + The hash code for the name of the member. + + + + + Represents a raw JSON string. + + + + + Represents a value in JSON (string, integer, date, etc). + + + + + Represents an abstract JSON token. + + + + + Represents a collection of objects. + + The type of token + + + + Gets the with the specified key. + + + + + + Provides an interface to enable a class to return line and position information. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Gets the current line position. + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + Compares the values of two tokens, including the values of all descendant tokens. + + The first to compare. + The second to compare. + true if the tokens are equal; otherwise false. + + + + Adds the specified content immediately after this token. + + A content object that contains simple content or a collection of content objects to be added after this token. + + + + Adds the specified content immediately before this token. + + A content object that contains simple content or a collection of content objects to be added before this token. + + + + Returns a collection of the ancestor tokens of this token. + + A collection of the ancestor tokens of this token. + + + + Returns a collection of the sibling tokens after this token, in document order. + + A collection of the sibling tokens after this tokens, in document order. + + + + Returns a collection of the sibling tokens before this token, in document order. + + A collection of the sibling tokens before this token, in document order. + + + + Gets the with the specified key converted to the specified type. + + The type to convert the token to. + The token key. + The converted token value. + + + + Returns a collection of the child tokens of this token, in document order. + + An of containing the child tokens of this , in document order. + + + + Returns a collection of the child tokens of this token, in document order, filtered by the specified type. + + The type to filter the child tokens on. + A containing the child tokens of this , in document order. + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + A containing the child values of this , in document order. + + + + Removes this token from its parent. + + + + + Replaces this token with the specified token. + + The value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Returns the indented JSON for this token. + + + The indented JSON for this token. + + + + + Returns the JSON for this token using the given formatting and converters. + + Indicates how the output is formatted. + A collection of which will be used when writing the token. + The JSON for this token using the given formatting and converters. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an explicit conversion from to . + + The value. + The result of the conversion. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Performs an implicit conversion from to . + + The value to create a from. + The initialized with the specified value. + + + + Creates an for this token. + + An that can be used to read this token and its descendants. + + + + Creates a from an object. + + The object that will be used to create . + A with the value of the specified object + + + + Creates a from an object using the specified . + + The object that will be used to create . + The that will be used when reading the object. + A with the value of the specified object + + + + Creates the specified .NET type from the . + + The new object created from the JSON value. + + + + Creates the specified .NET type from the using the specified . + + The that will be used when creating the object. + The new object created from the JSON value. + + + + Creates a from a . + + An positioned at the token to read into this . + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Creates a from a . + + An positioned at the token to read into this . + + An that contains the token and its descendant tokens + that were read from the reader. The runtime type of the token is determined + by the token type of the first token encountered in the reader. + + + + + Selects the token that matches the object path. + + + The object path from the current to the + to be returned. This must be a string of property names or array indexes separated + by periods, such as Tables[0].DefaultView[0].Price in C# or + Tables(0).DefaultView(0).Price in Visual Basic. + + The that matches the object path or a null reference if no matching token is found. + + + + Selects the token that matches the object path. + + + The object path from the current to the + to be returned. This must be a string of property names or array indexes separated + by periods, such as Tables[0].DefaultView[0].Price in C# or + Tables(0).DefaultView(0).Price in Visual Basic. + + A flag to indicate whether an error should be thrown if no token is found. + The that matches the object path. + + + + Creates a new instance of the . All child tokens are recursively cloned. + + A new instance of the . + + + + Gets a comparer that can compare two tokens for value equality. + + A that can compare two nodes for value equality. + + + + Gets or sets the parent. + + The parent. + + + + Gets the root of this . + + The root of this . + + + + Gets the node type for this . + + The type. + + + + Gets a value indicating whether this token has childen tokens. + + + true if this token has child values; otherwise, false. + + + + + Gets the next sibling token of this node. + + The that contains the next sibling token. + + + + Gets the previous sibling token of this node. + + The that contains the previous sibling token. + + + + Gets the with the specified key. + + The with the specified key. + + + + Get the first child token of this token. + + A containing the first child token of the . + + + + Get the last child token of this token. + + A containing the last child token of the . + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Initializes a new instance of the class with the given value. + + The value. + + + + Creates a comment with the given value. + + The value. + A comment with the given value. + + + + Creates a string with the given value. + + The value. + A string with the given value. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Indicates whether the current object is equal to another object of the same type. + + + true if the current object is equal to the parameter; otherwise, false. + + An object to compare with this object. + + + + Determines whether the specified is equal to the current . + + The to compare with the current . + + true if the specified is equal to the current ; otherwise, false. + + + The parameter is null. + + + + + Serves as a hash function for a particular type. + + + A hash code for the current . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format provider. + + A that represents this instance. + + + + + Returns a that represents this instance. + + The format. + The format provider. + + A that represents this instance. + + + + + Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. + + An object to compare with this instance. + + A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: + Value + Meaning + Less than zero + This instance is less than . + Zero + This instance is equal to . + Greater than zero + This instance is greater than . + + + is not the same type as this instance. + + + + + Gets a value indicating whether this token has childen tokens. + + + true if this token has child values; otherwise, false. + + + + + Gets the node type for this . + + The type. + + + + Gets or sets the underlying token value. + + The underlying token value. + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The raw json. + + + + Creates an instance of with the content of the reader's current token. + + The reader. + An instance of with the content of the reader's current token. + + + + Indicating whether a property is required. + + + + + The property is not required. The default state. + + + + + The property must be defined in JSON but can be a null value. + + + + + The property must be defined in JSON and cannot be a null value. + + + + + Contract details for a used by the . + + + + + Contract details for a used by the . + + + + + Gets the underlying type for the contract. + + The underlying type for the contract. + + + + Gets or sets the type created during deserialization. + + The type created during deserialization. + + + + Gets or sets whether this type contract is serialized as a reference. + + Whether this type contract is serialized as a reference. + + + + Gets or sets the default for this contract. + + The converter. + + + + Gets or sets the method called immediately after deserialization of the object. + + The method called immediately after deserialization of the object. + + + + Gets or sets the method called during deserialization of the object. + + The method called during deserialization of the object. + + + + Gets or sets the method called after serialization of the object graph. + + The method called after serialization of the object graph. + + + + Gets or sets the method called before serialization of the object. + + The method called before serialization of the object. + + + + Gets or sets the default creator method used to create the object. + + The default creator method used to create the object. + + + + Gets or sets a value indicating whether [default creator non public]. + + true if the default object creator is non-public; otherwise, false. + + + + Gets or sets the method called when an error is thrown during the serialization of the object. + + The method called when an error is thrown during the serialization of the object. + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets or sets the ISerializable object constructor. + + The ISerializable object constructor. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Get and set values for a using dynamic methods. + + + + + Provides methods to get and set values. + + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + Provides data for the Error event. + + + + + Initializes a new instance of the class. + + The current object. + The error context. + + + + Gets the current object the error event is being raised against. + + The current object the error event is being raised against. + + + + Gets the error context. + + The error context. + + + + Used to resolve references when serializing and deserializing JSON by the . + + + + + Resolves a reference to its object. + + The serialization context. + The reference to resolve. + The object that + + + + Gets the reference for the sepecified object. + + The serialization context. + The object to get a reference for. + The reference to the object. + + + + Determines whether the specified object is referenced. + + The serialization context. + The object to test for a reference. + + true if the specified object is referenced; otherwise, false. + + + + + Adds a reference to the specified object. + + The serialization context. + The reference. + The object to reference. + + + + Specifies reference handling options for the . + + + + + Do not preserve references when serializing types. + + + + + Preserve references when serializing into a JSON object structure. + + + + + Preserve references when serializing into a JSON array structure. + + + + + Preserve references when serializing. + + + + + Instructs the how to serialize the collection. + + + + + Instructs the how to serialize the object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Gets or sets the id. + + The id. + + + + Gets or sets the title. + + The title. + + + + Gets or sets the description. + + The description. + + + + Gets or sets a value that indicates whether to preserve object reference data. + + + true to keep object reference; otherwise, false. The default is false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a flag indicating whether the array can contain null items + + A flag indicating whether the array can contain null items. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Gets or sets a value indicating whether null items are allowed in the collection. + + true if null items are allowed in the collection; otherwise, false. + + + + Specifies default value handling options for the . + + + + + Include members where the member value is the same as the member's default value when serializing objects. + Included members are written to JSON. Has no effect when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + so that is is not written to JSON, and ignores setting members when the JSON value equals the member's default value. + + + + + Members with a default value but no JSON will be set to their default value when deserializing. + + + + + Ignore members where the member value is the same as the member's default value when serializing objects + and sets members to their default value when deserializing. + + + + + Instructs the to use the specified when serializing the member or class. + + + + + Initializes a new instance of the class. + + Type of the converter. + + + + Gets the type of the converter. + + The type of the converter. + + + + Instructs the how to serialize the object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified member serialization. + + The member serialization. + + + + Initializes a new instance of the class with the specified container Id. + + The container Id. + + + + Gets or sets the member serialization. + + The member serialization. + + + + Specifies the settings on a object. + + + + + Initializes a new instance of the class. + + + + + Gets or sets how reference loops (e.g. a class referencing itself) is handled. + + Reference loop handling. + + + + Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + Missing member handling. + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how null values are handled during serialization and deserialization. + + Null value handling. + + + + Gets or sets how null default are handled during serialization and deserialization. + + The default value handling. + + + + Gets or sets a collection that will be used during serialization. + + The converters. + + + + Gets or sets how object references are preserved by the serializer. + + The preserve references handling. + + + + Gets or sets how type name writing and reading is handled by the serializer. + + The type name handling. + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + The contract resolver. + + + + Gets or sets the used by the serializer when resolving references. + + The reference resolver. + + + + Gets or sets the used by the serializer when resolving type names. + + The binder. + + + + Gets or sets the error handler called during serialization and deserialization. + + The error handler called during serialization and deserialization. + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Represents a reader that provides validation. + + + + + Initializes a new instance of the class that + validates the content returned from the given . + + The to read from while validating. + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + + A or a null reference if the next JSON token is null. + + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Sets an event handler for receiving schema validation errors. + + + + + Gets the text value of the current Json token. + + + + + + Gets the depth of the current token in the JSON document. + + The depth of the current token in the JSON document. + + + + Gets the quotation mark character used to enclose the value of a string. + + + + + + Gets the type of the current Json token. + + + + + + Gets the Common Language Runtime (CLR) type for the current Json token. + + + + + + Gets or sets the schema. + + The schema. + + + + Gets the used to construct this . + + The specified in the constructor. + + + + Compares tokens to determine whether they are equal. + + + + + Determines whether the specified objects are equal. + + The first object of type to compare. + The second object of type to compare. + + true if the specified objects are equal; otherwise, false. + + + + + Returns a hash code for the specified object. + + The for which a hash code is to be returned. + A hash code for the specified object. + The type of is a reference type and is null. + + + + Specifies the member serialization options for the . + + + + + All members are serialized by default. Members can be excluded using the . + + + + + Only members must be marked with the are serialized. + + + + + Specifies how object creation is handled by the . + + + + + Reuse existing objects, create new objects when needed. + + + + + Only reuse existing objects. + + + + + Always create new objects. + + + + + Converts a to and from the ISO 8601 date format (e.g. 2008-04-12T12:53Z). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Gets or sets the date time styles used when converting a date to and from JSON. + + The date time styles used when converting a date to and from JSON. + + + + Gets or sets the date time format used when converting a date to and from JSON. + + The date time format used when converting a date to and from JSON. + + + + Gets or sets the culture used when converting a date to and from JSON. + + The culture used when converting a date to and from JSON. + + + + Converts a to and from a JavaScript date constructor (e.g. new Date(52231943)). + + + + + Writes the JSON representation of the object. + + The to write to. + The value. + The calling serializer. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing property value of the JSON that is being converted. + The calling serializer. + The object value. + + + + Specifies whether a DateTime object represents a local time, a Coordinated Universal Time (UTC), or is not specified as either local time or UTC. + + + + + The time represented is local time. + + + + + The time represented is UTC. + + + + + The time represented is not specified as either local time or Coordinated Universal Time (UTC). + + + + + Preserves the DateTimeKind field of a date when a DateTime object is converted to a string and the string is then converted back to a DateTime object. + + + + + Converts XML to and from JSON. + + + + + Writes the JSON representation of the object. + + The to write to. + The calling serializer. + The value. + + + + Reads the JSON representation of the object. + + The to read from. + Type of the object. + The existing value of object being read. + The calling serializer. + The object value. + + + + Checks if the attributeName is a namespace attribute. + + Attribute name to test. + The attribute name prefix if it has one, otherwise an empty string. + True if attribute name is for a namespace attribute, otherwise false. + + + + Determines whether this instance can convert the specified value type. + + Type of the value. + + true if this instance can convert the specified value type; otherwise, false. + + + + + Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produces multiple root elements. + + The name of the deserialize root element. + + + + Gets or sets a flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + true if the array attibute is written to the XML; otherwise, false. + + + + Gets or sets a value indicating whether to write the root JSON object. + + true if the JSON root object is omitted; otherwise, false. + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Initializes a new instance of the class with the specified . + + The TextReader containing the XML data to read. + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Reads the next JSON token from the stream as a . + + + A or a null reference if the next JSON token is null. + + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Changes the state to closed. + + + + + Gets a value indicating whether the class can return line information. + + + true if LineNumber and LinePosition can be provided; otherwise, false. + + + + + Gets the current line number. + + + The current line number or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Gets the current line position. + + + The current line position or 0 if no line information is available (for example, HasLineInfo returns false). + + + + + Instructs the to always serialize the member with the specified name. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with the specified name. + + Name of the property. + + + + Gets or sets the null value handling used when serializing this property. + + The null value handling. + + + + Gets or sets the default value handling used when serializing this property. + + The default value handling. + + + + Gets or sets the reference loop handling used when serializing this property. + + The reference loop handling. + + + + Gets or sets the object creation handling used when deserializing this property. + + The object creation handling. + + + + Gets or sets the type name handling used when serializing this property. + + The type name handling. + + + + Gets or sets whether this property's value is serialized as a reference. + + Whether this property's value is serialized as a reference. + + + + Gets or sets the order of serialization and deserialization of a member. + + The numeric order of serialization or deserialization. + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets a value indicating whether this property is required. + + + A value indicating whether this property is required. + + + + + Instructs the not to serialize the public field or public read/write property value. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. + + + + + Creates an instance of the JsonWriter class using the specified . + + The TextWriter to write to. + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a Json object. + + + + + Writes the beginning of a Json array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the specified end token. + + The end token to write. + + + + Writes the property name of a name/value pair on a Json object. + + The name of the property. + + + + Writes indent characters. + + + + + Writes the JSON value delimiter. + + + + + Writes an indent space. + + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes out the given white space. + + The string of white space characters. + + + + Gets or sets how many IndentChars to write for each level in the hierarchy when is set to Formatting.Indented. + + + + + Gets or sets which character to use to quote attribute values. + + + + + Gets or sets which character to use for indenting when is set to Formatting.Indented. + + + + + Gets or sets a value indicating whether object names will be surrounded with quotes. + + + + + The exception thrown when an error occurs while reading Json text. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + The exception thrown when an error occurs while reading Json text. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Represents a collection of . + + + + + Provides methods for converting between common language runtime types and JSON types. + + + + + Represents JavaScript's boolean value true as a string. This field is read-only. + + + + + Represents JavaScript's boolean value false as a string. This field is read-only. + + + + + Represents JavaScript's null as a string. This field is read-only. + + + + + Represents JavaScript's undefined as a string. This field is read-only. + + + + + Represents JavaScript's positive infinity as a string. This field is read-only. + + + + + Represents JavaScript's negative infinity as a string. This field is read-only. + + + + + Represents JavaScript's NaN as a string. This field is read-only. + + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + The string delimiter character. + A JSON string representation of the . + + + + Converts the to its JSON string representation. + + The value to convert. + A JSON string representation of the . + + + + Serializes the specified object to a JSON string. + + The object to serialize. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string. + + The object to serialize. + Indicates how the output is formatted. + + A JSON string representation of the object. + + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + A collection converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + Indicates how the output is formatted. + A collection converters used while serializing. + A JSON string representation of the object. + + + + Serializes the specified object to a JSON string using a collection of . + + The object to serialize. + Indicates how the output is formatted. + The used to serialize the object. + If this is null, default serialization settings will be is used. + + A JSON string representation of the object. + + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + The deserialized object from the Json string. + + + + Deserializes the JSON to a .NET object. + + The JSON to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The of object being deserialized. + The deserialized object from the Json string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + The deserialized object from the Json string. + + + + Deserializes the JSON to the given anonymous type. + + + The anonymous type to deserialize to. This can't be specified + traditionally and must be infered from the anonymous type passed + as a parameter. + + The JSON to deserialize. + The anonymous type object. + The deserialized anonymous type from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The JSON to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The type of the object to deserialize to. + The object to deserialize. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The type of the object to deserialize. + Converters to use while deserializing. + The deserialized object from the JSON string. + + + + Deserializes the JSON to the specified .NET type. + + The JSON to deserialize. + The type of the object to deserialize to. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + The deserialized object from the JSON string. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + + + Populates the object with values from the JSON string. + + The JSON to populate values from. + The target object to populate values onto. + + The used to deserialize the object. + If this is null, default serialization settings will be is used. + + + + + Serializes the XML node to a JSON string. + + The node to serialize. + A JSON string of the XmlNode. + + + + Serializes the XML node to a JSON string. + + The node to serialize. + Indicates how the output is formatted. + A JSON string of the XmlNode. + + + + Serializes the XML node to a JSON string. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XmlNode. + + + + Deserializes the XmlNode from a JSON string. + + The JSON string. + The deserialized XmlNode + + + + Deserializes the XmlNode from a JSON string nested in a root elment. + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XmlNode + + + + Deserializes the XmlNode from a JSON string nested in a root elment. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized XmlNode + + + + Serializes the to a JSON string. + + The node to convert to JSON. + A JSON string of the XNode. + + + + Serializes the to a JSON string. + + The node to convert to JSON. + Indicates how the output is formatted. + A JSON string of the XNode. + + + + Serializes the to a JSON string. + + The node to serialize. + Indicates how the output is formatted. + Omits writing the root object. + A JSON string of the XNode. + + + + Deserializes the from a JSON string. + + The JSON string. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment. + + The JSON string. + The name of the root element to append when deserializing. + The deserialized XNode + + + + Deserializes the from a JSON string nested in a root elment. + + The JSON string. + The name of the root element to append when deserializing. + + A flag to indicate whether to write the Json.NET array attribute. + This attribute helps preserve arrays when converting the written XML back to JSON. + + The deserialized XNode + + + + The exception thrown when an error occurs during Json serialization or deserialization. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Serializes and deserializes objects into and from the JSON format. + The enables you to control how objects are encoded into JSON. + + + + + Initializes a new instance of the class. + + + + + Creates a new instance using the specified . + + The settings to be applied to the . + A new instance using the specified . + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Populates the JSON values onto the target object. + + The that contains the JSON structure to reader values from. + The target object to populate values onto. + + + + Deserializes the Json structure contained by the specified . + + The that contains the JSON structure to deserialize. + The being deserialized. + + + + Deserializes the Json structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Deserializes the Json structure contained by the specified + into an instance of the specified type. + + The containing the object. + The type of the object to deserialize. + The instance of being deserialized. + + + + Deserializes the Json structure contained by the specified + into an instance of the specified type. + + The containing the object. + The of object being deserialized. + The instance of being deserialized. + + + + Serializes the specified and writes the Json structure + to a Stream using the specified . + + The used to write the Json structure. + The to serialize. + + + + Serializes the specified and writes the Json structure + to a Stream using the specified . + + The used to write the Json structure. + The to serialize. + + + + Occurs when the errors during serialization and deserialization. + + + + + Gets or sets the used by the serializer when resolving references. + + + + + Gets or sets the used by the serializer when resolving type names. + + + + + Gets or sets how type name writing and reading is handled by the serializer. + + + + + Gets or sets how a type name assembly is written and resolved by the serializer. + + The type name assembly format. + + + + Gets or sets how object references are preserved by the serializer. + + + + + Get or set how reference loops (e.g. a class referencing itself) is handled. + + + + + Get or set how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. + + + + + Get or set how null values are handled during serialization and deserialization. + + + + + Get or set how null default are handled during serialization and deserialization. + + + + + Gets or sets how objects are created during deserialization. + + The object creation handling. + + + + Gets or sets how constructors are used during deserialization. + + The constructor handling. + + + + Gets a collection that will be used during serialization. + + Collection that will be used during serialization. + + + + Gets or sets the contract resolver used by the serializer when + serializing .NET objects to JSON and vice versa. + + + + + Gets or sets the used by the serializer when invoking serialization callback methods. + + The context. + + + + Contains the LINQ to JSON extension methods. + + + + + Returns a collection of tokens that contains the ancestors of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the ancestors of every node in the source collection. + + + + Returns a collection of tokens that contains the descendants of every token in the source collection. + + The type of the objects in source, constrained to . + An of that contains the source collection. + An of that contains the descendants of every node in the source collection. + + + + Returns a collection of child properties of every object in the source collection. + + An of that contains the source collection. + An of that contains the properties of every object in the source collection. + + + + Returns a collection of child values of every object in the source collection with the given key. + + An of that contains the source collection. + The token key. + An of that contains the values of every node in the source collection with the given key. + + + + Returns a collection of child values of every object in the source collection. + + An of that contains the source collection. + An of that contains the values of every node in the source collection. + + + + Returns a collection of converted child values of every object in the source collection with the given key. + + The type to convert the values to. + An of that contains the source collection. + The token key. + An that contains the converted values of every node in the source collection with the given key. + + + + Returns a collection of converted child values of every object in the source collection. + + The type to convert the values to. + An of that contains the source collection. + An that contains the converted values of every node in the source collection. + + + + Converts the value. + + The type to convert the value to. + A cast as a of . + A converted value. + + + + Converts the value. + + The source collection type. + The type to convert the value to. + A cast as a of . + A converted value. + + + + Returns a collection of child tokens of every array in the source collection. + + The source collection type. + An of that contains the source collection. + An of that contains the values of every node in the source collection. + + + + Returns a collection of converted child tokens of every array in the source collection. + + An of that contains the source collection. + The type to convert the values to. + The source collection type. + An that contains the converted values of every node in the source collection. + + + + Returns the input typed as . + + An of that contains the source collection. + The input typed as . + + + + Returns the input typed as . + + The source collection type. + An of that contains the source collection. + The input typed as . + + + + Represents a JSON constructor. + + + + + Represents a token that can contain other tokens. + + + + + Raises the event. + + The instance containing the event data. + + + + Raises the event. + + The instance containing the event data. + + + + Returns a collection of the child tokens of this token, in document order. + + + An of containing the child tokens of this , in document order. + + + + + Returns a collection of the child values of this token, in document order. + + The type to convert the values to. + + A containing the child values of this , in document order. + + + + + Returns a collection of the descendant tokens for this token in document order. + + An containing the descendant tokens of the . + + + + Adds the specified content as children of this . + + The content to be added. + + + + Adds the specified content as the first children of this . + + The content to be added. + + + + Creates an that can be used to add tokens to the . + + An that is ready to have content written to it. + + + + Replaces the children nodes of this token with the specified content. + + The content. + + + + Removes the child nodes from this token. + + + + + Occurs when the list changes or an item in the list changes. + + + + + Occurs before an item is added to the collection. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets a value indicating whether this token has childen tokens. + + + true if this token has child values; otherwise, false. + + + + + Get the first child token of this token. + + + A containing the first child token of the . + + + + + Get the last child token of this token. + + + A containing the last child token of the . + + + + + Gets the count of child JSON tokens. + + The count of child JSON tokens + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name and content. + + The constructor name. + The contents of the constructor. + + + + Initializes a new instance of the class with the specified name. + + The constructor name. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets or sets the name of this constructor. + + The constructor name. + + + + Gets the node type for this . + + The type. + + + + Gets the with the specified key. + + The with the specified key. + + + + Represents a collection of objects. + + The type of token + + + + An empty collection of objects. + + + + + Initializes a new instance of the struct. + + The enumerable. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Determines whether the specified is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the with the specified key. + + + + + + Represents a JSON object. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Initializes a new instance of the class with the specified content. + + The contents of the object. + + + + Gets an of this object's properties. + + An of this object's properties. + + + + Gets a the specified name. + + The property name. + A with the specified name or null. + + + + Gets an of this object's property values. + + An of this object's property values. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Adds the specified property name. + + Name of the property. + The value. + + + + Removes the property with the specified name. + + Name of the property. + true if item was successfully removed; otherwise, false. + + + + Tries the get value. + + Name of the property. + The value. + true if a value was successfully retrieved; otherwise, false. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Raises the event with the provided arguments. + + Name of the property. + + + + Returns the properties for this instance of a component. + + + A that represents the properties for this component instance. + + + + + Returns the properties for this instance of a component using the attribute array as a filter. + + An array of type that is used as a filter. + + A that represents the filtered properties for this component instance. + + + + + Returns a collection of custom attributes for this instance of a component. + + + An containing the attributes for this object. + + + + + Returns the class name of this instance of a component. + + + The class name of the object, or null if the class does not have a name. + + + + + Returns the name of this instance of a component. + + + The name of the object, or null if the object does not have a name. + + + + + Returns a type converter for this instance of a component. + + + A that is the converter for this object, or null if there is no for this object. + + + + + Returns the default event for this instance of a component. + + + An that represents the default event for this object, or null if this object does not have events. + + + + + Returns the default property for this instance of a component. + + + A that represents the default property for this object, or null if this object does not have properties. + + + + + Returns an editor of the specified type for this instance of a component. + + A that represents the editor for this object. + + An of the specified type that is the editor for this object, or null if the editor cannot be found. + + + + + Returns the events for this instance of a component using the specified attribute array as a filter. + + An array of type that is used as a filter. + + An that represents the filtered events for this component instance. + + + + + Returns the events for this instance of a component. + + + An that represents the events for this component instance. + + + + + Returns an object that contains the property described by the specified property descriptor. + + A that represents the property whose owner is to be found. + + An that represents the owner of the specified property. + + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Occurs when a property value changes. + + + + + Occurs when a property value is changing. + + + + + Gets the node type for this . + + The type. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the with the specified property name. + + + + + + Represents a JSON array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Initializes a new instance of the class with the specified content. + + The contents of the array. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Load a from a string that contains JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Creates a from an object. + + The object that will be used to create . + A with the values of the specified object + + + + Creates a from an object. + + The object that will be used to create . + The that will be used to read the object. + A with the values of the specified object + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Determines the index of a specific item in the . + + The object to locate in the . + + The index of if found in the list; otherwise, -1. + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + The is read-only. + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + + is not a valid index in the . + The is read-only. + + + + Adds an item to the . + + The object to add to the . + The is read-only. + + + + Removes all items from the . + + The is read-only. + + + + Determines whether the contains a specific value. + + The object to locate in the . + + true if is found in the ; otherwise, false. + + + + + Removes the first occurrence of a specific object from the . + + The object to remove from the . + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + The is read-only. + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the node type for this . + + The type. + + + + Gets the with the specified key. + + The with the specified key. + + + + Gets or sets the at the specified index. + + + + + + Represents a reader that provides fast, non-cached, forward-only access to serialized Json data. + + + + + Initializes a new instance of the class. + + The token to read from. + + + + Reads the next JSON token from the stream as a . + + + A or a null reference if the next JSON token is null. + + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream as a . + + A . + + + + Reads the next JSON token from the stream. + + + true if the next token was read successfully; false if there are no more tokens to read. + + + + + Represents a writer that provides a fast, non-cached, forward-only way of generating Json data. + + + + + Initializes a new instance of the class writing to the given . + + The container being written to. + + + + Initializes a new instance of the class. + + + + + Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream. + + + + + Closes this stream and the underlying stream. + + + + + Writes the beginning of a Json object. + + + + + Writes the beginning of a Json array. + + + + + Writes the start of a constructor with the given name. + + The name of the constructor. + + + + Writes the end. + + The token. + + + + Writes the property name of a name/value pair on a Json object. + + The name of the property. + + + + Writes a null value. + + + + + Writes an undefined value. + + + + + Writes raw JSON. + + The raw JSON to write. + + + + Writes out a comment /*...*/ containing the specified text. + + Text to place inside the comment. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Writes a value. + + The value to write. + + + + Gets the token being writen. + + The token being writen. + + + + Represents a JSON property. + + + + + Initializes a new instance of the class from another object. + + A object to copy from. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Initializes a new instance of the class. + + The property name. + The property content. + + + + Writes this token to a . + + A into which this method will write. + A collection of which will be used when writing the token. + + + + Loads an from a . + + A that will be read for the content of the . + A that contains the JSON that was read from the specified . + + + + Gets the container's children tokens. + + The container's children tokens. + + + + Gets the property name. + + The property name. + + + + Gets or sets the property value. + + The property value. + + + + Gets the node type for this . + + The type. + + + + Specifies the type of token. + + + + + No token type has been set. + + + + + A JSON object. + + + + + A JSON array. + + + + + A JSON constructor. + + + + + A JSON object property. + + + + + A comment. + + + + + An integer value. + + + + + A float value. + + + + + A string value. + + + + + A boolean value. + + + + + A null value. + + + + + An undefined value. + + + + + A date value. + + + + + A raw JSON value. + + + + + A collection of bytes value. + + + + + A Guid value. + + + + + A Uri value. + + + + + A TimeSpan value. + + + + + Contains the JSON schema extension methods. + + + + + Determines whether the is valid. + + The source to test. + The schema to test with. + + true if the specified is valid; otherwise, false. + + + + + Determines whether the is valid. + + The source to test. + The schema to test with. + When this method returns, contains any error messages generated while validating. + + true if the specified is valid; otherwise, false. + + + + + Validates the specified . + + The source to test. + The schema to test with. + + + + Validates the specified . + + The source to test. + The schema to test with. + The validation event handler. + + + + Returns detailed information about the schema exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + The parameter is null. + The class name is null or is zero (0). + + + + Gets the line number indicating where the error occurred. + + The line number indicating where the error occurred. + + + + Gets the line position indicating where the error occurred. + + The line position indicating where the error occurred. + + + + Resolves from an id. + + + + + Initializes a new instance of the class. + + + + + Gets a for the specified id. + + The id. + A for the specified id. + + + + Gets or sets the loaded schemas. + + The loaded schemas. + + + + Specifies undefined schema Id handling options for the . + + + + + Do not infer a schema Id. + + + + + Use the .NET type name as the schema Id. + + + + + Use the assembly qualified .NET type name as the schema Id. + + + + + Returns detailed information related to the . + + + + + Gets the associated with the validation event. + + The JsonSchemaException associated with the validation event. + + + + Gets the text description corresponding to the validation event. + + The text description. + + + + Represents the callback method that will handle JSON schema validation events and the . + + + + + Resolves member mappings for a type, camel casing property names. + + + + + Used by to resolves a for a given . + + + + + Used by to resolves a for a given . + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + If set to true the will use a cached shared with other resolvers of the same type. + Sharing the cache will significantly performance because expensive reflection will only happen once but could cause unexpected + behavior if different instances of the resolver are suppose to produce different results. When set to false it is highly + recommended to reuse instances with the . + + + + + Resolves the contract for a given type. + + The type to resolve a contract for. + The contract for a given type. + + + + Gets the serializable members for the type. + + The type to get serializable members for. + The serializable members for the type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates the constructor parameters. + + The constructor to create properties for. + The type's member properties. + Properties for the given . + + + + Creates a for the given . + + The matching member property. + The constructor parameter. + A created for the given . + + + + Resolves the default for the contract. + + Type of the object. + + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Creates a for the given type. + + Type of the object. + A for the given type. + + + + Determines which contract type is created for the given type. + + Type of the object. + A for the given type. + + + + Creates properties for the given . + + The type to create properties for. + /// The member serialization mode for the type. + Properties for the given . + + + + Creates the used by the serializer to get and set values from a member. + + The member. + The used by the serializer to get and set values from a member. + + + + Creates a for the given . + + The member's parent . + The member to create a for. + A created for the given . + + + + Resolves the name of the property. + + Name of the property. + Name of the property. + + + + Gets a value indicating whether members are being get and set using dynamic code generation. + This value is determined by the runtime permissions available. + + + true if using dynamic code generation; otherwise, false. + + + + + Gets or sets the default members search flags. + + The default members search flags. + + + + Gets or sets a value indicating whether compiler generated members should be serialized. + + + true if serialized compiler generated members; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Resolves the name of the property. + + Name of the property. + The property name camel cased. + + + + The default serialization binder used when resolving and loading classes from type names. + + + + + When overridden in a derived class, controls the binding of a serialized object to a type. + + Specifies the name of the serialized object. + Specifies the name of the serialized object. + + The type of the object the formatter creates a new instance of. + + + + + Provides information surrounding an error. + + + + + Gets or sets the error. + + The error. + + + + Gets the original object that caused the error. + + The original object that caused the error. + + + + Gets the member that caused the error. + + The member that caused the error. + + + + Gets or sets a value indicating whether this is handled. + + true if handled; otherwise, false. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets or sets the property name resolver. + + The property name resolver. + + + + Maps a JSON property to a .NET member or constructor parameter. + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets or sets the name of the property. + + The name of the property. + + + + Gets or sets the type that declared this property. + + The type that declared this property. + + + + Gets or sets the order of serialization and deserialization of a member. + + The numeric order of serialization or deserialization. + + + + Gets or sets the name of the underlying member or parameter. + + The name of the underlying member or parameter. + + + + Gets the that will get and set the during serialization. + + The that will get and set the during serialization. + + + + Gets or sets the type of the property. + + The type of the property. + + + + Gets or sets the for the property. + If set this converter takes presidence over the contract converter for the property type. + + The converter. + + + + Gets the member converter. + + The member converter. + + + + Gets a value indicating whether this is ignored. + + true if ignored; otherwise, false. + + + + Gets a value indicating whether this is readable. + + true if readable; otherwise, false. + + + + Gets a value indicating whether this is writable. + + true if writable; otherwise, false. + + + + Gets the default value. + + The default value. + + + + Gets a value indicating whether this is required. + + A value indicating whether this is required. + + + + Gets a value indicating whether this property preserves object references. + + + true if this instance is reference; otherwise, false. + + + + + Gets the property null value handling. + + The null value handling. + + + + Gets the property default value handling. + + The default value handling. + + + + Gets the property reference loop handling. + + The reference loop handling. + + + + Gets the property object creation handling. + + The object creation handling. + + + + Gets or sets the type name handling. + + The type name handling. + + + + Gets or sets a predicate used to determine whether the property should be serialize. + + A predicate used to determine whether the property should be serialize. + + + + Gets or sets a predicate used to determine whether the property should be serialized. + + A predicate used to determine whether the property should be serialized. + + + + Gets or sets an action used to set whether the property has been deserialized. + + An action used to set whether the property has been deserialized. + + + + A collection of objects. + + + + + Initializes a new instance of the class. + + The type. + + + + When implemented in a derived class, extracts the key from the specified element. + + The element from which to extract the key. + The key for the specified element. + + + + Adds a object. + + The property to add to the collection. + + + + Gets the closest matching object. + First attempts to get an exact case match of propertyName and then + a case insensitive match. + + Name of the property. + A matching property if found. + + + + Gets a property by property name. + + The name of the property to get. + Type property name string comparison. + A matching property if found. + + + + Specifies missing member handling options for the . + + + + + Ignore a missing member and do not attempt to deserialize it. + + + + + Throw a when a missing member is encountered during deserialization. + + + + + Specifies null value handling options for the . + + + + + Include null values when serializing and deserializing objects. + + + + + Ignore null values when serializing and deserializing objects. + + + + + Specifies reference loop handling options for the . + + + + + Throw a when a loop is encountered. + + + + + Ignore loop references and do not serialize. + + + + + Serialize loop references. + + + + + An in-memory representation of a JSON Schema. + + + + + Initializes a new instance of the class. + + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The object representing the JSON Schema. + + + + Reads a from the specified . + + The containing the JSON Schema to read. + The to use when resolving schema references. + The object representing the JSON Schema. + + + + Load a from a string that contains schema JSON. + + A that contains JSON. + A populated from the string that contains JSON. + + + + Parses the specified json. + + The json. + The resolver. + A populated from the string that contains JSON. + + + + Writes this schema to a . + + A into which this method will write. + + + + Writes this schema to a using the specified . + + A into which this method will write. + The resolver used. + + + + Returns a that represents the current . + + + A that represents the current . + + + + + Gets or sets the id. + + + + + Gets or sets the title. + + + + + Gets or sets whether the object is required. + + + + + Gets or sets whether the object is read only. + + + + + Gets or sets whether the object is visible to users. + + + + + Gets or sets whether the object is transient. + + + + + Gets or sets the description of the object. + + + + + Gets or sets the types of values allowed by the object. + + The type. + + + + Gets or sets the pattern. + + The pattern. + + + + Gets or sets the minimum length. + + The minimum length. + + + + Gets or sets the maximum length. + + The maximum length. + + + + Gets or sets a number that the value should be divisble by. + + A number that the value should be divisble by. + + + + Gets or sets the minimum. + + The minimum. + + + + Gets or sets the maximum. + + The maximum. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the "minimum" attribute. + + A flag indicating whether the value can not equal the number defined by the "minimum" attribute. + + + + Gets or sets a flag indicating whether the value can not equal the number defined by the "maximum" attribute. + + A flag indicating whether the value can not equal the number defined by the "maximum" attribute. + + + + Gets or sets the minimum number of items. + + The minimum number of items. + + + + Gets or sets the maximum number of items. + + The maximum number of items. + + + + Gets or sets the of items. + + The of items. + + + + Gets or sets the of properties. + + The of properties. + + + + Gets or sets the of additional properties. + + The of additional properties. + + + + Gets or sets the pattern properties. + + The pattern properties. + + + + Gets or sets a value indicating whether additional properties are allowed. + + + true if additional properties are allowed; otherwise, false. + + + + + Gets or sets the required property if this property is present. + + The required property if this property is present. + + + + Gets or sets the identity. + + The identity. + + + + Gets or sets the a collection of valid enum values allowed. + + A collection of valid enum values allowed. + + + + Gets or sets a collection of options. + + A collection of options. + + + + Gets or sets disallowed types. + + The disallow types. + + + + Gets or sets the default value. + + The default value. + + + + Gets or sets the extend . + + The extended . + + + + Gets or sets the format. + + The format. + + + + Generates a from a specified . + + + + + Generate a from the specified type. + + The type to generate a from. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Generate a from the specified type. + + The type to generate a from. + The used to resolve schema references. + Specify whether the generated root will be nullable. + A generated from the specified type. + + + + Gets or sets how undefined schemas are handled by the serializer. + + + + + Gets or sets the contract resolver. + + The contract resolver. + + + + The value types allowed by the . + + + + + No type specified. + + + + + String type. + + + + + Float type. + + + + + Integer type. + + + + + Boolean type. + + + + + Object type. + + + + + Array type. + + + + + Null type. + + + + + Any type. + + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Gets or sets the object member serialization. + + The member object serialization. + + + + Gets the object's properties. + + The object's properties. + + + + Gets the constructor parameters required for any non-default constructor + + + + + Gets or sets the override constructor used to create the object. + This is set when a constructor is marked up using the + JsonConstructor attribute. + + The override constructor. + + + + Gets or sets the parametrized constructor used to create the object. + + The parametrized constructor. + + + + Contract details for a used by the . + + + + + Initializes a new instance of the class. + + The underlying type for the contract. + + + + Get and set values for a using reflection. + + + + + Initializes a new instance of the class. + + The member info. + + + + Sets the value. + + The target to set the value on. + The value to set on the target. + + + + Gets the value. + + The target to get the value from. + The value. + + + + When applied to a method, specifies that the method is called when an error occurs serializing an object. + + + + + Represents a method that constructs an object. + + + + + Specifies type name handling options for the . + + + + + Do not include the .NET type name when serializing types. + + + + + Include the .NET type name when serializing into a JSON object structure. + + + + + Include the .NET type name when serializing into a JSON array structure. + + + + + Include the .NET type name when the type of the object being serialized is not the same as its declared type. + + + + + Always include the .NET type name when serializing. + + + + + Converts the value to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert the value to. + The converted type. + + + + Converts the value to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert the value to. + The converted value if the conversion was successful or the default value of T if it failed. + + true if initialValue was converted successfully; otherwise, false. + + + + + Converts the value to the specified type. If the value is unable to be converted, the + value is checked whether it assignable to the specified type. + + The value to convert. + The culture to use when converting. + The type to convert or cast the value to. + + The converted type. If conversion was unsuccessful, the initial value + is returned if assignable to the target type. + + + + + Gets a dictionary of the names and values of an Enum type. + + + + + + Gets a dictionary of the names and values of an Enum type. + + The enum type to get names and values for. + + + + + Specifies the type of Json token. + + + + + This is returned by the if a method has not been called. + + + + + An object start token. + + + + + An array start token. + + + + + A constructor start token. + + + + + An object property name. + + + + + A comment. + + + + + Raw JSON. + + + + + An integer. + + + + + A float. + + + + + A string. + + + + + A boolean. + + + + + A null token. + + + + + An undefined token. + + + + + An object end token. + + + + + An array end token. + + + + + A constructor end token. + + + + + A Date. + + + + + Byte data. + + + + + Specifies the state of the . + + + + + An exception has been thrown, which has left the in an invalid state. + You may call the method to put the in the Closed state. + Any other method calls results in an being thrown. + + + + + The method has been called. + + + + + An object is being written. + + + + + A array is being written. + + + + + A constructor is being written. + + + + + A property is being written. + + + + + A write method has not been called. + + + + + Specifies formatting options for the . + + + + + No special formatting is applied. This is the default. + + + + + Causes child objects to be indented according to the and settings. + + + + + Builds a string. Unlike StringBuilder this class lets you reuse it's internal buffer. + + + + + Determines whether the collection is null or empty. + + The collection. + + true if the collection is null or empty; otherwise, false. + + + + + Adds the elements of the specified collection to the specified generic IList. + + The list to add to. + The collection of elements to add. + + + + Returns the index of the first occurrence in a sequence by using a specified IEqualityComparer. + + The type of the elements of source. + A sequence in which to locate a value. + The object to locate in the sequence + An equality comparer to compare values. + The zero-based index of the first occurrence of value within the entire sequence, if found; otherwise, –1. + + + + Gets the type of the typed collection's items. + + The type. + The type of the typed collection's items. + + + + Gets the member's underlying type. + + The member. + The underlying type of the member. + + + + Determines whether the member is an indexed property. + + The member. + + true if the member is an indexed property; otherwise, false. + + + + + Determines whether the property is an indexed property. + + The property. + + true if the property is an indexed property; otherwise, false. + + + + + Gets the member's value on the object. + + The member. + The target object. + The member's value on the object. + + + + Sets the member's value on the target object. + + The member. + The target. + The value. + + + + Determines whether the specified MemberInfo can be read. + + The MemberInfo to determine whether can be read. + /// if set to true then allow the member to be gotten non-publicly. + + true if the specified MemberInfo can be read; otherwise, false. + + + + + Determines whether the specified MemberInfo can be set. + + The MemberInfo to determine whether can be set. + if set to true then allow the member to be set non-publicly. + if set to true then allow the member to be set if read-only. + + true if the specified MemberInfo can be set; otherwise, false. + + + + + Determines whether the string is all white space. Empty string will return false. + + The string to test whether it is all white space. + + true if the string is all white space; otherwise, false. + + + + + Nulls an empty string. + + The string. + Null if the string was null, otherwise the string unchanged. + + + diff --git a/PusherRESTDotNet/PusherRESTDotNet.csproj b/PusherRESTDotNet/PusherRESTDotNet.csproj index f2783e1..ee73628 100644 --- a/PusherRESTDotNet/PusherRESTDotNet.csproj +++ b/PusherRESTDotNet/PusherRESTDotNet.csproj @@ -49,7 +49,7 @@ - ..\packages\Newtonsoft.Json.4.0.2\lib\net35\Newtonsoft.Json.Net35.dll + Libs\Newtonsoft.Json.Net35.dll @@ -94,6 +94,9 @@ + + +