Lines Matching full:message
101 TestAllTypes *message = [TestAllTypes message];
102 [message setOptionalInt32:1];
103 [message setOptionalString:@"foo"];
104 [message setOptionalForeignMessage:[ForeignMessage message]];
105 [message.repeatedStringArray addObject:@"bar"];
106 return message;
110 TestAllTypes *message = [TestAllTypes message];
111 [message setOptionalInt64:2];
112 [message setOptionalString:@"baz"];
113 ForeignMessage *foreignMessage = [ForeignMessage message];
115 [message setOptionalForeignMessage:foreignMessage];
116 [message.repeatedStringArray addObject:@"qux"];
117 return message;
121 TestAllTypes *message = [TestAllTypes message];
122 [message setOptionalInt64:2];
123 [message setOptionalString:@"baz"];
124 [message.repeatedStringArray addObject:@"qux"];
125 return message;
129 TestAllTypes *message = [TestAllTypes message];
130 [message setOptionalInt32:1];
131 [message setOptionalInt64:2];
132 [message setOptionalString:@"foo"];
133 ForeignMessage *foreignMessage = [ForeignMessage message];
135 [message setOptionalForeignMessage:foreignMessage];
136 [message.repeatedStringArray addObject:@"qux"];
137 [message.repeatedStringArray addObject:@"bar"];
138 return message;
142 TestAllTypes *message = [TestAllTypes message];
143 [message setOptionalInt32:1];
144 [message setOptionalInt64:2];
145 [message setOptionalString:@"foo"];
146 ForeignMessage *foreignMessage = [ForeignMessage message];
147 [message setOptionalForeignMessage:foreignMessage];
148 [message.repeatedStringArray addObject:@"qux"];
149 [message.repeatedStringArray addObject:@"bar"];
150 return message;
154 TestAllExtensions *message = [TestAllExtensions message];
155 [message setExtension:[UnittestRoot optionalInt32Extension] value:@5];
156 [message setExtension:[UnittestRoot optionalStringExtension] value:@"foo"];
157 ForeignMessage *foreignMessage = [ForeignMessage message];
159 [message setExtension:[UnittestRoot optionalForeignMessageExtension]
162 [TestAllTypes_NestedMessage message];
163 [message setExtension:[UnittestRoot optionalNestedMessageExtension]
165 return message;
169 TestAllExtensions *message = [TestAllExtensions message];
170 [message setExtension:[UnittestRoot optionalInt64Extension] value:@6];
171 [message setExtension:[UnittestRoot optionalStringExtension] value:@"bar"];
172 ForeignMessage *foreignMessage = [ForeignMessage message];
173 [message setExtension:[UnittestRoot optionalForeignMessageExtension]
176 [TestAllTypes_NestedMessage message];
178 [message setExtension:[UnittestRoot optionalNestedMessageExtension]
180 return message;
184 TestAllExtensions *message = [TestAllExtensions message];
185 [message setExtension:[UnittestRoot optionalInt32Extension] value:@5];
186 [message setExtension:[UnittestRoot optionalInt64Extension] value:@6];
187 [message setExtension:[UnittestRoot optionalStringExtension] value:@"bar"];
188 ForeignMessage *foreignMessage = [ForeignMessage message];
190 [message setExtension:[UnittestRoot optionalForeignMessageExtension]
193 [TestAllTypes_NestedMessage message];
195 [message setExtension:[UnittestRoot optionalNestedMessageExtension]
197 return message;
222 result = [TestAllTypes message];
263 TestRequired *message = [TestRequired message];
264 [message setA:1];
265 [message setB:2];
266 [message setC:3];
267 return message;
271 TestRequired *message = [TestRequired message];
273 XCTAssertFalse(message.initialized);
274 [message setA:1];
275 XCTAssertFalse(message.initialized);
276 [message setB:1];
277 XCTAssertFalse(message.initialized);
278 [message setC:1];
279 XCTAssertTrue(message.initialized);
283 TestRequiredForeign *message = [TestRequiredForeign message];
285 XCTAssertTrue(message.initialized);
287 [message setOptionalMessage:[TestRequired message]];
288 XCTAssertFalse(message.initialized);
290 [message setOptionalMessage:self.testRequiredInitialized];
291 XCTAssertTrue(message.initialized);
293 [message.repeatedMessageArray addObject:[TestRequired message]];
294 XCTAssertFalse(message.initialized);
296 [message.repeatedMessageArray removeAllObjects];
297 [message.repeatedMessageArray addObject:self.testRequiredInitialized];
298 XCTAssertTrue(message.initialized);
302 TestAllExtensions *message = [TestAllExtensions message];
304 XCTAssertTrue(message.initialized);
306 [message setExtension:[TestRequired single] value:[TestRequired message]];
307 XCTAssertFalse(message.initialized);
309 [message setExtension:[TestRequired single]
311 XCTAssertTrue(message.initialized);
313 [message addExtension:[TestRequired multi] value:[TestRequired message]];
314 XCTAssertFalse(message.initialized);
316 [message setExtension:[TestRequired multi]
319 XCTAssertTrue(message.initialized);
323 TestRequired *message = [TestRequired message];
324 NSData *data = [message data];
331 XCTAssertFalse(message.initialized);
337 TestRequired *message = [TestRequired message];
338 XCTAssertFalse(message.initialized);
342 TestRequiredForeign *message = [TestRequiredForeign message];
343 [message setOptionalMessage:[TestRequired message]];
344 [message.repeatedMessageArray addObject:[TestRequired message]];
345 [message.repeatedMessageArray addObject:[TestRequired message]];
346 NSData *data = [message data];
353 XCTAssertFalse(message.initialized);
360 TestRequiredForeign *message = [TestRequiredForeign message];
361 [message setOptionalMessage:[TestRequired message]];
362 [message.repeatedMessageArray addObject:[TestRequired message]];
363 [message.repeatedMessageArray addObject:[TestRequired message]];
365 XCTAssertFalse(message.initialized);
428 TestAllTypes *message = [TestAllTypes message];
429 message.hasOptionalNestedMessage = NO;
430 [message setOptionalNestedMessage:[TestAllTypes_NestedMessage message]];
431 message.hasOptionalNestedMessage = NO;
432 [message setOptionalNestedMessage:[TestAllTypes_NestedMessage message]];
433 [message setOptionalNestedMessage:nil];
434 message.hasOptionalNestedMessage = NO;
438 TestAllTypes *message = [TestAllTypes message];
439 XCTAssertThrows([message setHasOptionalNestedMessage:YES]);
461 TestAllTypes *message = [TestAllTypes message];
462 [self assertClear:message];
466 TestAllTypes *message = [TestAllTypes message];
467 [self setAllFields:message repeatedCount:kGPBDefaultRepeatCount];
468 [self assertAllFieldsSet:message repeatedCount:kGPBDefaultRepeatCount];
472 TestAllTypes *message = [TestAllTypes message];
473 [self setAllFields:message repeatedCount:kGPBDefaultRepeatCount];
474 [self assertAllFieldsKVCMatch:message];
478 TestAllTypes *message = [TestAllTypes message];
479 [self setAllFieldsViaKVC:message repeatedCount:kGPBDefaultRepeatCount];
480 [self assertAllFieldsKVCMatch:message];
481 [self assertAllFieldsSet:message repeatedCount:kGPBDefaultRepeatCount];
482 [self assertAllFieldsKVCMatch:message];
486 TestAllTypes *message = [TestAllTypes message];
488 [[[GPBKVOTestObserver alloc] initWithObservee:message
492 message.defaultString = @"Hello";
494 message.optionalString = @"Hello";
499 TestAllTypes *message = [TestAllTypes message];
501 [[[GPBKVOTestObserver alloc] initWithObservee:message
505 [[[GPBKVOTestObserver alloc] initWithObservee:message
511 int a = message.optionalImportMessage.d;
518 message.optionalImportMessage.d = 2;
529 // Explicit setting of a message field is observed.
530 message.optionalImportMessage = [ImportMessage message];
536 TestAllTypes *message = [TestAllTypes message];
537 [self setAllFields:message repeatedCount:kGPBDefaultRepeatCount];
549 [message setUnknownFields:unknownFields];
551 NSString *description = [message description];
554 GPBMessage *message2 = [TestAllExtensions message];
566 // message correctly.
567 TestAllTypes *message = [TestAllTypes message];
568 GPBDescriptor *descriptor = [[message class] descriptor];
574 [message setDefaultInt32:defaultValue.valueInt32];
575 XCTAssertTrue(message.hasDefaultInt32);
576 XCTAssertEqual(message.defaultInt32, defaultValue.valueInt32);
579 message = [TestAllTypes message];
583 [message setDefaultString:defaultValue.valueString];
584 XCTAssertTrue(message.hasDefaultString);
585 XCTAssertEqualObjects(message.defaultString, defaultValue.valueString);
588 message = [TestAllTypes message];
589 XCTAssertEqualObjects(message.defaultString, @"hello");
590 XCTAssertFalse(message.hasDefaultString);
594 [message setDefaultString:defaultValue.valueString];
595 XCTAssertEqualObjects(message.defaultString, @"hello");
596 XCTAssertTrue(message.hasDefaultString);
597 [message setDefaultString:nil];
598 XCTAssertEqualObjects(message.defaultString, @"hello");
599 XCTAssertFalse(message.hasDefaultString);
600 message.hasDefaultString = NO;
601 XCTAssertFalse(message.hasDefaultString);
602 XCTAssertEqualObjects(message.defaultString, @"hello");
606 XCTAssertEqualObjects(message.defaultBytes, defaultBytes);
607 XCTAssertFalse(message.hasDefaultString);
611 [message setDefaultBytes:defaultValue.valueData];
612 XCTAssertEqualObjects(message.defaultBytes, defaultBytes);
613 XCTAssertTrue(message.hasDefaultBytes);
614 [message setDefaultBytes:nil];
615 XCTAssertEqualObjects(message.defaultBytes, defaultBytes);
616 XCTAssertFalse(message.hasDefaultBytes);
617 message.hasDefaultBytes = NO;
618 XCTAssertFalse(message.hasDefaultBytes);
619 XCTAssertEqualObjects(message.defaultBytes, defaultBytes);
622 XCTAssertFalse(message.hasOptionalString);
623 XCTAssertEqualObjects(message.optionalString, @"");
624 XCTAssertFalse(message.hasOptionalString);
625 message.optionalString = nil;
626 XCTAssertFalse(message.hasOptionalString);
627 XCTAssertEqualObjects(message.optionalString, @"");
629 message.optionalString = string;
630 XCTAssertEqualObjects(message.optionalString, string);
631 XCTAssertTrue(message.hasOptionalString);
632 message.optionalString = nil;
633 XCTAssertFalse(message.hasOptionalString);
634 XCTAssertEqualObjects(message.optionalString, @"");
637 XCTAssertFalse(message.hasOptionalBytes);
638 XCTAssertEqualObjects(message.optionalBytes, GPBEmptyNSData());
639 XCTAssertFalse(message.hasOptionalBytes);
640 message.optionalBytes = nil;
641 XCTAssertFalse(message.hasOptionalBytes);
642 XCTAssertEqualObjects(message.optionalBytes, GPBEmptyNSData());
644 message.optionalBytes = data;
645 XCTAssertEqualObjects(message.optionalBytes, data);
646 XCTAssertTrue(message.hasOptionalBytes);
647 message.optionalBytes = nil;
648 XCTAssertFalse(message.hasOptionalBytes);
649 XCTAssertEqualObjects(message.optionalBytes, GPBEmptyNSData());
651 // Test lazy message setting
652 XCTAssertFalse(message.hasOptionalLazyMessage);
653 XCTAssertNotNil(message.optionalLazyMessage);
654 XCTAssertFalse(message.hasOptionalLazyMessage);
655 message.hasOptionalLazyMessage = NO;
656 XCTAssertFalse(message.hasOptionalLazyMessage);
657 XCTAssertNotNil(message.optionalLazyMessage);
658 XCTAssertFalse(message.hasOptionalLazyMessage);
659 message.optionalLazyMessage = nil;
660 XCTAssertFalse(message.hasOptionalLazyMessage);
663 XCTAssertFalse(message.hasOptionalLazyMessage);
664 message.optionalLazyMessage.bb = 1;
665 XCTAssertTrue(message.hasOptionalLazyMessage);
666 XCTAssertEqual(message.optionalLazyMessage.bb, 1);
667 XCTAssertNotNil(message.optionalLazyMessage);
668 message.optionalLazyMessage = nil;
669 XCTAssertFalse(message.hasOptionalLazyMessage);
670 XCTAssertEqual(message.optionalLazyMessage.bb, 0);
671 XCTAssertFalse(message.hasOptionalLazyMessage);
672 XCTAssertNotNil(message.optionalLazyMessage);
679 TestAllTypes *message = [TestAllTypes message];
680 [self setAllFields:message repeatedCount:kGPBDefaultRepeatCount];
681 [self modifyRepeatedFields:message];
682 [self assertRepeatedFieldsModified:message
687 TestAllTypes *message = [TestAllTypes message];
688 [self setAllFields:message repeatedCount:kGPBDefaultRepeatCount];
689 [self clearAllFields:message];
690 [self assertClear:message];
691 TestAllTypes *message2 = [TestAllTypes message];
692 XCTAssertEqualObjects(message, message2);
696 TestAllTypes *message = [TestAllTypes message];
697 [self setAllFields:message repeatedCount:kGPBDefaultRepeatCount];
698 [self clearAllFields:message];
699 [self assertClear:message];
700 [self assertClearKVC:message];
705 GPBMessage *message1 = [TestAllExtensions message];
712 GPBMessage *message2 = [TestAllExtensions message];
723 // Clearing an unset extension field shouldn't make the target message
725 GPBMessage *message3 = [TestAllExtensions message];
734 TestAllTypes *message = [TestAllTypes message];
738 XCTAssertFalse(message.hasOptionalGroup);
739 XCTAssertFalse(message.hasOptionalNestedMessage);
740 XCTAssertFalse(message.hasOptionalForeignMessage);
741 XCTAssertFalse(message.hasOptionalImportMessage);
742 XCTAssertFalse(message.hasOptionalPublicImportMessage);
743 XCTAssertFalse(message.hasOptionalLazyMessage);
747 TestAllTypes_OptionalGroup *optionalGroup = [message.optionalGroup retain];
749 [message.optionalNestedMessage retain];
751 [message.optionalForeignMessage retain];
752 ImportMessage *optionalImportMessage = [message.optionalImportMessage retain];
754 [message.optionalPublicImportMessage retain];
756 [message.optionalLazyMessage retain];
768 XCTAssertFalse(message.hasOptionalGroup);
769 XCTAssertFalse(message.hasOptionalNestedMessage);
770 XCTAssertFalse(message.hasOptionalForeignMessage);
771 XCTAssertFalse(message.hasOptionalImportMessage);
772 XCTAssertFalse(message.hasOptionalPublicImportMessage);
773 XCTAssertFalse(message.hasOptionalLazyMessage);
775 // And they set that value back in to the message since the value created was
778 XCTAssertEqual(message.optionalGroup, optionalGroup);
779 XCTAssertEqual(message.optionalNestedMessage, optionalNestedMessage);
780 XCTAssertEqual(message.optionalForeignMessage, optionalForeignMessage);
781 XCTAssertEqual(message.optionalImportMessage, optionalImportMessage);
782 XCTAssertEqual(message.optionalPublicImportMessage,
784 XCTAssertEqual(message.optionalLazyMessage, optionalLazyMessage);
786 // And the default objects for a second message should be distinct (again,
789 TestAllTypes *message2 = [TestAllTypes message];
803 message.optionalGroup = nil;
804 message.optionalNestedMessage = nil;
805 message.optionalForeignMessage = nil;
806 message.optionalImportMessage = nil;
807 message.optionalPublicImportMessage = nil;
808 message.optionalLazyMessage = nil;
810 XCTAssertFalse(message.hasOptionalGroup);
811 XCTAssertFalse(message.hasOptionalNestedMessage);
812 XCTAssertFalse(message.hasOptionalForeignMessage);
813 XCTAssertFalse(message.hasOptionalImportMessage);
814 XCTAssertFalse(message.hasOptionalPublicImportMessage);
815 XCTAssertFalse(message.hasOptionalLazyMessage);
818 XCTAssertNotEqual(message.optionalGroup, optionalGroup);
819 XCTAssertNotEqual(message.optionalNestedMessage, optionalNestedMessage);
820 XCTAssertNotEqual(message.optionalForeignMessage, optionalForeignMessage);
821 XCTAssertNotEqual(message.optionalImportMessage, optionalImportMessage);
822 XCTAssertNotEqual(message.optionalPublicImportMessage,
824 XCTAssertNotEqual(message.optionalLazyMessage, optionalLazyMessage);
835 // Multiple objects pointing to the same autocreated message.
836 TestAllTypes *message = [TestAllTypes message];
837 TestAllTypes *message2 = [TestAllTypes message];
838 message2.optionalGroup = message.optionalGroup;
840 XCTAssertFalse([message hasOptionalGroup]);
842 XCTAssertTrue([message hasOptionalGroup]);
848 TestAllTypes *message = [TestAllTypes message];
849 message.optionalGroup.a = 42;
850 XCTAssertNotNil(message.optionalNestedMessage);
851 TestAllTypes *message2 = [[message copy] autorelease];
856 XCTAssertNotEqual(message.optionalNestedMessage,
863 TestRecursiveMessage *message = [TestRecursiveMessage message];
864 TestRecursiveMessage *message_inner = [message.a.a.a retain];
866 XCTAssertTrue(GPBWasMessageAutocreatedBy(message_inner, message.a.a));
867 [message.a.a clear];
868 XCTAssertFalse(GPBWasMessageAutocreatedBy(message_inner, message.a.a));
871 XCTAssertNotEqual(message.a.a.a, message_inner);
878 TestAllTypes *message = [TestAllTypes message];
882 TestAllTypes *message2 = [TestAllTypes message];
884 message.optionalForeignMessage = subMessage;
885 XCTAssertTrue(GPBWasMessageAutocreatedBy(message.optionalForeignMessage,
890 XCTAssertEqual(message.optionalForeignMessage, subMessage);
895 TestRecursiveMessage *message = [TestRecursiveMessage message];
896 TestRecursiveMessage *message_inner = [message.a.a retain];
897 XCTAssertFalse([message hasA]);
898 XCTAssertFalse([message.a hasA]);
899 message.a.a = nil;
901 // |message.a| has to be made visible, but |message.a.a| was set to nil so
903 XCTAssertTrue([message hasA]);
904 XCTAssertFalse([message.a hasA]);
907 XCTAssertFalse(GPBWasMessageAutocreatedBy(message_inner, message.a));
910 // message.
912 XCTAssertNotEqual(message.a.a, message_inner);
920 TestAllTypes *message = [TestAllTypes message];
921 TestAllTypes_NestedMessage *nestedMessage = message.optionalNestedMessage;
922 XCTAssertFalse([message hasOptionalNestedMessage]);
923 [message setHasOptionalNestedMessage:NO];
924 XCTAssertFalse([message hasOptionalNestedMessage]);
925 XCTAssertEqual(message.optionalNestedMessage, nestedMessage);
931 TestRecursiveMessage *message = [TestRecursiveMessage message];
932 message.a.a.a.a.i = 42;
933 XCTAssertTrue([message hasA]);
934 XCTAssertTrue([message.a hasA]);
935 XCTAssertTrue([message.a.a hasA]);
936 XCTAssertTrue([message.a.a.a hasA]);
937 XCTAssertFalse([message.a.a.a.a hasA]);
938 XCTAssertEqual(message.a.a.a.a.i, 42);
944 TestRecursiveMessage *message = [TestRecursiveMessage message];
945 message.a.a.a.a.hasI = NO;
946 XCTAssertFalse([message hasA]);
947 XCTAssertFalse([message.a hasA]);
948 XCTAssertFalse([message.a.a hasA]);
949 XCTAssertFalse([message.a.a.a hasA]);
953 TestRecursiveMessage *message = [TestRecursiveMessage message];
954 TestRecursiveMessage *messageLevel1 = [message.a retain];
955 TestRecursiveMessage *messageLevel2 = [message.a.a retain];
956 TestRecursiveMessage *messageLevel3 = [message.a.a.a retain];
957 TestRecursiveMessage *messageLevel4 = [message.a.a.a.a retain];
958 XCTAssertTrue(GPBWasMessageAutocreatedBy(messageLevel1, message));
964 message.a = message.a.a;
965 XCTAssertEqual(message.a, messageLevel2);
966 XCTAssertTrue([message hasA]);
967 XCTAssertEqual(message.a.a, messageLevel3);
968 XCTAssertFalse([message.a hasA]);
969 XCTAssertEqual(message.a.a.a, messageLevel4);
971 message)); // Because it was orphaned.
982 TestRecursiveMessage *message = [TestRecursiveMessage message];
983 TestRecursiveMessage *messageLevel1 = [message.a retain];
984 TestRecursiveMessage *messageLevel2 = [message.a.a retain];
985 TestRecursiveMessage *messageLevel3 = [message.a.a.a retain];
986 TestRecursiveMessage *messageLevel4 = [message.a.a.a.a retain];
987 XCTAssertTrue(GPBWasMessageAutocreatedBy(messageLevel1, message));
994 message.a.a = message.a;
995 XCTAssertTrue([message hasA]);
996 XCTAssertEqual(message.a, messageLevel1);
997 XCTAssertTrue([message.a hasA]);
998 XCTAssertEqual(message.a.a, messageLevel1);
999 XCTAssertTrue([message.a.a hasA]);
1000 XCTAssertEqual(message.a.a.a, messageLevel1);
1002 message)); // Because it was assigned.
1008 message.a.a = nil;
1009 XCTAssertTrue([message hasA]);
1010 XCTAssertFalse([message.a hasA]);
1021 TestAllTypes *message = [TestAllTypes message];
1023 [message.optionalNestedMessage retain];
1025 message.optionalNestedMessage = [TestAllTypes_NestedMessage message];
1026 XCTAssertTrue([message hasOptionalNestedMessage]);
1027 XCTAssertTrue(message.optionalNestedMessage != nestedMessage);
1028 XCTAssertFalse(GPBWasMessageAutocreatedBy(nestedMessage, message));
1036 TestAllTypes *message = [TestAllTypes message];
1037 XCTAssertNotNil(message.optionalNestedMessage);
1038 XCTAssertFalse([message hasOptionalNestedMessage]);
1039 XCTAssertNil(message.optionalNestedMessage.unknownFields);
1040 XCTAssertFalse([message hasOptionalNestedMessage]);
1044 message.optionalNestedMessage.unknownFields = unknownFields;
1045 XCTAssertTrue([message hasOptionalNestedMessage]);
1047 message.optionalNestedMessage = nil;
1048 XCTAssertFalse([message hasOptionalNestedMessage]);
1049 [message.optionalNestedMessage setUnknownFields:unknownFields];
1050 XCTAssertTrue([message hasOptionalNestedMessage]);
1055 TestAllTypes *message = [TestAllTypes message];
1056 XCTAssertNotNil(message.optionalNestedMessage);
1057 XCTAssertFalse([message hasOptionalNestedMessage]);
1058 message.optionalNestedMessage = message.optionalNestedMessage;
1059 XCTAssertTrue([message hasOptionalNestedMessage]);
1064 TestRecursiveMessage *message;
1070 message = [[TestRecursiveMessage alloc] init];
1071 messageLevel1 = [message.a retain];
1072 messageLevel2 = [message.a.a retain];
1073 messageLevel3 = [message.a.a.a retain];
1074 messageLevel4 = [message.a.a.a.a retain];
1075 message.a.i = 1;
1078 XCTAssertEqual(message.retainCount, (NSUInteger)1);
1079 [message release];
1091 // Basic tests for default creation of arrays in a message.
1092 TestRecursiveMessageWithRepeatedField *message =
1093 [TestRecursiveMessageWithRepeatedField message];
1095 [TestRecursiveMessageWithRepeatedField message];
1098 XCTAssertNotNil(message.a.a.iArray);
1099 XCTAssertFalse([message hasA]);
1100 XCTAssertFalse([message.a hasA]);
1106 [message.a.a.iArray addValue:42];
1107 XCTAssertTrue([message hasA]);
1108 XCTAssertTrue([message.a hasA]);
1109 XCTAssertEqual([message.a.a.iArray count], (NSUInteger)1);
1119 [TestRecursiveMessageWithRepeatedField message];
1121 [TestRecursiveMessageWithRepeatedField message];
1131 [TestRecursiveMessageWithRepeatedField message];
1133 [TestRecursiveMessageWithRepeatedField message];
1145 TestAllTypes *message = [TestAllTypes message];
1146 XCTAssertNotNil(message.repeatedStringArray);
1147 XCTAssertNotNil(message.repeatedInt32Array);
1148 TestAllTypes *message2 = [[message copy] autorelease];
1150 XCTAssertNotEqual(message.repeatedStringArray, message2.repeatedStringArray);
1151 XCTAssertNotEqual(message.repeatedInt32Array, message2.repeatedInt32Array);
1155 TestAllTypes *message3 = [TestAllTypes message];
1158 XCTAssertNotNil(message.repeatedInt32Array);
1159 XCTAssertNotNil(message.repeatedStringArray);
1171 TestAllTypes *message = [TestAllTypes message];
1174 TestAllTypes *message2 = [TestAllTypes message];
1175 message.repeatedInt32Array = message2.repeatedInt32Array;
1176 message.repeatedStringArray = message2.repeatedStringArray;
1178 XCTAssertEqual(message.repeatedInt32Array->_autocreator, message2);
1179 XCTAssertTrue([message.repeatedStringArray
1182 ((GPBAutocreatedArray *)message.repeatedStringArray)->_autocreator,
1186 XCTAssertNil(message.repeatedInt32Array->_autocreator);
1188 [message.repeatedStringArray isKindOfClass:[GPBAutocreatedArray class]]);
1190 ((GPBAutocreatedArray *)message.repeatedStringArray)->_autocreator);
1195 TestAllTypes *message = [TestAllTypes message];
1196 GPBInt32Array *repeatedInt32Array = [message.repeatedInt32Array retain];
1198 (GPBAutocreatedArray *)[message.repeatedStringArray retain];
1200 XCTAssertEqual(repeatedInt32Array->_autocreator, message);
1201 XCTAssertEqual(repeatedStringArray->_autocreator, message);
1202 message.repeatedInt32Array = nil;
1203 message.repeatedStringArray = nil;
1215 TestAllTypes *message = [TestAllTypes message];
1216 [message.repeatedStringArray addObject:@"foo"];
1217 XCTAssertEqual(message.repeatedStringArray_Count, (NSUInteger)1);
1218 message.repeatedStringArray = [NSMutableArray arrayWithObjects:@"bar", @"bar2", nil];
1219 XCTAssertEqual(message.repeatedStringArray_Count, (NSUInteger)2);
1220 message.repeatedStringArray = [NSMutableArray arrayWithObject:@"baz"];
1221 XCTAssertEqual(message.repeatedStringArray_Count, (NSUInteger)1);
1228 TestRecursiveMessageWithRepeatedField *message =
1229 [TestRecursiveMessageWithRepeatedField message];
1230 XCTAssertNotNil(message.a);
1231 XCTAssertNotNil(message.a.iArray);
1232 XCTAssertFalse([message hasA]);
1233 GPBInt32Array *iArray = [message.a.iArray retain];
1234 XCTAssertEqual(iArray->_autocreator, message.a); // Pointer comparison
1235 message.a.iArray = [GPBInt32Array arrayWithValue:1];
1236 XCTAssertTrue([message hasA]);
1237 XCTAssertNotEqual(message.a.iArray, iArray); // Pointer comparison
1243 TestRecursiveMessageWithRepeatedField *message =
1244 [TestRecursiveMessageWithRepeatedField message];
1245 XCTAssertNotNil(message.a);
1246 XCTAssertNotNil(message.a.strArray);
1247 XCTAssertFalse([message hasA]);
1249 (GPBAutocreatedArray *)[message.a.strArray retain];
1251 XCTAssertEqual(strArray->_autocreator, message.a); // Pointer comparison
1252 message.a.strArray = [NSMutableArray arrayWithObject:@"foo"];
1253 XCTAssertTrue([message hasA]);
1254 XCTAssertNotEqual(message.a.strArray, strArray); // Pointer comparison
1263 TestRecursiveMessageWithRepeatedField *message =
1264 [TestRecursiveMessageWithRepeatedField message];
1265 XCTAssertNotNil(message.a);
1266 XCTAssertNotNil(message.a.iArray);
1267 XCTAssertFalse([message hasA]);
1268 message.a.iArray = message.a.iArray;
1269 XCTAssertTrue([message hasA]);
1270 XCTAssertNil(message.a.iArray->_autocreator);
1274 TestRecursiveMessageWithRepeatedField *message =
1275 [TestRecursiveMessageWithRepeatedField message];
1276 XCTAssertNotNil(message.a);
1277 XCTAssertNotNil(message.a.strArray);
1278 XCTAssertFalse([message hasA]);
1279 message.a.strArray = message.a.strArray;
1280 XCTAssertTrue([message hasA]);
1281 XCTAssertTrue([message.a.strArray isKindOfClass:[GPBAutocreatedArray class]]);
1282 XCTAssertNil(((GPBAutocreatedArray *)message.a.strArray)->_autocreator);
1289 TestRecursiveMessageWithRepeatedField *message =
1290 [TestRecursiveMessageWithRepeatedField message];
1291 [message.a.iArray removeAll];
1292 XCTAssertFalse([message hasA]);
1293 [message.a.strArray removeAllObjects];
1294 XCTAssertFalse([message hasA]);
1298 // Basic tests for default creation of maps in a message.
1299 TestRecursiveMessageWithRepeatedField *message =
1300 [TestRecursiveMessageWithRepeatedField message];
1302 [TestRecursiveMessageWithRepeatedField message];
1305 XCTAssertNotNil(message.a.a.iToI);
1306 XCTAssertFalse([message hasA]);
1307 XCTAssertFalse([message.a hasA]);
1313 [message.a.a.iToI setInt32:100 forKey:200];
1314 XCTAssertTrue([message hasA]);
1315 XCTAssertTrue([message.a hasA]);
1316 XCTAssertEqual([message.a.a.iToI count], (NSUInteger)1);
1326 [TestRecursiveMessageWithRepeatedField message];
1328 [TestRecursiveMessageWithRepeatedField message];
1338 [TestRecursiveMessageWithRepeatedField message];
1340 [TestRecursiveMessageWithRepeatedField message];
1352 TestRecursiveMessageWithRepeatedField *message =
1353 [TestRecursiveMessageWithRepeatedField message];
1354 XCTAssertNotNil(message.strToStr);
1355 XCTAssertNotNil(message.iToI);
1357 [[message copy] autorelease];
1359 XCTAssertNotEqual(message.strToStr, message2.strToStr);
1360 XCTAssertNotEqual(message.iToI, message2.iToI);
1365 [TestRecursiveMessageWithRepeatedField message];
1370 XCTAssertNotNil(message.iToI);
1371 XCTAssertNotNil(message.iToI);
1382 TestRecursiveMessageWithRepeatedField *message =
1383 [TestRecursiveMessageWithRepeatedField message];
1387 [TestRecursiveMessageWithRepeatedField message];
1388 message.iToI = message2.iToI;
1389 message.strToStr = message2.strToStr;
1391 XCTAssertEqual(message.iToI->_autocreator, message2);
1392 XCTAssertTrue([message.strToStr
1395 ((GPBAutocreatedDictionary *)message.strToStr)->_autocreator,
1399 XCTAssertNil(message.iToI->_autocreator);
1401 [message.strToStr isKindOfClass:[GPBAutocreatedDictionary class]]);
1403 ((GPBAutocreatedDictionary *)message.strToStr)->_autocreator);
1408 TestRecursiveMessageWithRepeatedField *message =
1409 [TestRecursiveMessageWithRepeatedField message];
1410 GPBInt32Int32Dictionary *iToI = [message.iToI retain];
1412 (GPBAutocreatedDictionary *)[message.strToStr retain];
1414 XCTAssertEqual(iToI->_autocreator, message);
1415 XCTAssertEqual(strToStr->_autocreator, message);
1416 message.iToI = nil;
1417 message.strToStr = nil;
1429 TestRecursiveMessageWithRepeatedField *message =
1430 [TestRecursiveMessageWithRepeatedField message];
1431 message.strToStr[@"foo"] = @"bar";
1432 XCTAssertEqual(message.strToStr_Count, (NSUInteger)1);
1433 message.strToStr =
1435 XCTAssertEqual(message.strToStr_Count, (NSUInteger)2);
1436 message.strToStr =
1438 XCTAssertEqual(message.strToStr_Count, (NSUInteger)1);
1445 TestRecursiveMessageWithRepeatedField *message =
1446 [TestRecursiveMessageWithRepeatedField message];
1447 XCTAssertNotNil(message.a);
1448 XCTAssertNotNil(message.a.iToI);
1449 XCTAssertFalse([message hasA]);
1450 GPBInt32Int32Dictionary *iToI = [message.a.iToI retain];
1451 XCTAssertEqual(iToI->_autocreator, message.a); // Pointer comparison
1452 message.a.iToI = [[[GPBInt32Int32Dictionary alloc] init] autorelease];
1453 [message.a.iToI setInt32:6 forKey:7];
1454 XCTAssertTrue([message hasA]);
1455 XCTAssertNotEqual(message.a.iToI, iToI); // Pointer comparison
1461 TestRecursiveMessageWithRepeatedField *message =
1462 [TestRecursiveMessageWithRepeatedField message];
1463 XCTAssertNotNil(message.a);
1464 XCTAssertNotNil(message.a.strToStr);
1465 XCTAssertFalse([message hasA]);
1467 (GPBAutocreatedDictionary *)[message.a.strToStr retain];
1469 XCTAssertEqual(strToStr->_autocreator, message.a); // Pointer comparison
1470 message.a.strToStr =
1472 XCTAssertTrue([message hasA]);
1473 XCTAssertNotEqual(message.a.strToStr, strToStr); // Pointer comparison
1482 TestRecursiveMessageWithRepeatedField *message =
1483 [TestRecursiveMessageWithRepeatedField message];
1484 XCTAssertNotNil(message.a);
1485 XCTAssertNotNil(message.a.iToI);
1486 XCTAssertFalse([message hasA]);
1487 message.a.iToI = message.a.iToI;
1488 XCTAssertTrue([message hasA]);
1489 XCTAssertNil(message.a.iToI->_autocreator);
1493 TestRecursiveMessageWithRepeatedField *message =
1494 [TestRecursiveMessageWithRepeatedField message];
1495 XCTAssertNotNil(message.a);
1496 XCTAssertNotNil(message.a.strToStr);
1497 XCTAssertFalse([message hasA]);
1498 message.a.strToStr = message.a.strToStr;
1499 XCTAssertTrue([message hasA]);
1500 XCTAssertTrue([message.a.strToStr isKindOfClass:[GPBAutocreatedDictionary class]]);
1501 XCTAssertNil(((GPBAutocreatedDictionary *)message.a.strToStr)->_autocreator);
1507 TestRecursiveMessageWithRepeatedField *message =
1508 [TestRecursiveMessageWithRepeatedField message];
1509 [message.a.iToI removeAll];
1510 XCTAssertFalse([message hasA]);
1511 [message.a.strToStr removeAllObjects];
1512 XCTAssertFalse([message hasA]);
1516 TestAllExtensions *message = [TestAllExtensions message];
1517 [self setAllExtensions:message repeatedCount:kGPBDefaultRepeatCount];
1518 [self assertAllExtensionsSet:message repeatedCount:kGPBDefaultRepeatCount];
1522 TestAllExtensions *message = [TestAllExtensions message];
1523 [self setAllExtensions:message repeatedCount:kGPBDefaultRepeatCount];
1524 [self modifyRepeatedExtensions:message];
1525 [self assertRepeatedExtensionsModified:message
1530 [self assertExtensionsClear:[TestAllExtensions message]];
1534 TestAllExtensions *message = [TestAllExtensions message];
1535 [self setAllExtensions:message repeatedCount:kGPBDefaultRepeatCount];
1536 [self modifyRepeatedExtensions:message];
1537 TestAllExtensions *message2 = [TestAllExtensions message];
1539 XCTAssertFalse([message isEqual:message2]);
1540 message2 = [TestAllExtensions message];
1543 XCTAssertEqualObjects(message, message2);
1547 TestAllExtensions *message = [TestAllExtensions message];
1548 [self setAllExtensions:message repeatedCount:kGPBDefaultRepeatCount];
1549 [self modifyRepeatedExtensions:message];
1551 message = [TestAllExtensions message];
1552 [self setAllExtensions:message repeatedCount:kGPBDefaultRepeatCount];
1553 TestAllExtensions *message2 = [TestAllExtensions message];
1555 [message2 mergeFrom:message];
1557 XCTAssertEqualObjects(message, message2);
1561 TestAllExtensions *message = [TestAllExtensions message];
1565 XCTAssertFalse([message hasExtension:[UnittestRoot optionalGroupExtension]]);
1566 XCTAssertFalse([message hasExtension:[UnittestRoot optionalGroupExtension]]);
1568 [message hasExtension:[UnittestRoot optionalNestedMessageExtension]]);
1570 [message hasExtension:[UnittestRoot optionalForeignMessageExtension]]);
1572 [message hasExtension:[UnittestRoot optionalImportMessageExtension]]);
1573 XCTAssertFalse([message
1576 [message hasExtension:[UnittestRoot optionalLazyMessageExtension]]);
1581 [message getExtension:[UnittestRoot optionalGroupExtension]];
1583 [message getExtension:[UnittestRoot optionalNestedMessageExtension]];
1585 [message getExtension:[UnittestRoot optionalForeignMessageExtension]];
1587 [message getExtension:[UnittestRoot optionalImportMessageExtension]];
1588 PublicImportMessage *optionalPublicImportMessage = [message
1591 [message getExtension:[UnittestRoot optionalLazyMessageExtension]];
1603 XCTAssertFalse([message hasExtension:[UnittestRoot optionalGroupExtension]]);
1604 XCTAssertFalse([message hasExtension:[UnittestRoot optionalGroupExtension]]);
1605 XCTAssertFalse([message hasExtension:[UnittestRoot optionalNestedMessageExtension]]);
1606 XCTAssertFalse([message hasExtension:[UnittestRoot optionalForeignMessageExtension]]);
1607 XCTAssertFalse([message hasExtension:[UnittestRoot optionalImportMessageExtension]]);
1608 XCTAssertFalse([message hasExtension:[UnittestRoot optionalPublicImportMessageExtension]]);
1609 XCTAssertFalse([message hasExtension:[UnittestRoot optionalLazyMessageExtension]]);
1611 // And they set that value back in to the message since the value created was
1614 XCTAssertEqual([message getExtension:[UnittestRoot optionalGroupExtension]],
1617 [message getExtension:[UnittestRoot optionalNestedMessageExtension]],
1620 [message getExtension:[UnittestRoot optionalForeignMessageExtension]],
1623 [message getExtension:[UnittestRoot optionalImportMessageExtension]],
1626 [message getExtension:[UnittestRoot optionalPublicImportMessageExtension]],
1629 [message getExtension:[UnittestRoot optionalLazyMessageExtension]],
1632 // And the default objects for a second message should be distinct (again,
1635 TestAllExtensions *message2 = [TestAllExtensions message];
1659 [message setExtension:[UnittestRoot optionalGroupExtension] value:nil];
1660 [message setExtension:[UnittestRoot optionalGroupExtension] value:nil];
1661 [message setExtension:[UnittestRoot optionalNestedMessageExtension]
1663 [message setExtension:[UnittestRoot optionalForeignMessageExtension]
1665 [message setExtension:[UnittestRoot optionalImportMessageExtension]
1667 [message setExtension:[UnittestRoot optionalPublicImportMessageExtension]
1669 [message setExtension:[UnittestRoot optionalLazyMessageExtension] value:nil];
1671 XCTAssertFalse([message hasExtension:[UnittestRoot optionalGroupExtension]]);
1672 XCTAssertFalse([message hasExtension:[UnittestRoot optionalGroupExtension]]);
1674 [message hasExtension:[UnittestRoot optionalNestedMessageExtension]]);
1676 [message hasExtension:[UnittestRoot optionalForeignMessageExtension]]);
1678 [message hasExtension:[UnittestRoot optionalImportMessageExtension]]);
1679 XCTAssertFalse([message
1682 [message hasExtension:[UnittestRoot optionalLazyMessageExtension]]);
1684 XCTAssertEqual([message getExtension:[UnittestRoot optionalGroupExtension]],
1687 [message getExtension:[UnittestRoot optionalNestedMessageExtension]],
1690 [message getExtension:[UnittestRoot optionalForeignMessageExtension]],
1693 [message getExtension:[UnittestRoot optionalImportMessageExtension]],
1696 [message
1700 [message getExtension:[UnittestRoot optionalLazyMessageExtension]],
1707 TestAllExtensions *message = [TestAllExtensions message];
1708 TestAllExtensions *message2 = [TestAllExtensions message];
1710 [message setExtension:extension value:[message2 getExtension:extension]];
1711 XCTAssertEqual([message getExtension:extension],
1714 XCTAssertTrue([message hasExtension:extension]);
1720 XCTAssertTrue([message hasExtension:extension]);
1725 TestAllExtensions *message = [TestAllExtensions message];
1731 [message getExtension:optionalGroupExtension];
1734 XCTAssertNotNil([message getExtension:optionalNestedMessageExtesion]);
1735 XCTAssertTrue([message hasExtension:optionalGroupExtension]);
1736 XCTAssertFalse([message hasExtension:optionalNestedMessageExtesion]);
1738 TestAllExtensions *message2 = [[message copy] autorelease];
1742 XCTAssertEqualObjects([message getExtension:optionalGroupExtension],
1745 XCTAssertNotEqual([message getExtension:optionalGroupExtension],
1751 XCTAssertNotEqual([message getExtension:optionalNestedMessageExtesion],
1757 TestAllExtensions *message = [TestAllExtensions message];
1761 [[message getExtension:optionalGroupExtension] retain];
1762 [message clear];
1764 [message getExtension:optionalGroupExtension];
1774 TestAllExtensions *message = [TestAllExtensions message];
1779 TestAllExtensions *message2 = [TestAllExtensions message];
1780 [message setExtension:optionalGroupExtension
1783 [message getExtension:optionalGroupExtension], message2));
1787 [message getExtension:optionalGroupExtension], message));
1792 TestAllExtensions *message = [TestAllExtensions message];
1796 [[message getExtension:optionalGroupExtension] retain];
1797 [message clearExtension:optionalGroupExtension];
1799 [message getExtension:optionalGroupExtension];
1801 XCTAssertFalse([message hasExtension:optionalGroupExtension]);
1808 TestAllExtensions *message_lvl2 = [message getExtension:recursiveExtension];
1812 XCTAssertFalse([message hasExtension:recursiveExtension]);
1818 TestAllExtensions *message = [TestAllExtensions message];
1821 TestAllExtensions *message_lvl2 = [message getExtension:recursiveExtension];
1826 XCTAssertFalse([message hasExtension:recursiveExtension]);
1831 XCTAssertTrue([message hasExtension:recursiveExtension]);
1837 XCTAssertFalse(GPBWasMessageAutocreatedBy(message_lvl2, message));
1842 TestAllExtensions *message = [TestAllExtensions message];
1845 XCTAssertNotNil([message getExtension:optionalGroupExtension]);
1846 XCTAssertFalse([message hasExtension:optionalGroupExtension]);
1847 [message setExtension:optionalGroupExtension
1848 value:[message getExtension:optionalGroupExtension]];
1849 XCTAssertTrue([message hasExtension:optionalGroupExtension]);
1857 TestAllExtensions *message;
1862 message = [[TestAllExtensions alloc] init];
1863 message_lvl2 = [[message getExtension:recursiveExtension] retain];
1870 XCTAssertEqual(message.retainCount, (NSUInteger)1);
1872 [message release];
1890 TestAllExtensions *message;
1892 message = [[TestAllExtensions alloc] init];
1893 [message getExtension:recursiveExtension];
1898 [message setExtension:recursiveExtension
1899 value:[message getExtension:recursiveExtension]];
1900 XCTAssertTrue([message hasExtension:recursiveExtension]);
1901 [message release];
1905 TestRecursiveMessage *message = [TestRecursiveMessage message];
1906 XCTAssertNotNil(message.a);
1907 XCTAssertNotNil(message.a.a);
1908 XCTAssertEqual(message.a.a.i, 0);
1915 GPBMessage *message = [GPBMessage message];
1916 [message setUnknownFields:unknowns];
1917 NSData *data = [message data];
1920 XCTAssertEqualObjects(message, message2);
1927 GPBMessage *message1 = [GPBMessage message];
1934 GPBMessage *message2 = [GPBMessage message];
1957 ObjcWeirdDefaults *message = [ObjcWeirdDefaults message];
1958 GPBDescriptor *descriptor = [[message class] descriptor];
1962 XCTAssertFalse(message.hasFoo);
1963 XCTAssertEqualObjects(message.foo, @"");
1968 XCTAssertFalse(message.hasBar);
1969 XCTAssertEqualObjects(message.bar, GPBEmptyNSData());
1987 ObjCPropertyNaming *msg = [ObjCPropertyNaming message];
2050 EnumTestMsg *msg = [EnumTestMsg message];
2115 self_Class *msg = [self_Class message];
2155 // Message with no explicit defaults, but a non zero default for an enum.
2156 MessageWithOneBasedEnum *enumMsg = [MessageWithOneBasedEnum message];
2164 BoolOnlyMessage *msg1 = [BoolOnlyMessage message];
2165 BoolOnlyMessage *msg2 = [BoolOnlyMessage message];
2226 TestMessageOfMaps *msg = [TestMessageOfMaps message];
2241 TestAllTypes *subMsg1 = [TestAllTypes message];
2243 TestAllTypes *subMsg2 = [TestAllTypes message];
2245 TestAllTypes *subMsg3 = [TestAllTypes message];