Rhino.Mocks Interface for constraints determains 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 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. 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. determains 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 determains 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. determains 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. determains 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. determains 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 Constrains that all elements are in the parameter list Initializes a new instance of the class. The these. determains 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. determains if the object pass the constraints Gets the message for this constraint Negate a constraint Creates a new instance. C1. determains if the object pass the constraints Gets the message for this constraint Combines two constraints Creates a new instance. C1. C2. determains 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. determains 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. determains 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. determains 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. determains 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. determains if the object pass the constraints Gets the message for this constraint Constraint that always returns true determains 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. determains if the object pass the constraints Gets the message for this constraint 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 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. Central location for constraints about lists and collections Determines whether the specified obj is in the paramter. The parameter must be IEnumerable. Obj. Determains whatever the parameter is in the collection. Determains 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. Provides access to the constraintes defined in the class to be used in context with the syntax. Determines whether the specified object is in the paramter. The parameter must be IEnumerable. Obj. Determains whatever the parameter is in the collection. Determains 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 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 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 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 . An expectaton violation was detected. Creates a new instance. Message. Serialization constructor Signals that an object was call on a mock repostiroy which doesn't belong to this mock repository or not a mock Creates a new instance. Message. Serialization constructor 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. Allow to set the return value in the future, if it was already set. 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. 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 Allow to set the return value in the future, if it was already set. 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 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 whatever 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 Gets the error message. Expectation that matchs any arguments for the method. Creates a new instance. Invocation for this expectation 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 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. 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. 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. ExpectationsList Dictionary Dictionary class Create a new instance of ProxyStateDictionary 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. 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 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 Allows to call a method and immediatly get it's options. Interface to allows to call a method and immediatly 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 immediatly 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 repositroy. 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 raise 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. 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. 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. If the expectation still can be replaced by a Constraint call 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 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. 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 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. 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 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. 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 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. 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. 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. 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. 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. 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) 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 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 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 match 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. 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. 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 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. 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. 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 exepctation if it is not closed. Verify that we can move to replay state and move to the reply state. Validate expectations on recorded methods, but in general completely ignoring them. Similar to except that it would return a when BackToRecord is called. 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 match the original mock state of the object. Rudimetry implementation that simply logs methods calls as text. Initializes a new instance of the class. The writer. 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. 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. 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 argument 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. 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. 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 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. Determains 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. Determains whatever obj equals to this instance. ProxyMethodPairs are equals 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. 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]] 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 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 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 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(); }); ... 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(); }); 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. Accessor for the current mocker The current mocker Creates proxied instances of types. 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 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. 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. 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. 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. Arguments for the class' constructor, if mocking a concrete class Creates a strict mock for the spesified 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 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. Generates a stub without mock repository The arguments for constructor. Generates the stub without mock repository The type. The arguments for constructor. 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. Generate a mock object without needing the mock repository Determines whether the specified proxy is a stub. The proxy. 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. 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 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