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 |