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