diff options
author | Jon Wall <jonwall@google.com> | 2016-05-26 12:23:41 -0400 |
---|---|---|
committer | Jon Wall <jonwall@google.com> | 2016-05-26 12:23:41 -0400 |
commit | e72805ec5ed69b243dd5e80a689ee82327a5f21c (patch) | |
tree | 8454d05663c5421b270e0d6cc9ab1d4cd3df834a /objectivec/Tests | |
parent | 0f27cab4fb378b94a91c2b1522174ec21719df9d (diff) |
fix expected class checking in GPBSetMessageRepeatedField
This is currently checking for the wrong class for enums
and NSMutableArray fields.
Diffstat (limited to 'objectivec/Tests')
-rw-r--r-- | objectivec/Tests/GPBUtilitiesTests.m | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/objectivec/Tests/GPBUtilitiesTests.m b/objectivec/Tests/GPBUtilitiesTests.m index ba1fc270..dfaca660 100644 --- a/objectivec/Tests/GPBUtilitiesTests.m +++ b/objectivec/Tests/GPBUtilitiesTests.m @@ -170,4 +170,31 @@ // TODO(thomasvl): add test with extensions once those format with correct names. +- (void)testSetRepeatedFields { + TestAllTypes *message = [TestAllTypes message]; + + NSDictionary *repeatedFieldValues = @{ + @"repeatedStringArray" : [@[@"foo", @"bar"] mutableCopy], + @"repeatedBoolArray" : [GPBBoolArray arrayWithValue:YES], + @"repeatedInt32Array" : [GPBInt32Array arrayWithValue:14], + @"repeatedInt64Array" : [GPBInt64Array arrayWithValue:15], + @"repeatedUint32Array" : [GPBUInt32Array arrayWithValue:16], + @"repeatedUint64Array" : [GPBUInt64Array arrayWithValue:16], + @"repeatedFloatArray" : [GPBFloatArray arrayWithValue:16], + @"repeatedDoubleArray" : [GPBDoubleArray arrayWithValue:16], + @"repeatedNestedEnumArray" : + [GPBEnumArray arrayWithValidationFunction:TestAllTypes_NestedEnum_IsValidValue + rawValue:TestAllTypes_NestedEnum_Foo], + }; + for (NSString *fieldName in repeatedFieldValues) { + GPBFieldDescriptor *field = + [message.descriptor fieldWithName:fieldName]; + XCTAssertNotNil(field, @"No field with name: %@", fieldName); + id expectedValues = repeatedFieldValues[fieldName]; + GPBSetMessageRepeatedField(message, field, expectedValues); + XCTAssertEqualObjects(expectedValues, + [message valueForKeyPath:fieldName]); + } +} + @end |