mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-25 13:07:02 +00:00
123 lines
4.1 KiB
Plaintext
123 lines
4.1 KiB
Plaintext
@implementation CPArrayControllerTest : OJTestCase
|
|
{
|
|
CPArrayController _arrayController @accessors(property=arrayController);
|
|
CPArray _contentArray @accessors(property=contentArray);
|
|
}
|
|
|
|
- (void)setUp
|
|
{
|
|
_contentArray = [];
|
|
|
|
[_contentArray addObject:[Person personWithName:@"Francisco" age:21]];
|
|
[_contentArray addObject:[Person personWithName:@"Ross" age:30]];
|
|
[_contentArray addObject:[Person personWithName:@"Tom" age:15]];
|
|
|
|
_arrayController = [[CPArrayController alloc] initWithContent:[self contentArray]];
|
|
}
|
|
|
|
- (void)testInitWithContent
|
|
{
|
|
[self assert:[self contentArray] equals:[[self arrayController] contentArray]];
|
|
[self assert:[_CPObservableArray class] equals:[[[self arrayController] arrangedObjects] class]];
|
|
}
|
|
|
|
- (void)testSetContent
|
|
{
|
|
otherContent = [@"5", @"6"];
|
|
[[self arrayController] setContent:otherContent];
|
|
|
|
[self assert:otherContent equals:[[self arrayController] contentArray]];
|
|
[self assert:[_CPObservableArray class] equals:[[[self arrayController] arrangedObjects] class]];
|
|
}
|
|
|
|
- (void)testInsertObjectAtArrangedObjectIndex
|
|
{
|
|
var object = [Person personWithName:@"Klaas Pieter" age:24],
|
|
arrayController = [self arrayController];
|
|
|
|
[arrayController setSortDescriptors:[[CPSortDescriptor sortDescriptorWithKey:@"age" ascending:YES]]];
|
|
[arrayController insertObject:object atArrangedObjectIndex:1];
|
|
|
|
[self assert:object equals:[[arrayController arrangedObjects] objectAtIndex:1]];
|
|
}
|
|
|
|
- (void)testSelectPrevious
|
|
{
|
|
var arrayController = [self arrayController];
|
|
|
|
// Selection index: 1
|
|
[arrayController setSelectionIndexes:[CPIndexSet indexSetWithIndex:1]];
|
|
[self assertTrue:[arrayController canSelectPrevious] message:@"index > 0; canSelectPrevious should return YES"]
|
|
|
|
[arrayController selectPrevious:self];
|
|
[self assert:[CPIndexSet indexSetWithIndex:0] equals:[arrayController selectionIndexes]];
|
|
|
|
// Selection index: 0
|
|
[self assertFalse:[arrayController canSelectPrevious] message:@"index <= 0; canSelectPrevious should return NO"];
|
|
|
|
[arrayController selectPrevious:self];
|
|
[self assert:[CPIndexSet indexSetWithIndex:0] equals:[arrayController selectionIndexes]];
|
|
}
|
|
|
|
- (void)testSelectNext
|
|
{
|
|
var arrayController = [self arrayController],
|
|
count = [[arrayController arrangedObjects] count];
|
|
|
|
// Selection index: count - 2
|
|
[arrayController setSelectionIndexes:[CPIndexSet indexSetWithIndex:count - 2]];
|
|
[self assertTrue:[arrayController canSelectNext] message:@"index < (count - 1); canSelectNext should return YES"];
|
|
|
|
[arrayController selectNext:self];
|
|
[self assert:[CPIndexSet indexSetWithIndex:count - 1] equals:[arrayController selectionIndexes]];
|
|
|
|
// Selection index: count - 1
|
|
[self assertFalse:[arrayController canSelectNext] message:@"index >= (count - 1) canSelectNext should return NO"];
|
|
|
|
[arrayController selectNext:self];
|
|
[self assert:[CPIndexSet indexSetWithIndex:count - 1] equals:[arrayController selectionIndexes]];
|
|
}
|
|
|
|
- (void)testContentBinding
|
|
{
|
|
[[self arrayController] bind:@"contentArray" toObject:self withKeyPath:@"contentArray" options:0];
|
|
|
|
[self assert:[[self arrayController] contentArray] equals:[self contentArray]];
|
|
|
|
[[self mutableArrayValueForKey:@"contentArray"] addObject:@"4"];
|
|
[self assert:[self contentArray] equals:[[self arrayController] contentArray]];
|
|
|
|
[[self arrayController] insertObject:@"2" atArrangedObjectIndex:1];
|
|
[self assert:[[self arrayController] contentArray] equals:[self contentArray]];
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation Person : CPObject
|
|
{
|
|
CPString _name @accessors(property=name);
|
|
int _age @accessors(property=age);
|
|
}
|
|
|
|
+ (id)personWithName:(CPString)aName age:(int)anAge
|
|
{
|
|
return [[self alloc] initWithName:aName age:anAge];
|
|
}
|
|
|
|
- (id)initWithName:(CPString)aName age:(int)anAge
|
|
{
|
|
if (self = [super init])
|
|
{
|
|
_name = aName;
|
|
_age = anAge;
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
- (CPString)description
|
|
{
|
|
return [CPString stringWithFormat:@"%@ : %@", [self name], [self age]];
|
|
}
|
|
|
|
@end |