main
1//
2// Licensed under the terms in License.txt
3//
4// Copyright 2010 Allen Ding. All rights reserved.
5//
6
7#import "KiwiConfiguration.h"
8#import <objc/runtime.h>
9
10@class KWMessagePattern;
11@class KWStub;
12
13#pragma mark -
14#pragma mark Getting Forwarding Implementations
15
16IMP KWRegularForwardingImplementation(void);
17IMP KWStretForwardingImplementation(void);
18IMP KWForwardingImplementationForMethodEncoding(const char* encoding);
19
20#pragma mark -
21#pragma mark Getting Intercept Class Information
22
23BOOL KWObjectIsClass(id anObject);
24BOOL KWClassIsInterceptClass(Class aClass);
25NSString *KWInterceptClassNameForClass(Class aClass);
26Class KWInterceptClassForCanonicalClass(Class canonicalClass);
27Class KWRealClassForClass(Class aClass);
28
29#pragma mark -
30#pragma mark Enabling Intercepting
31
32Class KWSetupObjectInterceptSupport(id anObject);
33void KWSetupMethodInterceptSupport(Class interceptClass, SEL aSelector);
34
35#pragma mark - Managing Stubs & Spies
36void KWClearStubsAndSpies(void);
37
38#pragma mark -
39#pragma mark Managing Objects Stubs
40
41void KWAssociateObjectStub(id anObject, KWStub *aStub, BOOL overrideExisting);
42void KWClearObjectStubs(id anObject);
43void KWClearAllObjectStubs(void);
44
45#pragma mark -
46#pragma mark Managing Message Spies
47
48void KWAssociateMessageSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern);
49void KWClearObjectSpy(id anObject, id aSpy, KWMessagePattern *aMessagePattern);
50void KWClearAllMessageSpies(void);