From db5e5d7da656999bddcea2723e5593cd086ef0c4 Mon Sep 17 00:00:00 2001 From: Alexander Ljungberg Date: Sun, 18 Mar 2012 00:39:07 +0000 Subject: [PATCH] Test stopping CPIndexSet enumeration. --- Tests/Foundation/CPIndexSetTest.j | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Tests/Foundation/CPIndexSetTest.j b/Tests/Foundation/CPIndexSetTest.j index 45ca10c68..654116773 100644 --- a/Tests/Foundation/CPIndexSetTest.j +++ b/Tests/Foundation/CPIndexSetTest.j @@ -522,6 +522,27 @@ function descriptionWithoutEntity(aString) [self assert:[4, 3] equals:visitedIndexes message:"reverse enumerate " + [set2 description]]; } +- (void)testEnumerateIndexesAndStop +{ + var set0 = [CPMutableIndexSet indexSet]; + + [set0 addIndexesInRange:CPMakeRange(3, 2)]; + [set0 addIndexesInRange:CPMakeRange(0, 1)]; + + var visitedIndexes = [], + aBlock; + + aBlock = function(idx, /* ref */ stop) + { + visitedIndexes.push(idx); + if (visitedIndexes.length >= 2) + stop(YES); // AT_DEREF(stop, YES) - FIXME Replace with proper @ref @deref when in ObjJ. + } + + [set0 enumerateIndexesUsingBlock:aBlock]; + [self assert:[0, 3] equals:visitedIndexes message:"enumeration should stop after 2 results"]; +} + - (void)tearDown { _set = nil;