Skip to content
This repository has been archived by the owner on Dec 2, 2019. It is now read-only.

Commit

Permalink
Added a toBeLessThanOrEqualTo matcher
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrew Kitchen & Rachel Heaton committed Aug 24, 2011
1 parent 4a9a1d5 commit 7a7a7fa
Show file tree
Hide file tree
Showing 6 changed files with 82 additions and 1 deletion.
18 changes: 18 additions & 0 deletions Expecta.xcodeproj/project.pbxproj
Expand Up @@ -13,6 +13,12 @@
AE0E76FD13FF37D6009AF5D8 /* EXPMatchers+toBeLessThanTest.m in Sources */ = {isa = PBXBuildFile; fileRef = AE0E76FB13FF37D6009AF5D8 /* EXPMatchers+toBeLessThanTest.m */; };
AE0E76FE13FF383D009AF5D8 /* EXPMatchers+toBeLessThan.m in Sources */ = {isa = PBXBuildFile; fileRef = AE0E76F713FF3732009AF5D8 /* EXPMatchers+toBeLessThan.m */; };
AE0E76FF13FF3840009AF5D8 /* EXPMatchers+toBeLessThan.h in Headers */ = {isa = PBXBuildFile; fileRef = AE0E76F613FF3732009AF5D8 /* EXPMatchers+toBeLessThan.h */; settings = {ATTRIBUTES = (Public, ); }; };
AEBA779514055CA2001690B6 /* EXPMatchers+toBeLessThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = AEBA779414055CA2001690B6 /* EXPMatchers+toBeLessThanOrEqualToTest.m */; };
AEBA779614055CA2001690B6 /* EXPMatchers+toBeLessThanOrEqualToTest.m in Sources */ = {isa = PBXBuildFile; fileRef = AEBA779414055CA2001690B6 /* EXPMatchers+toBeLessThanOrEqualToTest.m */; };
AEBA779A14055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = AEBA779814055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
AEBA779B14055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = AEBA779814055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
AEBA779C14055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = AEBA779914055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.m */; };
AEBA779D14055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = AEBA779914055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.m */; };
E1EB1BC313BEA1BE00E4C93B /* DoubleTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = E1EB1BBF13BEA1BE00E4C93B /* DoubleTuple.h */; };
E1EB1BC413BEA1BE00E4C93B /* DoubleTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = E1EB1BBF13BEA1BE00E4C93B /* DoubleTuple.h */; };
E1EB1BC513BEA1BE00E4C93B /* DoubleTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = E1EB1BC013BEA1BE00E4C93B /* DoubleTuple.m */; };
Expand Down Expand Up @@ -146,6 +152,9 @@
AE0E76F613FF3732009AF5D8 /* EXPMatchers+toBeLessThan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toBeLessThan.h"; sourceTree = "<group>"; };
AE0E76F713FF3732009AF5D8 /* EXPMatchers+toBeLessThan.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+toBeLessThan.m"; sourceTree = "<group>"; };
AE0E76FB13FF37D6009AF5D8 /* EXPMatchers+toBeLessThanTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+toBeLessThanTest.m"; sourceTree = "<group>"; };
AEBA779414055CA2001690B6 /* EXPMatchers+toBeLessThanOrEqualToTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+toBeLessThanOrEqualToTest.m"; sourceTree = "<group>"; };
AEBA779814055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EXPMatchers+toBeLessThanOrEqualTo.h"; sourceTree = "<group>"; };
AEBA779914055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+toBeLessThanOrEqualTo.m"; sourceTree = "<group>"; };
E1EB1BBF13BEA1BE00E4C93B /* DoubleTuple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DoubleTuple.h; sourceTree = "<group>"; };
E1EB1BC013BEA1BE00E4C93B /* DoubleTuple.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DoubleTuple.m; sourceTree = "<group>"; };
E1EB1BC113BEA1BE00E4C93B /* FloatTuple.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FloatTuple.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -335,6 +344,8 @@
E942971513B45C8E0038708B /* EXPMatchers+toBeIdenticalTo.m */,
AE0E76F613FF3732009AF5D8 /* EXPMatchers+toBeLessThan.h */,
AE0E76F713FF3732009AF5D8 /* EXPMatchers+toBeLessThan.m */,
AEBA779814055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.h */,
AEBA779914055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.m */,
);
path = matchers;
sourceTree = "<group>";
Expand Down Expand Up @@ -366,6 +377,7 @@
E9ACDF7B13B2DEB70010F4D7 /* EXPMatchers+toEqualTest.m */,
E94296F313B42E160038708B /* EXPMatchers+toContainTest.m */,
AE0E76FB13FF37D6009AF5D8 /* EXPMatchers+toBeLessThanTest.m */,
AEBA779414055CA2001690B6 /* EXPMatchers+toBeLessThanOrEqualToTest.m */,
);
path = matchers;
sourceTree = "<group>";
Expand Down Expand Up @@ -420,6 +432,7 @@
E9685DBD13B5E39300ADF2D7 /* ExpectaSupport.h in Headers */,
E1EB1BC413BEA1BE00E4C93B /* DoubleTuple.h in Headers */,
E1EB1BC813BEA1BE00E4C93B /* FloatTuple.h in Headers */,
AEBA779B14055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -447,6 +460,7 @@
E9685DBC13B5E39300ADF2D7 /* ExpectaSupport.h in Headers */,
E1EB1BC313BEA1BE00E4C93B /* DoubleTuple.h in Headers */,
E1EB1BC713BEA1BE00E4C93B /* FloatTuple.h in Headers */,
AEBA779A14055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -622,6 +636,7 @@
E1EB1BCA13BEA1BE00E4C93B /* FloatTuple.m in Sources */,
E9AA7A5E13CC874F005884E8 /* Expecta.m in Sources */,
AE0E76FE13FF383D009AF5D8 /* EXPMatchers+toBeLessThan.m in Sources */,
AEBA779D14055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -646,6 +661,7 @@
E969C52613B60234006BB8B1 /* EXPFailTest.m in Sources */,
E9AFC43B13C482D3006B4F2A /* AsynchronousTestingTest.m in Sources */,
AE0E76FD13FF37D6009AF5D8 /* EXPMatchers+toBeLessThanTest.m in Sources */,
AEBA779614055CA2001690B6 /* EXPMatchers+toBeLessThanOrEqualToTest.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -671,6 +687,7 @@
E1EB1BC913BEA1BE00E4C93B /* FloatTuple.m in Sources */,
E9AA7A5D13CC874F005884E8 /* Expecta.m in Sources */,
AE0E76F913FF3732009AF5D8 /* EXPMatchers+toBeLessThan.m in Sources */,
AEBA779C14055E9D001690B6 /* EXPMatchers+toBeLessThanOrEqualTo.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -695,6 +712,7 @@
E969C52513B60234006BB8B1 /* EXPFailTest.m in Sources */,
E9AFC43A13C482D3006B4F2A /* AsynchronousTestingTest.m in Sources */,
AE0E76FC13FF37D6009AF5D8 /* EXPMatchers+toBeLessThanTest.m in Sources */,
AEBA779514055CA2001690B6 /* EXPMatchers+toBeLessThanOrEqualToTest.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
1 change: 0 additions & 1 deletion src/matchers/EXPMatchers+toBeLessThan.m
Expand Up @@ -3,7 +3,6 @@

EXPMatcherImplementationBegin(_toBeLessThan, (id expected)) {
match(^BOOL{
NSLog(@"%@", [expected class]);
if ([actual respondsToSelector:@selector(compare:)]) {
return [actual compare:expected] == NSOrderedAscending;
}
Expand Down
6 changes: 6 additions & 0 deletions src/matchers/EXPMatchers+toBeLessThanOrEqualTo.h
@@ -0,0 +1,6 @@
#import "Expecta.h"

EXPMatcherInterface(_toBeLessThanOrEqualTo, (id expected));
EXPMatcherInterface(toBeLessThanOrEqualTo, (id expected));

#define toBeLessThanOrEqualTo(expected) _toBeLessThanOrEqualTo(EXPObjectify((expected)))
20 changes: 20 additions & 0 deletions src/matchers/EXPMatchers+toBeLessThanOrEqualTo.m
@@ -0,0 +1,20 @@
#import "EXPMatchers+toBeLessThanOrEqualTo.h"
#import "EXPMatcherHelpers.h"

EXPMatcherImplementationBegin(_toBeLessThanOrEqualTo, (id expected)) {
match(^BOOL{
if ([actual respondsToSelector:@selector(compare:)]) {
return [actual compare:expected] != NSOrderedDescending;
}
return NO;
});

failureMessageForTo(^NSString *{
return [NSString stringWithFormat:@"expected: %@ to be less than or equal to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
});

failureMessageForNotTo(^NSString *{
return [NSString stringWithFormat:@"expected: %@ not to be less than or equal to %@", EXPDescribeObject(actual), EXPDescribeObject(expected)];
});
}
EXPMatcherImplementationEnd
1 change: 1 addition & 0 deletions src/matchers/EXPMatchers.h
Expand Up @@ -12,3 +12,4 @@
#import "EXPMatchers+toContain.h"
#import "EXPMatchers+toBeIdenticalTo.h"
#import "EXPMatchers+toBeLessThan.h"
#import "EXPMatchers+toBeLessThanOrEqualTo.h"
37 changes: 37 additions & 0 deletions test/matchers/EXPMatchers+toBeLessThanOrEqualToTest.m
@@ -0,0 +1,37 @@
// Expecta - EXPMatchers+toContainTest.m
// Copyright (c) 2011 Peter Jihoon Kim
// Licensed under the MIT License.

#import "TestHelper.h"
#import "NSValue+Expecta.h"

@interface EXPMatchers_toBeLessThanOrEqualToTest : SenTestCase
@end

@implementation EXPMatchers_toBeLessThanOrEqualToTest

- (void)test_toBeLessThanOrEqualTo {
assertPass(test_expect(2).toBeLessThanOrEqualTo(3));
assertPass(test_expect(2).toBeLessThanOrEqualTo(2));
assertPass(test_expect(2).toBeLessThanOrEqualTo(2.1));
assertPass(test_expect(3.14).toBeLessThanOrEqualTo(3.14));

assertPass(test_expect([NSNumber numberWithInt:2]).toBeLessThanOrEqualTo([NSNumber numberWithInt:3]));
assertPass(test_expect([NSNumber numberWithInt:2]).toBeLessThanOrEqualTo([NSNumber numberWithFloat:2.4f]));

assertFail(test_expect(3).toBeLessThanOrEqualTo(2), @"foo.m:123 expected: 3 to be less than or equal to 2");
assertFail(test_expect(3.8).toBeLessThanOrEqualTo(3.2), @"foo.m:123 expected: 3.8 to be less than or equal to 3.2");
assertFail(test_expect([NSNumber numberWithInt:3]).toBeLessThanOrEqualTo([NSNumber numberWithInt:2]), @"foo.m:123 expected: 3 to be less than or equal to 2");
}

- (void)test_Not_toBeLessThanOrEqualTo {
assertPass(test_expect(3).Not.toBeLessThanOrEqualTo(2));
assertPass(test_expect(3.8).Not.toBeLessThanOrEqualTo(3.2));
assertPass(test_expect([NSNumber numberWithInt:3]).Not.toBeLessThanOrEqualTo([NSNumber numberWithInt:2]));

assertFail(test_expect(2).Not.toBeLessThanOrEqualTo(3), @"foo.m:123 expected: 2 not to be less than or equal to 3");
assertFail(test_expect(3.2).Not.toBeLessThanOrEqualTo(3.8), @"foo.m:123 expected: 3.2 not to be less than or equal to 3.8");
assertFail(test_expect([NSNumber numberWithInt:2]).Not.toBeLessThanOrEqualTo([NSNumber numberWithInt:3]), @"foo.m:123 expected: 2 not to be less than or equal to 3");
}

@end

0 comments on commit 7a7a7fa

Please sign in to comment.