|
@@ -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()
|
|
|
}
|
|
|
|