Merge pull request #1949 from thomasvl/objc_more_reset_tests
Objc more reset tests
This commit is contained in:
commit
cd561dddc9
1 changed files with 152 additions and 29 deletions
|
@ -326,6 +326,17 @@
|
|||
//% [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)
|
||||
|
@ -347,6 +358,14 @@
|
|||
//% //
|
||||
//%
|
||||
//%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.
|
||||
|
||||
|
@ -658,13 +677,57 @@
|
|||
[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 including the default value (0) should result has*
|
||||
// being true.
|
||||
// Setting to any value but the default value (0) should result has*
|
||||
// being true. When set to the default, shouldn't be true.
|
||||
//
|
||||
|
||||
//%PDDM-DEFINE PROTO3_TEST_HAS_FIELD(FIELD, NON_ZERO_VALUE, ZERO_VALUE)
|
||||
|
@ -678,6 +741,17 @@
|
|||
//% [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)
|
||||
|
@ -695,10 +769,17 @@
|
|||
//%PROTO3_TEST_HAS_FIELD(String, @"foo", @"")
|
||||
//%PROTO3_TEST_HAS_FIELD(Bytes, [@"foo" dataUsingEncoding:NSUTF8StringEncoding], [NSData data])
|
||||
//% //
|
||||
//% // Test doesn't apply to optionalGroup/optionalMessage.
|
||||
//% // Test doesn't apply to optionalMessage (no groups in proto3).
|
||||
//% //
|
||||
//%
|
||||
//%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.
|
||||
|
||||
|
@ -853,7 +934,7 @@
|
|||
}
|
||||
|
||||
//
|
||||
// Test doesn't apply to optionalGroup/optionalMessage.
|
||||
// Test doesn't apply to optionalMessage (no groups in proto3).
|
||||
//
|
||||
|
||||
{ // optionalEnum
|
||||
|
@ -866,6 +947,40 @@
|
|||
[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()
|
||||
}
|
||||
|
||||
|
@ -2007,52 +2122,52 @@
|
|||
|
||||
for (size_t i = 0; i < GPBARRAYSIZE(values); ++i) {
|
||||
switch (values[i]) {
|
||||
case Message3_O_OneOfCase_OneofInt32:
|
||||
case Message2_O_OneOfCase_OneofInt32:
|
||||
msg.oneofInt32 = 100;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofInt64:
|
||||
case Message2_O_OneOfCase_OneofInt64:
|
||||
msg.oneofInt64 = 101;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofUint32:
|
||||
case Message2_O_OneOfCase_OneofUint32:
|
||||
msg.oneofUint32 = 102;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofUint64:
|
||||
case Message2_O_OneOfCase_OneofUint64:
|
||||
msg.oneofUint64 = 103;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofSint32:
|
||||
case Message2_O_OneOfCase_OneofSint32:
|
||||
msg.oneofSint32 = 104;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofSint64:
|
||||
case Message2_O_OneOfCase_OneofSint64:
|
||||
msg.oneofSint64 = 105;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofFixed32:
|
||||
case Message2_O_OneOfCase_OneofFixed32:
|
||||
msg.oneofFixed32 = 106;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofFixed64:
|
||||
case Message2_O_OneOfCase_OneofFixed64:
|
||||
msg.oneofFixed64 = 107;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofSfixed32:
|
||||
case Message2_O_OneOfCase_OneofSfixed32:
|
||||
msg.oneofSfixed32 = 108;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofSfixed64:
|
||||
case Message2_O_OneOfCase_OneofSfixed64:
|
||||
msg.oneofSfixed64 = 109;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofFloat:
|
||||
case Message2_O_OneOfCase_OneofFloat:
|
||||
msg.oneofFloat = 110.0f;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofDouble:
|
||||
case Message2_O_OneOfCase_OneofDouble:
|
||||
msg.oneofDouble = 111.0;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofBool:
|
||||
case Message2_O_OneOfCase_OneofBool:
|
||||
msg.oneofBool = YES;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofString:
|
||||
case Message2_O_OneOfCase_OneofString:
|
||||
msg.oneofString = oneofStringDefault;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofBytes:
|
||||
case Message2_O_OneOfCase_OneofBytes:
|
||||
msg.oneofBytes = oneofBytesDefault;
|
||||
break;
|
||||
case Message3_O_OneOfCase_OneofEnum:
|
||||
case Message2_O_OneOfCase_OneofEnum:
|
||||
msg.oneofEnum = Message3_Enum_Baz;
|
||||
break;
|
||||
default:
|
||||
|
@ -2063,7 +2178,7 @@
|
|||
// Should be set to the correct case.
|
||||
XCTAssertEqual(msg.oOneOfCase, values[i], "Loop: %zd", i);
|
||||
|
||||
// Confirm everything is back as the defaults.
|
||||
// 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);
|
||||
|
@ -2079,20 +2194,25 @@
|
|||
XCTAssertEqual(msg.oneofBool, YES, "Loop: %zd", i);
|
||||
XCTAssertEqualObjects(msg.oneofString, oneofStringDefault, "Loop: %zd", i);
|
||||
XCTAssertEqualObjects(msg.oneofBytes, oneofBytesDefault, "Loop: %zd", i);
|
||||
XCTAssertNotNil(msg.oneofGroup, "Loop: %zd", i);
|
||||
// Skip group
|
||||
// Skip message
|
||||
// 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, message, ensure they work as expected.
|
||||
// i.e. - it clears the case.
|
||||
// We special case nil on string, data, group, and message, ensure they work
|
||||
// as expected. i.e. - it clears the case.
|
||||
msg.oneofString = nil;
|
||||
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_GPBUnsetOneOfCase);
|
||||
XCTAssertEqualObjects(msg.oneofString, oneofStringDefault);
|
||||
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_GPBUnsetOneOfCase);
|
||||
msg.oneofBytes = nil;
|
||||
XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase_GPBUnsetOneOfCase);
|
||||
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, Message3_O_OneOfCase_GPBUnsetOneOfCase);
|
||||
XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase_GPBUnsetOneOfCase);
|
||||
XCTAssertNotNil(msg.oneofMessage);
|
||||
|
||||
[msg release];
|
||||
}
|
||||
|
@ -2212,10 +2332,13 @@
|
|||
// 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];
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue