54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
pair[2] = [enumerator nextKeyObjectPair];
TEST(@"OFEnumerator's -[nextKeyObjectPair]",
[pair[0].key isEqual: keys[0]] &&
[pair[0].object isEqual: values[0]] &&
[pair[1].key isEqual: keys[1]] &&
[pair[1].object isEqual: values[1]] &&
pair[2].key == nil && pair[2].object == nil)
TEST(@"-[count]", [dict count] == 2)
TEST(@"+[dictionaryWithKeysAndObjects:]",
(dict = [OFDictionary dictionaryWithKeysAndObjects: @"foo", @"bar",
@"baz", @"qux",
nil]) &&
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
pair[2] = [enumerator nextKeyObjectPair];
TEST(@"OFEnumerator's -[nextKeyObjectPair]",
[pair[0].key isEqual: keys[0]] &&
[pair[0].object isEqual: values[0]] &&
[pair[1].key isEqual: keys[1]] &&
[pair[1].object isEqual: values[1]] &&
pair[2].key == nil && pair[2].object == nil)
#ifdef OF_HAVE_FAST_ENUMERATION
size_t i = 0;
BOOL ok = YES;
for (OFString *key in dict) {
if (![key isEqual: keys[i]])
ok = NO;
[dict setObject: [dict objectForKey: key]
forKey: key];
i++;
}
TEST(@"Fast Enumeration", ok)
ok = NO;
@try {
for (OFString *key in dict)
[dict setObject: @""
forKey: @""];
} @catch (OFEnumerationMutationException *e) {
ok = YES;
[e dealloc];
}
TEST(@"Detection of mutation during Fast Enumeration", ok)
[dict removeObjectForKey: @""];
#endif
TEST(@"-[count]", [dict count] == 2)
TEST(@"+[dictionaryWithKeysAndObjects:]",
(dict = [OFDictionary dictionaryWithKeysAndObjects: @"foo", @"bar",
@"baz", @"qux",
nil]) &&
|