1ffe3c632Sopenharmony_ci// Protocol Buffers - Google's data interchange format 2ffe3c632Sopenharmony_ci// Copyright 2008 Google Inc. All rights reserved. 3ffe3c632Sopenharmony_ci// https://developers.google.com/protocol-buffers/ 4ffe3c632Sopenharmony_ci// 5ffe3c632Sopenharmony_ci// Redistribution and use in source and binary forms, with or without 6ffe3c632Sopenharmony_ci// modification, are permitted provided that the following conditions are 7ffe3c632Sopenharmony_ci// met: 8ffe3c632Sopenharmony_ci// 9ffe3c632Sopenharmony_ci// * Redistributions of source code must retain the above copyright 10ffe3c632Sopenharmony_ci// notice, this list of conditions and the following disclaimer. 11ffe3c632Sopenharmony_ci// * Redistributions in binary form must reproduce the above 12ffe3c632Sopenharmony_ci// copyright notice, this list of conditions and the following disclaimer 13ffe3c632Sopenharmony_ci// in the documentation and/or other materials provided with the 14ffe3c632Sopenharmony_ci// distribution. 15ffe3c632Sopenharmony_ci// * Neither the name of Google Inc. nor the names of its 16ffe3c632Sopenharmony_ci// contributors may be used to endorse or promote products derived from 17ffe3c632Sopenharmony_ci// this software without specific prior written permission. 18ffe3c632Sopenharmony_ci// 19ffe3c632Sopenharmony_ci// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20ffe3c632Sopenharmony_ci// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21ffe3c632Sopenharmony_ci// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22ffe3c632Sopenharmony_ci// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23ffe3c632Sopenharmony_ci// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24ffe3c632Sopenharmony_ci// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25ffe3c632Sopenharmony_ci// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26ffe3c632Sopenharmony_ci// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27ffe3c632Sopenharmony_ci// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28ffe3c632Sopenharmony_ci// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29ffe3c632Sopenharmony_ci// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30ffe3c632Sopenharmony_ci 31ffe3c632Sopenharmony_ci#import "GPBTestUtilities.h" 32ffe3c632Sopenharmony_ci 33ffe3c632Sopenharmony_ci#import "google/protobuf/MapUnittest.pbobjc.h" 34ffe3c632Sopenharmony_ci#import "google/protobuf/Unittest.pbobjc.h" 35ffe3c632Sopenharmony_ci#import "google/protobuf/UnittestImport.pbobjc.h" 36ffe3c632Sopenharmony_ci 37ffe3c632Sopenharmony_ciconst uint32_t kGPBDefaultRepeatCount = 2; 38ffe3c632Sopenharmony_ci 39ffe3c632Sopenharmony_ci// Small category to easily turn a CString into an NSData. 40ffe3c632Sopenharmony_ci@interface NSData (GPBTestCase) 41ffe3c632Sopenharmony_ci+ (NSData *)gpbtu_dataWithCString:(char *)buffer; 42ffe3c632Sopenharmony_ci+ (instancetype)gpbtu_dataWithEmbeddedNulls; 43ffe3c632Sopenharmony_ci@end 44ffe3c632Sopenharmony_ci 45ffe3c632Sopenharmony_ci@implementation NSData (GPBTestCase) 46ffe3c632Sopenharmony_ci+ (NSData *)gpbtu_dataWithCString:(char *)buffer { 47ffe3c632Sopenharmony_ci return [NSData dataWithBytes:buffer length:strlen(buffer)]; 48ffe3c632Sopenharmony_ci} 49ffe3c632Sopenharmony_ci 50ffe3c632Sopenharmony_ci+ (instancetype)gpbtu_dataWithUint32:(uint32_t)value { 51ffe3c632Sopenharmony_ci return [[[self alloc] initWithUint32_gpbtu:value] autorelease]; 52ffe3c632Sopenharmony_ci} 53ffe3c632Sopenharmony_ci 54ffe3c632Sopenharmony_ci- (instancetype)initWithUint32_gpbtu:(uint32_t)value { 55ffe3c632Sopenharmony_ci value = CFSwapInt32HostToLittle(value); 56ffe3c632Sopenharmony_ci return [self initWithBytes:&value length:sizeof(value)]; 57ffe3c632Sopenharmony_ci} 58ffe3c632Sopenharmony_ci 59ffe3c632Sopenharmony_ci+ (instancetype)gpbtu_dataWithEmbeddedNulls { 60ffe3c632Sopenharmony_ci char bytes[6] = "\1\0\2\3\0\5"; 61ffe3c632Sopenharmony_ci return [self dataWithBytes:bytes length:sizeof(bytes)]; 62ffe3c632Sopenharmony_ci} 63ffe3c632Sopenharmony_ci@end 64ffe3c632Sopenharmony_ci 65ffe3c632Sopenharmony_ci@implementation GPBTestCase 66ffe3c632Sopenharmony_ci 67ffe3c632Sopenharmony_ci// Return data for name. Optionally (based on #if setting) write out dataToWrite 68ffe3c632Sopenharmony_ci// to replace that data. Useful for setting golden masters. 69ffe3c632Sopenharmony_ci- (NSData *)getDataFileNamed:(NSString *)name 70ffe3c632Sopenharmony_ci dataToWrite:(NSData *)dataToWrite { 71ffe3c632Sopenharmony_ci NSBundle *bundle = [NSBundle bundleForClass:[self class]]; 72ffe3c632Sopenharmony_ci NSString *path = [bundle pathForResource:[name stringByDeletingPathExtension] 73ffe3c632Sopenharmony_ci ofType:[name pathExtension]]; 74ffe3c632Sopenharmony_ci XCTAssertNotNil(path, @"Unable to find %@", name); 75ffe3c632Sopenharmony_ci NSData *data = [NSData dataWithContentsOfFile:path]; 76ffe3c632Sopenharmony_ci XCTAssertNotNil(data, @"Unable to load from %@", path); 77ffe3c632Sopenharmony_ci#if 0 78ffe3c632Sopenharmony_ci // Enable to write out golden master files. 79ffe3c632Sopenharmony_ci if (!path) { 80ffe3c632Sopenharmony_ci path = [[bundle resourcePath] stringByAppendingPathComponent:name]; 81ffe3c632Sopenharmony_ci } 82ffe3c632Sopenharmony_ci NSError *error = nil; 83ffe3c632Sopenharmony_ci BOOL wrote = [dataToWrite writeToFile:path options:NSDataWritingAtomic error:&error]; 84ffe3c632Sopenharmony_ci XCTAssertTrue(wrote, @"Unable to write %@ (%@)", path, error); 85ffe3c632Sopenharmony_ci NSLog(@"Wrote data file to %@", path); 86ffe3c632Sopenharmony_ci#else 87ffe3c632Sopenharmony_ci // Kill off the unused variable warning. 88ffe3c632Sopenharmony_ci (void)dataToWrite; 89ffe3c632Sopenharmony_ci#endif 90ffe3c632Sopenharmony_ci return data; 91ffe3c632Sopenharmony_ci} 92ffe3c632Sopenharmony_ci 93ffe3c632Sopenharmony_ci// ------------------------------------------------------------------- 94ffe3c632Sopenharmony_ci 95ffe3c632Sopenharmony_ci- (void)modifyRepeatedExtensions:(TestAllExtensions *)message { 96ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedInt32Extension] 97ffe3c632Sopenharmony_ci index:1 98ffe3c632Sopenharmony_ci value:@501]; 99ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedInt64Extension] 100ffe3c632Sopenharmony_ci index:1 101ffe3c632Sopenharmony_ci value:@502]; 102ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedUint32Extension] 103ffe3c632Sopenharmony_ci index:1 104ffe3c632Sopenharmony_ci value:@503]; 105ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedUint64Extension] 106ffe3c632Sopenharmony_ci index:1 107ffe3c632Sopenharmony_ci value:@504]; 108ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedSint32Extension] 109ffe3c632Sopenharmony_ci index:1 110ffe3c632Sopenharmony_ci value:@505]; 111ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedSint64Extension] 112ffe3c632Sopenharmony_ci index:1 113ffe3c632Sopenharmony_ci value:@506]; 114ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedFixed32Extension] 115ffe3c632Sopenharmony_ci index:1 116ffe3c632Sopenharmony_ci value:@507]; 117ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedFixed64Extension] 118ffe3c632Sopenharmony_ci index:1 119ffe3c632Sopenharmony_ci value:@508]; 120ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedSfixed32Extension] 121ffe3c632Sopenharmony_ci index:1 122ffe3c632Sopenharmony_ci value:@509]; 123ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedSfixed64Extension] 124ffe3c632Sopenharmony_ci index:1 125ffe3c632Sopenharmony_ci value:@510]; 126ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedFloatExtension] 127ffe3c632Sopenharmony_ci index:1 128ffe3c632Sopenharmony_ci value:@511.0f]; 129ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedDoubleExtension] 130ffe3c632Sopenharmony_ci index:1 131ffe3c632Sopenharmony_ci value:@512.0]; 132ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedBoolExtension] 133ffe3c632Sopenharmony_ci index:1 134ffe3c632Sopenharmony_ci value:@YES]; 135ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedStringExtension] 136ffe3c632Sopenharmony_ci index:1 137ffe3c632Sopenharmony_ci value:@"515"]; 138ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedBytesExtension] 139ffe3c632Sopenharmony_ci index:1 140ffe3c632Sopenharmony_ci value:[NSData gpbtu_dataWithUint32:516]]; 141ffe3c632Sopenharmony_ci 142ffe3c632Sopenharmony_ci RepeatedGroup_extension *repeatedGroup = [RepeatedGroup_extension message]; 143ffe3c632Sopenharmony_ci [repeatedGroup setA:517]; 144ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedGroupExtension] 145ffe3c632Sopenharmony_ci index:1 146ffe3c632Sopenharmony_ci value:repeatedGroup]; 147ffe3c632Sopenharmony_ci TestAllTypes_NestedMessage *nestedMessage = 148ffe3c632Sopenharmony_ci [TestAllTypes_NestedMessage message]; 149ffe3c632Sopenharmony_ci [nestedMessage setBb:518]; 150ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedNestedMessageExtension] 151ffe3c632Sopenharmony_ci index:1 152ffe3c632Sopenharmony_ci value:nestedMessage]; 153ffe3c632Sopenharmony_ci ForeignMessage *foreignMessage = [ForeignMessage message]; 154ffe3c632Sopenharmony_ci [foreignMessage setC:519]; 155ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedForeignMessageExtension] 156ffe3c632Sopenharmony_ci index:1 157ffe3c632Sopenharmony_ci value:foreignMessage]; 158ffe3c632Sopenharmony_ci ImportMessage *importMessage = [ImportMessage message]; 159ffe3c632Sopenharmony_ci [importMessage setD:520]; 160ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedImportMessageExtension] 161ffe3c632Sopenharmony_ci index:1 162ffe3c632Sopenharmony_ci value:importMessage]; 163ffe3c632Sopenharmony_ci 164ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedNestedEnumExtension] 165ffe3c632Sopenharmony_ci index:1 166ffe3c632Sopenharmony_ci value:@(TestAllTypes_NestedEnum_Foo)]; 167ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedForeignEnumExtension] 168ffe3c632Sopenharmony_ci index:1 169ffe3c632Sopenharmony_ci value:@(ForeignEnum_ForeignFoo)]; 170ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedImportEnumExtension] 171ffe3c632Sopenharmony_ci index:1 172ffe3c632Sopenharmony_ci value:@(ImportEnum_ImportFoo)]; 173ffe3c632Sopenharmony_ci 174ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedStringPieceExtension] 175ffe3c632Sopenharmony_ci index:1 176ffe3c632Sopenharmony_ci value:@"524"]; 177ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot repeatedCordExtension] 178ffe3c632Sopenharmony_ci index:1 179ffe3c632Sopenharmony_ci value:@"525"]; 180ffe3c632Sopenharmony_ci} 181ffe3c632Sopenharmony_ci 182ffe3c632Sopenharmony_ci- (void)assertAllExtensionsSet:(TestAllExtensions *)message 183ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 184ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalInt32Extension]]); 185ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalInt64Extension]]); 186ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalUint32Extension]]); 187ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalUint64Extension]]); 188ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalSint32Extension]]); 189ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalSint64Extension]]); 190ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalFixed32Extension]]); 191ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalFixed64Extension]]); 192ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalSfixed32Extension]]); 193ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalSfixed64Extension]]); 194ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalFloatExtension]]); 195ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalDoubleExtension]]); 196ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalBoolExtension]]); 197ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalStringExtension]]); 198ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalBytesExtension]]); 199ffe3c632Sopenharmony_ci 200ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalGroupExtension]]); 201ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalNestedMessageExtension]]); 202ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalForeignMessageExtension]]); 203ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalImportMessageExtension]]); 204ffe3c632Sopenharmony_ci 205ffe3c632Sopenharmony_ci XCTAssertTrue([[message getExtension:[UnittestRoot optionalGroupExtension]] hasA]); 206ffe3c632Sopenharmony_ci XCTAssertTrue([[message getExtension:[UnittestRoot optionalNestedMessageExtension]] hasBb]); 207ffe3c632Sopenharmony_ci XCTAssertTrue([[message getExtension:[UnittestRoot optionalForeignMessageExtension]] hasC]); 208ffe3c632Sopenharmony_ci XCTAssertTrue([[message getExtension:[UnittestRoot optionalImportMessageExtension]] hasD]); 209ffe3c632Sopenharmony_ci 210ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalNestedEnumExtension]]); 211ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalForeignEnumExtension]]); 212ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalImportEnumExtension]]); 213ffe3c632Sopenharmony_ci 214ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalStringPieceExtension]]); 215ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot optionalCordExtension]]); 216ffe3c632Sopenharmony_ci 217ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultInt32Extension]]); 218ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultInt64Extension]]); 219ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultUint32Extension]]); 220ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultUint64Extension]]); 221ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultSint32Extension]]); 222ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultSint64Extension]]); 223ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultFixed32Extension]]); 224ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultFixed64Extension]]); 225ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultSfixed32Extension]]); 226ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultSfixed64Extension]]); 227ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultFloatExtension]]); 228ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultDoubleExtension]]); 229ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultBoolExtension]]); 230ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultStringExtension]]); 231ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultBytesExtension]]); 232ffe3c632Sopenharmony_ci 233ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultNestedEnumExtension]]); 234ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultForeignEnumExtension]]); 235ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultImportEnumExtension]]); 236ffe3c632Sopenharmony_ci 237ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultStringPieceExtension]]); 238ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultCordExtension]]); 239ffe3c632Sopenharmony_ci 240ffe3c632Sopenharmony_ci XCTAssertEqual(101, [[message getExtension:[UnittestRoot optionalInt32Extension]] intValue]); 241ffe3c632Sopenharmony_ci XCTAssertEqual(102LL, [[message getExtension:[UnittestRoot optionalInt64Extension]] longLongValue]); 242ffe3c632Sopenharmony_ci XCTAssertEqual(103U, [[message getExtension:[UnittestRoot optionalUint32Extension]] unsignedIntValue]); 243ffe3c632Sopenharmony_ci XCTAssertEqual(104ULL, [[message getExtension:[UnittestRoot optionalUint64Extension]] unsignedLongLongValue]); 244ffe3c632Sopenharmony_ci XCTAssertEqual(105, [[message getExtension:[UnittestRoot optionalSint32Extension]] intValue]); 245ffe3c632Sopenharmony_ci XCTAssertEqual(106LL, [[message getExtension:[UnittestRoot optionalSint64Extension]] longLongValue]); 246ffe3c632Sopenharmony_ci XCTAssertEqual(107U, [[message getExtension:[UnittestRoot optionalFixed32Extension]] unsignedIntValue]); 247ffe3c632Sopenharmony_ci XCTAssertEqual(108ULL, [[message getExtension:[UnittestRoot optionalFixed64Extension]] unsignedLongLongValue]); 248ffe3c632Sopenharmony_ci XCTAssertEqual(109, [[message getExtension:[UnittestRoot optionalSfixed32Extension]] intValue]); 249ffe3c632Sopenharmony_ci XCTAssertEqual(110LL, [[message getExtension:[UnittestRoot optionalSfixed64Extension]] longLongValue]); 250ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(111.0f, [[message getExtension:[UnittestRoot optionalFloatExtension]] floatValue], 0.01); 251ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(112.0, [[message getExtension:[UnittestRoot optionalDoubleExtension]] doubleValue], 0.01); 252ffe3c632Sopenharmony_ci XCTAssertTrue([[message getExtension:[UnittestRoot optionalBoolExtension]] boolValue]); 253ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"115", [message getExtension:[UnittestRoot optionalStringExtension]]); 254ffe3c632Sopenharmony_ci XCTAssertEqualObjects([NSData gpbtu_dataWithEmbeddedNulls], [message getExtension:[UnittestRoot optionalBytesExtension]]); 255ffe3c632Sopenharmony_ci 256ffe3c632Sopenharmony_ci XCTAssertEqual(117, [(TestAllTypes_OptionalGroup*)[message getExtension:[UnittestRoot optionalGroupExtension]] a]); 257ffe3c632Sopenharmony_ci XCTAssertEqual(118, [(TestAllTypes_NestedMessage*)[message getExtension:[UnittestRoot optionalNestedMessageExtension]] bb]); 258ffe3c632Sopenharmony_ci XCTAssertEqual(119, [[message getExtension:[UnittestRoot optionalForeignMessageExtension]] c]); 259ffe3c632Sopenharmony_ci XCTAssertEqual(120, [[message getExtension:[UnittestRoot optionalImportMessageExtension]] d]); 260ffe3c632Sopenharmony_ci 261ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Baz, [[message getExtension:[UnittestRoot optionalNestedEnumExtension]] intValue]); 262ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignBaz, [[message getExtension:[UnittestRoot optionalForeignEnumExtension]] intValue]); 263ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportBaz, [[message getExtension:[UnittestRoot optionalImportEnumExtension]] intValue]); 264ffe3c632Sopenharmony_ci 265ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"124", [message getExtension:[UnittestRoot optionalStringPieceExtension]]); 266ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"125", [message getExtension:[UnittestRoot optionalCordExtension]]); 267ffe3c632Sopenharmony_ci 268ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 269ffe3c632Sopenharmony_ci 270ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedInt32Extension]] count]); 271ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedInt64Extension]] count]); 272ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedUint32Extension]] count]); 273ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedUint64Extension]] count]); 274ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedSint32Extension]] count]); 275ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedSint64Extension]] count]); 276ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedFixed32Extension]] count]); 277ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedFixed64Extension]] count]); 278ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedSfixed32Extension]] count]); 279ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedSfixed64Extension]] count]); 280ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedFloatExtension]] count]); 281ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedDoubleExtension]] count]); 282ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedBoolExtension]] count]); 283ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedStringExtension]] count]); 284ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedBytesExtension]] count]); 285ffe3c632Sopenharmony_ci 286ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedGroupExtension]] count]); 287ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedNestedMessageExtension]] count]); 288ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedForeignMessageExtension]] count]); 289ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedImportMessageExtension]] count]); 290ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedNestedEnumExtension]] count]); 291ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedForeignEnumExtension]] count]); 292ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedImportEnumExtension]] count]); 293ffe3c632Sopenharmony_ci 294ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedStringPieceExtension]] count]); 295ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedCordExtension]] count]); 296ffe3c632Sopenharmony_ci 297ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 298ffe3c632Sopenharmony_ci id extension = [message getExtension:[UnittestRoot repeatedInt32Extension]]; 299ffe3c632Sopenharmony_ci XCTAssertEqual((int)(201 + i * 100), [extension[i] intValue]); 300ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedInt64Extension]]; 301ffe3c632Sopenharmony_ci XCTAssertEqual(202 + i * 100, [extension[i] longLongValue]); 302ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedUint32Extension]]; 303ffe3c632Sopenharmony_ci XCTAssertEqual(203 + i * 100, [extension[i] unsignedIntValue]); 304ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedUint64Extension]]; 305ffe3c632Sopenharmony_ci XCTAssertEqual(204 + i * 100, [extension[i] unsignedLongLongValue]); 306ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedSint32Extension]]; 307ffe3c632Sopenharmony_ci XCTAssertEqual((int)(205 + i * 100), [extension[i] intValue]); 308ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedSint64Extension]]; 309ffe3c632Sopenharmony_ci XCTAssertEqual(206 + i * 100, [extension[i] longLongValue]); 310ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedFixed32Extension]]; 311ffe3c632Sopenharmony_ci XCTAssertEqual(207 + i * 100, [extension[i] unsignedIntValue]); 312ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedFixed64Extension]]; 313ffe3c632Sopenharmony_ci XCTAssertEqual(208 + i * 100, [extension[i] unsignedLongLongValue]); 314ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedSfixed32Extension]]; 315ffe3c632Sopenharmony_ci XCTAssertEqual((int)(209 + i * 100), [extension[i] intValue]); 316ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedSfixed64Extension]]; 317ffe3c632Sopenharmony_ci XCTAssertEqual(210 + i * 100, [extension[i] longLongValue]); 318ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedFloatExtension]]; 319ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(211 + i * 100, [extension[i] floatValue], 0.01); 320ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedDoubleExtension]]; 321ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(212 + i * 100, [extension[i] doubleValue], 0.01); 322ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedBoolExtension]]; 323ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? YES : NO, [extension[i] boolValue]); 324ffe3c632Sopenharmony_ci 325ffe3c632Sopenharmony_ci NSString *string = [[NSString alloc] initWithFormat:@"%d", 215 + i * 100]; 326ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedStringExtension]]; 327ffe3c632Sopenharmony_ci XCTAssertEqualObjects(string, extension[i]); 328ffe3c632Sopenharmony_ci [string release]; 329ffe3c632Sopenharmony_ci 330ffe3c632Sopenharmony_ci NSData *data = [[NSData alloc] initWithUint32_gpbtu:216 + i * 100]; 331ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedBytesExtension]]; 332ffe3c632Sopenharmony_ci XCTAssertEqualObjects(data, extension[i]); 333ffe3c632Sopenharmony_ci [data release]; 334ffe3c632Sopenharmony_ci 335ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedGroupExtension]]; 336ffe3c632Sopenharmony_ci XCTAssertEqual((int)(217 + i * 100), [(TestAllTypes_OptionalGroup*)extension[i] a]); 337ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedNestedMessageExtension]]; 338ffe3c632Sopenharmony_ci XCTAssertEqual((int)(218 + i * 100), [(TestAllTypes_NestedMessage*)extension[i] bb]); 339ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedForeignMessageExtension]]; 340ffe3c632Sopenharmony_ci XCTAssertEqual((int)(219 + i * 100), [extension[i] c]); 341ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedImportMessageExtension]]; 342ffe3c632Sopenharmony_ci XCTAssertEqual((int)(220 + i * 100), [extension[i] d]); 343ffe3c632Sopenharmony_ci 344ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedNestedEnumExtension]]; 345ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? TestAllTypes_NestedEnum_Bar : TestAllTypes_NestedEnum_Baz, [extension[i] intValue]); 346ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedForeignEnumExtension]]; 347ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? ForeignEnum_ForeignBar : ForeignEnum_ForeignBaz, [extension[i] intValue]); 348ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedImportEnumExtension]]; 349ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? ImportEnum_ImportBar : ImportEnum_ImportBaz, [extension[i] intValue]); 350ffe3c632Sopenharmony_ci 351ffe3c632Sopenharmony_ci string = [[NSString alloc] initWithFormat:@"%d", 224 + i * 100]; 352ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedStringPieceExtension]]; 353ffe3c632Sopenharmony_ci XCTAssertEqualObjects(string, extension[i]); 354ffe3c632Sopenharmony_ci [string release]; 355ffe3c632Sopenharmony_ci 356ffe3c632Sopenharmony_ci string = [[NSString alloc] initWithFormat:@"%d", 225 + i * 100]; 357ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot repeatedCordExtension]]; 358ffe3c632Sopenharmony_ci XCTAssertEqualObjects(string, extension[i]); 359ffe3c632Sopenharmony_ci [string release]; 360ffe3c632Sopenharmony_ci } 361ffe3c632Sopenharmony_ci 362ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 363ffe3c632Sopenharmony_ci 364ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultInt32Extension]]); 365ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultInt64Extension]]); 366ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultUint32Extension]]); 367ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultUint64Extension]]); 368ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultSint32Extension]]); 369ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultSint64Extension]]); 370ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultFixed32Extension]]); 371ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultFixed64Extension]]); 372ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultSfixed32Extension]]); 373ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultSfixed64Extension]]); 374ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultFloatExtension]]); 375ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultDoubleExtension]]); 376ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultBoolExtension]]); 377ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultStringExtension]]); 378ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultBytesExtension]]); 379ffe3c632Sopenharmony_ci 380ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultNestedEnumExtension]]); 381ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultForeignEnumExtension]]); 382ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultImportEnumExtension]]); 383ffe3c632Sopenharmony_ci 384ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultStringPieceExtension]]); 385ffe3c632Sopenharmony_ci XCTAssertTrue([message hasExtension:[UnittestRoot defaultCordExtension]]); 386ffe3c632Sopenharmony_ci 387ffe3c632Sopenharmony_ci XCTAssertEqual(401, [[message getExtension:[UnittestRoot defaultInt32Extension]] intValue]); 388ffe3c632Sopenharmony_ci XCTAssertEqual(402LL, [[message getExtension:[UnittestRoot defaultInt64Extension]] longLongValue]); 389ffe3c632Sopenharmony_ci XCTAssertEqual(403U, [[message getExtension:[UnittestRoot defaultUint32Extension]] unsignedIntValue]); 390ffe3c632Sopenharmony_ci XCTAssertEqual(404ULL, [[message getExtension:[UnittestRoot defaultUint64Extension]] unsignedLongLongValue]); 391ffe3c632Sopenharmony_ci XCTAssertEqual(405, [[message getExtension:[UnittestRoot defaultSint32Extension]] intValue]); 392ffe3c632Sopenharmony_ci XCTAssertEqual(406LL, [[message getExtension:[UnittestRoot defaultSint64Extension]] longLongValue]); 393ffe3c632Sopenharmony_ci XCTAssertEqual(407U, [[message getExtension:[UnittestRoot defaultFixed32Extension]] unsignedIntValue]); 394ffe3c632Sopenharmony_ci XCTAssertEqual(408ULL, [[message getExtension:[UnittestRoot defaultFixed64Extension]] unsignedLongLongValue]); 395ffe3c632Sopenharmony_ci XCTAssertEqual(409, [[message getExtension:[UnittestRoot defaultSfixed32Extension]] intValue]); 396ffe3c632Sopenharmony_ci XCTAssertEqual(410LL,[[message getExtension:[UnittestRoot defaultSfixed64Extension]] longLongValue]); 397ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(411.0f, [[message getExtension:[UnittestRoot defaultFloatExtension]] floatValue], 0.01); 398ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(412.0, [[message getExtension:[UnittestRoot defaultDoubleExtension]] doubleValue], 0.01); 399ffe3c632Sopenharmony_ci XCTAssertFalse([[message getExtension:[UnittestRoot defaultBoolExtension]] boolValue]); 400ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"415", [message getExtension:[UnittestRoot defaultStringExtension]]); 401ffe3c632Sopenharmony_ci XCTAssertEqualObjects([NSData gpbtu_dataWithUint32:416], [message getExtension:[UnittestRoot defaultBytesExtension]]); 402ffe3c632Sopenharmony_ci 403ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Foo, [[message getExtension:[UnittestRoot defaultNestedEnumExtension]] intValue]); 404ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignFoo, [[message getExtension:[UnittestRoot defaultForeignEnumExtension]] intValue]); 405ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportFoo, [[message getExtension:[UnittestRoot defaultImportEnumExtension]] intValue]); 406ffe3c632Sopenharmony_ci 407ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"424", [message getExtension:[UnittestRoot defaultStringPieceExtension]]); 408ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"425", [message getExtension:[UnittestRoot defaultCordExtension]]); 409ffe3c632Sopenharmony_ci} 410ffe3c632Sopenharmony_ci 411ffe3c632Sopenharmony_ci- (void)assertRepeatedExtensionsModified:(TestAllExtensions *)message 412ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 413ffe3c632Sopenharmony_ci // ModifyRepeatedFields only sets the second repeated element of each 414ffe3c632Sopenharmony_ci // field. In addition to verifying this, we also verify that the first 415ffe3c632Sopenharmony_ci // element and size were *not* modified. 416ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedInt32Extension]] count]); 417ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedInt64Extension]] count]); 418ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedUint32Extension]] count]); 419ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedUint64Extension]] count]); 420ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedSint32Extension]] count]); 421ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedSint64Extension]] count]); 422ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedFixed32Extension]] count]); 423ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedFixed64Extension]] count]); 424ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedSfixed32Extension]] count]); 425ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedSfixed64Extension]] count]); 426ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedFloatExtension]] count]); 427ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedDoubleExtension]] count]); 428ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedBoolExtension]] count]); 429ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedStringExtension]] count]); 430ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedBytesExtension]] count]); 431ffe3c632Sopenharmony_ci 432ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedGroupExtension]] count]); 433ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedNestedMessageExtension]] count]); 434ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedForeignMessageExtension]] count]); 435ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedImportMessageExtension]] count]); 436ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedNestedEnumExtension]] count]); 437ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedForeignEnumExtension]] count]); 438ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedImportEnumExtension]] count]); 439ffe3c632Sopenharmony_ci 440ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedStringPieceExtension]] count]); 441ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot repeatedCordExtension]] count]); 442ffe3c632Sopenharmony_ci 443ffe3c632Sopenharmony_ci XCTAssertEqual(201,[[message getExtension:[UnittestRoot repeatedInt32Extension]][0] intValue]); 444ffe3c632Sopenharmony_ci XCTAssertEqual(202LL, [[message getExtension:[UnittestRoot repeatedInt64Extension]][0] longLongValue]); 445ffe3c632Sopenharmony_ci XCTAssertEqual(203U, [[message getExtension:[UnittestRoot repeatedUint32Extension]][0] unsignedIntValue]); 446ffe3c632Sopenharmony_ci XCTAssertEqual(204ULL, [[message getExtension:[UnittestRoot repeatedUint64Extension]][0] unsignedLongLongValue]); 447ffe3c632Sopenharmony_ci XCTAssertEqual(205, [[message getExtension:[UnittestRoot repeatedSint32Extension]][0] intValue]); 448ffe3c632Sopenharmony_ci XCTAssertEqual(206LL, [[message getExtension:[UnittestRoot repeatedSint64Extension]][0] longLongValue]); 449ffe3c632Sopenharmony_ci XCTAssertEqual(207U, [[message getExtension:[UnittestRoot repeatedFixed32Extension]][0] unsignedIntValue]); 450ffe3c632Sopenharmony_ci XCTAssertEqual(208ULL, [[message getExtension:[UnittestRoot repeatedFixed64Extension]][0] unsignedLongLongValue]); 451ffe3c632Sopenharmony_ci XCTAssertEqual(209, [[message getExtension:[UnittestRoot repeatedSfixed32Extension]][0] intValue]); 452ffe3c632Sopenharmony_ci XCTAssertEqual(210LL, [[message getExtension:[UnittestRoot repeatedSfixed64Extension]][0] longLongValue]); 453ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(211.0f, [[message getExtension:[UnittestRoot repeatedFloatExtension]][0] floatValue], 0.01); 454ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(212.0, [[message getExtension:[UnittestRoot repeatedDoubleExtension]][0] doubleValue], 0.01); 455ffe3c632Sopenharmony_ci XCTAssertFalse([[message getExtension:[UnittestRoot repeatedBoolExtension]][0] boolValue]); 456ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"215", [message getExtension:[UnittestRoot repeatedStringExtension]][0]); 457ffe3c632Sopenharmony_ci XCTAssertEqualObjects([NSData gpbtu_dataWithUint32:216], [message getExtension:[UnittestRoot repeatedBytesExtension]][0]); 458ffe3c632Sopenharmony_ci 459ffe3c632Sopenharmony_ci XCTAssertEqual(217, [(TestAllTypes_OptionalGroup*)[message getExtension:[UnittestRoot repeatedGroupExtension]][0] a]); 460ffe3c632Sopenharmony_ci XCTAssertEqual(218, [(TestAllTypes_NestedMessage*)[message getExtension:[UnittestRoot repeatedNestedMessageExtension]][0] bb]); 461ffe3c632Sopenharmony_ci XCTAssertEqual(219, [[message getExtension:[UnittestRoot repeatedForeignMessageExtension]][0] c]); 462ffe3c632Sopenharmony_ci XCTAssertEqual(220, [[message getExtension:[UnittestRoot repeatedImportMessageExtension]][0] d]); 463ffe3c632Sopenharmony_ci 464ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Baz, 465ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot repeatedNestedEnumExtension]][0] intValue]); 466ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignBaz, 467ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot repeatedForeignEnumExtension]][0] intValue]); 468ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportBaz, 469ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot repeatedImportEnumExtension]][0] intValue]); 470ffe3c632Sopenharmony_ci 471ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"224", [message getExtension:[UnittestRoot repeatedStringPieceExtension]][0]); 472ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"225", [message getExtension:[UnittestRoot repeatedCordExtension]][0]); 473ffe3c632Sopenharmony_ci 474ffe3c632Sopenharmony_ci // Actually verify the second (modified) elements now. 475ffe3c632Sopenharmony_ci XCTAssertEqual(501, [[message getExtension:[UnittestRoot repeatedInt32Extension]][1] intValue]); 476ffe3c632Sopenharmony_ci XCTAssertEqual(502LL, [[message getExtension:[UnittestRoot repeatedInt64Extension]][1] longLongValue]); 477ffe3c632Sopenharmony_ci XCTAssertEqual(503U, [[message getExtension:[UnittestRoot repeatedUint32Extension]][1] unsignedIntValue]); 478ffe3c632Sopenharmony_ci XCTAssertEqual(504ULL, [[message getExtension:[UnittestRoot repeatedUint64Extension]][1] unsignedLongLongValue]); 479ffe3c632Sopenharmony_ci XCTAssertEqual(505, [[message getExtension:[UnittestRoot repeatedSint32Extension]][1] intValue]); 480ffe3c632Sopenharmony_ci XCTAssertEqual(506LL, [[message getExtension:[UnittestRoot repeatedSint64Extension]][1] longLongValue]); 481ffe3c632Sopenharmony_ci XCTAssertEqual(507U, [[message getExtension:[UnittestRoot repeatedFixed32Extension]][1] unsignedIntValue]); 482ffe3c632Sopenharmony_ci XCTAssertEqual(508ULL, [[message getExtension:[UnittestRoot repeatedFixed64Extension]][1] unsignedLongLongValue]); 483ffe3c632Sopenharmony_ci XCTAssertEqual(509, [[message getExtension:[UnittestRoot repeatedSfixed32Extension]][1] intValue]); 484ffe3c632Sopenharmony_ci XCTAssertEqual(510LL, [[message getExtension:[UnittestRoot repeatedSfixed64Extension]][1] longLongValue]); 485ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(511.0f, [[message getExtension:[UnittestRoot repeatedFloatExtension]][1] floatValue], 0.01); 486ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(512.0, [[message getExtension:[UnittestRoot repeatedDoubleExtension]][1] doubleValue], 0.01); 487ffe3c632Sopenharmony_ci XCTAssertTrue([[message getExtension:[UnittestRoot repeatedBoolExtension]][1] boolValue]); 488ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"515", [message getExtension:[UnittestRoot repeatedStringExtension]][1]); 489ffe3c632Sopenharmony_ci XCTAssertEqualObjects([NSData gpbtu_dataWithUint32:516], [message getExtension:[UnittestRoot repeatedBytesExtension]][1]); 490ffe3c632Sopenharmony_ci 491ffe3c632Sopenharmony_ci XCTAssertEqual(517, [(TestAllTypes_OptionalGroup*)[message getExtension:[UnittestRoot repeatedGroupExtension]][1] a]); 492ffe3c632Sopenharmony_ci XCTAssertEqual(518, [(TestAllTypes_NestedMessage*)[message getExtension:[UnittestRoot repeatedNestedMessageExtension]][1] bb]); 493ffe3c632Sopenharmony_ci XCTAssertEqual(519, [[message getExtension:[UnittestRoot repeatedForeignMessageExtension]][1] c]); 494ffe3c632Sopenharmony_ci XCTAssertEqual(520, [[message getExtension:[UnittestRoot repeatedImportMessageExtension]][1] d]); 495ffe3c632Sopenharmony_ci 496ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Foo, 497ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot repeatedNestedEnumExtension]][1] intValue]); 498ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignFoo, 499ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot repeatedForeignEnumExtension]][1] intValue]); 500ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportFoo, 501ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot repeatedImportEnumExtension]][1] intValue]); 502ffe3c632Sopenharmony_ci 503ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"524", [message getExtension:[UnittestRoot repeatedStringPieceExtension]][1]); 504ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"525", [message getExtension:[UnittestRoot repeatedCordExtension]][1]); 505ffe3c632Sopenharmony_ci} 506ffe3c632Sopenharmony_ci 507ffe3c632Sopenharmony_ci// ------------------------------------------------------------------- 508ffe3c632Sopenharmony_ci 509ffe3c632Sopenharmony_ci- (void)assertAllFieldsSet:(TestAllTypes *)message 510ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 511ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalInt32); 512ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalInt64); 513ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalUint32); 514ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalUint64); 515ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalSint32); 516ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalSint64); 517ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalFixed32); 518ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalFixed64); 519ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalSfixed32); 520ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalSfixed64); 521ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalFloat); 522ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalDouble); 523ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalBool); 524ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalString); 525ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalBytes); 526ffe3c632Sopenharmony_ci 527ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalGroup); 528ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalNestedMessage); 529ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalForeignMessage); 530ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalImportMessage); 531ffe3c632Sopenharmony_ci 532ffe3c632Sopenharmony_ci XCTAssertTrue(message.optionalGroup.hasA); 533ffe3c632Sopenharmony_ci XCTAssertTrue(message.optionalNestedMessage.hasBb); 534ffe3c632Sopenharmony_ci XCTAssertTrue(message.optionalForeignMessage.hasC); 535ffe3c632Sopenharmony_ci XCTAssertTrue(message.optionalImportMessage.hasD); 536ffe3c632Sopenharmony_ci 537ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalNestedEnum); 538ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalForeignEnum); 539ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalImportEnum); 540ffe3c632Sopenharmony_ci 541ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalStringPiece); 542ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasOptionalCord); 543ffe3c632Sopenharmony_ci 544ffe3c632Sopenharmony_ci XCTAssertEqual(101, message.optionalInt32); 545ffe3c632Sopenharmony_ci XCTAssertEqual(102LL, message.optionalInt64); 546ffe3c632Sopenharmony_ci XCTAssertEqual(103U, message.optionalUint32); 547ffe3c632Sopenharmony_ci XCTAssertEqual(104ULL, message.optionalUint64); 548ffe3c632Sopenharmony_ci XCTAssertEqual(105, message.optionalSint32); 549ffe3c632Sopenharmony_ci XCTAssertEqual(106LL, message.optionalSint64); 550ffe3c632Sopenharmony_ci XCTAssertEqual(107U, message.optionalFixed32); 551ffe3c632Sopenharmony_ci XCTAssertEqual(108ULL, message.optionalFixed64); 552ffe3c632Sopenharmony_ci XCTAssertEqual(109, message.optionalSfixed32); 553ffe3c632Sopenharmony_ci XCTAssertEqual(110LL, message.optionalSfixed64); 554ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(111.0f, message.optionalFloat, 0.1); 555ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(112.0, message.optionalDouble, 0.1); 556ffe3c632Sopenharmony_ci XCTAssertTrue(message.optionalBool); 557ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"115", message.optionalString); 558ffe3c632Sopenharmony_ci XCTAssertEqualObjects([NSData gpbtu_dataWithEmbeddedNulls], 559ffe3c632Sopenharmony_ci message.optionalBytes); 560ffe3c632Sopenharmony_ci 561ffe3c632Sopenharmony_ci XCTAssertEqual(117, message.optionalGroup.a); 562ffe3c632Sopenharmony_ci XCTAssertEqual(118, message.optionalNestedMessage.bb); 563ffe3c632Sopenharmony_ci XCTAssertEqual(119, message.optionalForeignMessage.c); 564ffe3c632Sopenharmony_ci XCTAssertEqual(120, message.optionalImportMessage.d); 565ffe3c632Sopenharmony_ci 566ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Baz, message.optionalNestedEnum); 567ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignBaz, message.optionalForeignEnum); 568ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportBaz, message.optionalImportEnum); 569ffe3c632Sopenharmony_ci 570ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"124", message.optionalStringPiece); 571ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"125", message.optionalCord); 572ffe3c632Sopenharmony_ci 573ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 574ffe3c632Sopenharmony_ci 575ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedInt32Array.count); 576ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedInt64Array.count); 577ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedUint32Array.count); 578ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedUint64Array.count); 579ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSint32Array.count); 580ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSint64Array.count); 581ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFixed32Array.count); 582ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFixed64Array.count); 583ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSfixed32Array.count); 584ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSfixed64Array.count); 585ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFloatArray.count); 586ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedDoubleArray.count); 587ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedBoolArray.count); 588ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedStringArray.count); 589ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedBytesArray.count); 590ffe3c632Sopenharmony_ci 591ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedGroupArray.count); 592ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedNestedMessageArray.count); 593ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedForeignMessageArray.count); 594ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedImportMessageArray.count); 595ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedNestedEnumArray.count); 596ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedForeignEnumArray.count); 597ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedImportEnumArray.count); 598ffe3c632Sopenharmony_ci 599ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedStringPieceArray.count); 600ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedCordArray.count); 601ffe3c632Sopenharmony_ci 602ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedInt32Array_Count); 603ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedInt64Array_Count); 604ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedUint32Array_Count); 605ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedUint64Array_Count); 606ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSint32Array_Count); 607ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSint64Array_Count); 608ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFixed32Array_Count); 609ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFixed64Array_Count); 610ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSfixed32Array_Count); 611ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSfixed64Array_Count); 612ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFloatArray_Count); 613ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedDoubleArray_Count); 614ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedBoolArray_Count); 615ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedStringArray_Count); 616ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedBytesArray_Count); 617ffe3c632Sopenharmony_ci 618ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedGroupArray_Count); 619ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedNestedMessageArray_Count); 620ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedForeignMessageArray_Count); 621ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedImportMessageArray_Count); 622ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedNestedEnumArray_Count); 623ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedForeignEnumArray_Count); 624ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedImportEnumArray_Count); 625ffe3c632Sopenharmony_ci 626ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedStringPieceArray_Count); 627ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedCordArray_Count); 628ffe3c632Sopenharmony_ci 629ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 630ffe3c632Sopenharmony_ci XCTAssertEqual((int)(201 + i * 100), 631ffe3c632Sopenharmony_ci [message.repeatedInt32Array valueAtIndex:i]); 632ffe3c632Sopenharmony_ci XCTAssertEqual(202 + i * 100, [message.repeatedInt64Array valueAtIndex:i]); 633ffe3c632Sopenharmony_ci XCTAssertEqual(203 + i * 100, [message.repeatedUint32Array valueAtIndex:i]); 634ffe3c632Sopenharmony_ci XCTAssertEqual(204 + i * 100, [message.repeatedUint64Array valueAtIndex:i]); 635ffe3c632Sopenharmony_ci XCTAssertEqual((int)(205 + i * 100), 636ffe3c632Sopenharmony_ci [message.repeatedSint32Array valueAtIndex:i]); 637ffe3c632Sopenharmony_ci XCTAssertEqual(206 + i * 100, [message.repeatedSint64Array valueAtIndex:i]); 638ffe3c632Sopenharmony_ci XCTAssertEqual(207 + i * 100, 639ffe3c632Sopenharmony_ci [message.repeatedFixed32Array valueAtIndex:i]); 640ffe3c632Sopenharmony_ci XCTAssertEqual(208 + i * 100, 641ffe3c632Sopenharmony_ci [message.repeatedFixed64Array valueAtIndex:i]); 642ffe3c632Sopenharmony_ci XCTAssertEqual((int)(209 + i * 100), 643ffe3c632Sopenharmony_ci [message.repeatedSfixed32Array valueAtIndex:i]); 644ffe3c632Sopenharmony_ci XCTAssertEqual(210 + i * 100, 645ffe3c632Sopenharmony_ci [message.repeatedSfixed64Array valueAtIndex:i]); 646ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy( 647ffe3c632Sopenharmony_ci 211 + i * 100, [message.repeatedFloatArray valueAtIndex:i], 0.1); 648ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy( 649ffe3c632Sopenharmony_ci 212 + i * 100, [message.repeatedDoubleArray valueAtIndex:i], 0.1); 650ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? YES : NO, 651ffe3c632Sopenharmony_ci [message.repeatedBoolArray valueAtIndex:i]); 652ffe3c632Sopenharmony_ci 653ffe3c632Sopenharmony_ci NSString *string = [[NSString alloc] initWithFormat:@"%d", 215 + i * 100]; 654ffe3c632Sopenharmony_ci XCTAssertEqualObjects(string, message.repeatedStringArray[i]); 655ffe3c632Sopenharmony_ci [string release]; 656ffe3c632Sopenharmony_ci 657ffe3c632Sopenharmony_ci NSData *data = [[NSData alloc] initWithUint32_gpbtu:216 + i * 100]; 658ffe3c632Sopenharmony_ci XCTAssertEqualObjects(data, message.repeatedBytesArray[i]); 659ffe3c632Sopenharmony_ci [data release]; 660ffe3c632Sopenharmony_ci 661ffe3c632Sopenharmony_ci XCTAssertEqual((int)(217 + i * 100), ((TestAllTypes_RepeatedGroup*)message.repeatedGroupArray[i]).a); 662ffe3c632Sopenharmony_ci XCTAssertEqual((int)(218 + i * 100), ((TestAllTypes_NestedMessage*)message.repeatedNestedMessageArray[i]).bb); 663ffe3c632Sopenharmony_ci XCTAssertEqual((int)(219 + i * 100), ((ForeignMessage*)message.repeatedForeignMessageArray[i]).c); 664ffe3c632Sopenharmony_ci XCTAssertEqual((int)(220 + i * 100), ((ImportMessage*)message.repeatedImportMessageArray[i]).d); 665ffe3c632Sopenharmony_ci 666ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? TestAllTypes_NestedEnum_Bar : TestAllTypes_NestedEnum_Baz, [message.repeatedNestedEnumArray valueAtIndex:i]); 667ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? ForeignEnum_ForeignBar : ForeignEnum_ForeignBaz, [message.repeatedForeignEnumArray valueAtIndex:i]); 668ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? ImportEnum_ImportBar : ImportEnum_ImportBaz, [message.repeatedImportEnumArray valueAtIndex:i]); 669ffe3c632Sopenharmony_ci 670ffe3c632Sopenharmony_ci string = [[NSString alloc] initWithFormat:@"%d", 224 + i * 100]; 671ffe3c632Sopenharmony_ci XCTAssertEqualObjects(string, message.repeatedStringPieceArray[i]); 672ffe3c632Sopenharmony_ci [string release]; 673ffe3c632Sopenharmony_ci 674ffe3c632Sopenharmony_ci string = [[NSString alloc] initWithFormat:@"%d", 225 + i * 100]; 675ffe3c632Sopenharmony_ci XCTAssertEqualObjects(string, message.repeatedCordArray[i]); 676ffe3c632Sopenharmony_ci [string release]; 677ffe3c632Sopenharmony_ci } 678ffe3c632Sopenharmony_ci 679ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 680ffe3c632Sopenharmony_ci 681ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultInt32); 682ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultInt64); 683ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultUint32); 684ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultUint64); 685ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultSint32); 686ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultSint64); 687ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultFixed32); 688ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultFixed64); 689ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultSfixed32); 690ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultSfixed64); 691ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultFloat); 692ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultDouble); 693ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultBool); 694ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultString); 695ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultBytes); 696ffe3c632Sopenharmony_ci 697ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultNestedEnum); 698ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultForeignEnum); 699ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultImportEnum); 700ffe3c632Sopenharmony_ci 701ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultStringPiece); 702ffe3c632Sopenharmony_ci XCTAssertTrue(message.hasDefaultCord); 703ffe3c632Sopenharmony_ci 704ffe3c632Sopenharmony_ci XCTAssertEqual(401, message.defaultInt32); 705ffe3c632Sopenharmony_ci XCTAssertEqual(402LL, message.defaultInt64); 706ffe3c632Sopenharmony_ci XCTAssertEqual(403U, message.defaultUint32); 707ffe3c632Sopenharmony_ci XCTAssertEqual(404ULL, message.defaultUint64); 708ffe3c632Sopenharmony_ci XCTAssertEqual(405, message.defaultSint32); 709ffe3c632Sopenharmony_ci XCTAssertEqual(406LL, message.defaultSint64); 710ffe3c632Sopenharmony_ci XCTAssertEqual(407U, message.defaultFixed32); 711ffe3c632Sopenharmony_ci XCTAssertEqual(408ULL, message.defaultFixed64); 712ffe3c632Sopenharmony_ci XCTAssertEqual(409, message.defaultSfixed32); 713ffe3c632Sopenharmony_ci XCTAssertEqual(410LL, message.defaultSfixed64); 714ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(411.0f, message.defaultFloat, 0.1); 715ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(412.0, message.defaultDouble, 0.1); 716ffe3c632Sopenharmony_ci XCTAssertFalse(message.defaultBool); 717ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"415", message.defaultString); 718ffe3c632Sopenharmony_ci XCTAssertEqualObjects([NSData gpbtu_dataWithUint32:416], 719ffe3c632Sopenharmony_ci message.defaultBytes); 720ffe3c632Sopenharmony_ci 721ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Foo, message.defaultNestedEnum); 722ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignFoo, message.defaultForeignEnum); 723ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportFoo, message.defaultImportEnum); 724ffe3c632Sopenharmony_ci 725ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"424", message.defaultStringPiece); 726ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"425", message.defaultCord); 727ffe3c632Sopenharmony_ci} 728ffe3c632Sopenharmony_ci 729ffe3c632Sopenharmony_ci- (void)setAllFields:(TestAllTypes *)message repeatedCount:(uint32_t)count { 730ffe3c632Sopenharmony_ci [message setOptionalInt32:101]; 731ffe3c632Sopenharmony_ci [message setOptionalInt64:102]; 732ffe3c632Sopenharmony_ci [message setOptionalUint32:103]; 733ffe3c632Sopenharmony_ci [message setOptionalUint64:104]; 734ffe3c632Sopenharmony_ci [message setOptionalSint32:105]; 735ffe3c632Sopenharmony_ci [message setOptionalSint64:106]; 736ffe3c632Sopenharmony_ci [message setOptionalFixed32:107]; 737ffe3c632Sopenharmony_ci [message setOptionalFixed64:108]; 738ffe3c632Sopenharmony_ci [message setOptionalSfixed32:109]; 739ffe3c632Sopenharmony_ci [message setOptionalSfixed64:110]; 740ffe3c632Sopenharmony_ci [message setOptionalFloat:111]; 741ffe3c632Sopenharmony_ci [message setOptionalDouble:112]; 742ffe3c632Sopenharmony_ci [message setOptionalBool:YES]; 743ffe3c632Sopenharmony_ci [message setOptionalString:@"115"]; 744ffe3c632Sopenharmony_ci [message setOptionalBytes:[NSData gpbtu_dataWithEmbeddedNulls]]; 745ffe3c632Sopenharmony_ci 746ffe3c632Sopenharmony_ci TestAllTypes_OptionalGroup *allTypes = [TestAllTypes_OptionalGroup message]; 747ffe3c632Sopenharmony_ci [allTypes setA:117]; 748ffe3c632Sopenharmony_ci [message setOptionalGroup:allTypes]; 749ffe3c632Sopenharmony_ci TestAllTypes_NestedMessage *nestedMessage = 750ffe3c632Sopenharmony_ci [TestAllTypes_NestedMessage message]; 751ffe3c632Sopenharmony_ci [nestedMessage setBb:118]; 752ffe3c632Sopenharmony_ci [message setOptionalNestedMessage:nestedMessage]; 753ffe3c632Sopenharmony_ci ForeignMessage *foreignMessage = [ForeignMessage message]; 754ffe3c632Sopenharmony_ci [foreignMessage setC:119]; 755ffe3c632Sopenharmony_ci [message setOptionalForeignMessage:foreignMessage]; 756ffe3c632Sopenharmony_ci ImportMessage *importMessage = [ImportMessage message]; 757ffe3c632Sopenharmony_ci [importMessage setD:120]; 758ffe3c632Sopenharmony_ci [message setOptionalImportMessage:importMessage]; 759ffe3c632Sopenharmony_ci 760ffe3c632Sopenharmony_ci [message setOptionalNestedEnum:TestAllTypes_NestedEnum_Baz]; 761ffe3c632Sopenharmony_ci [message setOptionalForeignEnum:ForeignEnum_ForeignBaz]; 762ffe3c632Sopenharmony_ci [message setOptionalImportEnum:ImportEnum_ImportBaz]; 763ffe3c632Sopenharmony_ci 764ffe3c632Sopenharmony_ci [message setOptionalStringPiece:@"124"]; 765ffe3c632Sopenharmony_ci [message setOptionalCord:@"125"]; 766ffe3c632Sopenharmony_ci 767ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 768ffe3c632Sopenharmony_ci 769ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; i++) { 770ffe3c632Sopenharmony_ci [message.repeatedInt32Array addValue:201 + i * 100]; 771ffe3c632Sopenharmony_ci [message.repeatedInt64Array addValue:202 + i * 100]; 772ffe3c632Sopenharmony_ci [message.repeatedUint32Array addValue:203 + i * 100]; 773ffe3c632Sopenharmony_ci [message.repeatedUint64Array addValue:204 + i * 100]; 774ffe3c632Sopenharmony_ci [message.repeatedSint32Array addValue:205 + i * 100]; 775ffe3c632Sopenharmony_ci [message.repeatedSint64Array addValue:206 + i * 100]; 776ffe3c632Sopenharmony_ci [message.repeatedFixed32Array addValue:207 + i * 100]; 777ffe3c632Sopenharmony_ci [message.repeatedFixed64Array addValue:208 + i * 100]; 778ffe3c632Sopenharmony_ci [message.repeatedSfixed32Array addValue:209 + i * 100]; 779ffe3c632Sopenharmony_ci [message.repeatedSfixed64Array addValue:210 + i * 100]; 780ffe3c632Sopenharmony_ci [message.repeatedFloatArray addValue:211 + i * 100]; 781ffe3c632Sopenharmony_ci [message.repeatedDoubleArray addValue:212 + i * 100]; 782ffe3c632Sopenharmony_ci [message.repeatedBoolArray addValue:(i % 2)]; 783ffe3c632Sopenharmony_ci NSString *string = [[NSString alloc] initWithFormat:@"%d", 215 + i * 100]; 784ffe3c632Sopenharmony_ci [message.repeatedStringArray addObject:string]; 785ffe3c632Sopenharmony_ci [string release]; 786ffe3c632Sopenharmony_ci 787ffe3c632Sopenharmony_ci NSData *data = [[NSData alloc] initWithUint32_gpbtu:216 + i * 100]; 788ffe3c632Sopenharmony_ci [message.repeatedBytesArray addObject:data]; 789ffe3c632Sopenharmony_ci [data release]; 790ffe3c632Sopenharmony_ci 791ffe3c632Sopenharmony_ci TestAllTypes_RepeatedGroup *testAll = 792ffe3c632Sopenharmony_ci [[TestAllTypes_RepeatedGroup alloc] init]; 793ffe3c632Sopenharmony_ci [testAll setA:217 + i * 100]; 794ffe3c632Sopenharmony_ci [message.repeatedGroupArray addObject:testAll]; 795ffe3c632Sopenharmony_ci [testAll release]; 796ffe3c632Sopenharmony_ci 797ffe3c632Sopenharmony_ci nestedMessage = [[TestAllTypes_NestedMessage alloc] init]; 798ffe3c632Sopenharmony_ci [nestedMessage setBb:218 + i * 100]; 799ffe3c632Sopenharmony_ci [message.repeatedNestedMessageArray addObject:nestedMessage]; 800ffe3c632Sopenharmony_ci [nestedMessage release]; 801ffe3c632Sopenharmony_ci 802ffe3c632Sopenharmony_ci foreignMessage = [[ForeignMessage alloc] init]; 803ffe3c632Sopenharmony_ci [foreignMessage setC:219 + i * 100]; 804ffe3c632Sopenharmony_ci [message.repeatedForeignMessageArray addObject:foreignMessage]; 805ffe3c632Sopenharmony_ci [foreignMessage release]; 806ffe3c632Sopenharmony_ci 807ffe3c632Sopenharmony_ci importMessage = [[ImportMessage alloc] init]; 808ffe3c632Sopenharmony_ci [importMessage setD:220 + i * 100]; 809ffe3c632Sopenharmony_ci [message.repeatedImportMessageArray addObject:importMessage]; 810ffe3c632Sopenharmony_ci [importMessage release]; 811ffe3c632Sopenharmony_ci 812ffe3c632Sopenharmony_ci [message.repeatedNestedEnumArray addValue:(i % 2) ? TestAllTypes_NestedEnum_Bar : TestAllTypes_NestedEnum_Baz]; 813ffe3c632Sopenharmony_ci 814ffe3c632Sopenharmony_ci [message.repeatedForeignEnumArray addValue:(i % 2) ? ForeignEnum_ForeignBar : ForeignEnum_ForeignBaz]; 815ffe3c632Sopenharmony_ci [message.repeatedImportEnumArray addValue:(i % 2) ? ImportEnum_ImportBar : ImportEnum_ImportBaz]; 816ffe3c632Sopenharmony_ci 817ffe3c632Sopenharmony_ci string = [[NSString alloc] initWithFormat:@"%d", 224 + i * 100]; 818ffe3c632Sopenharmony_ci [message.repeatedStringPieceArray addObject:string]; 819ffe3c632Sopenharmony_ci [string release]; 820ffe3c632Sopenharmony_ci 821ffe3c632Sopenharmony_ci string = [[NSString alloc] initWithFormat:@"%d", 225 + i * 100]; 822ffe3c632Sopenharmony_ci [message.repeatedCordArray addObject:string]; 823ffe3c632Sopenharmony_ci [string release]; 824ffe3c632Sopenharmony_ci } 825ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 826ffe3c632Sopenharmony_ci 827ffe3c632Sopenharmony_ci message.defaultInt32 = 401; 828ffe3c632Sopenharmony_ci message.defaultInt64 = 402; 829ffe3c632Sopenharmony_ci message.defaultUint32 = 403; 830ffe3c632Sopenharmony_ci message.defaultUint64 = 404; 831ffe3c632Sopenharmony_ci message.defaultSint32 = 405; 832ffe3c632Sopenharmony_ci message.defaultSint64 = 406; 833ffe3c632Sopenharmony_ci message.defaultFixed32 = 407; 834ffe3c632Sopenharmony_ci message.defaultFixed64 = 408; 835ffe3c632Sopenharmony_ci message.defaultSfixed32 = 409; 836ffe3c632Sopenharmony_ci message.defaultSfixed64 = 410; 837ffe3c632Sopenharmony_ci message.defaultFloat = 411; 838ffe3c632Sopenharmony_ci message.defaultDouble = 412; 839ffe3c632Sopenharmony_ci message.defaultBool = NO; 840ffe3c632Sopenharmony_ci message.defaultString = @"415"; 841ffe3c632Sopenharmony_ci message.defaultBytes = [NSData gpbtu_dataWithUint32:416]; 842ffe3c632Sopenharmony_ci 843ffe3c632Sopenharmony_ci message.defaultNestedEnum = TestAllTypes_NestedEnum_Foo; 844ffe3c632Sopenharmony_ci message.defaultForeignEnum = ForeignEnum_ForeignFoo; 845ffe3c632Sopenharmony_ci message.defaultImportEnum = ImportEnum_ImportFoo; 846ffe3c632Sopenharmony_ci 847ffe3c632Sopenharmony_ci message.defaultStringPiece = @"424"; 848ffe3c632Sopenharmony_ci message.defaultCord = @"425"; 849ffe3c632Sopenharmony_ci} 850ffe3c632Sopenharmony_ci 851ffe3c632Sopenharmony_ci- (void)clearAllFields:(TestAllTypes *)message { 852ffe3c632Sopenharmony_ci message.hasOptionalInt32 = NO; 853ffe3c632Sopenharmony_ci message.hasOptionalInt64 = NO; 854ffe3c632Sopenharmony_ci message.hasOptionalUint32 = NO; 855ffe3c632Sopenharmony_ci message.hasOptionalUint64 = NO; 856ffe3c632Sopenharmony_ci message.hasOptionalSint32 = NO; 857ffe3c632Sopenharmony_ci message.hasOptionalSint64 = NO; 858ffe3c632Sopenharmony_ci message.hasOptionalFixed32 = NO; 859ffe3c632Sopenharmony_ci message.hasOptionalFixed64 = NO; 860ffe3c632Sopenharmony_ci message.hasOptionalSfixed32 = NO; 861ffe3c632Sopenharmony_ci message.hasOptionalSfixed64 = NO; 862ffe3c632Sopenharmony_ci message.hasOptionalFloat = NO; 863ffe3c632Sopenharmony_ci message.hasOptionalDouble = NO; 864ffe3c632Sopenharmony_ci message.hasOptionalBool = NO; 865ffe3c632Sopenharmony_ci message.hasOptionalString = NO; 866ffe3c632Sopenharmony_ci message.hasOptionalBytes = NO; 867ffe3c632Sopenharmony_ci 868ffe3c632Sopenharmony_ci message.hasOptionalGroup = NO; 869ffe3c632Sopenharmony_ci message.hasOptionalNestedMessage = NO; 870ffe3c632Sopenharmony_ci message.hasOptionalForeignMessage = NO; 871ffe3c632Sopenharmony_ci message.hasOptionalImportMessage = NO; 872ffe3c632Sopenharmony_ci 873ffe3c632Sopenharmony_ci message.hasOptionalNestedEnum = NO; 874ffe3c632Sopenharmony_ci message.hasOptionalForeignEnum = NO; 875ffe3c632Sopenharmony_ci message.hasOptionalImportEnum = NO; 876ffe3c632Sopenharmony_ci 877ffe3c632Sopenharmony_ci message.hasOptionalStringPiece = NO; 878ffe3c632Sopenharmony_ci message.hasOptionalCord = NO; 879ffe3c632Sopenharmony_ci 880ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 881ffe3c632Sopenharmony_ci 882ffe3c632Sopenharmony_ci [message.repeatedInt32Array removeAll]; 883ffe3c632Sopenharmony_ci [message.repeatedInt64Array removeAll]; 884ffe3c632Sopenharmony_ci [message.repeatedUint32Array removeAll]; 885ffe3c632Sopenharmony_ci [message.repeatedUint64Array removeAll]; 886ffe3c632Sopenharmony_ci [message.repeatedSint32Array removeAll]; 887ffe3c632Sopenharmony_ci [message.repeatedSint64Array removeAll]; 888ffe3c632Sopenharmony_ci [message.repeatedFixed32Array removeAll]; 889ffe3c632Sopenharmony_ci [message.repeatedFixed64Array removeAll]; 890ffe3c632Sopenharmony_ci [message.repeatedSfixed32Array removeAll]; 891ffe3c632Sopenharmony_ci [message.repeatedSfixed64Array removeAll]; 892ffe3c632Sopenharmony_ci [message.repeatedFloatArray removeAll]; 893ffe3c632Sopenharmony_ci [message.repeatedDoubleArray removeAll]; 894ffe3c632Sopenharmony_ci [message.repeatedBoolArray removeAll]; 895ffe3c632Sopenharmony_ci [message.repeatedStringArray removeAllObjects]; 896ffe3c632Sopenharmony_ci [message.repeatedBytesArray removeAllObjects]; 897ffe3c632Sopenharmony_ci 898ffe3c632Sopenharmony_ci [message.repeatedGroupArray removeAllObjects]; 899ffe3c632Sopenharmony_ci [message.repeatedNestedMessageArray removeAllObjects]; 900ffe3c632Sopenharmony_ci [message.repeatedForeignMessageArray removeAllObjects]; 901ffe3c632Sopenharmony_ci [message.repeatedImportMessageArray removeAllObjects]; 902ffe3c632Sopenharmony_ci 903ffe3c632Sopenharmony_ci [message.repeatedNestedEnumArray removeAll]; 904ffe3c632Sopenharmony_ci [message.repeatedForeignEnumArray removeAll]; 905ffe3c632Sopenharmony_ci [message.repeatedImportEnumArray removeAll]; 906ffe3c632Sopenharmony_ci 907ffe3c632Sopenharmony_ci [message.repeatedStringPieceArray removeAllObjects]; 908ffe3c632Sopenharmony_ci [message.repeatedCordArray removeAllObjects]; 909ffe3c632Sopenharmony_ci 910ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 911ffe3c632Sopenharmony_ci 912ffe3c632Sopenharmony_ci message.hasDefaultInt32 = NO; 913ffe3c632Sopenharmony_ci message.hasDefaultInt64 = NO; 914ffe3c632Sopenharmony_ci message.hasDefaultUint32 = NO; 915ffe3c632Sopenharmony_ci message.hasDefaultUint64 = NO; 916ffe3c632Sopenharmony_ci message.hasDefaultSint32 = NO; 917ffe3c632Sopenharmony_ci message.hasDefaultSint64 = NO; 918ffe3c632Sopenharmony_ci message.hasDefaultFixed32 = NO; 919ffe3c632Sopenharmony_ci message.hasDefaultFixed64 = NO; 920ffe3c632Sopenharmony_ci message.hasDefaultSfixed32 = NO; 921ffe3c632Sopenharmony_ci message.hasDefaultSfixed64 = NO; 922ffe3c632Sopenharmony_ci message.hasDefaultFloat = NO; 923ffe3c632Sopenharmony_ci message.hasDefaultDouble = NO; 924ffe3c632Sopenharmony_ci message.hasDefaultBool = NO; 925ffe3c632Sopenharmony_ci message.hasDefaultString = NO; 926ffe3c632Sopenharmony_ci message.hasDefaultBytes = NO; 927ffe3c632Sopenharmony_ci 928ffe3c632Sopenharmony_ci message.hasDefaultNestedEnum = NO; 929ffe3c632Sopenharmony_ci message.hasDefaultForeignEnum = NO; 930ffe3c632Sopenharmony_ci message.hasDefaultImportEnum = NO; 931ffe3c632Sopenharmony_ci 932ffe3c632Sopenharmony_ci message.hasDefaultStringPiece = NO; 933ffe3c632Sopenharmony_ci message.hasDefaultCord = NO; 934ffe3c632Sopenharmony_ci} 935ffe3c632Sopenharmony_ci 936ffe3c632Sopenharmony_ci- (void)setAllExtensions:(TestAllExtensions *)message 937ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 938ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalInt32Extension] value:@101]; 939ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalInt64Extension] value:@102L]; 940ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalUint32Extension] value:@103]; 941ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalUint64Extension] value:@104L]; 942ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalSint32Extension] value:@105]; 943ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalSint64Extension] value:@106L]; 944ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalFixed32Extension] value:@107]; 945ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalFixed64Extension] value:@108L]; 946ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalSfixed32Extension] value:@109]; 947ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalSfixed64Extension] value:@110L]; 948ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalFloatExtension] value:@111.0f]; 949ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalDoubleExtension] value:@112.0]; 950ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalBoolExtension] value:@YES]; 951ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalStringExtension] value:@"115"]; 952ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalBytesExtension] 953ffe3c632Sopenharmony_ci value:[NSData gpbtu_dataWithEmbeddedNulls]]; 954ffe3c632Sopenharmony_ci 955ffe3c632Sopenharmony_ci OptionalGroup_extension *optionalGroup = [OptionalGroup_extension message]; 956ffe3c632Sopenharmony_ci [optionalGroup setA:117]; 957ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalGroupExtension] 958ffe3c632Sopenharmony_ci value:optionalGroup]; 959ffe3c632Sopenharmony_ci TestAllTypes_NestedMessage *nestedMessage = 960ffe3c632Sopenharmony_ci [TestAllTypes_NestedMessage message]; 961ffe3c632Sopenharmony_ci [nestedMessage setBb:118]; 962ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalNestedMessageExtension] 963ffe3c632Sopenharmony_ci value:nestedMessage]; 964ffe3c632Sopenharmony_ci ForeignMessage *foreignMessage = [ForeignMessage message]; 965ffe3c632Sopenharmony_ci [foreignMessage setC:119]; 966ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalForeignMessageExtension] 967ffe3c632Sopenharmony_ci value:foreignMessage]; 968ffe3c632Sopenharmony_ci ImportMessage *importMessage = [ImportMessage message]; 969ffe3c632Sopenharmony_ci [importMessage setD:120]; 970ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalImportMessageExtension] 971ffe3c632Sopenharmony_ci value:importMessage]; 972ffe3c632Sopenharmony_ci 973ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalNestedEnumExtension] 974ffe3c632Sopenharmony_ci value:@(TestAllTypes_NestedEnum_Baz)]; 975ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalForeignEnumExtension] 976ffe3c632Sopenharmony_ci value:@(ForeignEnum_ForeignBaz)]; 977ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalImportEnumExtension] 978ffe3c632Sopenharmony_ci value:@(ImportEnum_ImportBaz)]; 979ffe3c632Sopenharmony_ci 980ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalStringPieceExtension] 981ffe3c632Sopenharmony_ci value:@"124"]; 982ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot optionalCordExtension] value:@"125"]; 983ffe3c632Sopenharmony_ci 984ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 985ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedInt32Extension] 986ffe3c632Sopenharmony_ci value:@(201 + i * 100)]; 987ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedInt64Extension] 988ffe3c632Sopenharmony_ci value:@(202 + i * 100)]; 989ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedUint32Extension] 990ffe3c632Sopenharmony_ci value:@(203 + i * 100)]; 991ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedUint64Extension] 992ffe3c632Sopenharmony_ci value:@(204 + i * 100)]; 993ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedSint32Extension] 994ffe3c632Sopenharmony_ci value:@(205 + i * 100)]; 995ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedSint64Extension] 996ffe3c632Sopenharmony_ci value:@(206 + i * 100)]; 997ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedFixed32Extension] 998ffe3c632Sopenharmony_ci value:@(207 + i * 100)]; 999ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedFixed64Extension] 1000ffe3c632Sopenharmony_ci value:@(208 + i * 100)]; 1001ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedSfixed32Extension] 1002ffe3c632Sopenharmony_ci value:@(209 + i * 100)]; 1003ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedSfixed64Extension] 1004ffe3c632Sopenharmony_ci value:@(210 + i * 100)]; 1005ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedFloatExtension] 1006ffe3c632Sopenharmony_ci value:@(211 + i * 100)]; 1007ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedDoubleExtension] 1008ffe3c632Sopenharmony_ci value:@(212 + i * 100)]; 1009ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedBoolExtension] 1010ffe3c632Sopenharmony_ci value:@((i % 2) ? YES : NO)]; 1011ffe3c632Sopenharmony_ci NSString *string = [[NSString alloc] initWithFormat:@"%d", 215 + i * 100]; 1012ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedStringExtension] value:string]; 1013ffe3c632Sopenharmony_ci [string release]; 1014ffe3c632Sopenharmony_ci NSData *data = [[NSData alloc] initWithUint32_gpbtu:216 + i * 100]; 1015ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedBytesExtension] value:data]; 1016ffe3c632Sopenharmony_ci [data release]; 1017ffe3c632Sopenharmony_ci 1018ffe3c632Sopenharmony_ci RepeatedGroup_extension *repeatedGroup = 1019ffe3c632Sopenharmony_ci [[RepeatedGroup_extension alloc] init]; 1020ffe3c632Sopenharmony_ci [repeatedGroup setA:217 + i * 100]; 1021ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedGroupExtension] 1022ffe3c632Sopenharmony_ci value:repeatedGroup]; 1023ffe3c632Sopenharmony_ci [repeatedGroup release]; 1024ffe3c632Sopenharmony_ci nestedMessage = [[TestAllTypes_NestedMessage alloc] init]; 1025ffe3c632Sopenharmony_ci [nestedMessage setBb:218 + i * 100]; 1026ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedNestedMessageExtension] 1027ffe3c632Sopenharmony_ci value:nestedMessage]; 1028ffe3c632Sopenharmony_ci [nestedMessage release]; 1029ffe3c632Sopenharmony_ci foreignMessage = [[ForeignMessage alloc] init]; 1030ffe3c632Sopenharmony_ci [foreignMessage setC:219 + i * 100]; 1031ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedForeignMessageExtension] 1032ffe3c632Sopenharmony_ci value:foreignMessage]; 1033ffe3c632Sopenharmony_ci [foreignMessage release]; 1034ffe3c632Sopenharmony_ci importMessage = [[ImportMessage alloc] init]; 1035ffe3c632Sopenharmony_ci [importMessage setD:220 + i * 100]; 1036ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedImportMessageExtension] 1037ffe3c632Sopenharmony_ci value:importMessage]; 1038ffe3c632Sopenharmony_ci [importMessage release]; 1039ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedNestedEnumExtension] 1040ffe3c632Sopenharmony_ci value:@((i % 2) ? TestAllTypes_NestedEnum_Bar 1041ffe3c632Sopenharmony_ci : TestAllTypes_NestedEnum_Baz)]; 1042ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedForeignEnumExtension] 1043ffe3c632Sopenharmony_ci value:@((i % 2) ? ForeignEnum_ForeignBar 1044ffe3c632Sopenharmony_ci : ForeignEnum_ForeignBaz)]; 1045ffe3c632Sopenharmony_ci [message 1046ffe3c632Sopenharmony_ci addExtension:[UnittestRoot repeatedImportEnumExtension] 1047ffe3c632Sopenharmony_ci value:@((i % 2) ? ImportEnum_ImportBar : ImportEnum_ImportBaz)]; 1048ffe3c632Sopenharmony_ci 1049ffe3c632Sopenharmony_ci string = [[NSString alloc] initWithFormat:@"%d", 224 + i * 100]; 1050ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedStringPieceExtension] 1051ffe3c632Sopenharmony_ci value:string]; 1052ffe3c632Sopenharmony_ci [string release]; 1053ffe3c632Sopenharmony_ci 1054ffe3c632Sopenharmony_ci string = [[NSString alloc] initWithFormat:@"%d", 225 + i * 100]; 1055ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot repeatedCordExtension] value:string]; 1056ffe3c632Sopenharmony_ci [string release]; 1057ffe3c632Sopenharmony_ci } 1058ffe3c632Sopenharmony_ci 1059ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 1060ffe3c632Sopenharmony_ci 1061ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultInt32Extension] value:@401]; 1062ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultInt64Extension] value:@402L]; 1063ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultUint32Extension] value:@403]; 1064ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultUint64Extension] value:@404L]; 1065ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultSint32Extension] value:@405]; 1066ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultSint64Extension] value:@406L]; 1067ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultFixed32Extension] value:@407]; 1068ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultFixed64Extension] value:@408L]; 1069ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultSfixed32Extension] value:@409]; 1070ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultSfixed64Extension] value:@410L]; 1071ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultFloatExtension] value:@411.0f]; 1072ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultDoubleExtension] value:@412.0]; 1073ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultBoolExtension] value:@NO]; 1074ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultStringExtension] value:@"415"]; 1075ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultBytesExtension] 1076ffe3c632Sopenharmony_ci value:[NSData gpbtu_dataWithUint32:416]]; 1077ffe3c632Sopenharmony_ci 1078ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultNestedEnumExtension] 1079ffe3c632Sopenharmony_ci value:@(TestAllTypes_NestedEnum_Foo)]; 1080ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultForeignEnumExtension] 1081ffe3c632Sopenharmony_ci value:@(ForeignEnum_ForeignFoo)]; 1082ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultImportEnumExtension] 1083ffe3c632Sopenharmony_ci value:@(ImportEnum_ImportFoo)]; 1084ffe3c632Sopenharmony_ci 1085ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultStringPieceExtension] 1086ffe3c632Sopenharmony_ci value:@"424"]; 1087ffe3c632Sopenharmony_ci [message setExtension:[UnittestRoot defaultCordExtension] value:@"425"]; 1088ffe3c632Sopenharmony_ci} 1089ffe3c632Sopenharmony_ci 1090ffe3c632Sopenharmony_ci- (void)setAllMapFields:(TestMap *)message numEntries:(uint32_t)count { 1091ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; i++) { 1092ffe3c632Sopenharmony_ci [message.mapInt32Int32 setInt32:(i + 1) forKey:100 + i * 100]; 1093ffe3c632Sopenharmony_ci [message.mapInt64Int64 setInt64:(i + 1) forKey:101 + i * 100]; 1094ffe3c632Sopenharmony_ci [message.mapUint32Uint32 setUInt32:(i + 1) forKey:102 + i * 100]; 1095ffe3c632Sopenharmony_ci [message.mapUint64Uint64 setUInt64:(i + 1) forKey:103 + i * 100]; 1096ffe3c632Sopenharmony_ci [message.mapSint32Sint32 setInt32:(i + 1) forKey:104 + i * 100]; 1097ffe3c632Sopenharmony_ci [message.mapSint64Sint64 setInt64:(i + 1) forKey:105 + i * 100]; 1098ffe3c632Sopenharmony_ci [message.mapFixed32Fixed32 setUInt32:(i + 1) forKey:106 + i * 100]; 1099ffe3c632Sopenharmony_ci [message.mapFixed64Fixed64 setUInt64:(i + 1) forKey:107 + i * 100]; 1100ffe3c632Sopenharmony_ci [message.mapSfixed32Sfixed32 setInt32:(i + 1) forKey:108 + i * 100]; 1101ffe3c632Sopenharmony_ci [message.mapSfixed64Sfixed64 setInt64:(i + 1) forKey:109 + i * 100]; 1102ffe3c632Sopenharmony_ci [message.mapInt32Float setFloat:(i + 1) forKey:110 + i * 100]; 1103ffe3c632Sopenharmony_ci [message.mapInt32Double setDouble:(i + 1) forKey:111 + i * 100]; 1104ffe3c632Sopenharmony_ci [message.mapBoolBool setBool:((i % 2) == 1) forKey:((i % 2) == 0)]; 1105ffe3c632Sopenharmony_ci 1106ffe3c632Sopenharmony_ci NSString *keyStr = [[NSString alloc] initWithFormat:@"%d", 112 + i * 100]; 1107ffe3c632Sopenharmony_ci NSString *dataStr = [[NSString alloc] initWithFormat:@"%d", i + 1]; 1108ffe3c632Sopenharmony_ci [message.mapStringString setObject:dataStr forKey:keyStr]; 1109ffe3c632Sopenharmony_ci [keyStr release]; 1110ffe3c632Sopenharmony_ci [dataStr release]; 1111ffe3c632Sopenharmony_ci 1112ffe3c632Sopenharmony_ci NSData *data = [[NSData alloc] initWithUint32_gpbtu:i + 1]; 1113ffe3c632Sopenharmony_ci [message.mapInt32Bytes setObject:data forKey:113 + i * 100]; 1114ffe3c632Sopenharmony_ci [data release]; 1115ffe3c632Sopenharmony_ci 1116ffe3c632Sopenharmony_ci [message.mapInt32Enum 1117ffe3c632Sopenharmony_ci setEnum:(i % 2) ? MapEnum_MapEnumBar : MapEnum_MapEnumBaz 1118ffe3c632Sopenharmony_ci forKey:114 + i * 100]; 1119ffe3c632Sopenharmony_ci 1120ffe3c632Sopenharmony_ci ForeignMessage *subMsg = [[ForeignMessage alloc] init]; 1121ffe3c632Sopenharmony_ci subMsg.c = i + 1; 1122ffe3c632Sopenharmony_ci [message.mapInt32ForeignMessage setObject:subMsg forKey:115 + i * 100]; 1123ffe3c632Sopenharmony_ci [subMsg release]; 1124ffe3c632Sopenharmony_ci } 1125ffe3c632Sopenharmony_ci} 1126ffe3c632Sopenharmony_ci 1127ffe3c632Sopenharmony_ci- (void)setAllTestPackedFields:(TestPackedTypes *)message { 1128ffe3c632Sopenharmony_ci // Must match -setAllTestUnpackedFields: 1129ffe3c632Sopenharmony_ci [message.packedInt32Array addValue:101]; 1130ffe3c632Sopenharmony_ci [message.packedInt64Array addValue:102]; 1131ffe3c632Sopenharmony_ci [message.packedUint32Array addValue:103]; 1132ffe3c632Sopenharmony_ci [message.packedUint64Array addValue:104]; 1133ffe3c632Sopenharmony_ci [message.packedSint32Array addValue:105]; 1134ffe3c632Sopenharmony_ci [message.packedSint64Array addValue:106]; 1135ffe3c632Sopenharmony_ci [message.packedFixed32Array addValue:107]; 1136ffe3c632Sopenharmony_ci [message.packedFixed64Array addValue:108]; 1137ffe3c632Sopenharmony_ci [message.packedSfixed32Array addValue:109]; 1138ffe3c632Sopenharmony_ci [message.packedSfixed64Array addValue:110]; 1139ffe3c632Sopenharmony_ci [message.packedFloatArray addValue:111.f]; 1140ffe3c632Sopenharmony_ci [message.packedDoubleArray addValue:112.]; 1141ffe3c632Sopenharmony_ci [message.packedBoolArray addValue:YES]; 1142ffe3c632Sopenharmony_ci [message.packedEnumArray addValue:ForeignEnum_ForeignBar]; 1143ffe3c632Sopenharmony_ci 1144ffe3c632Sopenharmony_ci [message.packedInt32Array addValue:201]; 1145ffe3c632Sopenharmony_ci [message.packedInt64Array addValue:302]; 1146ffe3c632Sopenharmony_ci [message.packedUint32Array addValue:203]; 1147ffe3c632Sopenharmony_ci [message.packedUint64Array addValue:204]; 1148ffe3c632Sopenharmony_ci [message.packedSint32Array addValue:205]; 1149ffe3c632Sopenharmony_ci [message.packedSint64Array addValue:206]; 1150ffe3c632Sopenharmony_ci [message.packedFixed32Array addValue:207]; 1151ffe3c632Sopenharmony_ci [message.packedFixed64Array addValue:208]; 1152ffe3c632Sopenharmony_ci [message.packedSfixed32Array addValue:209]; 1153ffe3c632Sopenharmony_ci [message.packedSfixed64Array addValue:210]; 1154ffe3c632Sopenharmony_ci [message.packedFloatArray addValue:211.f]; 1155ffe3c632Sopenharmony_ci [message.packedDoubleArray addValue:212.]; 1156ffe3c632Sopenharmony_ci [message.packedBoolArray addValue:NO]; 1157ffe3c632Sopenharmony_ci [message.packedEnumArray addValue:ForeignEnum_ForeignBaz]; 1158ffe3c632Sopenharmony_ci} 1159ffe3c632Sopenharmony_ci 1160ffe3c632Sopenharmony_ci- (void)setAllTestUnpackedFields:(TestUnpackedTypes *)message { 1161ffe3c632Sopenharmony_ci // Must match -setAllTestPackedFields: 1162ffe3c632Sopenharmony_ci [message.unpackedInt32Array addValue:101]; 1163ffe3c632Sopenharmony_ci [message.unpackedInt64Array addValue:102]; 1164ffe3c632Sopenharmony_ci [message.unpackedUint32Array addValue:103]; 1165ffe3c632Sopenharmony_ci [message.unpackedUint64Array addValue:104]; 1166ffe3c632Sopenharmony_ci [message.unpackedSint32Array addValue:105]; 1167ffe3c632Sopenharmony_ci [message.unpackedSint64Array addValue:106]; 1168ffe3c632Sopenharmony_ci [message.unpackedFixed32Array addValue:107]; 1169ffe3c632Sopenharmony_ci [message.unpackedFixed64Array addValue:108]; 1170ffe3c632Sopenharmony_ci [message.unpackedSfixed32Array addValue:109]; 1171ffe3c632Sopenharmony_ci [message.unpackedSfixed64Array addValue:110]; 1172ffe3c632Sopenharmony_ci [message.unpackedFloatArray addValue:111.f]; 1173ffe3c632Sopenharmony_ci [message.unpackedDoubleArray addValue:112.]; 1174ffe3c632Sopenharmony_ci [message.unpackedBoolArray addValue:YES]; 1175ffe3c632Sopenharmony_ci [message.unpackedEnumArray addValue:ForeignEnum_ForeignBar]; 1176ffe3c632Sopenharmony_ci 1177ffe3c632Sopenharmony_ci [message.unpackedInt32Array addValue:201]; 1178ffe3c632Sopenharmony_ci [message.unpackedInt64Array addValue:302]; 1179ffe3c632Sopenharmony_ci [message.unpackedUint32Array addValue:203]; 1180ffe3c632Sopenharmony_ci [message.unpackedUint64Array addValue:204]; 1181ffe3c632Sopenharmony_ci [message.unpackedSint32Array addValue:205]; 1182ffe3c632Sopenharmony_ci [message.unpackedSint64Array addValue:206]; 1183ffe3c632Sopenharmony_ci [message.unpackedFixed32Array addValue:207]; 1184ffe3c632Sopenharmony_ci [message.unpackedFixed64Array addValue:208]; 1185ffe3c632Sopenharmony_ci [message.unpackedSfixed32Array addValue:209]; 1186ffe3c632Sopenharmony_ci [message.unpackedSfixed64Array addValue:210]; 1187ffe3c632Sopenharmony_ci [message.unpackedFloatArray addValue:211.f]; 1188ffe3c632Sopenharmony_ci [message.unpackedDoubleArray addValue:212.]; 1189ffe3c632Sopenharmony_ci [message.unpackedBoolArray addValue:NO]; 1190ffe3c632Sopenharmony_ci [message.unpackedEnumArray addValue:ForeignEnum_ForeignBaz]; 1191ffe3c632Sopenharmony_ci} 1192ffe3c632Sopenharmony_ci 1193ffe3c632Sopenharmony_ci- (GPBExtensionRegistry *)extensionRegistry { 1194ffe3c632Sopenharmony_ci return [UnittestRoot extensionRegistry]; 1195ffe3c632Sopenharmony_ci} 1196ffe3c632Sopenharmony_ci 1197ffe3c632Sopenharmony_ci- (TestAllTypes *)allSetRepeatedCount:(uint32_t)count { 1198ffe3c632Sopenharmony_ci TestAllTypes *message = [TestAllTypes message]; 1199ffe3c632Sopenharmony_ci [self setAllFields:message repeatedCount:count]; 1200ffe3c632Sopenharmony_ci return message; 1201ffe3c632Sopenharmony_ci} 1202ffe3c632Sopenharmony_ci 1203ffe3c632Sopenharmony_ci- (TestAllExtensions *)allExtensionsSetRepeatedCount:(uint32_t)count { 1204ffe3c632Sopenharmony_ci TestAllExtensions *message = [TestAllExtensions message]; 1205ffe3c632Sopenharmony_ci [self setAllExtensions:message repeatedCount:count]; 1206ffe3c632Sopenharmony_ci return message; 1207ffe3c632Sopenharmony_ci} 1208ffe3c632Sopenharmony_ci 1209ffe3c632Sopenharmony_ci- (TestPackedTypes *)packedSetRepeatedCount:(uint32_t)count { 1210ffe3c632Sopenharmony_ci TestPackedTypes *message = [TestPackedTypes message]; 1211ffe3c632Sopenharmony_ci [self setPackedFields:message repeatedCount:count]; 1212ffe3c632Sopenharmony_ci return message; 1213ffe3c632Sopenharmony_ci} 1214ffe3c632Sopenharmony_ci 1215ffe3c632Sopenharmony_ci- (TestPackedExtensions *)packedExtensionsSetRepeatedCount:(uint32_t)count { 1216ffe3c632Sopenharmony_ci TestPackedExtensions *message = [TestPackedExtensions message]; 1217ffe3c632Sopenharmony_ci [self setPackedExtensions:message repeatedCount:count]; 1218ffe3c632Sopenharmony_ci return message; 1219ffe3c632Sopenharmony_ci} 1220ffe3c632Sopenharmony_ci 1221ffe3c632Sopenharmony_ci// ------------------------------------------------------------------- 1222ffe3c632Sopenharmony_ci 1223ffe3c632Sopenharmony_ci- (void)assertClear:(TestAllTypes *)message { 1224ffe3c632Sopenharmony_ci // hasBlah() should initially be NO for all optional fields. 1225ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalInt32); 1226ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalInt64); 1227ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalUint32); 1228ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalUint64); 1229ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalSint32); 1230ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalSint64); 1231ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalFixed32); 1232ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalFixed64); 1233ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalSfixed32); 1234ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalSfixed64); 1235ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalFloat); 1236ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalDouble); 1237ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalBool); 1238ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalString); 1239ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalBytes); 1240ffe3c632Sopenharmony_ci 1241ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalGroup); 1242ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalNestedMessage); 1243ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalForeignMessage); 1244ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalImportMessage); 1245ffe3c632Sopenharmony_ci 1246ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalNestedEnum); 1247ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalForeignEnum); 1248ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalImportEnum); 1249ffe3c632Sopenharmony_ci 1250ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalStringPiece); 1251ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalCord); 1252ffe3c632Sopenharmony_ci 1253ffe3c632Sopenharmony_ci // Optional fields without defaults are set to zero or something like it. 1254ffe3c632Sopenharmony_ci XCTAssertEqual(0, message.optionalInt32); 1255ffe3c632Sopenharmony_ci XCTAssertEqual(0LL, message.optionalInt64); 1256ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.optionalUint32); 1257ffe3c632Sopenharmony_ci XCTAssertEqual(0ULL, message.optionalUint64); 1258ffe3c632Sopenharmony_ci XCTAssertEqual(0, message.optionalSint32); 1259ffe3c632Sopenharmony_ci XCTAssertEqual(0LL, message.optionalSint64); 1260ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.optionalFixed32); 1261ffe3c632Sopenharmony_ci XCTAssertEqual(0ULL, message.optionalFixed64); 1262ffe3c632Sopenharmony_ci XCTAssertEqual(0, message.optionalSfixed32); 1263ffe3c632Sopenharmony_ci XCTAssertEqual(0LL, message.optionalSfixed64); 1264ffe3c632Sopenharmony_ci XCTAssertEqual(0.0f, message.optionalFloat); 1265ffe3c632Sopenharmony_ci XCTAssertEqual(0.0, message.optionalDouble); 1266ffe3c632Sopenharmony_ci XCTAssertFalse(message.optionalBool); 1267ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.optionalString, @""); 1268ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.optionalBytes, GPBEmptyNSData()); 1269ffe3c632Sopenharmony_ci 1270ffe3c632Sopenharmony_ci // Embedded messages should also be clear. 1271ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalGroup); 1272ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalNestedMessage); 1273ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalForeignMessage); 1274ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasOptionalImportMessage); 1275ffe3c632Sopenharmony_ci 1276ffe3c632Sopenharmony_ci // Enums without defaults are set to the first value in the enum. 1277ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Foo, message.optionalNestedEnum); 1278ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignFoo, message.optionalForeignEnum); 1279ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportFoo, message.optionalImportEnum); 1280ffe3c632Sopenharmony_ci 1281ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.optionalStringPiece, @""); 1282ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.optionalCord, @""); 1283ffe3c632Sopenharmony_ci 1284ffe3c632Sopenharmony_ci // Repeated fields are empty. 1285ffe3c632Sopenharmony_ci 1286ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedInt32Array.count); 1287ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedInt64Array.count); 1288ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedUint32Array.count); 1289ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedUint64Array.count); 1290ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedSint32Array.count); 1291ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedSint64Array.count); 1292ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedFixed32Array.count); 1293ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedFixed64Array.count); 1294ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedSfixed32Array.count); 1295ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedSfixed64Array.count); 1296ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedFloatArray.count); 1297ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedDoubleArray.count); 1298ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedBoolArray.count); 1299ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedStringArray.count); 1300ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedBytesArray.count); 1301ffe3c632Sopenharmony_ci 1302ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedGroupArray.count); 1303ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedNestedMessageArray.count); 1304ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedForeignMessageArray.count); 1305ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedImportMessageArray.count); 1306ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedNestedEnumArray.count); 1307ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedForeignEnumArray.count); 1308ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedImportEnumArray.count); 1309ffe3c632Sopenharmony_ci 1310ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedStringPieceArray.count); 1311ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedCordArray.count); 1312ffe3c632Sopenharmony_ci 1313ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedInt32Array_Count); 1314ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedInt64Array_Count); 1315ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedUint32Array_Count); 1316ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedUint64Array_Count); 1317ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedSint32Array_Count); 1318ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedSint64Array_Count); 1319ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedFixed32Array_Count); 1320ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedFixed64Array_Count); 1321ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedSfixed32Array_Count); 1322ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedSfixed64Array_Count); 1323ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedFloatArray_Count); 1324ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedDoubleArray_Count); 1325ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedBoolArray_Count); 1326ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedStringArray_Count); 1327ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedBytesArray_Count); 1328ffe3c632Sopenharmony_ci 1329ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedGroupArray_Count); 1330ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedNestedMessageArray_Count); 1331ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedForeignMessageArray_Count); 1332ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedImportMessageArray_Count); 1333ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedNestedEnumArray_Count); 1334ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedForeignEnumArray_Count); 1335ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedImportEnumArray_Count); 1336ffe3c632Sopenharmony_ci 1337ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedStringPieceArray_Count); 1338ffe3c632Sopenharmony_ci XCTAssertEqual(0U, message.repeatedCordArray_Count); 1339ffe3c632Sopenharmony_ci 1340ffe3c632Sopenharmony_ci // hasBlah() should also be NO for all default fields. 1341ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultInt32); 1342ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultInt64); 1343ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultUint32); 1344ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultUint64); 1345ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultSint32); 1346ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultSint64); 1347ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultFixed32); 1348ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultFixed64); 1349ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultSfixed32); 1350ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultSfixed64); 1351ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultFloat); 1352ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultDouble); 1353ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultBool); 1354ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultString); 1355ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultBytes); 1356ffe3c632Sopenharmony_ci 1357ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultNestedEnum); 1358ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultForeignEnum); 1359ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultImportEnum); 1360ffe3c632Sopenharmony_ci 1361ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultStringPiece); 1362ffe3c632Sopenharmony_ci XCTAssertFalse(message.hasDefaultCord); 1363ffe3c632Sopenharmony_ci 1364ffe3c632Sopenharmony_ci // Fields with defaults have their default values (duh). 1365ffe3c632Sopenharmony_ci XCTAssertEqual(41, message.defaultInt32); 1366ffe3c632Sopenharmony_ci XCTAssertEqual(42LL, message.defaultInt64); 1367ffe3c632Sopenharmony_ci XCTAssertEqual(43U, message.defaultUint32); 1368ffe3c632Sopenharmony_ci XCTAssertEqual(44ULL, message.defaultUint64); 1369ffe3c632Sopenharmony_ci XCTAssertEqual(-45, message.defaultSint32); 1370ffe3c632Sopenharmony_ci XCTAssertEqual(46LL, message.defaultSint64); 1371ffe3c632Sopenharmony_ci XCTAssertEqual(47U, message.defaultFixed32); 1372ffe3c632Sopenharmony_ci XCTAssertEqual(48ULL, message.defaultFixed64); 1373ffe3c632Sopenharmony_ci XCTAssertEqual(49, message.defaultSfixed32); 1374ffe3c632Sopenharmony_ci XCTAssertEqual(-50LL, message.defaultSfixed64); 1375ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(51.5f, message.defaultFloat, 0.1); 1376ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(52e3, message.defaultDouble, 0.1); 1377ffe3c632Sopenharmony_ci XCTAssertTrue(message.defaultBool); 1378ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"hello", message.defaultString); 1379ffe3c632Sopenharmony_ci XCTAssertEqualObjects([NSData gpbtu_dataWithCString:"world"], 1380ffe3c632Sopenharmony_ci message.defaultBytes); 1381ffe3c632Sopenharmony_ci 1382ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Bar, message.defaultNestedEnum); 1383ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignBar, message.defaultForeignEnum); 1384ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportBar, message.defaultImportEnum); 1385ffe3c632Sopenharmony_ci 1386ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"abc", message.defaultStringPiece); 1387ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"123", message.defaultCord); 1388ffe3c632Sopenharmony_ci} 1389ffe3c632Sopenharmony_ci 1390ffe3c632Sopenharmony_ci- (void)assertExtensionsClear:(TestAllExtensions *)message { 1391ffe3c632Sopenharmony_ci // hasBlah() should initially be NO for all optional fields. 1392ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalInt32Extension]]); 1393ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalInt64Extension]]); 1394ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalUint32Extension]]); 1395ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalUint64Extension]]); 1396ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalSint32Extension]]); 1397ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalSint64Extension]]); 1398ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalFixed32Extension]]); 1399ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalFixed64Extension]]); 1400ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalSfixed32Extension]]); 1401ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalSfixed64Extension]]); 1402ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalFloatExtension]]); 1403ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalDoubleExtension]]); 1404ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalBoolExtension]]); 1405ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalStringExtension]]); 1406ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalBytesExtension]]); 1407ffe3c632Sopenharmony_ci 1408ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalGroupExtension]]); 1409ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalNestedMessageExtension]]); 1410ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalForeignMessageExtension]]); 1411ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalImportMessageExtension]]); 1412ffe3c632Sopenharmony_ci 1413ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalNestedEnumExtension]]); 1414ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalForeignEnumExtension]]); 1415ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalImportEnumExtension]]); 1416ffe3c632Sopenharmony_ci 1417ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalStringPieceExtension]]); 1418ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot optionalCordExtension]]); 1419ffe3c632Sopenharmony_ci 1420ffe3c632Sopenharmony_ci // Optional fields without defaults are set to zero or something like it. 1421ffe3c632Sopenharmony_ci XCTAssertEqual(0, [[message getExtension:[UnittestRoot optionalInt32Extension]] intValue]); 1422ffe3c632Sopenharmony_ci XCTAssertEqual(0LL,[[message getExtension:[UnittestRoot optionalInt64Extension]] longLongValue]); 1423ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot optionalUint32Extension]] unsignedIntValue]); 1424ffe3c632Sopenharmony_ci XCTAssertEqual(0ULL, [[message getExtension:[UnittestRoot optionalUint64Extension]] unsignedLongLongValue]); 1425ffe3c632Sopenharmony_ci XCTAssertEqual(0, [[message getExtension:[UnittestRoot optionalSint32Extension]] intValue]); 1426ffe3c632Sopenharmony_ci XCTAssertEqual(0LL, [[message getExtension:[UnittestRoot optionalSint64Extension]] longLongValue]); 1427ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot optionalFixed32Extension]] unsignedIntValue]); 1428ffe3c632Sopenharmony_ci XCTAssertEqual(0ULL, [[message getExtension:[UnittestRoot optionalFixed64Extension]] unsignedLongLongValue]); 1429ffe3c632Sopenharmony_ci XCTAssertEqual(0, [[message getExtension:[UnittestRoot optionalSfixed32Extension]] intValue]); 1430ffe3c632Sopenharmony_ci XCTAssertEqual(0LL, [[message getExtension:[UnittestRoot optionalSfixed64Extension]] longLongValue]); 1431ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(0.0f, [[message getExtension:[UnittestRoot optionalFloatExtension]] floatValue], 0.01); 1432ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(0.0, [[message getExtension:[UnittestRoot optionalDoubleExtension]] doubleValue], 0.01); 1433ffe3c632Sopenharmony_ci XCTAssertFalse([[message getExtension:[UnittestRoot optionalBoolExtension]] boolValue]); 1434ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"", [message getExtension:[UnittestRoot optionalStringExtension]]); 1435ffe3c632Sopenharmony_ci XCTAssertEqualObjects(GPBEmptyNSData(), [message getExtension:[UnittestRoot optionalBytesExtension]]); 1436ffe3c632Sopenharmony_ci 1437ffe3c632Sopenharmony_ci // Embedded messages should also be clear. 1438ffe3c632Sopenharmony_ci 1439ffe3c632Sopenharmony_ci XCTAssertFalse([[message getExtension:[UnittestRoot optionalGroupExtension]] hasA]); 1440ffe3c632Sopenharmony_ci XCTAssertFalse([[message getExtension:[UnittestRoot optionalNestedMessageExtension]] hasBb]); 1441ffe3c632Sopenharmony_ci XCTAssertFalse([[message getExtension:[UnittestRoot optionalForeignMessageExtension]] hasC]); 1442ffe3c632Sopenharmony_ci XCTAssertFalse([[message getExtension:[UnittestRoot optionalImportMessageExtension]] hasD]); 1443ffe3c632Sopenharmony_ci 1444ffe3c632Sopenharmony_ci XCTAssertEqual(0, [(TestAllTypes_OptionalGroup*)[message getExtension:[UnittestRoot optionalGroupExtension]] a]); 1445ffe3c632Sopenharmony_ci XCTAssertEqual(0, [(TestAllTypes_NestedMessage*)[message getExtension:[UnittestRoot optionalNestedMessageExtension]] bb]); 1446ffe3c632Sopenharmony_ci XCTAssertEqual(0, [[message getExtension:[UnittestRoot optionalForeignMessageExtension]] c]); 1447ffe3c632Sopenharmony_ci XCTAssertEqual(0, [[message getExtension:[UnittestRoot optionalImportMessageExtension]] d]); 1448ffe3c632Sopenharmony_ci 1449ffe3c632Sopenharmony_ci // Enums without defaults are set to the first value in the enum. 1450ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Foo, 1451ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot optionalNestedEnumExtension]] intValue]); 1452ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignFoo, 1453ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot optionalForeignEnumExtension]] intValue]); 1454ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportFoo, 1455ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot optionalImportEnumExtension]] intValue]); 1456ffe3c632Sopenharmony_ci 1457ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"", [message getExtension:[UnittestRoot optionalStringPieceExtension]]); 1458ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"", [message getExtension:[UnittestRoot optionalCordExtension]]); 1459ffe3c632Sopenharmony_ci 1460ffe3c632Sopenharmony_ci // Repeated fields are empty. 1461ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedInt32Extension]] count]); 1462ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedInt64Extension]] count]); 1463ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedUint32Extension]] count]); 1464ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedUint64Extension]] count]); 1465ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedSint32Extension]] count]); 1466ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedSint64Extension]] count]); 1467ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedFixed32Extension]] count]); 1468ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedFixed64Extension]] count]); 1469ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedSfixed32Extension]] count]); 1470ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedSfixed64Extension]] count]); 1471ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedFloatExtension]] count]); 1472ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedDoubleExtension]] count]); 1473ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedBoolExtension]] count]); 1474ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedStringExtension]] count]); 1475ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedBytesExtension]] count]); 1476ffe3c632Sopenharmony_ci 1477ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedGroupExtension]] count]); 1478ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedNestedMessageExtension]] count]); 1479ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedForeignMessageExtension]] count]); 1480ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedImportMessageExtension]] count]); 1481ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedNestedEnumExtension]] count]); 1482ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedForeignEnumExtension]] count]); 1483ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedImportEnumExtension]] count]); 1484ffe3c632Sopenharmony_ci 1485ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedStringPieceExtension]] count]); 1486ffe3c632Sopenharmony_ci XCTAssertEqual(0U, [[message getExtension:[UnittestRoot repeatedCordExtension]] count]); 1487ffe3c632Sopenharmony_ci 1488ffe3c632Sopenharmony_ci // hasBlah() should also be NO for all default fields. 1489ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultInt32Extension]]); 1490ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultInt64Extension]]); 1491ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultUint32Extension]]); 1492ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultUint64Extension]]); 1493ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultSint32Extension]]); 1494ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultSint64Extension]]); 1495ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultFixed32Extension]]); 1496ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultFixed64Extension]]); 1497ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultSfixed32Extension]]); 1498ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultSfixed64Extension]]); 1499ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultFloatExtension]]); 1500ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultDoubleExtension]]); 1501ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultBoolExtension]]); 1502ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultStringExtension]]); 1503ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultBytesExtension]]); 1504ffe3c632Sopenharmony_ci 1505ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultNestedEnumExtension]]); 1506ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultForeignEnumExtension]]); 1507ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultImportEnumExtension]]); 1508ffe3c632Sopenharmony_ci 1509ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultStringPieceExtension]]); 1510ffe3c632Sopenharmony_ci XCTAssertFalse([message hasExtension:[UnittestRoot defaultCordExtension]]); 1511ffe3c632Sopenharmony_ci 1512ffe3c632Sopenharmony_ci // Fields with defaults have their default values (duh). 1513ffe3c632Sopenharmony_ci XCTAssertEqual( 41, [[message getExtension:[UnittestRoot defaultInt32Extension]] intValue]); 1514ffe3c632Sopenharmony_ci XCTAssertEqual( 42LL, [[message getExtension:[UnittestRoot defaultInt64Extension]] longLongValue]); 1515ffe3c632Sopenharmony_ci XCTAssertEqual( 43U, [[message getExtension:[UnittestRoot defaultUint32Extension]] unsignedIntValue]); 1516ffe3c632Sopenharmony_ci XCTAssertEqual( 44ULL, [[message getExtension:[UnittestRoot defaultUint64Extension]] unsignedLongLongValue]); 1517ffe3c632Sopenharmony_ci XCTAssertEqual(-45, [[message getExtension:[UnittestRoot defaultSint32Extension]] intValue]); 1518ffe3c632Sopenharmony_ci XCTAssertEqual( 46LL, [[message getExtension:[UnittestRoot defaultSint64Extension]] longLongValue]); 1519ffe3c632Sopenharmony_ci XCTAssertEqual( 47, [[message getExtension:[UnittestRoot defaultFixed32Extension]] intValue]); 1520ffe3c632Sopenharmony_ci XCTAssertEqual( 48ULL, [[message getExtension:[UnittestRoot defaultFixed64Extension]] unsignedLongLongValue]); 1521ffe3c632Sopenharmony_ci XCTAssertEqual( 49, [[message getExtension:[UnittestRoot defaultSfixed32Extension]] intValue]); 1522ffe3c632Sopenharmony_ci XCTAssertEqual(-50LL, [[message getExtension:[UnittestRoot defaultSfixed64Extension]] longLongValue]); 1523ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy( 51.5f, [[message getExtension:[UnittestRoot defaultFloatExtension]] floatValue], 0.01); 1524ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy( 52e3, [[message getExtension:[UnittestRoot defaultDoubleExtension]] doubleValue], 0.01); 1525ffe3c632Sopenharmony_ci XCTAssertTrue([[message getExtension:[UnittestRoot defaultBoolExtension]] boolValue]); 1526ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"hello", [message getExtension:[UnittestRoot defaultStringExtension]]); 1527ffe3c632Sopenharmony_ci XCTAssertEqualObjects([NSData gpbtu_dataWithCString:"world"], [message getExtension:[UnittestRoot defaultBytesExtension]]); 1528ffe3c632Sopenharmony_ci 1529ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Bar, 1530ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot defaultNestedEnumExtension]] intValue]); 1531ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignBar, 1532ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot defaultForeignEnumExtension]] intValue]); 1533ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportBar, 1534ffe3c632Sopenharmony_ci [[message getExtension:[UnittestRoot defaultImportEnumExtension]] intValue]); 1535ffe3c632Sopenharmony_ci 1536ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"abc", [message getExtension:[UnittestRoot defaultStringPieceExtension]]); 1537ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"123", [message getExtension:[UnittestRoot defaultCordExtension]]); 1538ffe3c632Sopenharmony_ci} 1539ffe3c632Sopenharmony_ci 1540ffe3c632Sopenharmony_ci- (void)modifyRepeatedFields:(TestAllTypes *)message { 1541ffe3c632Sopenharmony_ci [message.repeatedInt32Array replaceValueAtIndex:1 withValue:501]; 1542ffe3c632Sopenharmony_ci [message.repeatedInt64Array replaceValueAtIndex:1 withValue:502]; 1543ffe3c632Sopenharmony_ci [message.repeatedUint32Array replaceValueAtIndex:1 withValue:503]; 1544ffe3c632Sopenharmony_ci [message.repeatedUint64Array replaceValueAtIndex:1 withValue:504]; 1545ffe3c632Sopenharmony_ci [message.repeatedSint32Array replaceValueAtIndex:1 withValue:505]; 1546ffe3c632Sopenharmony_ci [message.repeatedSint64Array replaceValueAtIndex:1 withValue:506]; 1547ffe3c632Sopenharmony_ci [message.repeatedFixed32Array replaceValueAtIndex:1 withValue:507]; 1548ffe3c632Sopenharmony_ci [message.repeatedFixed64Array replaceValueAtIndex:1 withValue:508]; 1549ffe3c632Sopenharmony_ci [message.repeatedSfixed32Array replaceValueAtIndex:1 withValue:509]; 1550ffe3c632Sopenharmony_ci [message.repeatedSfixed64Array replaceValueAtIndex:1 withValue:510]; 1551ffe3c632Sopenharmony_ci [message.repeatedFloatArray replaceValueAtIndex:1 withValue:511]; 1552ffe3c632Sopenharmony_ci [message.repeatedDoubleArray replaceValueAtIndex:1 withValue:512]; 1553ffe3c632Sopenharmony_ci [message.repeatedBoolArray replaceValueAtIndex:1 withValue:YES]; 1554ffe3c632Sopenharmony_ci [message.repeatedStringArray replaceObjectAtIndex:1 withObject:@"515"]; 1555ffe3c632Sopenharmony_ci 1556ffe3c632Sopenharmony_ci NSData *data = [[NSData alloc] initWithUint32_gpbtu:516]; 1557ffe3c632Sopenharmony_ci [message.repeatedBytesArray replaceObjectAtIndex:1 withObject:data]; 1558ffe3c632Sopenharmony_ci [data release]; 1559ffe3c632Sopenharmony_ci 1560ffe3c632Sopenharmony_ci TestAllTypes_RepeatedGroup *testAll = 1561ffe3c632Sopenharmony_ci [[TestAllTypes_RepeatedGroup alloc] init]; 1562ffe3c632Sopenharmony_ci [testAll setA:517]; 1563ffe3c632Sopenharmony_ci [message.repeatedGroupArray replaceObjectAtIndex:1 withObject:testAll]; 1564ffe3c632Sopenharmony_ci [testAll release]; 1565ffe3c632Sopenharmony_ci 1566ffe3c632Sopenharmony_ci TestAllTypes_NestedMessage *nestedMessage = 1567ffe3c632Sopenharmony_ci [[TestAllTypes_NestedMessage alloc] init]; 1568ffe3c632Sopenharmony_ci [nestedMessage setBb:518]; 1569ffe3c632Sopenharmony_ci [message.repeatedNestedMessageArray replaceObjectAtIndex:1 1570ffe3c632Sopenharmony_ci withObject:nestedMessage]; 1571ffe3c632Sopenharmony_ci [nestedMessage release]; 1572ffe3c632Sopenharmony_ci 1573ffe3c632Sopenharmony_ci ForeignMessage *foreignMessage = [[ForeignMessage alloc] init]; 1574ffe3c632Sopenharmony_ci [foreignMessage setC:519]; 1575ffe3c632Sopenharmony_ci [message.repeatedForeignMessageArray replaceObjectAtIndex:1 1576ffe3c632Sopenharmony_ci withObject:foreignMessage]; 1577ffe3c632Sopenharmony_ci [foreignMessage release]; 1578ffe3c632Sopenharmony_ci 1579ffe3c632Sopenharmony_ci ImportMessage *importMessage = [[ImportMessage alloc] init]; 1580ffe3c632Sopenharmony_ci [importMessage setD:520]; 1581ffe3c632Sopenharmony_ci [message.repeatedImportMessageArray replaceObjectAtIndex:1 1582ffe3c632Sopenharmony_ci withObject:importMessage]; 1583ffe3c632Sopenharmony_ci [importMessage release]; 1584ffe3c632Sopenharmony_ci 1585ffe3c632Sopenharmony_ci [message.repeatedNestedEnumArray replaceValueAtIndex:1 withValue:TestAllTypes_NestedEnum_Foo]; 1586ffe3c632Sopenharmony_ci [message.repeatedForeignEnumArray replaceValueAtIndex:1 withValue:ForeignEnum_ForeignFoo]; 1587ffe3c632Sopenharmony_ci [message.repeatedImportEnumArray replaceValueAtIndex:1 withValue:ImportEnum_ImportFoo]; 1588ffe3c632Sopenharmony_ci 1589ffe3c632Sopenharmony_ci [message.repeatedStringPieceArray replaceObjectAtIndex:1 withObject:@"524"]; 1590ffe3c632Sopenharmony_ci [message.repeatedCordArray replaceObjectAtIndex:1 withObject:@"525"]; 1591ffe3c632Sopenharmony_ci} 1592ffe3c632Sopenharmony_ci 1593ffe3c632Sopenharmony_ci- (void)assertRepeatedFieldsModified:(TestAllTypes *)message 1594ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 1595ffe3c632Sopenharmony_ci // ModifyRepeatedFields only sets the second repeated element of each 1596ffe3c632Sopenharmony_ci // field. In addition to verifying this, we also verify that the first 1597ffe3c632Sopenharmony_ci // element and size were *not* modified. 1598ffe3c632Sopenharmony_ci 1599ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedInt32Array.count); 1600ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedInt64Array.count); 1601ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedUint32Array.count); 1602ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedUint64Array.count); 1603ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSint32Array.count); 1604ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSint64Array.count); 1605ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFixed32Array.count); 1606ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFixed64Array.count); 1607ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSfixed32Array.count); 1608ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSfixed64Array.count); 1609ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFloatArray.count); 1610ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedDoubleArray.count); 1611ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedBoolArray.count); 1612ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedStringArray.count); 1613ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedBytesArray.count); 1614ffe3c632Sopenharmony_ci 1615ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedGroupArray.count); 1616ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedNestedMessageArray.count); 1617ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedForeignMessageArray.count); 1618ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedImportMessageArray.count); 1619ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedNestedEnumArray.count); 1620ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedForeignEnumArray.count); 1621ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedImportEnumArray.count); 1622ffe3c632Sopenharmony_ci 1623ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedStringPieceArray.count); 1624ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedCordArray.count); 1625ffe3c632Sopenharmony_ci 1626ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedInt32Array_Count); 1627ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedInt64Array_Count); 1628ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedUint32Array_Count); 1629ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedUint64Array_Count); 1630ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSint32Array_Count); 1631ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSint64Array_Count); 1632ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFixed32Array_Count); 1633ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFixed64Array_Count); 1634ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSfixed32Array_Count); 1635ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedSfixed64Array_Count); 1636ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedFloatArray_Count); 1637ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedDoubleArray_Count); 1638ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedBoolArray_Count); 1639ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedStringArray_Count); 1640ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedBytesArray_Count); 1641ffe3c632Sopenharmony_ci 1642ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedGroupArray_Count); 1643ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedNestedMessageArray_Count); 1644ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedForeignMessageArray_Count); 1645ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedImportMessageArray_Count); 1646ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedNestedEnumArray_Count); 1647ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedForeignEnumArray_Count); 1648ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedImportEnumArray_Count); 1649ffe3c632Sopenharmony_ci 1650ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedStringPieceArray_Count); 1651ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.repeatedCordArray_Count); 1652ffe3c632Sopenharmony_ci 1653ffe3c632Sopenharmony_ci XCTAssertEqual(201, [message.repeatedInt32Array valueAtIndex:0]); 1654ffe3c632Sopenharmony_ci XCTAssertEqual(202LL, [message.repeatedInt64Array valueAtIndex:0]); 1655ffe3c632Sopenharmony_ci XCTAssertEqual(203U, [message.repeatedUint32Array valueAtIndex:0]); 1656ffe3c632Sopenharmony_ci XCTAssertEqual(204ULL, [message.repeatedUint64Array valueAtIndex:0]); 1657ffe3c632Sopenharmony_ci XCTAssertEqual(205, [message.repeatedSint32Array valueAtIndex:0]); 1658ffe3c632Sopenharmony_ci XCTAssertEqual(206LL, [message.repeatedSint64Array valueAtIndex:0]); 1659ffe3c632Sopenharmony_ci XCTAssertEqual(207U, [message.repeatedFixed32Array valueAtIndex:0]); 1660ffe3c632Sopenharmony_ci XCTAssertEqual(208ULL, [message.repeatedFixed64Array valueAtIndex:0]); 1661ffe3c632Sopenharmony_ci XCTAssertEqual(209, [message.repeatedSfixed32Array valueAtIndex:0]); 1662ffe3c632Sopenharmony_ci XCTAssertEqual(210LL, [message.repeatedSfixed64Array valueAtIndex:0]); 1663ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(211.0f, [message.repeatedFloatArray valueAtIndex:0], 0.01); 1664ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(212.0, [message.repeatedDoubleArray valueAtIndex:0], 0.01); 1665ffe3c632Sopenharmony_ci XCTAssertFalse([message.repeatedBoolArray valueAtIndex:0]); 1666ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"215", message.repeatedStringArray[0]); 1667ffe3c632Sopenharmony_ci XCTAssertEqualObjects([NSData gpbtu_dataWithUint32:216], 1668ffe3c632Sopenharmony_ci message.repeatedBytesArray[0]); 1669ffe3c632Sopenharmony_ci 1670ffe3c632Sopenharmony_ci XCTAssertEqual(217, ((TestAllTypes_RepeatedGroup*)message.repeatedGroupArray[0]).a); 1671ffe3c632Sopenharmony_ci XCTAssertEqual(218, ((TestAllTypes_NestedMessage*)message.repeatedNestedMessageArray[0]).bb); 1672ffe3c632Sopenharmony_ci XCTAssertEqual(219, ((ForeignMessage*)message.repeatedForeignMessageArray[0]).c); 1673ffe3c632Sopenharmony_ci XCTAssertEqual(220, ((ImportMessage*)message.repeatedImportMessageArray[0]).d); 1674ffe3c632Sopenharmony_ci 1675ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Baz, [message.repeatedNestedEnumArray valueAtIndex:0]); 1676ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignBaz, [message.repeatedForeignEnumArray valueAtIndex:0]); 1677ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportBaz, [message.repeatedImportEnumArray valueAtIndex:0]); 1678ffe3c632Sopenharmony_ci 1679ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"224", message.repeatedStringPieceArray[0]); 1680ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"225", message.repeatedCordArray[0]); 1681ffe3c632Sopenharmony_ci 1682ffe3c632Sopenharmony_ci // Actually verify the second (modified) elements now. 1683ffe3c632Sopenharmony_ci XCTAssertEqual(501, [message.repeatedInt32Array valueAtIndex:1]); 1684ffe3c632Sopenharmony_ci XCTAssertEqual(502LL, [message.repeatedInt64Array valueAtIndex:1]); 1685ffe3c632Sopenharmony_ci XCTAssertEqual(503U, [message.repeatedUint32Array valueAtIndex:1]); 1686ffe3c632Sopenharmony_ci XCTAssertEqual(504ULL, [message.repeatedUint64Array valueAtIndex:1]); 1687ffe3c632Sopenharmony_ci XCTAssertEqual(505, [message.repeatedSint32Array valueAtIndex:1]); 1688ffe3c632Sopenharmony_ci XCTAssertEqual(506LL, [message.repeatedSint64Array valueAtIndex:1]); 1689ffe3c632Sopenharmony_ci XCTAssertEqual(507U, [message.repeatedFixed32Array valueAtIndex:1]); 1690ffe3c632Sopenharmony_ci XCTAssertEqual(508ULL, [message.repeatedFixed64Array valueAtIndex:1]); 1691ffe3c632Sopenharmony_ci XCTAssertEqual(509, [message.repeatedSfixed32Array valueAtIndex:1]); 1692ffe3c632Sopenharmony_ci XCTAssertEqual(510LL, [message.repeatedSfixed64Array valueAtIndex:1]); 1693ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(511.0f, [message.repeatedFloatArray valueAtIndex:1], 0.01); 1694ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(512.0, [message.repeatedDoubleArray valueAtIndex:1], 0.01); 1695ffe3c632Sopenharmony_ci XCTAssertTrue([message.repeatedBoolArray valueAtIndex:1]); 1696ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"515", message.repeatedStringArray[1]); 1697ffe3c632Sopenharmony_ci XCTAssertEqualObjects([NSData gpbtu_dataWithUint32:516], 1698ffe3c632Sopenharmony_ci message.repeatedBytesArray[1]); 1699ffe3c632Sopenharmony_ci 1700ffe3c632Sopenharmony_ci XCTAssertEqual(517, ((TestAllTypes_RepeatedGroup*)message.repeatedGroupArray[1]).a); 1701ffe3c632Sopenharmony_ci XCTAssertEqual(518, ((TestAllTypes_NestedMessage*)message.repeatedNestedMessageArray[1]).bb); 1702ffe3c632Sopenharmony_ci XCTAssertEqual(519, ((ForeignMessage*)message.repeatedForeignMessageArray[1]).c); 1703ffe3c632Sopenharmony_ci XCTAssertEqual(520, ((ImportMessage*)message.repeatedImportMessageArray[1]).d); 1704ffe3c632Sopenharmony_ci 1705ffe3c632Sopenharmony_ci XCTAssertEqual(TestAllTypes_NestedEnum_Foo, [message.repeatedNestedEnumArray valueAtIndex:1]); 1706ffe3c632Sopenharmony_ci XCTAssertEqual(ForeignEnum_ForeignFoo, [message.repeatedForeignEnumArray valueAtIndex:1]); 1707ffe3c632Sopenharmony_ci XCTAssertEqual(ImportEnum_ImportFoo, [message.repeatedImportEnumArray valueAtIndex:1]); 1708ffe3c632Sopenharmony_ci 1709ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"524", message.repeatedStringPieceArray[1]); 1710ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@"525", message.repeatedCordArray[1]); 1711ffe3c632Sopenharmony_ci} 1712ffe3c632Sopenharmony_ci 1713ffe3c632Sopenharmony_ci- (void)setPackedFields:(TestPackedTypes *)message 1714ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 1715ffe3c632Sopenharmony_ci // Must match -setUnpackedFields:repeatedCount: 1716ffe3c632Sopenharmony_ci // Must match -setPackedExtensions:repeatedCount: 1717ffe3c632Sopenharmony_ci // Must match -setUnpackedExtensions:repeatedCount: 1718ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1719ffe3c632Sopenharmony_ci [message.packedInt32Array addValue:601 + i * 100]; 1720ffe3c632Sopenharmony_ci } 1721ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1722ffe3c632Sopenharmony_ci [message.packedInt64Array addValue:602 + i * 100]; 1723ffe3c632Sopenharmony_ci } 1724ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1725ffe3c632Sopenharmony_ci [message.packedUint32Array addValue:603 + i * 100]; 1726ffe3c632Sopenharmony_ci } 1727ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1728ffe3c632Sopenharmony_ci [message.packedUint64Array addValue:604 + i * 100]; 1729ffe3c632Sopenharmony_ci } 1730ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1731ffe3c632Sopenharmony_ci [message.packedSint32Array addValue:605 + i * 100]; 1732ffe3c632Sopenharmony_ci } 1733ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1734ffe3c632Sopenharmony_ci [message.packedSint64Array addValue:606 + i * 100]; 1735ffe3c632Sopenharmony_ci } 1736ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1737ffe3c632Sopenharmony_ci [message.packedFixed32Array addValue:607 + i * 100]; 1738ffe3c632Sopenharmony_ci } 1739ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1740ffe3c632Sopenharmony_ci [message.packedFixed64Array addValue:608 + i * 100]; 1741ffe3c632Sopenharmony_ci } 1742ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1743ffe3c632Sopenharmony_ci [message.packedSfixed32Array addValue:609 + i * 100]; 1744ffe3c632Sopenharmony_ci } 1745ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1746ffe3c632Sopenharmony_ci [message.packedSfixed64Array addValue:610 + i * 100]; 1747ffe3c632Sopenharmony_ci } 1748ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1749ffe3c632Sopenharmony_ci [message.packedFloatArray addValue:611 + i * 100]; 1750ffe3c632Sopenharmony_ci } 1751ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1752ffe3c632Sopenharmony_ci [message.packedDoubleArray addValue:612 + i * 100]; 1753ffe3c632Sopenharmony_ci } 1754ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1755ffe3c632Sopenharmony_ci [message.packedBoolArray addValue:(i % 2) ? YES : NO]; 1756ffe3c632Sopenharmony_ci } 1757ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1758ffe3c632Sopenharmony_ci [message.packedEnumArray 1759ffe3c632Sopenharmony_ci addValue:(i % 2) ? ForeignEnum_ForeignBar : ForeignEnum_ForeignBaz]; 1760ffe3c632Sopenharmony_ci } 1761ffe3c632Sopenharmony_ci} 1762ffe3c632Sopenharmony_ci 1763ffe3c632Sopenharmony_ci- (void)setUnpackedFields:(TestUnpackedTypes *)message 1764ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 1765ffe3c632Sopenharmony_ci // Must match -setPackedFields:repeatedCount: 1766ffe3c632Sopenharmony_ci // Must match -setPackedExtensions:repeatedCount: 1767ffe3c632Sopenharmony_ci // Must match -setUnpackedExtensions:repeatedCount: 1768ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1769ffe3c632Sopenharmony_ci [message.unpackedInt32Array addValue:601 + i * 100]; 1770ffe3c632Sopenharmony_ci } 1771ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1772ffe3c632Sopenharmony_ci [message.unpackedInt64Array addValue:602 + i * 100]; 1773ffe3c632Sopenharmony_ci } 1774ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1775ffe3c632Sopenharmony_ci [message.unpackedUint32Array addValue:603 + i * 100]; 1776ffe3c632Sopenharmony_ci } 1777ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1778ffe3c632Sopenharmony_ci [message.unpackedUint64Array addValue:604 + i * 100]; 1779ffe3c632Sopenharmony_ci } 1780ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1781ffe3c632Sopenharmony_ci [message.unpackedSint32Array addValue:605 + i * 100]; 1782ffe3c632Sopenharmony_ci } 1783ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1784ffe3c632Sopenharmony_ci [message.unpackedSint64Array addValue:606 + i * 100]; 1785ffe3c632Sopenharmony_ci } 1786ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1787ffe3c632Sopenharmony_ci [message.unpackedFixed32Array addValue:607 + i * 100]; 1788ffe3c632Sopenharmony_ci } 1789ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1790ffe3c632Sopenharmony_ci [message.unpackedFixed64Array addValue:608 + i * 100]; 1791ffe3c632Sopenharmony_ci } 1792ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1793ffe3c632Sopenharmony_ci [message.unpackedSfixed32Array addValue:609 + i * 100]; 1794ffe3c632Sopenharmony_ci } 1795ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1796ffe3c632Sopenharmony_ci [message.unpackedSfixed64Array addValue:610 + i * 100]; 1797ffe3c632Sopenharmony_ci } 1798ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1799ffe3c632Sopenharmony_ci [message.unpackedFloatArray addValue:611 + i * 100]; 1800ffe3c632Sopenharmony_ci } 1801ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1802ffe3c632Sopenharmony_ci [message.unpackedDoubleArray addValue:612 + i * 100]; 1803ffe3c632Sopenharmony_ci } 1804ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1805ffe3c632Sopenharmony_ci [message.unpackedBoolArray addValue:(i % 2) ? YES : NO]; 1806ffe3c632Sopenharmony_ci } 1807ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1808ffe3c632Sopenharmony_ci [message.unpackedEnumArray 1809ffe3c632Sopenharmony_ci addValue:(i % 2) ? ForeignEnum_ForeignBar : ForeignEnum_ForeignBaz]; 1810ffe3c632Sopenharmony_ci } 1811ffe3c632Sopenharmony_ci} 1812ffe3c632Sopenharmony_ci 1813ffe3c632Sopenharmony_ci- (void)assertPackedFieldsSet:(TestPackedTypes *)message 1814ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 1815ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedInt32Array.count); 1816ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedInt64Array.count); 1817ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedUint32Array.count); 1818ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedUint64Array.count); 1819ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedSint32Array.count); 1820ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedSint64Array.count); 1821ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedFixed32Array.count); 1822ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedFixed64Array.count); 1823ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedSfixed32Array.count); 1824ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedSfixed64Array.count); 1825ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedFloatArray.count); 1826ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedDoubleArray.count); 1827ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedBoolArray.count); 1828ffe3c632Sopenharmony_ci XCTAssertEqual(count, message.packedEnumArray.count); 1829ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1830ffe3c632Sopenharmony_ci XCTAssertEqual((int)(601 + i * 100), 1831ffe3c632Sopenharmony_ci [message.packedInt32Array valueAtIndex:i]); 1832ffe3c632Sopenharmony_ci XCTAssertEqual(602 + i * 100, [message.packedInt64Array valueAtIndex:i]); 1833ffe3c632Sopenharmony_ci XCTAssertEqual(603 + i * 100, [message.packedUint32Array valueAtIndex:i]); 1834ffe3c632Sopenharmony_ci XCTAssertEqual(604 + i * 100, [message.packedUint64Array valueAtIndex:i]); 1835ffe3c632Sopenharmony_ci XCTAssertEqual((int)(605 + i * 100), 1836ffe3c632Sopenharmony_ci [message.packedSint32Array valueAtIndex:i]); 1837ffe3c632Sopenharmony_ci XCTAssertEqual(606 + i * 100, [message.packedSint64Array valueAtIndex:i]); 1838ffe3c632Sopenharmony_ci XCTAssertEqual(607 + i * 100, [message.packedFixed32Array valueAtIndex:i]); 1839ffe3c632Sopenharmony_ci XCTAssertEqual(608 + i * 100, [message.packedFixed64Array valueAtIndex:i]); 1840ffe3c632Sopenharmony_ci XCTAssertEqual((int)(609 + i * 100), 1841ffe3c632Sopenharmony_ci [message.packedSfixed32Array valueAtIndex:i]); 1842ffe3c632Sopenharmony_ci XCTAssertEqual(610 + i * 100, [message.packedSfixed64Array valueAtIndex:i]); 1843ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(611 + i * 100, 1844ffe3c632Sopenharmony_ci [message.packedFloatArray valueAtIndex:i], 0.01); 1845ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy( 1846ffe3c632Sopenharmony_ci 612 + i * 100, [message.packedDoubleArray valueAtIndex:i], 0.01); 1847ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? YES : NO, 1848ffe3c632Sopenharmony_ci [message.packedBoolArray valueAtIndex:i]); 1849ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? ForeignEnum_ForeignBar : ForeignEnum_ForeignBaz, 1850ffe3c632Sopenharmony_ci [message.packedEnumArray valueAtIndex:i]); 1851ffe3c632Sopenharmony_ci } 1852ffe3c632Sopenharmony_ci} 1853ffe3c632Sopenharmony_ci 1854ffe3c632Sopenharmony_ci- (void)setPackedExtensions:(TestPackedExtensions *)message 1855ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 1856ffe3c632Sopenharmony_ci // Must match -setPackedFields:repeatedCount: 1857ffe3c632Sopenharmony_ci // Must match -setUnpackedFields:repeatedCount: 1858ffe3c632Sopenharmony_ci // Must match -setUnpackedExtensions:repeatedCount: 1859ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; i++) { 1860ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedInt32Extension] 1861ffe3c632Sopenharmony_ci value:@(601 + i * 100)]; 1862ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedInt64Extension] 1863ffe3c632Sopenharmony_ci value:@(602 + i * 100)]; 1864ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedUint32Extension] 1865ffe3c632Sopenharmony_ci value:@(603 + i * 100)]; 1866ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedUint64Extension] 1867ffe3c632Sopenharmony_ci value:@(604 + i * 100)]; 1868ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedSint32Extension] 1869ffe3c632Sopenharmony_ci value:@(605 + i * 100)]; 1870ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedSint64Extension] 1871ffe3c632Sopenharmony_ci value:@(606 + i * 100)]; 1872ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedFixed32Extension] 1873ffe3c632Sopenharmony_ci value:@(607 + i * 100)]; 1874ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedFixed64Extension] 1875ffe3c632Sopenharmony_ci value:@(608 + i * 100)]; 1876ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedSfixed32Extension] 1877ffe3c632Sopenharmony_ci value:@(609 + i * 100)]; 1878ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedSfixed64Extension] 1879ffe3c632Sopenharmony_ci value:@(610 + i * 100)]; 1880ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedFloatExtension] 1881ffe3c632Sopenharmony_ci value:@(611 + i * 100)]; 1882ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedDoubleExtension] 1883ffe3c632Sopenharmony_ci value:@(612 + i * 100)]; 1884ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedBoolExtension] 1885ffe3c632Sopenharmony_ci value:@((i % 2) ? YES : NO)]; 1886ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot packedEnumExtension] 1887ffe3c632Sopenharmony_ci value:@((i % 2) ? ForeignEnum_ForeignBar 1888ffe3c632Sopenharmony_ci : ForeignEnum_ForeignBaz)]; 1889ffe3c632Sopenharmony_ci } 1890ffe3c632Sopenharmony_ci} 1891ffe3c632Sopenharmony_ci 1892ffe3c632Sopenharmony_ci- (void)setUnpackedExtensions:(TestUnpackedExtensions *)message 1893ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 1894ffe3c632Sopenharmony_ci // Must match -setPackedFields:repeatedCount: 1895ffe3c632Sopenharmony_ci // Must match -setUnpackedFields:repeatedCount: 1896ffe3c632Sopenharmony_ci // Must match -setPackedExtensions:repeatedCount: 1897ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; i++) { 1898ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedInt32Extension] 1899ffe3c632Sopenharmony_ci value:@(601 + i * 100)]; 1900ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedInt64Extension] 1901ffe3c632Sopenharmony_ci value:@(602 + i * 100)]; 1902ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedUint32Extension] 1903ffe3c632Sopenharmony_ci value:@(603 + i * 100)]; 1904ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedUint64Extension] 1905ffe3c632Sopenharmony_ci value:@(604 + i * 100)]; 1906ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedSint32Extension] 1907ffe3c632Sopenharmony_ci value:@(605 + i * 100)]; 1908ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedSint64Extension] 1909ffe3c632Sopenharmony_ci value:@(606 + i * 100)]; 1910ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedFixed32Extension] 1911ffe3c632Sopenharmony_ci value:@(607 + i * 100)]; 1912ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedFixed64Extension] 1913ffe3c632Sopenharmony_ci value:@(608 + i * 100)]; 1914ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedSfixed32Extension] 1915ffe3c632Sopenharmony_ci value:@(609 + i * 100)]; 1916ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedSfixed64Extension] 1917ffe3c632Sopenharmony_ci value:@(610 + i * 100)]; 1918ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedFloatExtension] 1919ffe3c632Sopenharmony_ci value:@(611 + i * 100)]; 1920ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedDoubleExtension] 1921ffe3c632Sopenharmony_ci value:@(612 + i * 100)]; 1922ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedBoolExtension] 1923ffe3c632Sopenharmony_ci value:@((i % 2) ? YES : NO)]; 1924ffe3c632Sopenharmony_ci [message addExtension:[UnittestRoot unpackedEnumExtension] 1925ffe3c632Sopenharmony_ci value:@((i % 2) ? ForeignEnum_ForeignBar 1926ffe3c632Sopenharmony_ci : ForeignEnum_ForeignBaz)]; 1927ffe3c632Sopenharmony_ci } 1928ffe3c632Sopenharmony_ci} 1929ffe3c632Sopenharmony_ci 1930ffe3c632Sopenharmony_ci- (void)assertPackedExtensionsSet:(TestPackedExtensions *)message 1931ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count{ 1932ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedInt32Extension]] count]); 1933ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedInt64Extension]] count]); 1934ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedUint32Extension]] count]); 1935ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedUint64Extension]] count]); 1936ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedSint32Extension]] count]); 1937ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedSint64Extension]] count]); 1938ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedFixed32Extension]] count]); 1939ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedFixed64Extension]] count]); 1940ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedSfixed32Extension]] count]); 1941ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedSfixed64Extension]] count]); 1942ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedFloatExtension]] count]); 1943ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedDoubleExtension]] count]); 1944ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedBoolExtension]] count]); 1945ffe3c632Sopenharmony_ci XCTAssertEqual(count, [[message getExtension:[UnittestRoot packedEnumExtension]] count]); 1946ffe3c632Sopenharmony_ci 1947ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 1948ffe3c632Sopenharmony_ci id extension = [message getExtension:[UnittestRoot packedInt32Extension]]; 1949ffe3c632Sopenharmony_ci XCTAssertEqual((int)(601 + i * 100), [extension[i] intValue]); 1950ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedInt64Extension]]; 1951ffe3c632Sopenharmony_ci XCTAssertEqual(602 + i * 100, [extension[i] longLongValue]); 1952ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedUint32Extension]]; 1953ffe3c632Sopenharmony_ci XCTAssertEqual(603 + i * 100, [extension[i] unsignedIntValue]); 1954ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedUint64Extension]]; 1955ffe3c632Sopenharmony_ci XCTAssertEqual(604 + i * 100, [extension[i] unsignedLongLongValue]); 1956ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedSint32Extension]]; 1957ffe3c632Sopenharmony_ci XCTAssertEqual((int)(605 + i * 100), [extension[i] intValue]); 1958ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedSint64Extension]]; 1959ffe3c632Sopenharmony_ci XCTAssertEqual(606 + i * 100, [extension[i] longLongValue]); 1960ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedFixed32Extension]]; 1961ffe3c632Sopenharmony_ci XCTAssertEqual(607 + i * 100, [extension[i] unsignedIntValue]); 1962ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedFixed64Extension]]; 1963ffe3c632Sopenharmony_ci XCTAssertEqual(608 + i * 100, [extension[i] unsignedLongLongValue]); 1964ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedSfixed32Extension]]; 1965ffe3c632Sopenharmony_ci XCTAssertEqual((int)(609 + i * 100), [extension[i] intValue]); 1966ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedSfixed64Extension]]; 1967ffe3c632Sopenharmony_ci XCTAssertEqual(610 + i * 100, [extension[i] longLongValue]); 1968ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedFloatExtension]]; 1969ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(611 + i * 100, [extension[i] floatValue], 0.01); 1970ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedDoubleExtension]]; 1971ffe3c632Sopenharmony_ci XCTAssertEqualWithAccuracy(612 + i * 100, [extension[i] doubleValue], 0.01); 1972ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedBoolExtension]]; 1973ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? YES : NO, [extension[i] boolValue]); 1974ffe3c632Sopenharmony_ci extension = [message getExtension:[UnittestRoot packedEnumExtension]]; 1975ffe3c632Sopenharmony_ci XCTAssertEqual((i % 2) ? ForeignEnum_ForeignBar : ForeignEnum_ForeignBaz, 1976ffe3c632Sopenharmony_ci [extension[i] intValue]); 1977ffe3c632Sopenharmony_ci } 1978ffe3c632Sopenharmony_ci} 1979ffe3c632Sopenharmony_ci 1980ffe3c632Sopenharmony_ci- (void)assertAllFieldsKVCMatch:(TestAllTypes *)message { 1981ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalInt32"], @YES); 1982ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalInt32), [message valueForKey:@"optionalInt32"]); 1983ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalInt64"], @YES); 1984ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalInt64), [message valueForKey:@"optionalInt64"]); 1985ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalUint32"], @YES); 1986ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalUint32), [message valueForKey:@"optionalUint32"]); 1987ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalUint64"], @YES); 1988ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalUint64), [message valueForKey:@"optionalUint64"]); 1989ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalSint32"], @YES); 1990ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalSint32), [message valueForKey:@"optionalSint32"]); 1991ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalSint64"], @YES); 1992ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalSint64), [message valueForKey:@"optionalSint64"]); 1993ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalFixed32"], @YES); 1994ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalFixed32), [message valueForKey:@"optionalFixed32"]); 1995ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalFixed64"], @YES); 1996ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalFixed64), [message valueForKey:@"optionalFixed64"]); 1997ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalSfixed32"], @YES); 1998ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalSfixed32), [message valueForKey:@"optionalSfixed32"]); 1999ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalSfixed64"], @YES); 2000ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalSfixed64), [message valueForKey:@"optionalSfixed64"]); 2001ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalFloat"], @YES); 2002ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalFloat), [message valueForKey:@"optionalFloat"]); 2003ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalDouble"], @YES); 2004ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalDouble), [message valueForKey:@"optionalDouble"]); 2005ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalBool"], @YES); 2006ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalBool), [message valueForKey:@"optionalBool"]); 2007ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalString"], @YES); 2008ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.optionalString, [message valueForKey:@"optionalString"]); 2009ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalBytes"], @YES); 2010ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.optionalBytes, [message valueForKey:@"optionalBytes"]); 2011ffe3c632Sopenharmony_ci 2012ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalGroup"], @YES); 2013ffe3c632Sopenharmony_ci XCTAssertNotNil(message.optionalGroup); 2014ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKeyPath:@"optionalGroup.hasA"], @YES); 2015ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalGroup.a), [message valueForKeyPath:@"optionalGroup.a"]); 2016ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalNestedMessage"], @YES); 2017ffe3c632Sopenharmony_ci XCTAssertNotNil(message.optionalNestedMessage); 2018ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKeyPath:@"optionalNestedMessage.hasBb"], @YES); 2019ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalNestedMessage.bb), [message valueForKeyPath:@"optionalNestedMessage.bb"]); 2020ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalForeignMessage"], @YES); 2021ffe3c632Sopenharmony_ci XCTAssertNotNil(message.optionalForeignMessage); 2022ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKeyPath:@"optionalForeignMessage.hasC"], @YES); 2023ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalForeignMessage.c), [message valueForKeyPath:@"optionalForeignMessage.c"]); 2024ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalImportMessage"], @YES); 2025ffe3c632Sopenharmony_ci XCTAssertNotNil(message.optionalForeignMessage); 2026ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKeyPath:@"optionalImportMessage.hasD"], @YES); 2027ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalImportMessage.d), [message valueForKeyPath:@"optionalImportMessage.d"]); 2028ffe3c632Sopenharmony_ci 2029ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalNestedEnum"], @YES); 2030ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalNestedEnum), [message valueForKey:@"optionalNestedEnum"]); 2031ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalForeignEnum"], @YES); 2032ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalForeignEnum), [message valueForKey:@"optionalForeignEnum"]); 2033ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalImportEnum"], @YES); 2034ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.optionalImportEnum), [message valueForKey:@"optionalImportEnum"]); 2035ffe3c632Sopenharmony_ci 2036ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalStringPiece"], @YES); 2037ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.optionalStringPiece, [message valueForKey:@"optionalStringPiece"]); 2038ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalCord"], @YES); 2039ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.optionalCord, [message valueForKey:@"optionalCord"]); 2040ffe3c632Sopenharmony_ci 2041ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 2042ffe3c632Sopenharmony_ci 2043ffe3c632Sopenharmony_ci // GPBArray interface for repeated 2044ffe3c632Sopenharmony_ci 2045ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedInt32Array, [message valueForKey:@"repeatedInt32Array"]); 2046ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedInt64Array, [message valueForKey:@"repeatedInt64Array"]); 2047ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedUint32Array, [message valueForKey:@"repeatedUint32Array"]); 2048ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedUint64Array, [message valueForKey:@"repeatedUint64Array"]); 2049ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedSint32Array, [message valueForKey:@"repeatedSint32Array"]); 2050ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedSint64Array, [message valueForKey:@"repeatedSint64Array"]); 2051ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedFixed32Array, [message valueForKey:@"repeatedFixed32Array"]); 2052ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedFixed64Array, [message valueForKey:@"repeatedFixed64Array"]); 2053ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedSfixed32Array, [message valueForKey:@"repeatedSfixed32Array"]); 2054ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedSfixed64Array, [message valueForKey:@"repeatedSfixed64Array"]); 2055ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedFloatArray, [message valueForKey:@"repeatedFloatArray"]); 2056ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedDoubleArray, [message valueForKey:@"repeatedDoubleArray"]); 2057ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedBoolArray, [message valueForKey:@"repeatedBoolArray"]); 2058ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedStringArray, [message valueForKey:@"repeatedStringArray"]); 2059ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedBytesArray, [message valueForKey:@"repeatedBytesArray"]); 2060ffe3c632Sopenharmony_ci 2061ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedGroupArray, [message valueForKey:@"repeatedGroupArray"]); 2062ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedNestedMessageArray, [message valueForKey:@"repeatedNestedMessageArray"]); 2063ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedForeignMessageArray, [message valueForKey:@"repeatedForeignMessageArray"]); 2064ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedImportMessageArray, [message valueForKey:@"repeatedImportMessageArray"]); 2065ffe3c632Sopenharmony_ci 2066ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedNestedEnumArray, [message valueForKey:@"repeatedNestedEnumArray"]); 2067ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedForeignEnumArray, [message valueForKey:@"repeatedForeignEnumArray"]); 2068ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedImportEnumArray, [message valueForKey:@"repeatedImportEnumArray"]); 2069ffe3c632Sopenharmony_ci 2070ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedStringPieceArray, [message valueForKey:@"repeatedStringPieceArray"]); 2071ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.repeatedCordArray, [message valueForKey:@"repeatedCordArray"]); 2072ffe3c632Sopenharmony_ci 2073ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedInt32Array_Count), [message valueForKey:@"repeatedInt32Array_Count"]); 2074ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedInt64Array_Count), [message valueForKey:@"repeatedInt64Array_Count"]); 2075ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedUint32Array_Count), [message valueForKey:@"repeatedUint32Array_Count"]); 2076ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedUint64Array_Count), [message valueForKey:@"repeatedUint64Array_Count"]); 2077ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedSint32Array_Count), [message valueForKey:@"repeatedSint32Array_Count"]); 2078ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedSint64Array_Count), [message valueForKey:@"repeatedSint64Array_Count"]); 2079ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedFixed32Array_Count), [message valueForKey:@"repeatedFixed32Array_Count"]); 2080ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedFixed64Array_Count), [message valueForKey:@"repeatedFixed64Array_Count"]); 2081ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedSfixed32Array_Count), [message valueForKey:@"repeatedSfixed32Array_Count"]); 2082ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedSfixed64Array_Count), [message valueForKey:@"repeatedSfixed64Array_Count"]); 2083ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedFloatArray_Count), [message valueForKey:@"repeatedFloatArray_Count"]); 2084ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedDoubleArray_Count), [message valueForKey:@"repeatedDoubleArray_Count"]); 2085ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedBoolArray_Count), [message valueForKey:@"repeatedBoolArray_Count"]); 2086ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedStringArray_Count), [message valueForKey:@"repeatedStringArray_Count"]); 2087ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedBytesArray_Count), [message valueForKey:@"repeatedBytesArray_Count"]); 2088ffe3c632Sopenharmony_ci 2089ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedGroupArray_Count), [message valueForKey:@"repeatedGroupArray_Count"]); 2090ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedNestedMessageArray_Count), [message valueForKey:@"repeatedNestedMessageArray_Count"]); 2091ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedForeignMessageArray_Count), [message valueForKey:@"repeatedForeignMessageArray_Count"]); 2092ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedImportMessageArray_Count), [message valueForKey:@"repeatedImportMessageArray_Count"]); 2093ffe3c632Sopenharmony_ci 2094ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedNestedEnumArray_Count), [message valueForKey:@"repeatedNestedEnumArray_Count"]); 2095ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedForeignEnumArray_Count), [message valueForKey:@"repeatedForeignEnumArray_Count"]); 2096ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedImportEnumArray_Count), [message valueForKey:@"repeatedImportEnumArray_Count"]); 2097ffe3c632Sopenharmony_ci 2098ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedStringPieceArray_Count), [message valueForKey:@"repeatedStringPieceArray_Count"]); 2099ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.repeatedCordArray_Count), [message valueForKey:@"repeatedCordArray_Count"]); 2100ffe3c632Sopenharmony_ci 2101ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 2102ffe3c632Sopenharmony_ci 2103ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultInt32"], @YES); 2104ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultInt32), [message valueForKey:@"defaultInt32"]); 2105ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultInt64"], @YES); 2106ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultInt64), [message valueForKey:@"defaultInt64"]); 2107ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultUint32"], @YES); 2108ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultUint32), [message valueForKey:@"defaultUint32"]); 2109ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultUint64"], @YES); 2110ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultUint64), [message valueForKey:@"defaultUint64"]); 2111ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultSint32"], @YES); 2112ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultSint32), [message valueForKey:@"defaultSint32"]); 2113ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultSint64"], @YES); 2114ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultSint64), [message valueForKey:@"defaultSint64"]); 2115ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultFixed32"], @YES); 2116ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultFixed32), [message valueForKey:@"defaultFixed32"]); 2117ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultFixed64"], @YES); 2118ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultFixed64), [message valueForKey:@"defaultFixed64"]); 2119ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultSfixed32"], @YES); 2120ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultSfixed32), [message valueForKey:@"defaultSfixed32"]); 2121ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultSfixed64"], @YES); 2122ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultSfixed64), [message valueForKey:@"defaultSfixed64"]); 2123ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultFloat"], @YES); 2124ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultFloat), [message valueForKey:@"defaultFloat"]); 2125ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultDouble"], @YES); 2126ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultDouble), [message valueForKey:@"defaultDouble"]); 2127ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultBool"], @YES); 2128ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultBool), [message valueForKey:@"defaultBool"]); 2129ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultString"], @YES); 2130ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.defaultString, [message valueForKey:@"defaultString"]); 2131ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultBytes"], @YES); 2132ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.defaultBytes, [message valueForKey:@"defaultBytes"]); 2133ffe3c632Sopenharmony_ci 2134ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultNestedEnum"], @YES); 2135ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultNestedEnum), [message valueForKey:@"defaultNestedEnum"]); 2136ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultForeignEnum"], @YES); 2137ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultForeignEnum), [message valueForKey:@"defaultForeignEnum"]); 2138ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultImportEnum"], @YES); 2139ffe3c632Sopenharmony_ci XCTAssertEqualObjects(@(message.defaultImportEnum), [message valueForKey:@"defaultImportEnum"]); 2140ffe3c632Sopenharmony_ci 2141ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultStringPiece"], @YES); 2142ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.defaultStringPiece, [message valueForKey:@"defaultStringPiece"]); 2143ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultCord"], @YES); 2144ffe3c632Sopenharmony_ci XCTAssertEqualObjects(message.defaultCord, [message valueForKey:@"defaultCord"]); 2145ffe3c632Sopenharmony_ci} 2146ffe3c632Sopenharmony_ci 2147ffe3c632Sopenharmony_ci- (void)setAllFieldsViaKVC:(TestAllTypes *)message 2148ffe3c632Sopenharmony_ci repeatedCount:(uint32_t)count { 2149ffe3c632Sopenharmony_ci [message setValue:@101 forKey:@"optionalInt32"]; 2150ffe3c632Sopenharmony_ci [message setValue:@102 forKey:@"optionalInt64"]; 2151ffe3c632Sopenharmony_ci [message setValue:@103 forKey:@"optionalUint32"]; 2152ffe3c632Sopenharmony_ci [message setValue:@104 forKey:@"optionalUint64"]; 2153ffe3c632Sopenharmony_ci [message setValue:@105 forKey:@"optionalSint32"]; 2154ffe3c632Sopenharmony_ci [message setValue:@106 forKey:@"optionalSint64"]; 2155ffe3c632Sopenharmony_ci [message setValue:@107 forKey:@"optionalFixed32"]; 2156ffe3c632Sopenharmony_ci [message setValue:@108 forKey:@"optionalFixed64"]; 2157ffe3c632Sopenharmony_ci [message setValue:@109 forKey:@"optionalSfixed32"]; 2158ffe3c632Sopenharmony_ci [message setValue:@110 forKey:@"optionalSfixed64"]; 2159ffe3c632Sopenharmony_ci [message setValue:@111 forKey:@"optionalFloat"]; 2160ffe3c632Sopenharmony_ci [message setValue:@112 forKey:@"optionalDouble"]; 2161ffe3c632Sopenharmony_ci [message setValue:@YES forKey:@"optionalBool"]; 2162ffe3c632Sopenharmony_ci [message setValue:@"115" forKey:@"optionalString"]; 2163ffe3c632Sopenharmony_ci [message setValue:[NSData gpbtu_dataWithEmbeddedNulls] 2164ffe3c632Sopenharmony_ci forKey:@"optionalBytes"]; 2165ffe3c632Sopenharmony_ci 2166ffe3c632Sopenharmony_ci TestAllTypes_OptionalGroup *allTypes = [TestAllTypes_OptionalGroup message]; 2167ffe3c632Sopenharmony_ci [allTypes setValue:@117 forKey:@"a"]; 2168ffe3c632Sopenharmony_ci [message setValue:allTypes forKey:@"optionalGroup"]; 2169ffe3c632Sopenharmony_ci TestAllTypes_NestedMessage *nestedMessage = 2170ffe3c632Sopenharmony_ci [TestAllTypes_NestedMessage message]; 2171ffe3c632Sopenharmony_ci [nestedMessage setValue:@118 forKey:@"bb"]; 2172ffe3c632Sopenharmony_ci [message setValue:nestedMessage forKey:@"optionalNestedMessage"]; 2173ffe3c632Sopenharmony_ci ForeignMessage *foreignMessage = [ForeignMessage message]; 2174ffe3c632Sopenharmony_ci [foreignMessage setValue:@119 forKey:@"c"]; 2175ffe3c632Sopenharmony_ci [message setValue:foreignMessage forKey:@"optionalForeignMessage"]; 2176ffe3c632Sopenharmony_ci ImportMessage *importMessage = [ImportMessage message]; 2177ffe3c632Sopenharmony_ci [importMessage setValue:@120 forKey:@"d"]; 2178ffe3c632Sopenharmony_ci [message setValue:importMessage forKey:@"optionalImportMessage"]; 2179ffe3c632Sopenharmony_ci 2180ffe3c632Sopenharmony_ci [message setValue:@(TestAllTypes_NestedEnum_Baz) 2181ffe3c632Sopenharmony_ci forKey:@"optionalNestedEnum"]; 2182ffe3c632Sopenharmony_ci [message setValue:@(ForeignEnum_ForeignBaz) forKey:@"optionalForeignEnum"]; 2183ffe3c632Sopenharmony_ci [message setValue:@(ImportEnum_ImportBaz) forKey:@"optionalImportEnum"]; 2184ffe3c632Sopenharmony_ci 2185ffe3c632Sopenharmony_ci [message setValue:@"124" forKey:@"optionalStringPiece"]; 2186ffe3c632Sopenharmony_ci [message setValue:@"125" forKey:@"optionalCord"]; 2187ffe3c632Sopenharmony_ci 2188ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 2189ffe3c632Sopenharmony_ci 2190ffe3c632Sopenharmony_ci { 2191ffe3c632Sopenharmony_ci GPBInt32Array *scratch = [GPBInt32Array array]; 2192ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2193ffe3c632Sopenharmony_ci [scratch addValue:201 + i * 100]; 2194ffe3c632Sopenharmony_ci } 2195ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedInt32Array"]; 2196ffe3c632Sopenharmony_ci } 2197ffe3c632Sopenharmony_ci { 2198ffe3c632Sopenharmony_ci GPBInt64Array *scratch = [GPBInt64Array array]; 2199ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2200ffe3c632Sopenharmony_ci [scratch addValue:202 + i * 100]; 2201ffe3c632Sopenharmony_ci } 2202ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedInt64Array"]; 2203ffe3c632Sopenharmony_ci } 2204ffe3c632Sopenharmony_ci { 2205ffe3c632Sopenharmony_ci GPBUInt32Array *scratch = [GPBUInt32Array array]; 2206ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2207ffe3c632Sopenharmony_ci [scratch addValue:203 + i * 100]; 2208ffe3c632Sopenharmony_ci } 2209ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedUint32Array"]; 2210ffe3c632Sopenharmony_ci } 2211ffe3c632Sopenharmony_ci { 2212ffe3c632Sopenharmony_ci GPBUInt64Array *scratch = [GPBUInt64Array array]; 2213ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2214ffe3c632Sopenharmony_ci [scratch addValue:204 + i * 100]; 2215ffe3c632Sopenharmony_ci } 2216ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedUint64Array"]; 2217ffe3c632Sopenharmony_ci } 2218ffe3c632Sopenharmony_ci { 2219ffe3c632Sopenharmony_ci GPBInt32Array *scratch = [GPBInt32Array array]; 2220ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2221ffe3c632Sopenharmony_ci [scratch addValue:205 + i * 100]; 2222ffe3c632Sopenharmony_ci } 2223ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedSint32Array"]; 2224ffe3c632Sopenharmony_ci } 2225ffe3c632Sopenharmony_ci { 2226ffe3c632Sopenharmony_ci GPBInt64Array *scratch = [GPBInt64Array array]; 2227ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2228ffe3c632Sopenharmony_ci [scratch addValue:206 + i * 100]; 2229ffe3c632Sopenharmony_ci } 2230ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedSint64Array"]; 2231ffe3c632Sopenharmony_ci } 2232ffe3c632Sopenharmony_ci { 2233ffe3c632Sopenharmony_ci GPBUInt32Array *scratch = [GPBUInt32Array array]; 2234ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2235ffe3c632Sopenharmony_ci [scratch addValue:207 + i * 100]; 2236ffe3c632Sopenharmony_ci } 2237ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedFixed32Array"]; 2238ffe3c632Sopenharmony_ci } 2239ffe3c632Sopenharmony_ci { 2240ffe3c632Sopenharmony_ci GPBUInt64Array *scratch = [GPBUInt64Array array]; 2241ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2242ffe3c632Sopenharmony_ci [scratch addValue:208 + i * 100]; 2243ffe3c632Sopenharmony_ci } 2244ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedFixed64Array"]; 2245ffe3c632Sopenharmony_ci } 2246ffe3c632Sopenharmony_ci { 2247ffe3c632Sopenharmony_ci GPBInt32Array *scratch = [GPBInt32Array array]; 2248ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2249ffe3c632Sopenharmony_ci [scratch addValue:209 + i * 100]; 2250ffe3c632Sopenharmony_ci } 2251ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedSfixed32Array"]; 2252ffe3c632Sopenharmony_ci } 2253ffe3c632Sopenharmony_ci { 2254ffe3c632Sopenharmony_ci GPBInt64Array *scratch = [GPBInt64Array array]; 2255ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2256ffe3c632Sopenharmony_ci [scratch addValue:210 + i * 100]; 2257ffe3c632Sopenharmony_ci } 2258ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedSfixed64Array"]; 2259ffe3c632Sopenharmony_ci } 2260ffe3c632Sopenharmony_ci { 2261ffe3c632Sopenharmony_ci GPBFloatArray *scratch = [GPBFloatArray array]; 2262ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2263ffe3c632Sopenharmony_ci [scratch addValue:211 + i * 100]; 2264ffe3c632Sopenharmony_ci } 2265ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedFloatArray"]; 2266ffe3c632Sopenharmony_ci } 2267ffe3c632Sopenharmony_ci { 2268ffe3c632Sopenharmony_ci GPBDoubleArray *scratch = [GPBDoubleArray array]; 2269ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2270ffe3c632Sopenharmony_ci [scratch addValue:212 + i * 100]; 2271ffe3c632Sopenharmony_ci } 2272ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedDoubleArray"]; 2273ffe3c632Sopenharmony_ci } 2274ffe3c632Sopenharmony_ci { 2275ffe3c632Sopenharmony_ci GPBBoolArray *scratch = [GPBBoolArray array]; 2276ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2277ffe3c632Sopenharmony_ci [scratch addValue:(i % 2) ? YES : NO]; 2278ffe3c632Sopenharmony_ci } 2279ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedBoolArray"]; 2280ffe3c632Sopenharmony_ci } 2281ffe3c632Sopenharmony_ci 2282ffe3c632Sopenharmony_ci NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:count]; 2283ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2284ffe3c632Sopenharmony_ci NSString *string = [[NSString alloc] initWithFormat:@"%d", 215 + i * 100]; 2285ffe3c632Sopenharmony_ci [array addObject:string]; 2286ffe3c632Sopenharmony_ci [string release]; 2287ffe3c632Sopenharmony_ci } 2288ffe3c632Sopenharmony_ci [message setValue:array forKey:@"repeatedStringArray"]; 2289ffe3c632Sopenharmony_ci [array release]; 2290ffe3c632Sopenharmony_ci 2291ffe3c632Sopenharmony_ci array = [[NSMutableArray alloc] initWithCapacity:count]; 2292ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2293ffe3c632Sopenharmony_ci NSData *data = [[NSData alloc] initWithUint32_gpbtu:216 + i * 100]; 2294ffe3c632Sopenharmony_ci [array addObject:data]; 2295ffe3c632Sopenharmony_ci [data release]; 2296ffe3c632Sopenharmony_ci } 2297ffe3c632Sopenharmony_ci [message setValue:array forKey:@"repeatedBytesArray"]; 2298ffe3c632Sopenharmony_ci [array release]; 2299ffe3c632Sopenharmony_ci 2300ffe3c632Sopenharmony_ci array = [[NSMutableArray alloc] initWithCapacity:count]; 2301ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2302ffe3c632Sopenharmony_ci TestAllTypes_RepeatedGroup *testAll = 2303ffe3c632Sopenharmony_ci [[TestAllTypes_RepeatedGroup alloc] init]; 2304ffe3c632Sopenharmony_ci [testAll setA:217 + i * 100]; 2305ffe3c632Sopenharmony_ci [array addObject:testAll]; 2306ffe3c632Sopenharmony_ci [testAll release]; 2307ffe3c632Sopenharmony_ci } 2308ffe3c632Sopenharmony_ci [message setValue:array forKey:@"repeatedGroupArray"]; 2309ffe3c632Sopenharmony_ci [array release]; 2310ffe3c632Sopenharmony_ci 2311ffe3c632Sopenharmony_ci array = [[NSMutableArray alloc] initWithCapacity:count]; 2312ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2313ffe3c632Sopenharmony_ci nestedMessage = [[TestAllTypes_NestedMessage alloc] init]; 2314ffe3c632Sopenharmony_ci [nestedMessage setBb:218 + i * 100]; 2315ffe3c632Sopenharmony_ci [array addObject:nestedMessage]; 2316ffe3c632Sopenharmony_ci [nestedMessage release]; 2317ffe3c632Sopenharmony_ci } 2318ffe3c632Sopenharmony_ci [message setValue:array forKey:@"repeatedNestedMessageArray"]; 2319ffe3c632Sopenharmony_ci [array release]; 2320ffe3c632Sopenharmony_ci 2321ffe3c632Sopenharmony_ci array = [[NSMutableArray alloc] initWithCapacity:count]; 2322ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2323ffe3c632Sopenharmony_ci foreignMessage = [[ForeignMessage alloc] init]; 2324ffe3c632Sopenharmony_ci [foreignMessage setC:219 + i * 100]; 2325ffe3c632Sopenharmony_ci [array addObject:foreignMessage]; 2326ffe3c632Sopenharmony_ci [foreignMessage release]; 2327ffe3c632Sopenharmony_ci } 2328ffe3c632Sopenharmony_ci [message setValue:array forKey:@"repeatedForeignMessageArray"]; 2329ffe3c632Sopenharmony_ci [array release]; 2330ffe3c632Sopenharmony_ci 2331ffe3c632Sopenharmony_ci array = [[NSMutableArray alloc] initWithCapacity:count]; 2332ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2333ffe3c632Sopenharmony_ci importMessage = [[ImportMessage alloc] init]; 2334ffe3c632Sopenharmony_ci [importMessage setD:220 + i * 100]; 2335ffe3c632Sopenharmony_ci [array addObject:importMessage]; 2336ffe3c632Sopenharmony_ci [importMessage release]; 2337ffe3c632Sopenharmony_ci } 2338ffe3c632Sopenharmony_ci [message setValue:array forKey:@"repeatedImportMessageArray"]; 2339ffe3c632Sopenharmony_ci [array release]; 2340ffe3c632Sopenharmony_ci 2341ffe3c632Sopenharmony_ci { 2342ffe3c632Sopenharmony_ci GPBEnumArray *scratch = [GPBEnumArray 2343ffe3c632Sopenharmony_ci arrayWithValidationFunction:TestAllTypes_NestedEnum_IsValidValue]; 2344ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2345ffe3c632Sopenharmony_ci [scratch addValue:(i % 2) ? TestAllTypes_NestedEnum_Bar 2346ffe3c632Sopenharmony_ci : TestAllTypes_NestedEnum_Baz]; 2347ffe3c632Sopenharmony_ci } 2348ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedNestedEnumArray"]; 2349ffe3c632Sopenharmony_ci } 2350ffe3c632Sopenharmony_ci { 2351ffe3c632Sopenharmony_ci GPBEnumArray *scratch = 2352ffe3c632Sopenharmony_ci [GPBEnumArray arrayWithValidationFunction:ForeignEnum_IsValidValue]; 2353ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2354ffe3c632Sopenharmony_ci [scratch 2355ffe3c632Sopenharmony_ci addValue:(i % 2) ? ForeignEnum_ForeignBar : ForeignEnum_ForeignBaz]; 2356ffe3c632Sopenharmony_ci } 2357ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedForeignEnumArray"]; 2358ffe3c632Sopenharmony_ci } 2359ffe3c632Sopenharmony_ci { 2360ffe3c632Sopenharmony_ci GPBEnumArray *scratch = 2361ffe3c632Sopenharmony_ci [GPBEnumArray arrayWithValidationFunction:ImportEnum_IsValidValue]; 2362ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2363ffe3c632Sopenharmony_ci [scratch addValue:(i % 2) ? ImportEnum_ImportBar : ImportEnum_ImportBaz]; 2364ffe3c632Sopenharmony_ci } 2365ffe3c632Sopenharmony_ci [message setValue:scratch forKey:@"repeatedImportEnumArray"]; 2366ffe3c632Sopenharmony_ci } 2367ffe3c632Sopenharmony_ci 2368ffe3c632Sopenharmony_ci array = [[NSMutableArray alloc] initWithCapacity:count]; 2369ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2370ffe3c632Sopenharmony_ci NSString *string = [[NSString alloc] initWithFormat:@"%d", 224 + i * 100]; 2371ffe3c632Sopenharmony_ci [array addObject:string]; 2372ffe3c632Sopenharmony_ci [string release]; 2373ffe3c632Sopenharmony_ci } 2374ffe3c632Sopenharmony_ci [message setValue:array forKey:@"repeatedStringPieceArray"]; 2375ffe3c632Sopenharmony_ci [array release]; 2376ffe3c632Sopenharmony_ci 2377ffe3c632Sopenharmony_ci array = [[NSMutableArray alloc] initWithCapacity:count]; 2378ffe3c632Sopenharmony_ci for (uint32_t i = 0; i < count; ++i) { 2379ffe3c632Sopenharmony_ci NSString *string = [[NSString alloc] initWithFormat:@"%d", 225 + i * 100]; 2380ffe3c632Sopenharmony_ci [array addObject:string]; 2381ffe3c632Sopenharmony_ci [string release]; 2382ffe3c632Sopenharmony_ci } 2383ffe3c632Sopenharmony_ci [message setValue:array forKey:@"repeatedCordArray"]; 2384ffe3c632Sopenharmony_ci [array release]; 2385ffe3c632Sopenharmony_ci 2386ffe3c632Sopenharmony_ci // ----------------------------------------------------------------- 2387ffe3c632Sopenharmony_ci 2388ffe3c632Sopenharmony_ci [message setValue:@401 forKey:@"defaultInt32"]; 2389ffe3c632Sopenharmony_ci [message setValue:@402 forKey:@"defaultInt64"]; 2390ffe3c632Sopenharmony_ci [message setValue:@403 forKey:@"defaultUint32"]; 2391ffe3c632Sopenharmony_ci [message setValue:@404 forKey:@"defaultUint64"]; 2392ffe3c632Sopenharmony_ci [message setValue:@405 forKey:@"defaultSint32"]; 2393ffe3c632Sopenharmony_ci [message setValue:@406 forKey:@"defaultSint64"]; 2394ffe3c632Sopenharmony_ci [message setValue:@407 forKey:@"defaultFixed32"]; 2395ffe3c632Sopenharmony_ci [message setValue:@408 forKey:@"defaultFixed64"]; 2396ffe3c632Sopenharmony_ci [message setValue:@409 forKey:@"defaultSfixed32"]; 2397ffe3c632Sopenharmony_ci [message setValue:@410 forKey:@"defaultSfixed64"]; 2398ffe3c632Sopenharmony_ci [message setValue:@411 forKey:@"defaultFloat"]; 2399ffe3c632Sopenharmony_ci [message setValue:@412 forKey:@"defaultDouble"]; 2400ffe3c632Sopenharmony_ci [message setValue:@NO forKey:@"defaultBool"]; 2401ffe3c632Sopenharmony_ci [message setValue:@"415" forKey:@"defaultString"]; 2402ffe3c632Sopenharmony_ci [message setValue:[NSData gpbtu_dataWithUint32:416] forKey:@"defaultBytes"]; 2403ffe3c632Sopenharmony_ci 2404ffe3c632Sopenharmony_ci [message setValue:@(TestAllTypes_NestedEnum_Foo) forKey:@"defaultNestedEnum"]; 2405ffe3c632Sopenharmony_ci [message setValue:@(ForeignEnum_ForeignFoo) forKey:@"defaultForeignEnum"]; 2406ffe3c632Sopenharmony_ci [message setValue:@(ImportEnum_ImportFoo) forKey:@"defaultImportEnum"]; 2407ffe3c632Sopenharmony_ci 2408ffe3c632Sopenharmony_ci [message setValue:@"424" forKey:@"defaultStringPiece"]; 2409ffe3c632Sopenharmony_ci [message setValue:@"425" forKey:@"defaultCord"]; 2410ffe3c632Sopenharmony_ci} 2411ffe3c632Sopenharmony_ci 2412ffe3c632Sopenharmony_ci- (void)assertClearKVC:(TestAllTypes *)message { 2413ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalInt32"], @NO); 2414ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalInt64"], @NO); 2415ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalUint32"], @NO); 2416ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalUint64"], @NO); 2417ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalSint32"], @NO); 2418ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalSint64"], @NO); 2419ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalFixed32"], @NO); 2420ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalFixed64"], @NO); 2421ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalSfixed32"], @NO); 2422ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalSfixed64"], @NO); 2423ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalFloat"], @NO); 2424ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalDouble"], @NO); 2425ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalBool"], @NO); 2426ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalString"], @NO); 2427ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalBytes"], @NO); 2428ffe3c632Sopenharmony_ci 2429ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalGroup"], @NO); 2430ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalNestedMessage"], @NO); 2431ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalForeignMessage"], 2432ffe3c632Sopenharmony_ci @NO); 2433ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalImportMessage"], @NO); 2434ffe3c632Sopenharmony_ci 2435ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalNestedEnum"], @NO); 2436ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalForeignEnum"], @NO); 2437ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalImportEnum"], @NO); 2438ffe3c632Sopenharmony_ci 2439ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalStringPiece"], @NO); 2440ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasOptionalCord"], @NO); 2441ffe3c632Sopenharmony_ci 2442ffe3c632Sopenharmony_ci // Optional fields without defaults are set to zero or something like it. 2443ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalInt32"], @0); 2444ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalInt64"], @0); 2445ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalUint32"], @0); 2446ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalUint64"], @0); 2447ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalSint32"], @0); 2448ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalSint64"], @0); 2449ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalFixed32"], @0); 2450ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalFixed64"], @0); 2451ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalSfixed32"], @0); 2452ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalSfixed64"], @0); 2453ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalFloat"], @0); 2454ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalDouble"], @0); 2455ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalBool"], @NO); 2456ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalString"], @""); 2457ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalBytes"], 2458ffe3c632Sopenharmony_ci GPBEmptyNSData()); 2459ffe3c632Sopenharmony_ci 2460ffe3c632Sopenharmony_ci // Embedded messages should also be exist, but be clear. 2461ffe3c632Sopenharmony_ci XCTAssertNotNil([message valueForKeyPath:@"optionalGroup"]); 2462ffe3c632Sopenharmony_ci XCTAssertNotNil([message valueForKeyPath:@"optionalNestedMessage"]); 2463ffe3c632Sopenharmony_ci XCTAssertNotNil([message valueForKeyPath:@"optionalForeignMessage"]); 2464ffe3c632Sopenharmony_ci XCTAssertNotNil([message valueForKeyPath:@"optionalImportMessage"]); 2465ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKeyPath:@"optionalGroup.hasA"], @NO); 2466ffe3c632Sopenharmony_ci XCTAssertEqualObjects( 2467ffe3c632Sopenharmony_ci [message valueForKeyPath:@"optionalNestedMessage.hasBb"], @NO); 2468ffe3c632Sopenharmony_ci XCTAssertEqualObjects( 2469ffe3c632Sopenharmony_ci [message valueForKeyPath:@"optionalForeignMessage.hasC"], @NO); 2470ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKeyPath:@"optionalImportMessage.hasD"], 2471ffe3c632Sopenharmony_ci @NO); 2472ffe3c632Sopenharmony_ci 2473ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKeyPath:@"optionalGroup.a"], @0); 2474ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKeyPath:@"optionalNestedMessage.bb"], 2475ffe3c632Sopenharmony_ci @0); 2476ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKeyPath:@"optionalForeignMessage.c"], 2477ffe3c632Sopenharmony_ci @0); 2478ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKeyPath:@"optionalImportMessage.d"], 2479ffe3c632Sopenharmony_ci @0); 2480ffe3c632Sopenharmony_ci 2481ffe3c632Sopenharmony_ci // Enums without defaults are set to the first value in the enum. 2482ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalNestedEnum"], 2483ffe3c632Sopenharmony_ci @(TestAllTypes_NestedEnum_Foo)); 2484ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalForeignEnum"], 2485ffe3c632Sopenharmony_ci @(ForeignEnum_ForeignFoo)); 2486ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalImportEnum"], 2487ffe3c632Sopenharmony_ci @(ImportEnum_ImportFoo)); 2488ffe3c632Sopenharmony_ci 2489ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalStringPiece"], @""); 2490ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"optionalCord"], @""); 2491ffe3c632Sopenharmony_ci 2492ffe3c632Sopenharmony_ci // NSArray interface for repeated doesn't have has*, nil means no value. 2493ffe3c632Sopenharmony_ci 2494ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultInt32"], @NO); 2495ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultInt64"], @NO); 2496ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultUint32"], @NO); 2497ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultUint64"], @NO); 2498ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultSint32"], @NO); 2499ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultSint64"], @NO); 2500ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultFixed32"], @NO); 2501ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultFixed64"], @NO); 2502ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultSfixed32"], @NO); 2503ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultSfixed64"], @NO); 2504ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultFloat"], @NO); 2505ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultDouble"], @NO); 2506ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultBool"], @NO); 2507ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultString"], @NO); 2508ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultBytes"], @NO); 2509ffe3c632Sopenharmony_ci 2510ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultNestedEnum"], @NO); 2511ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultForeignEnum"], @NO); 2512ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultImportEnum"], @NO); 2513ffe3c632Sopenharmony_ci 2514ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultStringPiece"], @NO); 2515ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"hasDefaultCord"], @NO); 2516ffe3c632Sopenharmony_ci 2517ffe3c632Sopenharmony_ci // Fields with defaults have their default values (duh). 2518ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultInt32"], @41); 2519ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultInt64"], @42); 2520ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultUint32"], @43); 2521ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultUint64"], @44); 2522ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultSint32"], @-45); 2523ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultSint64"], @46); 2524ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultFixed32"], @47); 2525ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultFixed64"], @48); 2526ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultSfixed32"], @49); 2527ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultSfixed64"], @-50); 2528ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultFloat"], @51.5); 2529ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultDouble"], @52e3); 2530ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultBool"], @YES); 2531ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultString"], @"hello"); 2532ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultBytes"], 2533ffe3c632Sopenharmony_ci [NSData gpbtu_dataWithCString:"world"]); 2534ffe3c632Sopenharmony_ci 2535ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultNestedEnum"], 2536ffe3c632Sopenharmony_ci @(TestAllTypes_NestedEnum_Bar)); 2537ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultForeignEnum"], 2538ffe3c632Sopenharmony_ci @(ForeignEnum_ForeignBar)); 2539ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultImportEnum"], 2540ffe3c632Sopenharmony_ci @(ImportEnum_ImportBar)); 2541ffe3c632Sopenharmony_ci 2542ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultStringPiece"], @"abc"); 2543ffe3c632Sopenharmony_ci XCTAssertEqualObjects([message valueForKey:@"defaultCord"], @"123"); 2544ffe3c632Sopenharmony_ci} 2545ffe3c632Sopenharmony_ci 2546ffe3c632Sopenharmony_ci@end 2547