| OLD | NEW |
| 1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
| 2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
| 3 // https://developers.google.com/protocol-buffers/ | 3 // https://developers.google.com/protocol-buffers/ |
| 4 // | 4 // |
| 5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
| 6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
| 7 // met: | 7 // met: |
| 8 // | 8 // |
| 9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
| 10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 30 | 30 |
| 31 #import "GPBTestUtilities.h" | 31 #import "GPBTestUtilities.h" |
| 32 | 32 |
| 33 #import <objc/runtime.h> | 33 #import <objc/runtime.h> |
| 34 | 34 |
| 35 #import "GPBDescriptor.h" | 35 #import "GPBDescriptor.h" |
| 36 #import "google/protobuf/Unittest.pbobjc.h" | 36 #import "google/protobuf/Unittest.pbobjc.h" |
| 37 #import "google/protobuf/UnittestObjc.pbobjc.h" | |
| 38 #import "google/protobuf/Descriptor.pbobjc.h" | |
| 39 | 37 |
| 40 @interface DescriptorTests : GPBTestCase | 38 @interface DescriptorTests : GPBTestCase |
| 41 @end | 39 @end |
| 42 | 40 |
| 43 @implementation DescriptorTests | 41 @implementation DescriptorTests |
| 44 | 42 |
| 45 - (void)testDescriptor_containingType { | |
| 46 GPBDescriptor *testAllTypesDesc = [TestAllTypes descriptor]; | |
| 47 GPBDescriptor *nestedMessageDesc = [TestAllTypes_NestedMessage descriptor]; | |
| 48 XCTAssertNil(testAllTypesDesc.containingType); | |
| 49 XCTAssertNotNil(nestedMessageDesc.containingType); | |
| 50 XCTAssertEqual(nestedMessageDesc.containingType, testAllTypesDesc); // Ptr co
mparison | |
| 51 } | |
| 52 | |
| 53 - (void)testDescriptor_fullName { | |
| 54 GPBDescriptor *testAllTypesDesc = [TestAllTypes descriptor]; | |
| 55 XCTAssertEqualObjects(testAllTypesDesc.fullName, @"protobuf_unittest.TestAllTy
pes"); | |
| 56 GPBDescriptor *nestedMessageDesc = [TestAllTypes_NestedMessage descriptor]; | |
| 57 XCTAssertEqualObjects(nestedMessageDesc.fullName, @"protobuf_unittest.TestAllT
ypes.NestedMessage"); | |
| 58 | |
| 59 // Prefixes removed. | |
| 60 GPBDescriptor *descDesc = [GPBDescriptorProto descriptor]; | |
| 61 XCTAssertEqualObjects(descDesc.fullName, @"google.protobuf.DescriptorProto"); | |
| 62 GPBDescriptor *descExtRngDesc = [GPBDescriptorProto_ExtensionRange descriptor]
; | |
| 63 XCTAssertEqualObjects(descExtRngDesc.fullName, @"google.protobuf.DescriptorPro
to.ExtensionRange"); | |
| 64 | |
| 65 // Things that get "_Class" added. | |
| 66 GPBDescriptor *pointDesc = [Point_Class descriptor]; | |
| 67 XCTAssertEqualObjects(pointDesc.fullName, @"protobuf_unittest.Point"); | |
| 68 GPBDescriptor *pointRectDesc = [Point_Rect descriptor]; | |
| 69 XCTAssertEqualObjects(pointRectDesc.fullName, @"protobuf_unittest.Point.Rect")
; | |
| 70 } | |
| 71 | |
| 72 - (void)testFieldDescriptor { | 43 - (void)testFieldDescriptor { |
| 73 GPBDescriptor *descriptor = [TestAllTypes descriptor]; | 44 GPBDescriptor *descriptor = [TestAllTypes descriptor]; |
| 74 | 45 |
| 75 // Nested Enum | 46 // Nested Enum |
| 76 GPBFieldDescriptor *fieldDescriptorWithName = | 47 GPBFieldDescriptor *fieldDescriptorWithName = |
| 77 [descriptor fieldWithName:@"optionalNestedEnum"]; | 48 [descriptor fieldWithName:@"optionalNestedEnum"]; |
| 78 XCTAssertNotNil(fieldDescriptorWithName); | 49 XCTAssertNotNil(fieldDescriptorWithName); |
| 79 GPBFieldDescriptor *fieldDescriptorWithNumber = | 50 GPBFieldDescriptor *fieldDescriptorWithNumber = |
| 80 [descriptor fieldWithNumber:21]; | 51 [descriptor fieldWithNumber:21]; |
| 81 XCTAssertNotNil(fieldDescriptorWithNumber); | 52 XCTAssertNotNil(fieldDescriptorWithNumber); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 XCTAssertTrue( | 118 XCTAssertTrue( |
| 148 [descriptor getValue:&value forEnumName:@"TestAllTypes_NestedEnum_Bar"]); | 119 [descriptor getValue:&value forEnumName:@"TestAllTypes_NestedEnum_Bar"]); |
| 149 XCTAssertEqual(value, TestAllTypes_NestedEnum_Bar); | 120 XCTAssertEqual(value, TestAllTypes_NestedEnum_Bar); |
| 150 | 121 |
| 151 enumName = [descriptor enumNameForValue:3]; | 122 enumName = [descriptor enumNameForValue:3]; |
| 152 XCTAssertNotNil(enumName); | 123 XCTAssertNotNil(enumName); |
| 153 XCTAssertTrue( | 124 XCTAssertTrue( |
| 154 [descriptor getValue:&value forEnumName:@"TestAllTypes_NestedEnum_Baz"]); | 125 [descriptor getValue:&value forEnumName:@"TestAllTypes_NestedEnum_Baz"]); |
| 155 XCTAssertEqual(value, TestAllTypes_NestedEnum_Baz); | 126 XCTAssertEqual(value, TestAllTypes_NestedEnum_Baz); |
| 156 | 127 |
| 157 // TextFormat | |
| 158 enumName = [descriptor textFormatNameForValue:1]; | |
| 159 XCTAssertNotNil(enumName); | |
| 160 XCTAssertTrue([descriptor getValue:&value forEnumTextFormatName:@"FOO"]); | |
| 161 XCTAssertEqual(value, TestAllTypes_NestedEnum_Foo); | |
| 162 | |
| 163 // Bad values | 128 // Bad values |
| 164 enumName = [descriptor enumNameForValue:0]; | 129 enumName = [descriptor enumNameForValue:0]; |
| 165 XCTAssertNil(enumName); | 130 XCTAssertNil(enumName); |
| 166 XCTAssertFalse([descriptor getValue:&value forEnumName:@"Unknown"]); | 131 XCTAssertFalse([descriptor getValue:&value forEnumName:@"Unknown"]); |
| 167 XCTAssertFalse([descriptor getValue:NULL forEnumName:@"Unknown"]); | 132 XCTAssertFalse([descriptor getValue:NULL forEnumName:@"Unknown"]); |
| 168 XCTAssertFalse([descriptor getValue:&value | 133 XCTAssertFalse([descriptor getValue:&value |
| 169 forEnumName:@"TestAllTypes_NestedEnum_Unknown"]); | 134 forEnumName:@"TestAllTypes_NestedEnum_Unknown"]); |
| 170 XCTAssertFalse([descriptor getValue:NULL | 135 XCTAssertFalse([descriptor getValue:NULL |
| 171 forEnumName:@"TestAllTypes_NestedEnum_Unknown"]); | 136 forEnumName:@"TestAllTypes_NestedEnum_Unknown"]); |
| 172 XCTAssertFalse([descriptor getValue:NULL forEnumTextFormatName:@"Unknown"]); | |
| 173 XCTAssertFalse([descriptor getValue:&value forEnumTextFormatName:@"Unknown"]); | |
| 174 } | 137 } |
| 175 | 138 |
| 176 - (void)testEnumValueValidator { | 139 - (void)testEnumValueValidator { |
| 177 GPBDescriptor *descriptor = [TestAllTypes descriptor]; | 140 GPBDescriptor *descriptor = [TestAllTypes descriptor]; |
| 178 GPBFieldDescriptor *fieldDescriptor = | 141 GPBFieldDescriptor *fieldDescriptor = |
| 179 [descriptor fieldWithName:@"optionalNestedEnum"]; | 142 [descriptor fieldWithName:@"optionalNestedEnum"]; |
| 180 | 143 |
| 181 // Valid values | 144 // Valid values |
| 182 XCTAssertTrue([fieldDescriptor isValidEnumValue:1]); | 145 XCTAssertTrue([fieldDescriptor isValidEnumValue:1]); |
| 183 XCTAssertTrue([fieldDescriptor isValidEnumValue:2]); | 146 XCTAssertTrue([fieldDescriptor isValidEnumValue:2]); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 // (pointer comparisions) | 210 // (pointer comparisions) |
| 248 XCTAssertEqual(fooStringField.containingOneof, oneofFoo); | 211 XCTAssertEqual(fooStringField.containingOneof, oneofFoo); |
| 249 XCTAssertEqual(barStringField.containingOneof, oneofBar); | 212 XCTAssertEqual(barStringField.containingOneof, oneofBar); |
| 250 GPBFieldDescriptor *bazString = | 213 GPBFieldDescriptor *bazString = |
| 251 [descriptor fieldWithNumber:TestOneof2_FieldNumber_BazString]; | 214 [descriptor fieldWithNumber:TestOneof2_FieldNumber_BazString]; |
| 252 XCTAssertNotNil(bazString); | 215 XCTAssertNotNil(bazString); |
| 253 XCTAssertNil(bazString.containingOneof); | 216 XCTAssertNil(bazString.containingOneof); |
| 254 } | 217 } |
| 255 | 218 |
| 256 @end | 219 @end |
| OLD | NEW |