| OLD | NEW |
| 1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
| 2 // Copyright 2015 Google Inc. All rights reserved. | 2 // Copyright 2015 Google Inc. All rights reserved. |
| 3 // https://developers.google.com/protocol-buffers/ | 3 // https://developers.google.com/protocol-buffers/ |
| 4 // | 4 // |
| 5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
| 6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
| 7 // met: | 7 // met: |
| 8 // | 8 // |
| 9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
| 10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
| (...skipping 2129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2140 XCTAssertTrue([dict valueForKey:NO value:NULL]); | 2140 XCTAssertTrue([dict valueForKey:NO value:NULL]); |
| 2141 XCTAssertTrue([dict valueForKey:NO value:&value]); | 2141 XCTAssertTrue([dict valueForKey:NO value:&value]); |
| 2142 XCTAssertEqual(value, 601.); | 2142 XCTAssertEqual(value, 601.); |
| 2143 | 2143 |
| 2144 [dict2 release]; | 2144 [dict2 release]; |
| 2145 [dict release]; | 2145 [dict release]; |
| 2146 } | 2146 } |
| 2147 | 2147 |
| 2148 @end | 2148 @end |
| 2149 | 2149 |
| 2150 //%PDDM-EXPAND TESTS_FOR_BOOL_KEY_OBJECT_VALUE(Object, id, @"abc", @"def") | 2150 //%PDDM-EXPAND TESTS_FOR_BOOL_KEY_OBJECT_VALUE(Object, NSString*, @"abc", @"def"
) |
| 2151 // This block of code is generated, do not edit it directly. | 2151 // This block of code is generated, do not edit it directly. |
| 2152 | 2152 |
| 2153 #pragma mark - Bool -> Object | 2153 #pragma mark - Bool -> Object |
| 2154 | 2154 |
| 2155 @interface GPBBoolObjectDictionaryTests : XCTestCase | 2155 @interface GPBBoolObjectDictionaryTests : XCTestCase |
| 2156 @end | 2156 @end |
| 2157 | 2157 |
| 2158 @implementation GPBBoolObjectDictionaryTests | 2158 @implementation GPBBoolObjectDictionaryTests |
| 2159 | 2159 |
| 2160 - (void)testEmpty { | 2160 - (void)testEmpty { |
| 2161 GPBBoolObjectDictionary *dict = [[GPBBoolObjectDictionary alloc] init]; | 2161 GPBBoolObjectDictionary<NSString*> *dict = [[GPBBoolObjectDictionary alloc] in
it]; |
| 2162 XCTAssertNotNil(dict); | 2162 XCTAssertNotNil(dict); |
| 2163 XCTAssertEqual(dict.count, 0U); | 2163 XCTAssertEqual(dict.count, 0U); |
| 2164 XCTAssertNil([dict objectForKey:YES]); | 2164 XCTAssertNil([dict objectForKey:YES]); |
| 2165 [dict enumerateKeysAndObjectsUsingBlock:^(BOOL aKey, id aObject, BOOL *stop) { | 2165 [dict enumerateKeysAndObjectsUsingBlock:^(BOOL aKey, NSString* aObject, BOOL *
stop) { |
| 2166 #pragma unused(aKey, aObject, stop) | 2166 #pragma unused(aKey, aObject, stop) |
| 2167 XCTFail(@"Shouldn't get here!"); | 2167 XCTFail(@"Shouldn't get here!"); |
| 2168 }]; | 2168 }]; |
| 2169 [dict release]; | 2169 [dict release]; |
| 2170 } | 2170 } |
| 2171 | 2171 |
| 2172 - (void)testOne { | 2172 - (void)testOne { |
| 2173 GPBBoolObjectDictionary *dict = [GPBBoolObjectDictionary dictionaryWithObject:
@"abc" forKey:YES]; | 2173 GPBBoolObjectDictionary<NSString*> *dict = [GPBBoolObjectDictionary dictionary
WithObject:@"abc" forKey:YES]; |
| 2174 XCTAssertNotNil(dict); | 2174 XCTAssertNotNil(dict); |
| 2175 XCTAssertEqual(dict.count, 1U); | 2175 XCTAssertEqual(dict.count, 1U); |
| 2176 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); | 2176 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); |
| 2177 XCTAssertNil([dict objectForKey:NO]); | 2177 XCTAssertNil([dict objectForKey:NO]); |
| 2178 [dict enumerateKeysAndObjectsUsingBlock:^(BOOL aKey, id aObject, BOOL *stop) { | 2178 [dict enumerateKeysAndObjectsUsingBlock:^(BOOL aKey, NSString* aObject, BOOL *
stop) { |
| 2179 XCTAssertEqual(aKey, YES); | 2179 XCTAssertEqual(aKey, YES); |
| 2180 XCTAssertEqualObjects(aObject, @"abc"); | 2180 XCTAssertEqualObjects(aObject, @"abc"); |
| 2181 XCTAssertNotEqual(stop, NULL); | 2181 XCTAssertNotEqual(stop, NULL); |
| 2182 }]; | 2182 }]; |
| 2183 } | 2183 } |
| 2184 | 2184 |
| 2185 - (void)testBasics { | 2185 - (void)testBasics { |
| 2186 const BOOL kKeys[] = { YES, NO }; | 2186 const BOOL kKeys[] = { YES, NO }; |
| 2187 const id kObjects[] = { @"abc", @"def" }; | 2187 const NSString* kObjects[] = { @"abc", @"def" }; |
| 2188 GPBBoolObjectDictionary *dict = | 2188 GPBBoolObjectDictionary<NSString*> *dict = |
| 2189 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects | 2189 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects |
| 2190 forKeys:kKeys | 2190 forKeys:kKeys |
| 2191 count:GPBARRAYSIZE(kObjects)]; | 2191 count:GPBARRAYSIZE(kObjects)]; |
| 2192 XCTAssertNotNil(dict); | 2192 XCTAssertNotNil(dict); |
| 2193 XCTAssertEqual(dict.count, 2U); | 2193 XCTAssertEqual(dict.count, 2U); |
| 2194 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); | 2194 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); |
| 2195 XCTAssertEqualObjects([dict objectForKey:NO], @"def"); | 2195 XCTAssertEqualObjects([dict objectForKey:NO], @"def"); |
| 2196 | 2196 |
| 2197 __block NSUInteger idx = 0; | 2197 __block NSUInteger idx = 0; |
| 2198 BOOL *seenKeys = malloc(2 * sizeof(BOOL)); | 2198 BOOL *seenKeys = malloc(2 * sizeof(BOOL)); |
| 2199 id *seenObjects = malloc(2 * sizeof(id)); | 2199 NSString* *seenObjects = malloc(2 * sizeof(NSString*)); |
| 2200 [dict enumerateKeysAndObjectsUsingBlock:^(BOOL aKey, id aObject, BOOL *stop) { | 2200 [dict enumerateKeysAndObjectsUsingBlock:^(BOOL aKey, NSString* aObject, BOOL *
stop) { |
| 2201 XCTAssertLessThan(idx, 2U); | 2201 XCTAssertLessThan(idx, 2U); |
| 2202 seenKeys[idx] = aKey; | 2202 seenKeys[idx] = aKey; |
| 2203 seenObjects[idx] = aObject; | 2203 seenObjects[idx] = aObject; |
| 2204 XCTAssertNotEqual(stop, NULL); | 2204 XCTAssertNotEqual(stop, NULL); |
| 2205 ++idx; | 2205 ++idx; |
| 2206 }]; | 2206 }]; |
| 2207 for (int i = 0; i < 2; ++i) { | 2207 for (int i = 0; i < 2; ++i) { |
| 2208 BOOL foundKey = NO; | 2208 BOOL foundKey = NO; |
| 2209 for (int j = 0; (j < 2) && !foundKey; ++j) { | 2209 for (int j = 0; (j < 2) && !foundKey; ++j) { |
| 2210 if (kKeys[i] == seenKeys[j]) { | 2210 if (kKeys[i] == seenKeys[j]) { |
| 2211 foundKey = YES; | 2211 foundKey = YES; |
| 2212 XCTAssertEqualObjects(kObjects[i], seenObjects[j], @"i = %d, j = %d", i,
j); | 2212 XCTAssertEqualObjects(kObjects[i], seenObjects[j], @"i = %d, j = %d", i,
j); |
| 2213 } | 2213 } |
| 2214 } | 2214 } |
| 2215 XCTAssertTrue(foundKey, @"i = %d", i); | 2215 XCTAssertTrue(foundKey, @"i = %d", i); |
| 2216 } | 2216 } |
| 2217 free(seenKeys); | 2217 free(seenKeys); |
| 2218 free(seenObjects); | 2218 free(seenObjects); |
| 2219 | 2219 |
| 2220 // Stopping the enumeration. | 2220 // Stopping the enumeration. |
| 2221 idx = 0; | 2221 idx = 0; |
| 2222 [dict enumerateKeysAndObjectsUsingBlock:^(BOOL aKey, id aObject, BOOL *stop) { | 2222 [dict enumerateKeysAndObjectsUsingBlock:^(BOOL aKey, NSString* aObject, BOOL *
stop) { |
| 2223 #pragma unused(aKey, aObject) | 2223 #pragma unused(aKey, aObject) |
| 2224 if (idx == 0) *stop = YES; | 2224 if (idx == 0) *stop = YES; |
| 2225 XCTAssertNotEqual(idx, 2U); | 2225 XCTAssertNotEqual(idx, 2U); |
| 2226 ++idx; | 2226 ++idx; |
| 2227 }]; | 2227 }]; |
| 2228 [dict release]; | 2228 [dict release]; |
| 2229 } | 2229 } |
| 2230 | 2230 |
| 2231 - (void)testEquality { | 2231 - (void)testEquality { |
| 2232 const BOOL kKeys1[] = { YES, NO }; | 2232 const BOOL kKeys1[] = { YES, NO }; |
| 2233 const BOOL kKeys2[] = { NO, YES }; | 2233 const BOOL kKeys2[] = { NO, YES }; |
| 2234 const id kObjects1[] = { @"abc", @"def" }; | 2234 const NSString* kObjects1[] = { @"abc", @"def" }; |
| 2235 const id kObjects2[] = { @"def", @"abc" }; | 2235 const NSString* kObjects2[] = { @"def", @"abc" }; |
| 2236 const id kObjects3[] = { @"def" }; | 2236 const NSString* kObjects3[] = { @"def" }; |
| 2237 GPBBoolObjectDictionary *dict1 = | 2237 GPBBoolObjectDictionary<NSString*> *dict1 = |
| 2238 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects1 | 2238 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects1 |
| 2239 forKeys:kKeys1 | 2239 forKeys:kKeys1 |
| 2240 count:GPBARRAYSIZE(kObjects1)]; | 2240 count:GPBARRAYSIZE(kObjects1)]; |
| 2241 XCTAssertNotNil(dict1); | 2241 XCTAssertNotNil(dict1); |
| 2242 GPBBoolObjectDictionary *dict1prime = | 2242 GPBBoolObjectDictionary<NSString*> *dict1prime = |
| 2243 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects1 | 2243 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects1 |
| 2244 forKeys:kKeys1 | 2244 forKeys:kKeys1 |
| 2245 count:GPBARRAYSIZE(kObjects1)]; | 2245 count:GPBARRAYSIZE(kObjects1)]; |
| 2246 XCTAssertNotNil(dict1prime); | 2246 XCTAssertNotNil(dict1prime); |
| 2247 GPBBoolObjectDictionary *dict2 = | 2247 GPBBoolObjectDictionary<NSString*> *dict2 = |
| 2248 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects2 | 2248 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects2 |
| 2249 forKeys:kKeys1 | 2249 forKeys:kKeys1 |
| 2250 count:GPBARRAYSIZE(kObjects2)]; | 2250 count:GPBARRAYSIZE(kObjects2)]; |
| 2251 XCTAssertNotNil(dict2); | 2251 XCTAssertNotNil(dict2); |
| 2252 GPBBoolObjectDictionary *dict3 = | 2252 GPBBoolObjectDictionary<NSString*> *dict3 = |
| 2253 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects1 | 2253 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects1 |
| 2254 forKeys:kKeys2 | 2254 forKeys:kKeys2 |
| 2255 count:GPBARRAYSIZE(kObjects1)]; | 2255 count:GPBARRAYSIZE(kObjects1)]; |
| 2256 XCTAssertNotNil(dict3); | 2256 XCTAssertNotNil(dict3); |
| 2257 GPBBoolObjectDictionary *dict4 = | 2257 GPBBoolObjectDictionary<NSString*> *dict4 = |
| 2258 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects3 | 2258 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects3 |
| 2259 forKeys:kKeys1 | 2259 forKeys:kKeys1 |
| 2260 count:GPBARRAYSIZE(kObjects3)]; | 2260 count:GPBARRAYSIZE(kObjects3)]; |
| 2261 XCTAssertNotNil(dict4); | 2261 XCTAssertNotNil(dict4); |
| 2262 | 2262 |
| 2263 // 1/1Prime should be different objects, but equal. | 2263 // 1/1Prime should be different objects, but equal. |
| 2264 XCTAssertNotEqual(dict1, dict1prime); | 2264 XCTAssertNotEqual(dict1, dict1prime); |
| 2265 XCTAssertEqualObjects(dict1, dict1prime); | 2265 XCTAssertEqualObjects(dict1, dict1prime); |
| 2266 // Equal, so they must have same hash. | 2266 // Equal, so they must have same hash. |
| 2267 XCTAssertEqual([dict1 hash], [dict1prime hash]); | 2267 XCTAssertEqual([dict1 hash], [dict1prime hash]); |
| 2268 | 2268 |
| 2269 // 2 is same keys, different objects; not equal. | 2269 // 2 is same keys, different objects; not equal. |
| 2270 XCTAssertNotEqualObjects(dict1, dict2); | 2270 XCTAssertNotEqualObjects(dict1, dict2); |
| 2271 | 2271 |
| 2272 // 3 is different keys, same objects; not equal. | 2272 // 3 is different keys, same objects; not equal. |
| 2273 XCTAssertNotEqualObjects(dict1, dict3); | 2273 XCTAssertNotEqualObjects(dict1, dict3); |
| 2274 | 2274 |
| 2275 // 4 Fewer pairs; not equal | 2275 // 4 Fewer pairs; not equal |
| 2276 XCTAssertNotEqualObjects(dict1, dict4); | 2276 XCTAssertNotEqualObjects(dict1, dict4); |
| 2277 | 2277 |
| 2278 [dict1 release]; | 2278 [dict1 release]; |
| 2279 [dict1prime release]; | 2279 [dict1prime release]; |
| 2280 [dict2 release]; | 2280 [dict2 release]; |
| 2281 [dict3 release]; | 2281 [dict3 release]; |
| 2282 [dict4 release]; | 2282 [dict4 release]; |
| 2283 } | 2283 } |
| 2284 | 2284 |
| 2285 - (void)testCopy { | 2285 - (void)testCopy { |
| 2286 const BOOL kKeys[] = { YES, NO }; | 2286 const BOOL kKeys[] = { YES, NO }; |
| 2287 const id kObjects[] = { @"abc", @"def" }; | 2287 const NSString* kObjects[] = { @"abc", @"def" }; |
| 2288 GPBBoolObjectDictionary *dict = | 2288 GPBBoolObjectDictionary<NSString*> *dict = |
| 2289 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects | 2289 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects |
| 2290 forKeys:kKeys | 2290 forKeys:kKeys |
| 2291 count:GPBARRAYSIZE(kObjects)]; | 2291 count:GPBARRAYSIZE(kObjects)]; |
| 2292 XCTAssertNotNil(dict); | 2292 XCTAssertNotNil(dict); |
| 2293 | 2293 |
| 2294 GPBBoolObjectDictionary *dict2 = [dict copy]; | 2294 GPBBoolObjectDictionary<NSString*> *dict2 = [dict copy]; |
| 2295 XCTAssertNotNil(dict2); | 2295 XCTAssertNotNil(dict2); |
| 2296 | 2296 |
| 2297 // Should be new object but equal. | 2297 // Should be new object but equal. |
| 2298 XCTAssertNotEqual(dict, dict2); | 2298 XCTAssertNotEqual(dict, dict2); |
| 2299 XCTAssertEqualObjects(dict, dict2); | 2299 XCTAssertEqualObjects(dict, dict2); |
| 2300 XCTAssertTrue([dict2 isKindOfClass:[GPBBoolObjectDictionary class]]); | 2300 XCTAssertTrue([dict2 isKindOfClass:[GPBBoolObjectDictionary class]]); |
| 2301 | 2301 |
| 2302 [dict2 release]; | 2302 [dict2 release]; |
| 2303 [dict release]; | 2303 [dict release]; |
| 2304 } | 2304 } |
| 2305 | 2305 |
| 2306 - (void)testDictionaryFromDictionary { | 2306 - (void)testDictionaryFromDictionary { |
| 2307 const BOOL kKeys[] = { YES, NO }; | 2307 const BOOL kKeys[] = { YES, NO }; |
| 2308 const id kObjects[] = { @"abc", @"def" }; | 2308 const NSString* kObjects[] = { @"abc", @"def" }; |
| 2309 GPBBoolObjectDictionary *dict = | 2309 GPBBoolObjectDictionary<NSString*> *dict = |
| 2310 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects | 2310 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects |
| 2311 forKeys:kKeys | 2311 forKeys:kKeys |
| 2312 count:GPBARRAYSIZE(kObjects)]; | 2312 count:GPBARRAYSIZE(kObjects)]; |
| 2313 XCTAssertNotNil(dict); | 2313 XCTAssertNotNil(dict); |
| 2314 | 2314 |
| 2315 GPBBoolObjectDictionary *dict2 = | 2315 GPBBoolObjectDictionary<NSString*> *dict2 = |
| 2316 [GPBBoolObjectDictionary dictionaryWithDictionary:dict]; | 2316 [GPBBoolObjectDictionary dictionaryWithDictionary:dict]; |
| 2317 XCTAssertNotNil(dict2); | 2317 XCTAssertNotNil(dict2); |
| 2318 | 2318 |
| 2319 // Should be new pointer, but equal objects. | 2319 // Should be new pointer, but equal objects. |
| 2320 XCTAssertNotEqual(dict, dict2); | 2320 XCTAssertNotEqual(dict, dict2); |
| 2321 XCTAssertEqualObjects(dict, dict2); | 2321 XCTAssertEqualObjects(dict, dict2); |
| 2322 [dict release]; | 2322 [dict release]; |
| 2323 } | 2323 } |
| 2324 | 2324 |
| 2325 - (void)testAdds { | 2325 - (void)testAdds { |
| 2326 GPBBoolObjectDictionary *dict = [GPBBoolObjectDictionary dictionary]; | 2326 GPBBoolObjectDictionary<NSString*> *dict = [GPBBoolObjectDictionary dictionary
]; |
| 2327 XCTAssertNotNil(dict); | 2327 XCTAssertNotNil(dict); |
| 2328 | 2328 |
| 2329 XCTAssertEqual(dict.count, 0U); | 2329 XCTAssertEqual(dict.count, 0U); |
| 2330 [dict setObject:@"abc" forKey:YES]; | 2330 [dict setObject:@"abc" forKey:YES]; |
| 2331 XCTAssertEqual(dict.count, 1U); | 2331 XCTAssertEqual(dict.count, 1U); |
| 2332 | 2332 |
| 2333 const BOOL kKeys[] = { NO }; | 2333 const BOOL kKeys[] = { NO }; |
| 2334 const id kObjects[] = { @"def" }; | 2334 const NSString* kObjects[] = { @"def" }; |
| 2335 GPBBoolObjectDictionary *dict2 = | 2335 GPBBoolObjectDictionary<NSString*> *dict2 = |
| 2336 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects | 2336 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects |
| 2337 forKeys:kKeys | 2337 forKeys:kKeys |
| 2338 count:GPBARRAYSIZE(kObjects)]; | 2338 count:GPBARRAYSIZE(kObjects)]; |
| 2339 XCTAssertNotNil(dict2); | 2339 XCTAssertNotNil(dict2); |
| 2340 [dict addEntriesFromDictionary:dict2]; | 2340 [dict addEntriesFromDictionary:dict2]; |
| 2341 XCTAssertEqual(dict.count, 2U); | 2341 XCTAssertEqual(dict.count, 2U); |
| 2342 | 2342 |
| 2343 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); | 2343 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); |
| 2344 XCTAssertEqualObjects([dict objectForKey:NO], @"def"); | 2344 XCTAssertEqualObjects([dict objectForKey:NO], @"def"); |
| 2345 [dict2 release]; | 2345 [dict2 release]; |
| 2346 } | 2346 } |
| 2347 | 2347 |
| 2348 - (void)testRemove { | 2348 - (void)testRemove { |
| 2349 const BOOL kKeys[] = { YES, NO}; | 2349 const BOOL kKeys[] = { YES, NO}; |
| 2350 const id kObjects[] = { @"abc", @"def" }; | 2350 const NSString* kObjects[] = { @"abc", @"def" }; |
| 2351 GPBBoolObjectDictionary *dict = | 2351 GPBBoolObjectDictionary<NSString*> *dict = |
| 2352 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects | 2352 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects |
| 2353 forKeys:kKeys | 2353 forKeys:kKeys |
| 2354 count:GPBARRAYSIZE(kObjects)]; | 2354 count:GPBARRAYSIZE(kObjects)]; |
| 2355 XCTAssertNotNil(dict); | 2355 XCTAssertNotNil(dict); |
| 2356 XCTAssertEqual(dict.count, 2U); | 2356 XCTAssertEqual(dict.count, 2U); |
| 2357 | 2357 |
| 2358 [dict removeObjectForKey:NO]; | 2358 [dict removeObjectForKey:NO]; |
| 2359 XCTAssertEqual(dict.count, 1U); | 2359 XCTAssertEqual(dict.count, 1U); |
| 2360 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); | 2360 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); |
| 2361 XCTAssertNil([dict objectForKey:NO]); | 2361 XCTAssertNil([dict objectForKey:NO]); |
| 2362 | 2362 |
| 2363 // Remove again does nothing. | 2363 // Remove again does nothing. |
| 2364 [dict removeObjectForKey:NO]; | 2364 [dict removeObjectForKey:NO]; |
| 2365 XCTAssertEqual(dict.count, 1U); | 2365 XCTAssertEqual(dict.count, 1U); |
| 2366 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); | 2366 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); |
| 2367 XCTAssertNil([dict objectForKey:NO]); | 2367 XCTAssertNil([dict objectForKey:NO]); |
| 2368 | 2368 |
| 2369 [dict removeAll]; | 2369 [dict removeAll]; |
| 2370 XCTAssertEqual(dict.count, 0U); | 2370 XCTAssertEqual(dict.count, 0U); |
| 2371 XCTAssertNil([dict objectForKey:YES]); | 2371 XCTAssertNil([dict objectForKey:YES]); |
| 2372 XCTAssertNil([dict objectForKey:NO]); | 2372 XCTAssertNil([dict objectForKey:NO]); |
| 2373 [dict release]; | 2373 [dict release]; |
| 2374 } | 2374 } |
| 2375 | 2375 |
| 2376 - (void)testInplaceMutation { | 2376 - (void)testInplaceMutation { |
| 2377 const BOOL kKeys[] = { YES, NO }; | 2377 const BOOL kKeys[] = { YES, NO }; |
| 2378 const id kObjects[] = { @"abc", @"def" }; | 2378 const NSString* kObjects[] = { @"abc", @"def" }; |
| 2379 GPBBoolObjectDictionary *dict = | 2379 GPBBoolObjectDictionary<NSString*> *dict = |
| 2380 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects | 2380 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects |
| 2381 forKeys:kKeys | 2381 forKeys:kKeys |
| 2382 count:GPBARRAYSIZE(kObjects)]; | 2382 count:GPBARRAYSIZE(kObjects)]; |
| 2383 XCTAssertNotNil(dict); | 2383 XCTAssertNotNil(dict); |
| 2384 XCTAssertEqual(dict.count, 2U); | 2384 XCTAssertEqual(dict.count, 2U); |
| 2385 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); | 2385 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); |
| 2386 XCTAssertEqualObjects([dict objectForKey:NO], @"def"); | 2386 XCTAssertEqualObjects([dict objectForKey:NO], @"def"); |
| 2387 | 2387 |
| 2388 [dict setObject:@"def" forKey:YES]; | 2388 [dict setObject:@"def" forKey:YES]; |
| 2389 XCTAssertEqual(dict.count, 2U); | 2389 XCTAssertEqual(dict.count, 2U); |
| 2390 XCTAssertEqualObjects([dict objectForKey:YES], @"def"); | 2390 XCTAssertEqualObjects([dict objectForKey:YES], @"def"); |
| 2391 XCTAssertEqualObjects([dict objectForKey:NO], @"def"); | 2391 XCTAssertEqualObjects([dict objectForKey:NO], @"def"); |
| 2392 | 2392 |
| 2393 [dict setObject:@"abc" forKey:NO]; | 2393 [dict setObject:@"abc" forKey:NO]; |
| 2394 XCTAssertEqual(dict.count, 2U); | 2394 XCTAssertEqual(dict.count, 2U); |
| 2395 XCTAssertEqualObjects([dict objectForKey:YES], @"def"); | 2395 XCTAssertEqualObjects([dict objectForKey:YES], @"def"); |
| 2396 XCTAssertEqualObjects([dict objectForKey:NO], @"abc"); | 2396 XCTAssertEqualObjects([dict objectForKey:NO], @"abc"); |
| 2397 | 2397 |
| 2398 const BOOL kKeys2[] = { NO, YES }; | 2398 const BOOL kKeys2[] = { NO, YES }; |
| 2399 const id kObjects2[] = { @"def", @"abc" }; | 2399 const NSString* kObjects2[] = { @"def", @"abc" }; |
| 2400 GPBBoolObjectDictionary *dict2 = | 2400 GPBBoolObjectDictionary<NSString*> *dict2 = |
| 2401 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects2 | 2401 [[GPBBoolObjectDictionary alloc] initWithObjects:kObjects2 |
| 2402 forKeys:kKeys2 | 2402 forKeys:kKeys2 |
| 2403 count:GPBARRAYSIZE(kObjects2)]; | 2403 count:GPBARRAYSIZE(kObjects2)]; |
| 2404 XCTAssertNotNil(dict2); | 2404 XCTAssertNotNil(dict2); |
| 2405 [dict addEntriesFromDictionary:dict2]; | 2405 [dict addEntriesFromDictionary:dict2]; |
| 2406 XCTAssertEqual(dict.count, 2U); | 2406 XCTAssertEqual(dict.count, 2U); |
| 2407 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); | 2407 XCTAssertEqualObjects([dict objectForKey:YES], @"abc"); |
| 2408 XCTAssertEqualObjects([dict objectForKey:NO], @"def"); | 2408 XCTAssertEqualObjects([dict objectForKey:NO], @"def"); |
| 2409 | 2409 |
| 2410 [dict2 release]; | 2410 [dict2 release]; |
| 2411 [dict release]; | 2411 [dict release]; |
| 2412 } | 2412 } |
| 2413 | 2413 |
| 2414 @end | 2414 @end |
| 2415 | 2415 |
| 2416 //%PDDM-EXPAND-END (8 expansions) | 2416 //%PDDM-EXPAND-END (8 expansions) |
| 2417 | 2417 |
| 2418 | 2418 |
| OLD | NEW |