OLD | NEW |
1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
2 // Copyright 2015 Google Inc. All rights reserved. | 2 // Copyright 2015 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 24 matching lines...) Expand all Loading... |
35 | 35 |
36 class GPBBridgeTests: XCTestCase { | 36 class GPBBridgeTests: XCTestCase { |
37 | 37 |
38 func testProto2Basics() { | 38 func testProto2Basics() { |
39 let msg = Message2() | 39 let msg = Message2() |
40 let msg2 = Message2() | 40 let msg2 = Message2() |
41 let msg3 = Message2_OptionalGroup() | 41 let msg3 = Message2_OptionalGroup() |
42 | 42 |
43 msg.optionalInt32 = 100 | 43 msg.optionalInt32 = 100 |
44 msg.optionalString = "abc" | 44 msg.optionalString = "abc" |
45 msg.optionalEnum = .bar | 45 msg.optionalEnum = .Bar |
46 msg2.optionalString = "other" | 46 msg2.optionalString = "other" |
47 msg.optional = msg2 | 47 msg.optionalMessage = msg2 |
48 msg3.a = 200 | 48 msg3.a = 200 |
49 msg.optionalGroup = msg3 | 49 msg.optionalGroup = msg3 |
50 msg.repeatedInt32Array.addValue(300) | 50 msg.repeatedInt32Array.addValue(300) |
51 msg.repeatedInt32Array.addValue(301) | 51 msg.repeatedInt32Array.addValue(301) |
52 msg.repeatedStringArray.add("mno") | 52 msg.repeatedStringArray.addObject("mno") |
53 msg.repeatedStringArray.add("pqr") | 53 msg.repeatedStringArray.addObject("pqr") |
54 msg.repeatedEnumArray.addValue(Message2_Enum.bar.rawValue) | 54 msg.repeatedEnumArray.addValue(Message2_Enum.Bar.rawValue) |
55 msg.repeatedEnumArray.addValue(Message2_Enum.baz.rawValue) | 55 msg.repeatedEnumArray.addValue(Message2_Enum.Baz.rawValue) |
56 msg.mapInt32Int32.setInt32(400, forKey:500) | 56 msg.mapInt32Int32.setValue(400, forKey:500) |
57 msg.mapInt32Int32.setInt32(401, forKey:501) | 57 msg.mapInt32Int32.setValue(401, forKey:501) |
58 msg.mapStringString.setObject("foo", forKey:"bar" as NSString) | 58 msg.mapStringString.setObject("foo", forKey:"bar") |
59 msg.mapStringString.setObject("abc", forKey:"xyz" as NSString) | 59 msg.mapStringString.setObject("abc", forKey:"xyz") |
60 msg.mapInt32Enum.setEnum(Message2_Enum.bar.rawValue, forKey:600) | 60 msg.mapInt32Enum.setValue(Message2_Enum.Bar.rawValue, forKey:600) |
61 msg.mapInt32Enum.setEnum(Message2_Enum.baz.rawValue, forKey:601) | 61 msg.mapInt32Enum.setValue(Message2_Enum.Baz.rawValue, forKey:601) |
62 | 62 |
63 // Check has*. | 63 // Check has*. |
64 XCTAssertTrue(msg.hasOptionalInt32) | 64 XCTAssertTrue(msg.hasOptionalInt32) |
65 XCTAssertTrue(msg.hasOptionalString) | 65 XCTAssertTrue(msg.hasOptionalString) |
66 XCTAssertTrue(msg.hasOptionalEnum) | 66 XCTAssertTrue(msg.hasOptionalEnum) |
67 XCTAssertTrue(msg2.hasOptionalString) | 67 XCTAssertTrue(msg2.hasOptionalString) |
68 XCTAssertTrue(msg.hasOptionalMessage) | 68 XCTAssertTrue(msg.hasOptionalMessage) |
69 XCTAssertTrue(msg3.hasA) | 69 XCTAssertTrue(msg3.hasA) |
70 XCTAssertTrue(msg.hasOptionalGroup) | 70 XCTAssertTrue(msg.hasOptionalGroup) |
71 XCTAssertFalse(msg.hasOptionalInt64) | 71 XCTAssertFalse(msg.hasOptionalInt64) |
72 XCTAssertFalse(msg.hasOptionalFloat) | 72 XCTAssertFalse(msg.hasOptionalFloat) |
73 | 73 |
74 // Check values. | 74 // Check values. |
75 XCTAssertEqual(msg.optionalInt32, Int32(100)) | 75 XCTAssertEqual(msg.optionalInt32, Int32(100)) |
76 XCTAssertEqual(msg.optionalString, "abc") | 76 XCTAssertEqual(msg.optionalString, "abc") |
77 XCTAssertEqual(msg2.optionalString, "other") | 77 XCTAssertEqual(msg2.optionalString, "other") |
78 XCTAssertTrue(msg.optional === msg2) | 78 XCTAssertTrue(msg.optionalMessage === msg2) |
79 XCTAssertEqual(msg.optionalEnum, Message2_Enum.bar) | 79 XCTAssertEqual(msg.optionalEnum, Message2_Enum.Bar) |
80 XCTAssertEqual(msg3.a, Int32(200)) | 80 XCTAssertEqual(msg3.a, Int32(200)) |
81 XCTAssertTrue(msg.optionalGroup === msg3) | 81 XCTAssertTrue(msg.optionalGroup === msg3) |
82 XCTAssertEqual(msg.repeatedInt32Array.count, UInt(2)) | 82 XCTAssertEqual(msg.repeatedInt32Array.count, UInt(2)) |
83 XCTAssertEqual(msg.repeatedInt32Array.value(at: 0), Int32(300)) | 83 XCTAssertEqual(msg.repeatedInt32Array.valueAtIndex(0), Int32(300)) |
84 XCTAssertEqual(msg.repeatedInt32Array.value(at: 1), Int32(301)) | 84 XCTAssertEqual(msg.repeatedInt32Array.valueAtIndex(1), Int32(301)) |
85 XCTAssertEqual(msg.repeatedStringArray.count, Int(2)) | 85 XCTAssertEqual(msg.repeatedStringArray.count, Int(2)) |
86 XCTAssertEqual(msg.repeatedStringArray.object(at: 0) as? String, "mno") | 86 XCTAssertEqual(msg.repeatedStringArray.objectAtIndex(0) as? String, "mno") |
87 XCTAssertEqual(msg.repeatedStringArray.object(at: 1) as? String, "pqr") | 87 XCTAssertEqual(msg.repeatedStringArray.objectAtIndex(1) as? String, "pqr") |
88 XCTAssertEqual(msg.repeatedEnumArray.count, UInt(2)) | 88 XCTAssertEqual(msg.repeatedEnumArray.count, UInt(2)) |
89 XCTAssertEqual(msg.repeatedEnumArray.value(at: 0), Message2_Enum.bar.rawValu
e) | 89 XCTAssertEqual(msg.repeatedEnumArray.valueAtIndex(0), Message2_Enum.Bar.rawV
alue) |
90 XCTAssertEqual(msg.repeatedEnumArray.value(at: 1), Message2_Enum.baz.rawValu
e) | 90 XCTAssertEqual(msg.repeatedEnumArray.valueAtIndex(1), Message2_Enum.Baz.rawV
alue) |
91 XCTAssertEqual(msg.repeatedInt64Array.count, UInt(0)) | 91 XCTAssertEqual(msg.repeatedInt64Array.count, UInt(0)) |
92 XCTAssertEqual(msg.mapInt32Int32.count, UInt(2)) | 92 XCTAssertEqual(msg.mapInt32Int32.count, UInt(2)) |
93 var intValue: Int32 = 0 | 93 var intValue: Int32 = 0; |
94 XCTAssertTrue(msg.mapInt32Int32.getInt32(&intValue, forKey: 500)) | 94 XCTAssertTrue(msg.mapInt32Int32.valueForKey(500, value:&intValue)) |
95 XCTAssertEqual(intValue, Int32(400)) | 95 XCTAssertEqual(intValue, Int32(400)) |
96 XCTAssertTrue(msg.mapInt32Int32.getInt32(&intValue, forKey: 501)) | 96 XCTAssertTrue(msg.mapInt32Int32.valueForKey(501, value:&intValue)) |
97 XCTAssertEqual(intValue, Int32(401)) | 97 XCTAssertEqual(intValue, Int32(401)) |
98 XCTAssertEqual(msg.mapStringString.count, Int(2)) | 98 XCTAssertEqual(msg.mapStringString.count, Int(2)) |
99 XCTAssertEqual(msg.mapStringString.object(forKey: "bar") as? String, "foo") | 99 XCTAssertEqual(msg.mapStringString.objectForKey("bar") as? String, "foo") |
100 XCTAssertEqual(msg.mapStringString.object(forKey: "xyz") as? String, "abc") | 100 XCTAssertEqual(msg.mapStringString.objectForKey("xyz") as? String, "abc") |
101 XCTAssertEqual(msg.mapInt32Enum.count, UInt(2)) | 101 XCTAssertEqual(msg.mapInt32Enum.count, UInt(2)) |
102 XCTAssertTrue(msg.mapInt32Enum.getEnum(&intValue, forKey:600)) | 102 XCTAssertTrue(msg.mapInt32Enum.valueForKey(600, value:&intValue)) |
103 XCTAssertEqual(intValue, Message2_Enum.bar.rawValue) | 103 XCTAssertEqual(intValue, Message2_Enum.Bar.rawValue) |
104 XCTAssertTrue(msg.mapInt32Enum.getEnum(&intValue, forKey:601)) | 104 XCTAssertTrue(msg.mapInt32Enum.valueForKey(601, value:&intValue)) |
105 XCTAssertEqual(intValue, Message2_Enum.baz.rawValue) | 105 XCTAssertEqual(intValue, Message2_Enum.Baz.rawValue) |
106 | 106 |
107 // Clearing a string with nil. | 107 // Clearing a string with nil. |
108 msg2.optionalString = nil | 108 msg2.optionalString = nil |
109 XCTAssertFalse(msg2.hasOptionalString) | 109 XCTAssertFalse(msg2.hasOptionalString) |
110 XCTAssertEqual(msg2.optionalString, "") | 110 XCTAssertEqual(msg2.optionalString, "") |
111 | 111 |
112 // Clearing a message with nil. | 112 // Clearing a message with nil. |
113 msg.optionalGroup = nil | 113 msg.optionalGroup = nil |
114 XCTAssertFalse(msg.hasOptionalGroup) | 114 XCTAssertFalse(msg.hasOptionalGroup) |
115 XCTAssertTrue(msg.optionalGroup !== msg3) // New instance | 115 XCTAssertTrue(msg.optionalGroup !== msg3) // New instance |
116 | 116 |
117 // Clear. | 117 // Clear. |
118 msg.clear() | 118 msg.clear() |
119 XCTAssertFalse(msg.hasOptionalInt32) | 119 XCTAssertFalse(msg.hasOptionalInt32) |
120 XCTAssertFalse(msg.hasOptionalString) | 120 XCTAssertFalse(msg.hasOptionalString) |
121 XCTAssertFalse(msg.hasOptionalEnum) | 121 XCTAssertFalse(msg.hasOptionalEnum) |
122 XCTAssertFalse(msg.hasOptionalMessage) | 122 XCTAssertFalse(msg.hasOptionalMessage) |
123 XCTAssertFalse(msg.hasOptionalInt64) | 123 XCTAssertFalse(msg.hasOptionalInt64) |
124 XCTAssertFalse(msg.hasOptionalFloat) | 124 XCTAssertFalse(msg.hasOptionalFloat) |
125 XCTAssertEqual(msg.optionalInt32, Int32(0)) | 125 XCTAssertEqual(msg.optionalInt32, Int32(0)) |
126 XCTAssertEqual(msg.optionalString, "") | 126 XCTAssertEqual(msg.optionalString, "") |
127 XCTAssertTrue(msg.optional !== msg2) // New instance | 127 XCTAssertTrue(msg.optionalMessage !== msg2) // New instance |
128 XCTAssertEqual(msg.optionalEnum, Message2_Enum.foo) // Default | 128 XCTAssertEqual(msg.optionalEnum, Message2_Enum.Foo) // Default |
129 XCTAssertEqual(msg.repeatedInt32Array.count, UInt(0)) | 129 XCTAssertEqual(msg.repeatedInt32Array.count, UInt(0)) |
130 XCTAssertEqual(msg.repeatedStringArray.count, Int(0)) | 130 XCTAssertEqual(msg.repeatedStringArray.count, Int(0)) |
131 XCTAssertEqual(msg.repeatedEnumArray.count, UInt(0)) | 131 XCTAssertEqual(msg.repeatedEnumArray.count, UInt(0)) |
132 XCTAssertEqual(msg.mapInt32Int32.count, UInt(0)) | 132 XCTAssertEqual(msg.mapInt32Int32.count, UInt(0)) |
133 XCTAssertEqual(msg.mapStringString.count, Int(0)) | 133 XCTAssertEqual(msg.mapStringString.count, Int(0)) |
134 XCTAssertEqual(msg.mapInt32Enum.count, UInt(0)) | 134 XCTAssertEqual(msg.mapInt32Enum.count, UInt(0)) |
135 } | 135 } |
136 | 136 |
137 func testProto3Basics() { | 137 func testProto3Basics() { |
138 let msg = Message3() | 138 let msg = Message3() |
139 let msg2 = Message3() | 139 let msg2 = Message3() |
140 | 140 |
141 msg.optionalInt32 = 100 | 141 msg.optionalInt32 = 100 |
142 msg.optionalString = "abc" | 142 msg.optionalString = "abc" |
143 msg.optionalEnum = .bar | 143 msg.optionalEnum = .Bar |
144 msg2.optionalString = "other" | 144 msg2.optionalString = "other" |
145 msg.optional = msg2 | 145 msg.optionalMessage = msg2 |
146 msg.repeatedInt32Array.addValue(300) | 146 msg.repeatedInt32Array.addValue(300) |
147 msg.repeatedInt32Array.addValue(301) | 147 msg.repeatedInt32Array.addValue(301) |
148 msg.repeatedStringArray.add("mno") | 148 msg.repeatedStringArray.addObject("mno") |
149 msg.repeatedStringArray.add("pqr") | 149 msg.repeatedStringArray.addObject("pqr") |
150 // "proto3" syntax lets enum get unknown values. | 150 // "proto3" syntax lets enum get unknown values. |
151 msg.repeatedEnumArray.addValue(Message3_Enum.bar.rawValue) | 151 msg.repeatedEnumArray.addValue(Message3_Enum.Bar.rawValue) |
152 msg.repeatedEnumArray.addRawValue(666) | 152 msg.repeatedEnumArray.addRawValue(666) |
153 SetMessage3_OptionalEnum_RawValue(msg2, 666) | 153 SetMessage3_OptionalEnum_RawValue(msg2, 666) |
154 msg.mapInt32Int32.setInt32(400, forKey:500) | 154 msg.mapInt32Int32.setValue(400, forKey:500) |
155 msg.mapInt32Int32.setInt32(401, forKey:501) | 155 msg.mapInt32Int32.setValue(401, forKey:501) |
156 msg.mapStringString.setObject("foo", forKey:"bar" as NSString) | 156 msg.mapStringString.setObject("foo", forKey:"bar") |
157 msg.mapStringString.setObject("abc", forKey:"xyz" as NSString) | 157 msg.mapStringString.setObject("abc", forKey:"xyz") |
158 msg.mapInt32Enum.setEnum(Message2_Enum.bar.rawValue, forKey:600) | 158 msg.mapInt32Enum.setValue(Message2_Enum.Bar.rawValue, forKey:600) |
159 // "proto3" syntax lets enum get unknown values. | 159 // "proto3" syntax lets enum get unknown values. |
160 msg.mapInt32Enum.setRawValue(666, forKey:601) | 160 msg.mapInt32Enum.setRawValue(666, forKey:601) |
161 | 161 |
162 // Has only exists on for message fields. | 162 // Has only exists on for message fields. |
163 XCTAssertTrue(msg.hasOptionalMessage) | 163 XCTAssertTrue(msg.hasOptionalMessage) |
164 XCTAssertFalse(msg2.hasOptionalMessage) | 164 XCTAssertFalse(msg2.hasOptionalMessage) |
165 | 165 |
166 // Check values. | 166 // Check values. |
167 XCTAssertEqual(msg.optionalInt32, Int32(100)) | 167 XCTAssertEqual(msg.optionalInt32, Int32(100)) |
168 XCTAssertEqual(msg.optionalString, "abc") | 168 XCTAssertEqual(msg.optionalString, "abc") |
169 XCTAssertEqual(msg2.optionalString, "other") | 169 XCTAssertEqual(msg2.optionalString, "other") |
170 XCTAssertTrue(msg.optional === msg2) | 170 XCTAssertTrue(msg.optionalMessage === msg2) |
171 XCTAssertEqual(msg.optionalEnum, Message3_Enum.bar) | 171 XCTAssertEqual(msg.optionalEnum, Message3_Enum.Bar) |
172 XCTAssertEqual(msg.repeatedInt32Array.count, UInt(2)) | 172 XCTAssertEqual(msg.repeatedInt32Array.count, UInt(2)) |
173 XCTAssertEqual(msg.repeatedInt32Array.value(at: 0), Int32(300)) | 173 XCTAssertEqual(msg.repeatedInt32Array.valueAtIndex(0), Int32(300)) |
174 XCTAssertEqual(msg.repeatedInt32Array.value(at: 1), Int32(301)) | 174 XCTAssertEqual(msg.repeatedInt32Array.valueAtIndex(1), Int32(301)) |
175 XCTAssertEqual(msg.repeatedStringArray.count, Int(2)) | 175 XCTAssertEqual(msg.repeatedStringArray.count, Int(2)) |
176 XCTAssertEqual(msg.repeatedStringArray.object(at: 0) as? String, "mno") | 176 XCTAssertEqual(msg.repeatedStringArray.objectAtIndex(0) as? String, "mno") |
177 XCTAssertEqual(msg.repeatedStringArray.object(at: 1) as? String, "pqr") | 177 XCTAssertEqual(msg.repeatedStringArray.objectAtIndex(1) as? String, "pqr") |
178 XCTAssertEqual(msg.repeatedInt64Array.count, UInt(0)) | 178 XCTAssertEqual(msg.repeatedInt64Array.count, UInt(0)) |
179 XCTAssertEqual(msg.repeatedEnumArray.count, UInt(2)) | 179 XCTAssertEqual(msg.repeatedEnumArray.count, UInt(2)) |
180 XCTAssertEqual(msg.repeatedEnumArray.value(at: 0), Message3_Enum.bar.rawValu
e) | 180 XCTAssertEqual(msg.repeatedEnumArray.valueAtIndex(0), Message3_Enum.Bar.rawV
alue) |
181 XCTAssertEqual(msg.repeatedEnumArray.value(at: 1), Message3_Enum.gpbUnrecogn
izedEnumeratorValue.rawValue) | 181 XCTAssertEqual(msg.repeatedEnumArray.valueAtIndex(1), Message3_Enum.GPBUnrec
ognizedEnumeratorValue.rawValue) |
182 XCTAssertEqual(msg.repeatedEnumArray.rawValue(at: 1), 666) | 182 XCTAssertEqual(msg.repeatedEnumArray.rawValueAtIndex(1), 666) |
183 XCTAssertEqual(msg2.optionalEnum, Message3_Enum.gpbUnrecognizedEnumeratorVal
ue) | 183 XCTAssertEqual(msg2.optionalEnum, Message3_Enum.GPBUnrecognizedEnumeratorVal
ue) |
184 XCTAssertEqual(Message3_OptionalEnum_RawValue(msg2), Int32(666)) | 184 XCTAssertEqual(Message3_OptionalEnum_RawValue(msg2), Int32(666)) |
185 XCTAssertEqual(msg.mapInt32Int32.count, UInt(2)) | 185 XCTAssertEqual(msg.mapInt32Int32.count, UInt(2)) |
186 var intValue: Int32 = 0 | 186 var intValue: Int32 = 0; |
187 XCTAssertTrue(msg.mapInt32Int32.getInt32(&intValue, forKey:500)) | 187 XCTAssertTrue(msg.mapInt32Int32.valueForKey(500, value:&intValue)) |
188 XCTAssertEqual(intValue, Int32(400)) | 188 XCTAssertEqual(intValue, Int32(400)) |
189 XCTAssertTrue(msg.mapInt32Int32.getInt32(&intValue, forKey:501)) | 189 XCTAssertTrue(msg.mapInt32Int32.valueForKey(501, value:&intValue)) |
190 XCTAssertEqual(intValue, Int32(401)) | 190 XCTAssertEqual(intValue, Int32(401)) |
191 XCTAssertEqual(msg.mapStringString.count, Int(2)) | 191 XCTAssertEqual(msg.mapStringString.count, Int(2)) |
192 XCTAssertEqual(msg.mapStringString.object(forKey: "bar") as? String, "foo") | 192 XCTAssertEqual(msg.mapStringString.objectForKey("bar") as? String, "foo") |
193 XCTAssertEqual(msg.mapStringString.object(forKey: "xyz") as? String, "abc") | 193 XCTAssertEqual(msg.mapStringString.objectForKey("xyz") as? String, "abc") |
194 XCTAssertEqual(msg.mapInt32Enum.count, UInt(2)) | 194 XCTAssertEqual(msg.mapInt32Enum.count, UInt(2)) |
195 XCTAssertTrue(msg.mapInt32Enum.getEnum(&intValue, forKey:600)) | 195 XCTAssertTrue(msg.mapInt32Enum.valueForKey(600, value:&intValue)) |
196 XCTAssertEqual(intValue, Message2_Enum.bar.rawValue) | 196 XCTAssertEqual(intValue, Message2_Enum.Bar.rawValue) |
197 XCTAssertTrue(msg.mapInt32Enum.getEnum(&intValue, forKey:601)) | 197 XCTAssertTrue(msg.mapInt32Enum.valueForKey(601, value:&intValue)) |
198 XCTAssertEqual(intValue, Message3_Enum.gpbUnrecognizedEnumeratorValue.rawVal
ue) | 198 XCTAssertEqual(intValue, Message3_Enum.GPBUnrecognizedEnumeratorValue.rawVal
ue) |
199 XCTAssertTrue(msg.mapInt32Enum.getRawValue(&intValue, forKey:601)) | 199 XCTAssertTrue(msg.mapInt32Enum.valueForKey(601, rawValue:&intValue)) |
200 XCTAssertEqual(intValue, 666) | 200 XCTAssertEqual(intValue, 666) |
201 | 201 |
202 // Clearing a string with nil. | 202 // Clearing a string with nil. |
203 msg2.optionalString = nil | 203 msg2.optionalString = nil |
204 XCTAssertEqual(msg2.optionalString, "") | 204 XCTAssertEqual(msg2.optionalString, "") |
205 | 205 |
206 // Clearing a message with nil. | 206 // Clearing a message with nil. |
207 msg.optional = nil | 207 msg.optionalMessage = nil |
208 XCTAssertFalse(msg.hasOptionalMessage) | 208 XCTAssertFalse(msg.hasOptionalMessage) |
209 XCTAssertTrue(msg.optional !== msg2) // New instance | 209 XCTAssertTrue(msg.optionalMessage !== msg2) // New instance |
210 | 210 |
211 // Clear. | 211 // Clear. |
212 msg.clear() | 212 msg.clear() |
213 XCTAssertFalse(msg.hasOptionalMessage) | 213 XCTAssertFalse(msg.hasOptionalMessage) |
214 XCTAssertEqual(msg.optionalInt32, Int32(0)) | 214 XCTAssertEqual(msg.optionalInt32, Int32(0)) |
215 XCTAssertEqual(msg.optionalString, "") | 215 XCTAssertEqual(msg.optionalString, "") |
216 XCTAssertTrue(msg.optional !== msg2) // New instance | 216 XCTAssertTrue(msg.optionalMessage !== msg2) // New instance |
217 XCTAssertEqual(msg.optionalEnum, Message3_Enum.foo) // Default | 217 XCTAssertEqual(msg.optionalEnum, Message3_Enum.Foo) // Default |
218 XCTAssertEqual(msg.repeatedInt32Array.count, UInt(0)) | 218 XCTAssertEqual(msg.repeatedInt32Array.count, UInt(0)) |
219 XCTAssertEqual(msg.repeatedStringArray.count, Int(0)) | 219 XCTAssertEqual(msg.repeatedStringArray.count, Int(0)) |
220 XCTAssertEqual(msg.repeatedEnumArray.count, UInt(0)) | 220 XCTAssertEqual(msg.repeatedEnumArray.count, UInt(0)) |
221 msg2.clear() | 221 msg2.clear() |
222 XCTAssertEqual(msg2.optionalEnum, Message3_Enum.foo) // Default | 222 XCTAssertEqual(msg2.optionalEnum, Message3_Enum.Foo) // Default |
223 XCTAssertEqual(Message3_OptionalEnum_RawValue(msg2), Message3_Enum.foo.rawVa
lue) | 223 XCTAssertEqual(Message3_OptionalEnum_RawValue(msg2), Message3_Enum.Foo.rawVa
lue) |
224 XCTAssertEqual(msg.mapInt32Int32.count, UInt(0)) | 224 XCTAssertEqual(msg.mapInt32Int32.count, UInt(0)) |
225 XCTAssertEqual(msg.mapStringString.count, Int(0)) | 225 XCTAssertEqual(msg.mapStringString.count, Int(0)) |
226 XCTAssertEqual(msg.mapInt32Enum.count, UInt(0)) | 226 XCTAssertEqual(msg.mapInt32Enum.count, UInt(0)) |
227 } | 227 } |
228 | 228 |
229 func testAutoCreation() { | 229 func testAutoCreation() { |
230 let msg = Message2() | 230 let msg = Message2() |
231 | 231 |
232 XCTAssertFalse(msg.hasOptionalGroup) | 232 XCTAssertFalse(msg.hasOptionalGroup) |
233 XCTAssertFalse(msg.hasOptionalMessage) | 233 XCTAssertFalse(msg.hasOptionalMessage) |
234 | 234 |
235 // Access shouldn't result in has* but should return objects. | 235 // Access shouldn't result in has* but should return objects. |
236 let msg2 = msg.optionalGroup | 236 let msg2 = msg.optionalGroup |
237 let msg3 = msg.optional.optional | 237 let msg3 = msg.optionalMessage.optionalMessage |
238 let msg4 = msg.optional | 238 let msg4 = msg.optionalMessage |
239 XCTAssertNotNil(msg2) | 239 XCTAssertNotNil(msg2) |
240 XCTAssertNotNil(msg3) | 240 XCTAssertNotNil(msg3) |
241 XCTAssertFalse(msg.hasOptionalGroup) | 241 XCTAssertFalse(msg.hasOptionalGroup) |
242 XCTAssertFalse(msg.optional.hasOptionalMessage) | 242 XCTAssertFalse(msg.optionalMessage.hasOptionalMessage) |
243 XCTAssertFalse(msg.hasOptionalMessage) | 243 XCTAssertFalse(msg.hasOptionalMessage) |
244 | 244 |
245 // Setting things should trigger has* getting set. | 245 // Setting things should trigger has* getting set. |
246 msg.optionalGroup.a = 10 | 246 msg.optionalGroup.a = 10 |
247 msg.optional.optional.optionalInt32 = 100 | 247 msg.optionalMessage.optionalMessage.optionalInt32 = 100 |
248 XCTAssertTrue(msg.hasOptionalGroup) | 248 XCTAssertTrue(msg.hasOptionalGroup) |
249 XCTAssertTrue(msg.optional.hasOptionalMessage) | 249 XCTAssertTrue(msg.optionalMessage.hasOptionalMessage) |
250 XCTAssertTrue(msg.hasOptionalMessage) | 250 XCTAssertTrue(msg.hasOptionalMessage) |
251 | 251 |
252 // And they should be the same pointer as before. | 252 // And they should be the same pointer as before. |
253 XCTAssertTrue(msg2 === msg.optionalGroup) | 253 XCTAssertTrue(msg2 === msg.optionalGroup) |
254 XCTAssertTrue(msg3 === msg.optional.optional) | 254 XCTAssertTrue(msg3 === msg.optionalMessage.optionalMessage) |
255 XCTAssertTrue(msg4 === msg.optional) | 255 XCTAssertTrue(msg4 === msg.optionalMessage) |
256 | 256 |
257 // Clear gets us new objects next time around. | 257 // Clear gets us new objects next time around. |
258 msg.clear() | 258 msg.clear() |
259 XCTAssertFalse(msg.hasOptionalGroup) | 259 XCTAssertFalse(msg.hasOptionalGroup) |
260 XCTAssertFalse(msg.optional.hasOptionalMessage) | 260 XCTAssertFalse(msg.optionalMessage.hasOptionalMessage) |
261 XCTAssertFalse(msg.hasOptionalMessage) | 261 XCTAssertFalse(msg.hasOptionalMessage) |
262 msg.optionalGroup.a = 20 | 262 msg.optionalGroup.a = 20 |
263 msg.optional.optional.optionalInt32 = 200 | 263 msg.optionalMessage.optionalMessage.optionalInt32 = 200 |
264 XCTAssertTrue(msg.hasOptionalGroup) | 264 XCTAssertTrue(msg.hasOptionalGroup) |
265 XCTAssertTrue(msg.optional.hasOptionalMessage) | 265 XCTAssertTrue(msg.optionalMessage.hasOptionalMessage) |
266 XCTAssertTrue(msg.hasOptionalMessage) | 266 XCTAssertTrue(msg.hasOptionalMessage) |
267 XCTAssertTrue(msg2 !== msg.optionalGroup) | 267 XCTAssertTrue(msg2 !== msg.optionalGroup) |
268 XCTAssertTrue(msg3 !== msg.optional.optional) | 268 XCTAssertTrue(msg3 !== msg.optionalMessage.optionalMessage) |
269 XCTAssertTrue(msg4 !== msg.optional) | 269 XCTAssertTrue(msg4 !== msg.optionalMessage) |
270 | 270 |
271 // Explicit set of a message, means autocreated object doesn't bind. | 271 // Explicit set of a message, means autocreated object doesn't bind. |
272 msg.clear() | 272 msg.clear() |
273 let autoCreated = msg.optional | 273 let autoCreated = msg.optionalMessage |
274 XCTAssertFalse(msg.hasOptionalMessage) | 274 XCTAssertFalse(msg.hasOptionalMessage) |
275 let msg5 = Message2() | 275 let msg5 = Message2() |
276 msg5.optionalInt32 = 123 | 276 msg5.optionalInt32 = 123 |
277 msg.optional = msg5 | 277 msg.optionalMessage = msg5 |
278 XCTAssertTrue(msg.hasOptionalMessage) | 278 XCTAssertTrue(msg.hasOptionalMessage) |
279 // Modifing the autocreated doesn't replaced the explicit set one. | 279 // Modifing the autocreated doesn't replaced the explicit set one. |
280 autoCreated?.optionalInt32 = 456 | 280 autoCreated.optionalInt32 = 456 |
281 XCTAssertTrue(msg.hasOptionalMessage) | 281 XCTAssertTrue(msg.hasOptionalMessage) |
282 XCTAssertTrue(msg.optional === msg5) | 282 XCTAssertTrue(msg.optionalMessage === msg5) |
283 XCTAssertEqual(msg.optional.optionalInt32, Int32(123)) | 283 XCTAssertEqual(msg.optionalMessage.optionalInt32, Int32(123)) |
284 } | 284 } |
285 | 285 |
286 func testProto2OneOfSupport() { | 286 func testProto2OneOfSupport() { |
287 let msg = Message2() | 287 let msg = Message2() |
288 | 288 |
289 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.gpbUnsetOneOfCase) | 289 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.GPBUnsetOneOfCase) |
290 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default | 290 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default |
291 XCTAssertEqual(msg.oneofFloat, Float(110.0)) // Default | 291 XCTAssertEqual(msg.oneofFloat, Float(110.0)) // Default |
292 XCTAssertEqual(msg.oneofEnum, Message2_Enum.baz) // Default | 292 XCTAssertEqual(msg.oneofEnum, Message2_Enum.Baz) // Default |
293 let autoCreated = msg.oneof // Default create one. | 293 let autoCreated = msg.oneofMessage // Default create one. |
294 XCTAssertNotNil(autoCreated) | 294 XCTAssertNotNil(autoCreated) |
295 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.gpbUnsetOneOfCase) | 295 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.GPBUnsetOneOfCase) |
296 | 296 |
297 msg.oneofInt32 = 10 | 297 msg.oneofInt32 = 10 |
298 XCTAssertEqual(msg.oneofInt32, Int32(10)) | 298 XCTAssertEqual(msg.oneofInt32, Int32(10)) |
299 XCTAssertEqual(msg.oneofFloat, Float(110.0)) // Default | 299 XCTAssertEqual(msg.oneofFloat, Float(110.0)) // Default |
300 XCTAssertEqual(msg.oneofEnum, Message2_Enum.baz) // Default | 300 XCTAssertEqual(msg.oneofEnum, Message2_Enum.Baz) // Default |
301 XCTAssertTrue(msg.oneof === autoCreated) // Still the same | 301 XCTAssertTrue(msg.oneofMessage === autoCreated) // Still the same |
302 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.oneofInt32) | 302 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.OneofInt32) |
303 | 303 |
304 msg.oneofFloat = 20.0 | 304 msg.oneofFloat = 20.0 |
305 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default | 305 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default |
306 XCTAssertEqual(msg.oneofFloat, Float(20.0)) | 306 XCTAssertEqual(msg.oneofFloat, Float(20.0)) |
307 XCTAssertEqual(msg.oneofEnum, Message2_Enum.baz) // Default | 307 XCTAssertEqual(msg.oneofEnum, Message2_Enum.Baz) // Default |
308 XCTAssertTrue(msg.oneof === autoCreated) // Still the same | 308 XCTAssertTrue(msg.oneofMessage === autoCreated) // Still the same |
309 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.oneofFloat) | 309 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.OneofFloat) |
310 | 310 |
311 msg.oneofEnum = .bar | 311 msg.oneofEnum = .Bar |
312 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default | 312 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default |
313 XCTAssertEqual(msg.oneofFloat, Float(110.0)) // Default | 313 XCTAssertEqual(msg.oneofFloat, Float(110.0)) // Default |
314 XCTAssertEqual(msg.oneofEnum, Message2_Enum.bar) | 314 XCTAssertEqual(msg.oneofEnum, Message2_Enum.Bar) |
315 XCTAssertTrue(msg.oneof === autoCreated) // Still the same | 315 XCTAssertTrue(msg.oneofMessage === autoCreated) // Still the same |
316 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.oneofEnum) | 316 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.OneofEnum) |
317 | 317 |
318 // Sets via the autocreated instance. | 318 // Sets via the autocreated instance. |
319 msg.oneof.optionalInt32 = 200 | 319 msg.oneofMessage.optionalInt32 = 200 |
320 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default | 320 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default |
321 XCTAssertEqual(msg.oneofFloat, Float(110.0)) // Default | 321 XCTAssertEqual(msg.oneofFloat, Float(110.0)) // Default |
322 XCTAssertEqual(msg.oneofEnum, Message2_Enum.baz) // Default | 322 XCTAssertEqual(msg.oneofEnum, Message2_Enum.Baz) // Default |
323 XCTAssertTrue(msg.oneof === autoCreated) // Still the same | 323 XCTAssertTrue(msg.oneofMessage === autoCreated) // Still the same |
324 XCTAssertEqual(msg.oneof.optionalInt32, Int32(200)) | 324 XCTAssertEqual(msg.oneofMessage.optionalInt32, Int32(200)) |
325 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.oneofMessage) | 325 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.OneofMessage) |
326 | 326 |
327 // Clear the oneof. | 327 // Clear the oneof. |
328 Message2_ClearOOneOfCase(msg) | 328 Message2_ClearOOneOfCase(msg) |
329 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default | 329 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default |
330 XCTAssertEqual(msg.oneofFloat, Float(110.0)) // Default | 330 XCTAssertEqual(msg.oneofFloat, Float(110.0)) // Default |
331 XCTAssertEqual(msg.oneofEnum, Message2_Enum.baz) // Default | 331 XCTAssertEqual(msg.oneofEnum, Message2_Enum.Baz) // Default |
332 let autoCreated2 = msg.oneof // Default create one | 332 let autoCreated2 = msg.oneofMessage // Default create one |
333 XCTAssertNotNil(autoCreated2) | 333 XCTAssertNotNil(autoCreated2) |
334 XCTAssertTrue(autoCreated2 !== autoCreated) // New instance | 334 XCTAssertTrue(autoCreated2 !== autoCreated) // New instance |
335 XCTAssertEqual(msg.oneof.optionalInt32, Int32(0)) // Default | 335 XCTAssertEqual(msg.oneofMessage.optionalInt32, Int32(0)) // Default |
336 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.gpbUnsetOneOfCase) | 336 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.GPBUnsetOneOfCase) |
337 | 337 |
338 msg.oneofInt32 = 10 | 338 msg.oneofInt32 = 10 |
339 XCTAssertEqual(msg.oneofInt32, Int32(10)) | 339 XCTAssertEqual(msg.oneofInt32, Int32(10)) |
340 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.oneofInt32) | 340 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.OneofInt32) |
341 | 341 |
342 // Confirm Message.clear() handles the oneof correctly. | 342 // Confirm Message.clear() handles the oneof correctly. |
343 msg.clear() | 343 msg.clear() |
344 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default | 344 XCTAssertEqual(msg.oneofInt32, Int32(100)) // Default |
345 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.gpbUnsetOneOfCase) | 345 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.GPBUnsetOneOfCase) |
346 | 346 |
347 // Sets via the autocreated instance. | 347 // Sets via the autocreated instance. |
348 msg.oneof.optionalInt32 = 300 | 348 msg.oneofMessage.optionalInt32 = 300 |
349 XCTAssertTrue(msg.oneof !== autoCreated) // New instance | 349 XCTAssertTrue(msg.oneofMessage !== autoCreated) // New instance |
350 XCTAssertTrue(msg.oneof !== autoCreated2) // New instance | 350 XCTAssertTrue(msg.oneofMessage !== autoCreated2) // New instance |
351 XCTAssertEqual(msg.oneof.optionalInt32, Int32(300)) | 351 XCTAssertEqual(msg.oneofMessage.optionalInt32, Int32(300)) |
352 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.oneofMessage) | 352 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.OneofMessage) |
353 | 353 |
354 // Set message to nil clears the oneof. | 354 // Set message to nil clears the oneof. |
355 msg.oneof = nil | 355 msg.oneofMessage = nil |
356 XCTAssertEqual(msg.oneof.optionalInt32, Int32(0)) // Default | 356 XCTAssertEqual(msg.oneofMessage.optionalInt32, Int32(0)) // Default |
357 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.gpbUnsetOneOfCase) | 357 XCTAssertEqual(msg.oOneOfCase, Message2_O_OneOfCase.GPBUnsetOneOfCase) |
358 } | 358 } |
359 | 359 |
360 func testProto3OneOfSupport() { | 360 func testProto3OneOfSupport() { |
361 let msg = Message3() | 361 let msg = Message3() |
362 | 362 |
363 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.gpbUnsetOneOfCase) | 363 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.GPBUnsetOneOfCase) |
364 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default | 364 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default |
365 XCTAssertEqual(msg.oneofFloat, Float(0.0)) // Default | 365 XCTAssertEqual(msg.oneofFloat, Float(0.0)) // Default |
366 XCTAssertEqual(msg.oneofEnum, Message3_Enum.foo) // Default | 366 XCTAssertEqual(msg.oneofEnum, Message3_Enum.Foo) // Default |
367 let autoCreated = msg.oneof // Default create one. | 367 let autoCreated = msg.oneofMessage // Default create one. |
368 XCTAssertNotNil(autoCreated) | 368 XCTAssertNotNil(autoCreated) |
369 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.gpbUnsetOneOfCase) | 369 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.GPBUnsetOneOfCase) |
370 | 370 |
371 msg.oneofInt32 = 10 | 371 msg.oneofInt32 = 10 |
372 XCTAssertEqual(msg.oneofInt32, Int32(10)) | 372 XCTAssertEqual(msg.oneofInt32, Int32(10)) |
373 XCTAssertEqual(msg.oneofFloat, Float(0.0)) // Default | 373 XCTAssertEqual(msg.oneofFloat, Float(0.0)) // Default |
374 XCTAssertEqual(msg.oneofEnum, Message3_Enum.foo) // Default | 374 XCTAssertEqual(msg.oneofEnum, Message3_Enum.Foo) // Default |
375 XCTAssertTrue(msg.oneof === autoCreated) // Still the same | 375 XCTAssertTrue(msg.oneofMessage === autoCreated) // Still the same |
376 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.oneofInt32) | 376 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.OneofInt32) |
377 | 377 |
378 msg.oneofFloat = 20.0 | 378 msg.oneofFloat = 20.0 |
379 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default | 379 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default |
380 XCTAssertEqual(msg.oneofFloat, Float(20.0)) | 380 XCTAssertEqual(msg.oneofFloat, Float(20.0)) |
381 XCTAssertEqual(msg.oneofEnum, Message3_Enum.foo) // Default | 381 XCTAssertEqual(msg.oneofEnum, Message3_Enum.Foo) // Default |
382 XCTAssertTrue(msg.oneof === autoCreated) // Still the same | 382 XCTAssertTrue(msg.oneofMessage === autoCreated) // Still the same |
383 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.oneofFloat) | 383 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.OneofFloat) |
384 | 384 |
385 msg.oneofEnum = .bar | 385 msg.oneofEnum = .Bar |
386 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default | 386 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default |
387 XCTAssertEqual(msg.oneofFloat, Float(0.0)) // Default | 387 XCTAssertEqual(msg.oneofFloat, Float(0.0)) // Default |
388 XCTAssertEqual(msg.oneofEnum, Message3_Enum.bar) | 388 XCTAssertEqual(msg.oneofEnum, Message3_Enum.Bar) |
389 XCTAssertTrue(msg.oneof === autoCreated) // Still the same | 389 XCTAssertTrue(msg.oneofMessage === autoCreated) // Still the same |
390 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.oneofEnum) | 390 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.OneofEnum) |
391 | 391 |
392 // Sets via the autocreated instance. | 392 // Sets via the autocreated instance. |
393 msg.oneof.optionalInt32 = 200 | 393 msg.oneofMessage.optionalInt32 = 200 |
394 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default | 394 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default |
395 XCTAssertEqual(msg.oneofFloat, Float(0.0)) // Default | 395 XCTAssertEqual(msg.oneofFloat, Float(0.0)) // Default |
396 XCTAssertEqual(msg.oneofEnum, Message3_Enum.foo) // Default | 396 XCTAssertEqual(msg.oneofEnum, Message3_Enum.Foo) // Default |
397 XCTAssertTrue(msg.oneof === autoCreated) // Still the same | 397 XCTAssertTrue(msg.oneofMessage === autoCreated) // Still the same |
398 XCTAssertEqual(msg.oneof.optionalInt32, Int32(200)) | 398 XCTAssertEqual(msg.oneofMessage.optionalInt32, Int32(200)) |
399 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.oneofMessage) | 399 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.OneofMessage) |
400 | 400 |
401 // Clear the oneof. | 401 // Clear the oneof. |
402 Message3_ClearOOneOfCase(msg) | 402 Message3_ClearOOneOfCase(msg) |
403 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default | 403 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default |
404 XCTAssertEqual(msg.oneofFloat, Float(0.0)) // Default | 404 XCTAssertEqual(msg.oneofFloat, Float(0.0)) // Default |
405 XCTAssertEqual(msg.oneofEnum, Message3_Enum.foo) // Default | 405 XCTAssertEqual(msg.oneofEnum, Message3_Enum.Foo) // Default |
406 let autoCreated2 = msg.oneof // Default create one | 406 let autoCreated2 = msg.oneofMessage // Default create one |
407 XCTAssertNotNil(autoCreated2) | 407 XCTAssertNotNil(autoCreated2) |
408 XCTAssertTrue(autoCreated2 !== autoCreated) // New instance | 408 XCTAssertTrue(autoCreated2 !== autoCreated) // New instance |
409 XCTAssertEqual(msg.oneof.optionalInt32, Int32(0)) // Default | 409 XCTAssertEqual(msg.oneofMessage.optionalInt32, Int32(0)) // Default |
410 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.gpbUnsetOneOfCase) | 410 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.GPBUnsetOneOfCase) |
411 | 411 |
412 msg.oneofInt32 = 10 | 412 msg.oneofInt32 = 10 |
413 XCTAssertEqual(msg.oneofInt32, Int32(10)) | 413 XCTAssertEqual(msg.oneofInt32, Int32(10)) |
414 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.oneofInt32) | 414 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.OneofInt32) |
415 | 415 |
416 // Confirm Message.clear() handles the oneof correctly. | 416 // Confirm Message.clear() handles the oneof correctly. |
417 msg.clear() | 417 msg.clear() |
418 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default | 418 XCTAssertEqual(msg.oneofInt32, Int32(0)) // Default |
419 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.gpbUnsetOneOfCase) | 419 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.GPBUnsetOneOfCase) |
420 | 420 |
421 // Sets via the autocreated instance. | 421 // Sets via the autocreated instance. |
422 msg.oneof.optionalInt32 = 300 | 422 msg.oneofMessage.optionalInt32 = 300 |
423 XCTAssertTrue(msg.oneof !== autoCreated) // New instance | 423 XCTAssertTrue(msg.oneofMessage !== autoCreated) // New instance |
424 XCTAssertTrue(msg.oneof !== autoCreated2) // New instance | 424 XCTAssertTrue(msg.oneofMessage !== autoCreated2) // New instance |
425 XCTAssertEqual(msg.oneof.optionalInt32, Int32(300)) | 425 XCTAssertEqual(msg.oneofMessage.optionalInt32, Int32(300)) |
426 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.oneofMessage) | 426 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.OneofMessage) |
427 | 427 |
428 // Set message to nil clears the oneof. | 428 // Set message to nil clears the oneof. |
429 msg.oneof = nil | 429 msg.oneofMessage = nil |
430 XCTAssertEqual(msg.oneof.optionalInt32, Int32(0)) // Default | 430 XCTAssertEqual(msg.oneofMessage.optionalInt32, Int32(0)) // Default |
431 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.gpbUnsetOneOfCase) | 431 XCTAssertEqual(msg.oOneOfCase, Message3_O_OneOfCase.GPBUnsetOneOfCase) |
432 } | 432 } |
433 | 433 |
434 func testSerialization() { | 434 func testSerialization() { |
435 let msg = Message2() | 435 let msg = Message2() |
436 | 436 |
437 msg.optionalInt32 = 100 | 437 msg.optionalInt32 = 100 |
438 msg.optionalInt64 = 101 | 438 msg.optionalInt64 = 101 |
439 msg.optionalGroup.a = 102 | 439 msg.optionalGroup.a = 102 |
440 msg.repeatedStringArray.add("abc") | 440 msg.repeatedStringArray.addObject("abc") |
441 msg.repeatedStringArray.add("def") | 441 msg.repeatedStringArray.addObject("def") |
442 msg.mapInt32Int32.setInt32(200, forKey:300) | 442 msg.mapInt32Int32.setValue(200, forKey:300) |
443 msg.mapInt32Int32.setInt32(201, forKey:201) | 443 msg.mapInt32Int32.setValue(201, forKey:201) |
444 msg.mapStringString.setObject("foo", forKey:"bar" as NSString) | 444 msg.mapStringString.setObject("foo", forKey:"bar") |
445 msg.mapStringString.setObject("abc", forKey:"xyz" as NSString) | 445 msg.mapStringString.setObject("abc", forKey:"xyz") |
446 | 446 |
447 let data = msg.data() | 447 let data = msg.data() |
448 | 448 |
449 let msg2 = try! Message2(data: data!) | 449 let msg2 = Message2(data: data!, error:nil) |
450 XCTAssertTrue(msg2 !== msg) // New instance | 450 XCTAssertTrue(msg2 !== msg) // New instance |
451 XCTAssertEqual(msg.optionalInt32, Int32(100)) | 451 XCTAssertEqual(msg.optionalInt32, Int32(100)) |
452 XCTAssertEqual(msg.optionalInt64, Int64(101)) | 452 XCTAssertEqual(msg.optionalInt64, Int64(101)) |
453 XCTAssertEqual(msg.optionalGroup.a, Int32(102)) | 453 XCTAssertEqual(msg.optionalGroup.a, Int32(102)) |
454 XCTAssertEqual(msg.repeatedStringArray.count, Int(2)) | 454 XCTAssertEqual(msg.repeatedStringArray.count, Int(2)) |
455 XCTAssertEqual(msg.mapInt32Int32.count, UInt(2)) | 455 XCTAssertEqual(msg.mapInt32Int32.count, UInt(2)) |
456 XCTAssertEqual(msg.mapStringString.count, Int(2)) | 456 XCTAssertEqual(msg.mapStringString.count, Int(2)) |
457 XCTAssertEqual(msg2, msg) | 457 XCTAssertEqual(msg2, msg) |
458 } | 458 } |
459 | 459 |
460 } | 460 } |
OLD | NEW |