| Index: third_party/protobuf/objectivec/Tests/GPBMessageTests+Runtime.m
|
| diff --git a/third_party/protobuf/objectivec/Tests/GPBMessageTests+Runtime.m b/third_party/protobuf/objectivec/Tests/GPBMessageTests+Runtime.m
|
| index 0058311b3bf0919f4d5c9ea802a8e70e745db613..5e197711ef5580905687f02e8724102963f8e195 100644
|
| --- a/third_party/protobuf/objectivec/Tests/GPBMessageTests+Runtime.m
|
| +++ b/third_party/protobuf/objectivec/Tests/GPBMessageTests+Runtime.m
|
| @@ -36,7 +36,6 @@
|
|
|
| #import "google/protobuf/MapUnittest.pbobjc.h"
|
| #import "google/protobuf/Unittest.pbobjc.h"
|
| -#import "google/protobuf/UnittestCycle.pbobjc.h"
|
| #import "google/protobuf/UnittestObjcStartup.pbobjc.h"
|
| #import "google/protobuf/UnittestRuntimeProto2.pbobjc.h"
|
| #import "google/protobuf/UnittestRuntimeProto3.pbobjc.h"
|
| @@ -50,24 +49,11 @@
|
| // specific.
|
|
|
| - (void)testStartupOrdering {
|
| - // Message class/Root class initialization is a little tricky, so these just
|
| - // create some possible patterns that can be a problem. The messages don't
|
| - // have to be exercised, just creating them is enough to test. If there
|
| - // is a problem, the runtime should assert or hang.
|
| - //
|
| - // Note: the messages from these proto files should not be used in any other
|
| - // tests, that way when they are referenced here it will be the first use and
|
| - // initialization will take place now.
|
| -
|
| + // Just have to create a message. Nothing else uses the classes from
|
| + // this file, so the first selector invoked on the class will initialize
|
| + // it, which also initializes the root.
|
| TestObjCStartupMessage *message = [TestObjCStartupMessage message];
|
| XCTAssertNotNil(message);
|
| -
|
| - CycleBaz *baz = [CycleBaz message];
|
| - CycleBar *bar = [CycleBar message];
|
| - CycleFoo *foo = [CycleFoo message];
|
| - XCTAssertNotNil(baz);
|
| - XCTAssertNotNil(bar);
|
| - XCTAssertNotNil(foo);
|
| }
|
|
|
| - (void)testProto2HasMethodSupport {
|
| @@ -340,17 +326,6 @@
|
| //% [msg release];
|
| //% }
|
| //%
|
| -//%PDDM-DEFINE PROTO2_TEST_CLEAR_FIELD_WITH_NIL(FIELD, VALUE)
|
| -//% { // optional##FIELD
|
| -//% Message2 *msg = [[Message2 alloc] init];
|
| -//% XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_Optional##FIELD));
|
| -//% msg.optional##FIELD = VALUE;
|
| -//% XCTAssertTrue(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_Optional##FIELD));
|
| -//% msg.optional##FIELD = nil;
|
| -//% XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_Optional##FIELD));
|
| -//% [msg release];
|
| -//% }
|
| -//%
|
| //%PDDM-DEFINE PROTO2_TEST_HAS_FIELDS()
|
| //%PROTO2_TEST_HAS_FIELD(Int32, 1, 0)
|
| //%PROTO2_TEST_HAS_FIELD(Int64, 1, 0)
|
| @@ -372,14 +347,6 @@
|
| //% //
|
| //%
|
| //%PROTO2_TEST_HAS_FIELD(Enum, Message2_Enum_Bar, Message2_Enum_Foo)
|
| -//% //
|
| -//% // Nil can also be used to clear strings, bytes, groups, and messages.
|
| -//% //
|
| -//%
|
| -//%PROTO2_TEST_CLEAR_FIELD_WITH_NIL(String, @"foo")
|
| -//%PROTO2_TEST_CLEAR_FIELD_WITH_NIL(Bytes, [@"foo" dataUsingEncoding:NSUTF8StringEncoding])
|
| -//%PROTO2_TEST_CLEAR_FIELD_WITH_NIL(Group, [Message2_OptionalGroup message])
|
| -//%PROTO2_TEST_CLEAR_FIELD_WITH_NIL(Message, [Message2 message])
|
| //%PDDM-EXPAND PROTO2_TEST_HAS_FIELDS()
|
| // This block of code is generated, do not edit it directly.
|
|
|
| @@ -691,57 +658,13 @@
|
| [msg release];
|
| }
|
|
|
| - //
|
| - // Nil can also be used to clear strings, bytes, groups, and messages.
|
| - //
|
| -
|
| - { // optionalString
|
| - Message2 *msg = [[Message2 alloc] init];
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalString));
|
| - msg.optionalString = @"foo";
|
| - XCTAssertTrue(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalString));
|
| - msg.optionalString = nil;
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalString));
|
| - [msg release];
|
| - }
|
| -
|
| - { // optionalBytes
|
| - Message2 *msg = [[Message2 alloc] init];
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalBytes));
|
| - msg.optionalBytes = [@"foo" dataUsingEncoding:NSUTF8StringEncoding];
|
| - XCTAssertTrue(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalBytes));
|
| - msg.optionalBytes = nil;
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalBytes));
|
| - [msg release];
|
| - }
|
| -
|
| - { // optionalGroup
|
| - Message2 *msg = [[Message2 alloc] init];
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalGroup));
|
| - msg.optionalGroup = [Message2_OptionalGroup message];
|
| - XCTAssertTrue(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalGroup));
|
| - msg.optionalGroup = nil;
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalGroup));
|
| - [msg release];
|
| - }
|
| -
|
| - { // optionalMessage
|
| - Message2 *msg = [[Message2 alloc] init];
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalMessage));
|
| - msg.optionalMessage = [Message2 message];
|
| - XCTAssertTrue(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalMessage));
|
| - msg.optionalMessage = nil;
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message2_FieldNumber_OptionalMessage));
|
| - [msg release];
|
| - }
|
| -
|
| //%PDDM-EXPAND-END PROTO2_TEST_HAS_FIELDS()
|
| }
|
|
|
| - (void)testProto3SingleFieldHasBehavior {
|
| //
|
| - // Setting to any value but the default value (0) should result has*
|
| - // being true. When set to the default, shouldn't be true.
|
| + // Setting to any value including the default value (0) should result has*
|
| + // being true.
|
| //
|
|
|
| //%PDDM-DEFINE PROTO3_TEST_HAS_FIELD(FIELD, NON_ZERO_VALUE, ZERO_VALUE)
|
| @@ -755,17 +678,6 @@
|
| //% [msg release];
|
| //% }
|
| //%
|
| -//%PDDM-DEFINE PROTO3_TEST_CLEAR_FIELD_WITH_NIL(FIELD, VALUE)
|
| -//% { // optional##FIELD
|
| -//% Message3 *msg = [[Message3 alloc] init];
|
| -//% XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_Optional##FIELD));
|
| -//% msg.optional##FIELD = VALUE;
|
| -//% XCTAssertTrue(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_Optional##FIELD));
|
| -//% msg.optional##FIELD = nil;
|
| -//% XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_Optional##FIELD));
|
| -//% [msg release];
|
| -//% }
|
| -//%
|
| //%PDDM-DEFINE PROTO3_TEST_HAS_FIELDS()
|
| //%PROTO3_TEST_HAS_FIELD(Int32, 1, 0)
|
| //%PROTO3_TEST_HAS_FIELD(Int64, 1, 0)
|
| @@ -783,17 +695,10 @@
|
| //%PROTO3_TEST_HAS_FIELD(String, @"foo", @"")
|
| //%PROTO3_TEST_HAS_FIELD(Bytes, [@"foo" dataUsingEncoding:NSUTF8StringEncoding], [NSData data])
|
| //% //
|
| -//% // Test doesn't apply to optionalMessage (no groups in proto3).
|
| +//% // Test doesn't apply to optionalGroup/optionalMessage.
|
| //% //
|
| //%
|
| //%PROTO3_TEST_HAS_FIELD(Enum, Message3_Enum_Bar, Message3_Enum_Foo)
|
| -//% //
|
| -//% // Nil can also be used to clear strings, bytes, and messages (no groups in proto3).
|
| -//% //
|
| -//%
|
| -//%PROTO3_TEST_CLEAR_FIELD_WITH_NIL(String, @"foo")
|
| -//%PROTO3_TEST_CLEAR_FIELD_WITH_NIL(Bytes, [@"foo" dataUsingEncoding:NSUTF8StringEncoding])
|
| -//%PROTO3_TEST_CLEAR_FIELD_WITH_NIL(Message, [Message3 message])
|
| //%PDDM-EXPAND PROTO3_TEST_HAS_FIELDS()
|
| // This block of code is generated, do not edit it directly.
|
|
|
| @@ -948,7 +853,7 @@
|
| }
|
|
|
| //
|
| - // Test doesn't apply to optionalMessage (no groups in proto3).
|
| + // Test doesn't apply to optionalGroup/optionalMessage.
|
| //
|
|
|
| { // optionalEnum
|
| @@ -961,40 +866,6 @@
|
| [msg release];
|
| }
|
|
|
| - //
|
| - // Nil can also be used to clear strings, bytes, and messages (no groups in proto3).
|
| - //
|
| -
|
| - { // optionalString
|
| - Message3 *msg = [[Message3 alloc] init];
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_OptionalString));
|
| - msg.optionalString = @"foo";
|
| - XCTAssertTrue(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_OptionalString));
|
| - msg.optionalString = nil;
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_OptionalString));
|
| - [msg release];
|
| - }
|
| -
|
| - { // optionalBytes
|
| - Message3 *msg = [[Message3 alloc] init];
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_OptionalBytes));
|
| - msg.optionalBytes = [@"foo" dataUsingEncoding:NSUTF8StringEncoding];
|
| - XCTAssertTrue(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_OptionalBytes));
|
| - msg.optionalBytes = nil;
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_OptionalBytes));
|
| - [msg release];
|
| - }
|
| -
|
| - { // optionalMessage
|
| - Message3 *msg = [[Message3 alloc] init];
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_OptionalMessage));
|
| - msg.optionalMessage = [Message3 message];
|
| - XCTAssertTrue(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_OptionalMessage));
|
| - msg.optionalMessage = nil;
|
| - XCTAssertFalse(GPBMessageHasFieldNumberSet(msg, Message3_FieldNumber_OptionalMessage));
|
| - [msg release];
|
| - }
|
| -
|
| //%PDDM-EXPAND-END PROTO3_TEST_HAS_FIELDS()
|
| }
|
|
|
| @@ -2101,262 +1972,6 @@
|
| [msg release];
|
| }
|
|
|
| -- (void)testProto2OneofSetToDefault {
|
| -
|
| - // proto3 doesn't normally write out zero (default) fields, but if they are
|
| - // in a oneof it does. proto2 doesn't have this special behavior, but we
|
| - // still confirm setting to the explicit default does set the case to be
|
| - // sure the runtime is working correctly.
|
| -
|
| - NSString *oneofStringDefault = @"string";
|
| - NSData *oneofBytesDefault = [@"data" dataUsingEncoding:NSUTF8StringEncoding];
|
| -
|
| - Message2 *msg = [[Message2 alloc] init];
|
| -
|
| - uint32_t values[] = {
|
| - Message2_O_OneOfCase_OneofInt32,
|
| - Message2_O_OneOfCase_OneofInt64,
|
| - Message2_O_OneOfCase_OneofUint32,
|
| - Message2_O_OneOfCase_OneofUint64,
|
| - Message2_O_OneOfCase_OneofSint32,
|
| - Message2_O_OneOfCase_OneofSint64,
|
| - Message2_O_OneOfCase_OneofFixed32,
|
| - Message2_O_OneOfCase_OneofFixed64,
|
| - Message2_O_OneOfCase_OneofSfixed32,
|
| - Message2_O_OneOfCase_OneofSfixed64,
|
| - Message2_O_OneOfCase_OneofFloat,
|
| - Message2_O_OneOfCase_OneofDouble,
|
| - Message2_O_OneOfCase_OneofBool,
|
| - Message2_O_OneOfCase_OneofString,
|
| - Message2_O_OneOfCase_OneofBytes,
|
| - // Skip group
|
| - // Skip message
|
| - Message2_O_OneOfCase_OneofEnum,
|
| - };
|
| -
|
| - for (size_t i = 0; i < GPBARRAYSIZE(values); ++i) {
|
| - switch (values[i]) {
|
| - case Message2_O_OneOfCase_OneofInt32:
|
| - msg.oneofInt32 = 100;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofInt64:
|
| - msg.oneofInt64 = 101;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofUint32:
|
| - msg.oneofUint32 = 102;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofUint64:
|
| - msg.oneofUint64 = 103;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofSint32:
|
| - msg.oneofSint32 = 104;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofSint64:
|
| - msg.oneofSint64 = 105;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofFixed32:
|
| - msg.oneofFixed32 = 106;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofFixed64:
|
| - msg.oneofFixed64 = 107;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofSfixed32:
|
| - msg.oneofSfixed32 = 108;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofSfixed64:
|
| - msg.oneofSfixed64 = 109;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofFloat:
|
| - msg.oneofFloat = 110.0f;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofDouble:
|
| - msg.oneofDouble = 111.0;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofBool:
|
| - msg.oneofBool = YES;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofString:
|
| - msg.oneofString = oneofStringDefault;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofBytes:
|
| - msg.oneofBytes = oneofBytesDefault;
|
| - break;
|
| - case Message2_O_OneOfCase_OneofEnum:
|
| - msg.oneofEnum = Message3_Enum_Baz;
|
| - break;
|
| - default:
|
| - XCTFail(@"shouldn't happen, loop: %zd, value: %d", i, values[i]);
|
| - break;
|
| - }
|
| -
|
| - // Should be set to the correct case.
|
| - XCTAssertEqual(msg.oOneOfCase, values[i], "Loop: %zd", i);
|
| -
|
| - // Confirm everything is the defaults.
|
| - XCTAssertEqual(msg.oneofInt32, 100, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofInt64, 101, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofUint32, 102U, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofUint64, 103U, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofSint32, 104, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofSint64, 105, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofFixed32, 106U, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofFixed64, 107U, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofSfixed32, 108, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofSfixed64, 109, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofFloat, 110.0f, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofDouble, 111.0, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofBool, YES, "Loop: %zd", i);
|
| - XCTAssertEqualObjects(msg.oneofString, oneofStringDefault, "Loop: %zd", i);
|
| - XCTAssertEqualObjects(msg.oneofBytes, oneofBytesDefault, "Loop: %zd", i);
|
| - // Skip group, no default to consider.
|
| - // Skip message, no default to consider.
|
| - XCTAssertEqual(msg.oneofEnum, Message2_Enum_Baz, "Loop: %zd", i);
|
| - }
|
| -
|
| - // We special case nil on string, data, group, and message, ensure they work
|
| - // as expected. i.e. - it clears the case.
|
| - msg.oneofString = nil;
|
| - XCTAssertEqualObjects(msg.oneofString, oneofStringDefault);
|
| - XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_GPBUnsetOneOfCase);
|
| - msg.oneofBytes = nil;
|
| - XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_GPBUnsetOneOfCase);
|
| - XCTAssertEqualObjects(msg.oneofBytes, oneofBytesDefault);
|
| - msg.oneofGroup = nil;
|
| - XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_GPBUnsetOneOfCase);
|
| - XCTAssertNotNil(msg.oneofGroup);
|
| - msg.oneofMessage = nil;
|
| - XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_GPBUnsetOneOfCase);
|
| - XCTAssertNotNil(msg.oneofMessage);
|
| -
|
| - [msg release];
|
| -}
|
| -
|
| -- (void)testProto3OneofSetToZero {
|
| -
|
| - // Normally setting a proto3 field to the zero value should result in it being
|
| - // reset/cleared. But in a oneof, it still gets recored so it can go out
|
| - // over the wire and the other side can see what was set in the oneof.
|
| -
|
| - NSString *oneofStringDefault = @"";
|
| - NSData *oneofBytesDefault = [NSData data];
|
| -
|
| - Message3 *msg = [[Message3 alloc] init];
|
| -
|
| - uint32_t values[] = {
|
| - Message3_O_OneOfCase_OneofInt32,
|
| - Message3_O_OneOfCase_OneofInt64,
|
| - Message3_O_OneOfCase_OneofUint32,
|
| - Message3_O_OneOfCase_OneofUint64,
|
| - Message3_O_OneOfCase_OneofSint32,
|
| - Message3_O_OneOfCase_OneofSint64,
|
| - Message3_O_OneOfCase_OneofFixed32,
|
| - Message3_O_OneOfCase_OneofFixed64,
|
| - Message3_O_OneOfCase_OneofSfixed32,
|
| - Message3_O_OneOfCase_OneofSfixed64,
|
| - Message3_O_OneOfCase_OneofFloat,
|
| - Message3_O_OneOfCase_OneofDouble,
|
| - Message3_O_OneOfCase_OneofBool,
|
| - Message3_O_OneOfCase_OneofString,
|
| - Message3_O_OneOfCase_OneofBytes,
|
| - Message3_O_OneOfCase_OneofMessage,
|
| - Message3_O_OneOfCase_OneofEnum,
|
| - };
|
| -
|
| - for (size_t i = 0; i < GPBARRAYSIZE(values); ++i) {
|
| - switch (values[i]) {
|
| - case Message3_O_OneOfCase_OneofInt32:
|
| - msg.oneofInt32 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofInt64:
|
| - msg.oneofInt64 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofUint32:
|
| - msg.oneofUint32 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofUint64:
|
| - msg.oneofUint64 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofSint32:
|
| - msg.oneofSint32 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofSint64:
|
| - msg.oneofSint64 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofFixed32:
|
| - msg.oneofFixed32 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofFixed64:
|
| - msg.oneofFixed64 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofSfixed32:
|
| - msg.oneofSfixed32 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofSfixed64:
|
| - msg.oneofSfixed64 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofFloat:
|
| - msg.oneofFloat = 0.0f;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofDouble:
|
| - msg.oneofDouble = 0.0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofBool:
|
| - msg.oneofBool = NO;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofString:
|
| - msg.oneofString = oneofStringDefault;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofBytes:
|
| - msg.oneofBytes = oneofBytesDefault;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofMessage:
|
| - msg.oneofMessage.optionalInt32 = 0;
|
| - break;
|
| - case Message3_O_OneOfCase_OneofEnum:
|
| - msg.oneofEnum = Message3_Enum_Foo;
|
| - break;
|
| - default:
|
| - XCTFail(@"shouldn't happen, loop: %zd, value: %d", i, values[i]);
|
| - break;
|
| - }
|
| -
|
| - // Should be set to the correct case.
|
| - XCTAssertEqual(msg.oOneOfCase, values[i], "Loop: %zd", i);
|
| -
|
| - // Confirm everything is still zeros.
|
| - XCTAssertEqual(msg.oneofInt32, 0, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofInt64, 0, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofUint32, 0U, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofUint64, 0U, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofSint32, 0, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofSint64, 0, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofFixed32, 0U, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofFixed64, 0U, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofSfixed32, 0, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofSfixed64, 0, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofFloat, 0.0f, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofDouble, 0.0, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofBool, NO, "Loop: %zd", i);
|
| - XCTAssertEqualObjects(msg.oneofString, oneofStringDefault, "Loop: %zd", i);
|
| - XCTAssertEqualObjects(msg.oneofBytes, oneofBytesDefault, "Loop: %zd", i);
|
| - XCTAssertNotNil(msg.oneofMessage, "Loop: %zd", i);
|
| - XCTAssertEqual(msg.oneofEnum, Message3_Enum_Foo, "Loop: %zd", i);
|
| - }
|
| -
|
| - // We special case nil on string, data, message, ensure they work as expected.
|
| - msg.oneofString = nil;
|
| - XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_GPBUnsetOneOfCase);
|
| - XCTAssertEqualObjects(msg.oneofString, oneofStringDefault);
|
| - msg.oneofBytes = nil;
|
| - XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_GPBUnsetOneOfCase);
|
| - XCTAssertEqualObjects(msg.oneofBytes, oneofBytesDefault);
|
| - msg.oneofMessage = nil;
|
| - XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_GPBUnsetOneOfCase);
|
| - XCTAssertNotNil(msg.oneofMessage);
|
| -
|
| - [msg release];
|
| -}
|
| -
|
| - (void)testCopyingMakesUniqueObjects {
|
| const int repeatCount = 5;
|
| TestAllTypes *msg1 = [TestAllTypes message];
|
| @@ -2451,46 +2066,6 @@
|
| }];
|
| }
|
|
|
| -- (void)test_GPBGetMessageRepeatedField {
|
| - TestAllTypes *message = [TestAllTypes message];
|
| - GPBFieldDescriptor *fieldDescriptor = [[message descriptor] fieldWithName:@"repeatedStringArray"];
|
| - XCTAssertNotNil(fieldDescriptor);
|
| - NSMutableArray *fieldArray = GPBGetMessageRepeatedField(message, fieldDescriptor);
|
| - XCTAssertNotNil(fieldArray); // Should have autocreated.
|
| - XCTAssertTrue(fieldArray == message.repeatedStringArray); // Same pointer
|
| -}
|
| -
|
| -- (void)test_GPBSetMessageRepeatedField {
|
| - TestAllTypes *message = [TestAllTypes message];
|
| - GPBFieldDescriptor *fieldDescriptor = [[message descriptor] fieldWithName:@"repeatedStringArray"];
|
| - XCTAssertNotNil(fieldDescriptor);
|
| -
|
| - NSMutableArray *fieldArray = [NSMutableArray arrayWithObject:@"foo"];
|
| - GPBSetMessageRepeatedField(message, fieldDescriptor, fieldArray);
|
| - XCTAssertTrue(fieldArray == message.repeatedStringArray); // Same pointer
|
| - XCTAssertEqualObjects(@"foo", message.repeatedStringArray.firstObject);
|
| -}
|
| -
|
| -- (void)test_GPBGetMessageMapField {
|
| - TestMap *message = [TestMap message];
|
| - GPBFieldDescriptor *fieldDescriptor = [[message descriptor] fieldWithName:@"mapStringString"];
|
| - XCTAssertNotNil(fieldDescriptor);
|
| - NSMutableDictionary *fieldMap = GPBGetMessageMapField(message, fieldDescriptor);
|
| - XCTAssertNotNil(fieldMap); // Should have autocreated.
|
| - XCTAssertTrue(fieldMap == message.mapStringString); // Same pointer
|
| -}
|
| -
|
| -- (void)test_GPBSetMessageMapField {
|
| - TestMap *message = [TestMap message];
|
| - GPBFieldDescriptor *fieldDescriptor = [[message descriptor] fieldWithName:@"mapStringString"];
|
| - XCTAssertNotNil(fieldDescriptor);
|
| -
|
| - NSMutableDictionary *fieldMap = [NSMutableDictionary dictionaryWithObject:@"bar" forKey:@"foo"];
|
| - GPBSetMessageMapField(message, fieldDescriptor, fieldMap);
|
| - XCTAssertTrue(fieldMap == message.mapStringString); // Same pointer
|
| - XCTAssertEqualObjects(@"bar", message.mapStringString[@"foo"]);
|
| -}
|
| -
|
| #pragma mark - Subset from from map_tests.cc
|
|
|
| // TEST(GeneratedMapFieldTest, IsInitialized)
|
|
|