From 0dc8d023f39c1bd03f51e62d90b6be7693955e53 Mon Sep 17 00:00:00 2001
From: Max <post@wickenrode.com>
Date: Mon, 16 Mar 2015 21:48:15 +0100
Subject: Updated OCMock framework and added a unit test

---
 .../A/Headers/NSNotificationCenter+OCMAdditions.h  | 23 ++++--
 .../OCMock.framework/Versions/A/Headers/OCMArg.h   | 33 +++++++--
 .../Versions/A/Headers/OCMConstraint.h             | 39 +++++++---
 .../Versions/A/Headers/OCMLocation.h               | 36 ++++++++++
 .../Versions/A/Headers/OCMMacroState.h             | 45 ++++++++++++
 .../Versions/A/Headers/OCMRecorder.h               | 39 ++++++++++
 .../Versions/A/Headers/OCMStubRecorder.h           | 56 +++++++++++++++
 .../OCMock.framework/Versions/A/Headers/OCMock.h   | 84 ++++++++++++++++++++--
 .../Versions/A/Headers/OCMockObject.h              | 49 ++++++++++---
 .../Versions/A/Headers/OCMockRecorder.h            | 28 --------
 10 files changed, 372 insertions(+), 60 deletions(-)
 create mode 100644 Frameworks/OCMock.framework/Versions/A/Headers/OCMLocation.h
 create mode 100644 Frameworks/OCMock.framework/Versions/A/Headers/OCMMacroState.h
 create mode 100644 Frameworks/OCMock.framework/Versions/A/Headers/OCMRecorder.h
 create mode 100644 Frameworks/OCMock.framework/Versions/A/Headers/OCMStubRecorder.h
 delete mode 100644 Frameworks/OCMock.framework/Versions/A/Headers/OCMockRecorder.h

(limited to 'Frameworks/OCMock.framework/Versions/A/Headers')

diff --git a/Frameworks/OCMock.framework/Versions/A/Headers/NSNotificationCenter+OCMAdditions.h b/Frameworks/OCMock.framework/Versions/A/Headers/NSNotificationCenter+OCMAdditions.h
index ae2e37d0..c20a9c2b 100644
--- a/Frameworks/OCMock.framework/Versions/A/Headers/NSNotificationCenter+OCMAdditions.h
+++ b/Frameworks/OCMock.framework/Versions/A/Headers/NSNotificationCenter+OCMAdditions.h
@@ -1,15 +1,26 @@
-//---------------------------------------------------------------------------------------
-//  $Id: NSNotificationCenter+OCMAdditions.h$
-//  Copyright (c) 2009 by Mulle Kybernetik. See License file for details.
-//---------------------------------------------------------------------------------------
+/*
+ *  Copyright (c) 2009-2014 Erik Doernenburg and contributors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); you may
+ *  not use these files except in compliance with the License. You may obtain
+ *  a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ *  License for the specific language governing permissions and limitations
+ *  under the License.
+ */
 
 #import <Foundation/Foundation.h>
 
-@class OCMockObserver;
+@class OCObserverMockObject;
 
 
 @interface NSNotificationCenter(OCMAdditions)
 
-- (void)addMockObserver:(OCMockObserver *)notificationObserver name:(NSString *)notificationName object:(id)notificationSender;
+- (void)addMockObserver:(OCObserverMockObject *)notificationObserver name:(NSString *)notificationName object:(id)notificationSender;
 
 @end
diff --git a/Frameworks/OCMock.framework/Versions/A/Headers/OCMArg.h b/Frameworks/OCMock.framework/Versions/A/Headers/OCMArg.h
index a775f39f..d53437cb 100644
--- a/Frameworks/OCMock.framework/Versions/A/Headers/OCMArg.h
+++ b/Frameworks/OCMock.framework/Versions/A/Headers/OCMArg.h
@@ -1,7 +1,18 @@
-//---------------------------------------------------------------------------------------
-//  $Id$
-//  Copyright (c) 2009 by Mulle Kybernetik. See License file for details.
-//---------------------------------------------------------------------------------------
+/*
+ *  Copyright (c) 2009-2014 Erik Doernenburg and contributors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); you may
+ *  not use these files except in compliance with the License. You may obtain
+ *  a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ *  License for the specific language governing permissions and limitations
+ *  under the License.
+ */
 
 #import <Foundation/Foundation.h>
 
@@ -10,15 +21,21 @@
 // constraining arguments
 
 + (id)any;
++ (SEL)anySelector;
 + (void *)anyPointer;
++ (id __autoreleasing *)anyObjectRef;
 + (id)isNil;
 + (id)isNotNil;
++ (id)isEqual:(id)value;
 + (id)isNotEqual:(id)value;
++ (id)isKindOfClass:(Class)cls;
 + (id)checkWithSelector:(SEL)selector onObject:(id)anObject;
++ (id)checkWithBlock:(BOOL (^)(id obj))block;
 
 // manipulating arguments
 
 + (id *)setTo:(id)value;
++ (void *)setToValue:(NSValue *)value;
 
 // internal use only
 
@@ -27,4 +44,10 @@
 @end
 
 #define OCMOCK_ANY [OCMArg any]
-#define OCMOCK_VALUE(variable) [NSValue value:&variable withObjCType:@encode(typeof(variable))]
+
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+  #define OCMOCK_VALUE(variable) \
+    ({ __typeof__(variable) __v = (variable); [NSValue value:&__v withObjCType:@encode(__typeof__(__v))]; })
+#else
+  #define OCMOCK_VALUE(variable) [NSValue value:&variable withObjCType:@encode(__typeof__(variable))]
+#endif
diff --git a/Frameworks/OCMock.framework/Versions/A/Headers/OCMConstraint.h b/Frameworks/OCMock.framework/Versions/A/Headers/OCMConstraint.h
index 0bab7775..777966ab 100644
--- a/Frameworks/OCMock.framework/Versions/A/Headers/OCMConstraint.h
+++ b/Frameworks/OCMock.framework/Versions/A/Headers/OCMConstraint.h
@@ -1,21 +1,34 @@
-//---------------------------------------------------------------------------------------
-//  $Id$
-//  Copyright (c) 2007-2009 by Mulle Kybernetik. See License file for details.
-//---------------------------------------------------------------------------------------
+/*
+ *  Copyright (c) 2007-2014 Erik Doernenburg and contributors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); you may
+ *  not use these files except in compliance with the License. You may obtain
+ *  a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ *  License for the specific language governing permissions and limitations
+ *  under the License.
+ */
 
 #import <Foundation/Foundation.h>
 
+
 @interface OCMConstraint : NSObject 
 
-+ (id)constraint;
++ (instancetype)constraint;
 - (BOOL)evaluate:(id)value;
 
 // if you are looking for any, isNil, etc, they have moved to OCMArg
 
-+ (id)constraintWithSelector:(SEL)aSelector onObject:(id)anObject;
-+ (id)constraintWithSelector:(SEL)aSelector onObject:(id)anObject withValue:(id)aValue;
+// try to use [OCMArg checkWith...] instead of the constraintWith... methods below
+
++ (instancetype)constraintWithSelector:(SEL)aSelector onObject:(id)anObject;
++ (instancetype)constraintWithSelector:(SEL)aSelector onObject:(id)anObject withValue:(id)aValue;
 
-// try to use [OCMArg checkWith...] instead of constraintWithSelector in here
 
 @end
 
@@ -44,5 +57,15 @@
 
 @end
 
+@interface OCMBlockConstraint : OCMConstraint
+{
+	BOOL (^block)(id);
+}
+
+- (instancetype)initWithConstraintBlock:(BOOL (^)(id))block;
+
+@end
+
+
 #define CONSTRAINT(aSelector) [OCMConstraint constraintWithSelector:aSelector onObject:self]
 #define CONSTRAINTV(aSelector, aValue) [OCMConstraint constraintWithSelector:aSelector onObject:self withValue:(aValue)]
diff --git a/Frameworks/OCMock.framework/Versions/A/Headers/OCMLocation.h b/Frameworks/OCMock.framework/Versions/A/Headers/OCMLocation.h
new file mode 100644
index 00000000..e510db7a
--- /dev/null
+++ b/Frameworks/OCMock.framework/Versions/A/Headers/OCMLocation.h
@@ -0,0 +1,36 @@
+/*
+ *  Copyright (c) 2014 Erik Doernenburg and contributors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); you may
+ *  not use these files except in compliance with the License. You may obtain
+ *  a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ *  License for the specific language governing permissions and limitations
+ *  under the License.
+ */
+
+#import <Foundation/Foundation.h>
+
+@interface OCMLocation : NSObject
+{
+    id          testCase;
+    NSString    *file;
+    NSUInteger  line;
+}
+
++ (instancetype)locationWithTestCase:(id)aTestCase file:(NSString *)aFile line:(NSUInteger)aLine;
+
+- (instancetype)initWithTestCase:(id)aTestCase file:(NSString *)aFile line:(NSUInteger)aLine;
+
+- (id)testCase;
+- (NSString *)file;
+- (NSUInteger)line;
+
+@end
+
+extern OCMLocation *OCMMakeLocation(id testCase, const char *file, int line);
diff --git a/Frameworks/OCMock.framework/Versions/A/Headers/OCMMacroState.h b/Frameworks/OCMock.framework/Versions/A/Headers/OCMMacroState.h
new file mode 100644
index 00000000..4b2d6350
--- /dev/null
+++ b/Frameworks/OCMock.framework/Versions/A/Headers/OCMMacroState.h
@@ -0,0 +1,45 @@
+/*
+ *  Copyright (c) 2014 Erik Doernenburg and contributors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); you may
+ *  not use these files except in compliance with the License. You may obtain
+ *  a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ *  License for the specific language governing permissions and limitations
+ *  under the License.
+ */
+
+#import <Foundation/Foundation.h>
+
+@class OCMLocation;
+@class OCMRecorder;
+@class OCMStubRecorder;
+@class OCMockObject;
+
+
+@interface OCMMacroState : NSObject
+{
+    OCMRecorder *recorder;
+}
+
++ (void)beginStubMacro;
++ (OCMStubRecorder *)endStubMacro;
+
++ (void)beginExpectMacro;
++ (OCMStubRecorder *)endExpectMacro;
+
++ (void)beginVerifyMacroAtLocation:(OCMLocation *)aLocation;
++ (void)endVerifyMacro;
+
++ (OCMMacroState *)globalState;
+
+- (OCMRecorder *)recorder;
+
+- (void)switchToClassMethod;
+
+@end
diff --git a/Frameworks/OCMock.framework/Versions/A/Headers/OCMRecorder.h b/Frameworks/OCMock.framework/Versions/A/Headers/OCMRecorder.h
new file mode 100644
index 00000000..f56d2ca4
--- /dev/null
+++ b/Frameworks/OCMock.framework/Versions/A/Headers/OCMRecorder.h
@@ -0,0 +1,39 @@
+/*
+ *  Copyright (c) 2014 Erik Doernenburg and contributors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); you may
+ *  not use these files except in compliance with the License. You may obtain
+ *  a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ *  License for the specific language governing permissions and limitations
+ *  under the License.
+ */
+
+#import <Foundation/Foundation.h>
+
+@class OCMockObject;
+@class OCMInvocationMatcher;
+
+
+@interface OCMRecorder : NSProxy
+{
+    OCMockObject         *mockObject;
+    OCMInvocationMatcher *invocationMatcher;
+}
+
+- (instancetype)init;
+- (instancetype)initWithMockObject:(OCMockObject *)aMockObject;
+
+- (void)setMockObject:(OCMockObject *)aMockObject;
+
+- (OCMInvocationMatcher *)invocationMatcher;
+
+- (id)classMethod;
+- (id)ignoringNonObjectArgs;
+
+@end
diff --git a/Frameworks/OCMock.framework/Versions/A/Headers/OCMStubRecorder.h b/Frameworks/OCMock.framework/Versions/A/Headers/OCMStubRecorder.h
new file mode 100644
index 00000000..890c9ef3
--- /dev/null
+++ b/Frameworks/OCMock.framework/Versions/A/Headers/OCMStubRecorder.h
@@ -0,0 +1,56 @@
+/*
+ *  Copyright (c) 2004-2014 Erik Doernenburg and contributors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); you may
+ *  not use these files except in compliance with the License. You may obtain
+ *  a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ *  License for the specific language governing permissions and limitations
+ *  under the License.
+ */
+
+#import "OCMRecorder.h"
+
+
+@interface OCMStubRecorder : OCMRecorder
+
+- (id)andReturn:(id)anObject;
+- (id)andReturnValue:(NSValue *)aValue;
+- (id)andThrow:(NSException *)anException;
+- (id)andPost:(NSNotification *)aNotification;
+- (id)andCall:(SEL)selector onObject:(id)anObject;
+- (id)andDo:(void (^)(NSInvocation *invocation))block;
+- (id)andForwardToRealObject;
+
+@end
+
+
+@interface OCMStubRecorder (Properties)
+
+#define andReturn(aValue) _andReturn(({ __typeof__(aValue) _v = (aValue); [NSValue value:&_v withObjCType:@encode(__typeof__(_v))]; }))
+@property (nonatomic, readonly) OCMStubRecorder *(^ _andReturn)(NSValue *);
+
+#define andThrow(anException) _andThrow(anException)
+@property (nonatomic, readonly) OCMStubRecorder *(^ _andThrow)(NSException *);
+
+#define andPost(aNotification) _andPost(aNotification)
+@property (nonatomic, readonly) OCMStubRecorder *(^ _andPost)(NSNotification *);
+
+#define andCall(anObject, aSelector) _andCall(anObject, aSelector)
+@property (nonatomic, readonly) OCMStubRecorder *(^ _andCall)(id, SEL);
+
+#define andDo(aBlock) _andDo(aBlock)
+@property (nonatomic, readonly) OCMStubRecorder *(^ _andDo)(void (^)(NSInvocation *));
+
+#define andForwardToRealObject() _andForwardToRealObject()
+@property (nonatomic, readonly) OCMStubRecorder *(^ _andForwardToRealObject)(void);
+
+@end
+
+
+
diff --git a/Frameworks/OCMock.framework/Versions/A/Headers/OCMock.h b/Frameworks/OCMock.framework/Versions/A/Headers/OCMock.h
index e18de58a..f0083b35 100644
--- a/Frameworks/OCMock.framework/Versions/A/Headers/OCMock.h
+++ b/Frameworks/OCMock.framework/Versions/A/Headers/OCMock.h
@@ -1,10 +1,84 @@
-//---------------------------------------------------------------------------------------
-//  $Id$
-//  Copyright (c) 2004-2008 by Mulle Kybernetik. See License file for details.
-//---------------------------------------------------------------------------------------
+/*
+ *  Copyright (c) 2004-2014 Erik Doernenburg and contributors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); you may
+ *  not use these files except in compliance with the License. You may obtain
+ *  a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ *  License for the specific language governing permissions and limitations
+ *  under the License.
+ */
 
 #import <OCMock/OCMockObject.h>
-#import <OCMock/OCMockRecorder.h>
+#import <OCMock/OCMRecorder.h>
+#import <OCMock/OCMStubRecorder.h>
 #import <OCMock/OCMConstraint.h>
 #import <OCMock/OCMArg.h>
+#import <OCMock/OCMLocation.h>
+#import <OCMock/OCMMacroState.h>
 #import <OCMock/NSNotificationCenter+OCMAdditions.h>
+
+
+#define OCMClassMock(cls) [OCMockObject niceMockForClass:cls]
+
+#define OCMStrictClassMock(cls) [OCMockObject mockForClass:cls]
+
+#define OCMProtocolMock(protocol) [OCMockObject niceMockForProtocol:protocol]
+
+#define OCMStrictProtocolMock(protocol) [OCMockObject mockForProtocol:protocol]
+
+#define OCMPartialMock(obj) [OCMockObject partialMockForObject:obj]
+
+#define OCMObserverMock() [OCMockObject observerMock]
+
+
+#define OCMStub(invocation) \
+({ \
+    _OCMSilenceWarnings( \
+        [OCMMacroState beginStubMacro]; \
+        invocation; \
+        [OCMMacroState endStubMacro]; \
+    ); \
+})
+
+#define OCMExpect(invocation) \
+({ \
+    _OCMSilenceWarnings( \
+        [OCMMacroState beginExpectMacro]; \
+        invocation; \
+        [OCMMacroState endExpectMacro]; \
+    ); \
+})
+
+#define ClassMethod(invocation) \
+    _OCMSilenceWarnings( \
+        [[OCMMacroState globalState] switchToClassMethod]; \
+        invocation; \
+    );
+
+
+#define OCMVerifyAll(mock) [mock verifyAtLocation:OCMMakeLocation(self, __FILE__, __LINE__)]
+
+#define OCMVerifyAllWithDelay(mock, delay) [mock verifyWithDelay:delay atLocation:OCMMakeLocation(self, __FILE__, __LINE__)]
+
+#define OCMVerify(invocation) \
+({ \
+    _OCMSilenceWarnings( \
+        [OCMMacroState beginVerifyMacroAtLocation:OCMMakeLocation(self, __FILE__, __LINE__)]; \
+        invocation; \
+        [OCMMacroState endVerifyMacro]; \
+    ); \
+})
+
+#define _OCMSilenceWarnings(macro) \
+({ \
+    _Pragma("clang diagnostic push") \
+    _Pragma("clang diagnostic ignored \"-Wunused-value\"") \
+    macro \
+    _Pragma("clang diagnostic pop") \
+})
diff --git a/Frameworks/OCMock.framework/Versions/A/Headers/OCMockObject.h b/Frameworks/OCMock.framework/Versions/A/Headers/OCMockObject.h
index 87e7b82e..63f2bae2 100644
--- a/Frameworks/OCMock.framework/Versions/A/Headers/OCMockObject.h
+++ b/Frameworks/OCMock.framework/Versions/A/Headers/OCMockObject.h
@@ -1,17 +1,36 @@
-//---------------------------------------------------------------------------------------
-//  $Id$
-//  Copyright (c) 2004-2008 by Mulle Kybernetik. See License file for details.
-//---------------------------------------------------------------------------------------
+/*
+ *  Copyright (c) 2004-2014 Erik Doernenburg and contributors
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License"); you may
+ *  not use these files except in compliance with the License. You may obtain
+ *  a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ *  License for the specific language governing permissions and limitations
+ *  under the License.
+ */
 
 #import <Foundation/Foundation.h>
 
+@class OCMLocation;
+@class OCMInvocationStub;
+@class OCMStubRecorder;
+@class OCMInvocationMatcher;
+@class OCMInvocationExpectation;
+
+
 @interface OCMockObject : NSProxy
 {
 	BOOL			isNice;
 	BOOL			expectationOrderMatters;
-	NSMutableArray	*recorders;
+	NSMutableArray	*stubs;
 	NSMutableArray	*expectations;
 	NSMutableArray	*exceptions;
+    NSMutableArray  *invocations;
 }
 
 + (id)mockForClass:(Class)aClass;
@@ -23,19 +42,33 @@
 
 + (id)observerMock;
 
-- (id)init;
+- (instancetype)init;
 
 - (void)setExpectationOrderMatters:(BOOL)flag;
 
 - (id)stub;
 - (id)expect;
+- (id)reject;
+
+- (id)verify;
+- (id)verifyAtLocation:(OCMLocation *)location;
+
+- (void)verifyWithDelay:(NSTimeInterval)delay;
+- (void)verifyWithDelay:(NSTimeInterval)delay atLocation:(OCMLocation *)location;
 
-- (void)verify;
+- (void)stopMocking;
 
 // internal use only
 
-- (id)getNewRecorder;
+- (void)addStub:(OCMInvocationStub *)aStub;
+- (void)addExpectation:(OCMInvocationExpectation *)anExpectation;
+
 - (BOOL)handleInvocation:(NSInvocation *)anInvocation;
 - (void)handleUnRecordedInvocation:(NSInvocation *)anInvocation;
+- (BOOL)handleSelector:(SEL)sel;
+
+- (void)verifyInvocation:(OCMInvocationMatcher *)matcher;
+- (void)verifyInvocation:(OCMInvocationMatcher *)matcher atLocation:(OCMLocation *)location;
 
 @end
+
diff --git a/Frameworks/OCMock.framework/Versions/A/Headers/OCMockRecorder.h b/Frameworks/OCMock.framework/Versions/A/Headers/OCMockRecorder.h
deleted file mode 100644
index 7463a3f4..00000000
--- a/Frameworks/OCMock.framework/Versions/A/Headers/OCMockRecorder.h
+++ /dev/null
@@ -1,28 +0,0 @@
-//---------------------------------------------------------------------------------------
-//  $Id$
-//  Copyright (c) 2004-2009 by Mulle Kybernetik. See License file for details.
-//---------------------------------------------------------------------------------------
-
-#import <Foundation/Foundation.h>
-
-@interface OCMockRecorder : NSProxy 
-{
-	id				signatureResolver;
-	NSInvocation	*recordedInvocation;
-	NSMutableArray	*invocationHandlers;
-}
-
-- (id)initWithSignatureResolver:(id)anObject;
-
-- (BOOL)matchesInvocation:(NSInvocation *)anInvocation;
-- (void)releaseInvocation;
-
-- (id)andReturn:(id)anObject;
-- (id)andReturnValue:(NSValue *)aValue;
-- (id)andThrow:(NSException *)anException;
-- (id)andPost:(NSNotification *)aNotification;
-- (id)andCall:(SEL)selector onObject:(id)anObject;
-
-- (NSArray *)invocationHandlers;
-
-@end
-- 
cgit v1.2.3