1//---------------------------------------------------------------------------------------
2//  $Id$
3//  Copyright (c) 2007-2010 by Mulle Kybernetik. See License file for details.
4//---------------------------------------------------------------------------------------
5
6#import <Foundation/Foundation.h>
7
8
9@interface OCMConstraint : NSObject
10
11+ (id)constraint;
12- (BOOL)evaluate:(id)value;
13
14// if you are looking for any, isNil, etc, they have moved to OCMArg
15
16// try to use [OCMArg checkWith...] instead of the constraintWith... methods below
17
18+ (id)constraintWithSelector:(SEL)aSelector onObject:(id)anObject;
19+ (id)constraintWithSelector:(SEL)aSelector onObject:(id)anObject withValue:(id)aValue;
20
21
22@end
23
24@interface OCMAnyConstraint : OCMConstraint
25@end
26
27@interface OCMIsNilConstraint : OCMConstraint
28@end
29
30@interface OCMIsNotNilConstraint : OCMConstraint
31@end
32
33@interface OCMIsNotEqualConstraint : OCMConstraint
34{
35	@public
36	id testValue;
37}
38
39@end
40
41@interface OCMInvocationConstraint : OCMConstraint
42{
43	@public
44	NSInvocation *invocation;
45}
46
47@end
48
49#if NS_BLOCKS_AVAILABLE
50
51@interface OCMBlockConstraint : OCMConstraint
52{
53	BOOL (^block)(id);
54}
55
56- (id)initWithConstraintBlock:(BOOL (^)(id))block;
57
58@end
59
60#endif
61
62
63#define CONSTRAINT(aSelector) [OCMConstraint constraintWithSelector:aSelector onObject:self]
64#define CONSTRAINTV(aSelector, aValue) [OCMConstraint constraintWithSelector:aSelector onObject:self withValue:(aValue)]
65