mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-25 04:57:03 +00:00
Fix an issue with storing 0 in a CPSet. Includes test cases. Closes #337.
This commit is contained in:
+3
-1
@@ -232,7 +232,9 @@
|
||||
*/
|
||||
- (BOOL)containsObject:(id)anObject
|
||||
{
|
||||
if (_contents[[anObject UID]] && [_contents[[anObject UID]] isEqual:anObject])
|
||||
var obj = _contents[[anObject UID]];
|
||||
|
||||
if (obj !== undefined && [obj isEqual:anObject])
|
||||
return YES;
|
||||
|
||||
return NO;
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
|
||||
@import <Foundation/CPSet.j>
|
||||
|
||||
@implementation CPSetTest : OJTestCase
|
||||
{
|
||||
CPSet set;
|
||||
}
|
||||
|
||||
- (void)setUp
|
||||
{
|
||||
set = [CPSet new];
|
||||
}
|
||||
|
||||
- (void)testAddObject
|
||||
{
|
||||
[self assertFalse:[set containsObject:"foo"]];
|
||||
[set addObject:"foo"];
|
||||
[self assertTrue:[set containsObject:"foo"]];
|
||||
}
|
||||
|
||||
- (void)testAddZeroObject
|
||||
{
|
||||
[self assertFalse:[set containsObject:0]];
|
||||
[set addObject:0];
|
||||
[self assertTrue:[set containsObject:0]];
|
||||
}
|
||||
|
||||
- (void)testRemoveObject
|
||||
{
|
||||
[set addObject:"foo"];
|
||||
[self assertTrue:[set containsObject:"foo"]];
|
||||
[set removeObject:"foo"];
|
||||
[self assertFalse:[set containsObject:"foo"]];
|
||||
}
|
||||
|
||||
- (void)testRemoveZeroObject
|
||||
{
|
||||
[set addObject:0];
|
||||
[self assertTrue:[set containsObject:0]];
|
||||
[set removeObject:0];
|
||||
[self assertFalse:[set containsObject:0]];
|
||||
}
|
||||
|
||||
- (void)testAddNilObject
|
||||
{
|
||||
[self assertFalse:[set containsObject:nil]];
|
||||
[set addObject:nil];
|
||||
[self assertFalse:[set containsObject:nil]];
|
||||
}
|
||||
|
||||
- (void)testRemoveNilObject
|
||||
{
|
||||
[set addObject:nil];
|
||||
[self assertFalse:[set containsObject:nil]];
|
||||
[set removeObject:nil];
|
||||
[self assertFalse:[set containsObject:nil]];
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user