• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc.  All rights reserved.
3 //
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file or at
6 // https://developers.google.com/open-source/licenses/bsd
7 
8 package com.google.protobuf.kotlin
9 
10 import com.google.common.truth.Truth.assertThat
11 import com.google.protobuf.TestAllTypesLiteKt
12 import com.google.protobuf.TestAllTypesLiteKt.nestedMessage
13 import com.google.protobuf.TestUtilLite
14 import com.google.protobuf.TestUtilLite.toBytes
15 import com.google.protobuf.UnittestImportLite.ImportEnumLite
16 import com.google.protobuf.UnittestImportLite.ImportMessageLite
17 import com.google.protobuf.UnittestImportPublicLite.PublicImportMessageLite
18 import com.google.protobuf.UnittestLite
19 import com.google.protobuf.UnittestLite.ForeignEnumLite
20 import com.google.protobuf.UnittestLite.TestAllTypesLite
21 import com.google.protobuf.UnittestLite.TestAllTypesLite.NestedEnum
22 import com.google.protobuf.UnittestLite.TestEmptyMessageLite
23 import com.google.protobuf.UnittestLite.TestEmptyMessageWithExtensionsLite
24 import com.google.protobuf.copy
25 import com.google.protobuf.foreignMessageLite
26 import com.google.protobuf.optionalGroupExtensionLite
27 import com.google.protobuf.repeatedGroupExtensionLite
28 import com.google.protobuf.testAllExtensionsLite
29 import com.google.protobuf.testAllTypesLite
30 import com.google.protobuf.testEmptyMessageLite
31 import com.google.protobuf.testEmptyMessageWithExtensionsLite
32 import protobuf_unittest.MapLiteUnittest.MapEnumLite
33 import protobuf_unittest.MapLiteUnittest.TestMapLite
34 import protobuf_unittest.testMapLite
35 import `in`.com.google.protobuf.kotlin.generator.EvilNamesProto2
36 import `in`.com.google.protobuf.kotlin.generator.HardKeywordsAllTypesProto2
37 import `in`.com.google.protobuf.kotlin.generator.HardKeywordsAllTypesProto2Kt
38 import `in`.com.google.protobuf.kotlin.generator.Interface
39 import `in`.com.google.protobuf.kotlin.generator.evilNamesProto2
40 import `in`.com.google.protobuf.kotlin.generator.hardKeywordsAllTypesProto2
41 import `in`.com.google.protobuf.kotlin.generator.interface_
42 import org.junit.Test
43 import org.junit.runner.RunWith
44 import org.junit.runners.JUnit4
45 
46 @RunWith(JUnit4::class)
47 class Proto2LiteTest {
48   @Test
testSettersnull49   fun testSetters() {
50     assertThat(
51         testAllTypesLite {
52           optionalInt32 = 101
53           optionalInt64 = 102
54           optionalUint32 = 103
55           optionalUint64 = 104
56           optionalSint32 = 105
57           optionalSint64 = 106
58           optionalFixed32 = 107
59           optionalFixed64 = 108
60           optionalSfixed32 = 109
61           optionalSfixed64 = 110
62           optionalFloat = 111.0f
63           optionalDouble = 112.0
64           optionalBool = true
65           optionalString = "115"
66           optionalBytes = toBytes("116")
67           optionalGroup = TestAllTypesLiteKt.optionalGroup { a = 117 }
68           optionalNestedMessage = nestedMessage { bb = 118 }
69           optionalForeignMessage = foreignMessageLite { c = 119 }
70           optionalImportMessage = ImportMessageLite.newBuilder().setD(120).build()
71           optionalPublicImportMessage = PublicImportMessageLite.newBuilder().setE(126).build()
72           optionalLazyMessage = nestedMessage { bb = 127 }
73           optionalUnverifiedLazyMessage = nestedMessage { bb = 128 }
74           optionalNestedEnum = NestedEnum.BAZ
75           optionalForeignEnum = ForeignEnumLite.FOREIGN_LITE_BAZ
76           optionalImportEnum = ImportEnumLite.IMPORT_LITE_BAZ
77           optionalStringPiece = "124"
78           optionalCord = "125"
79           repeatedInt32.add(201)
80           repeatedInt64.add(202)
81           repeatedUint32.add(203)
82           repeatedUint64.add(204)
83           repeatedSint32.add(205)
84           repeatedSint64.add(206)
85           repeatedFixed32.add(207)
86           repeatedFixed64.add(208)
87           repeatedSfixed32.add(209)
88           repeatedSfixed64.add(210)
89           repeatedFloat.add(211f)
90           repeatedDouble.add(212.0)
91           repeatedBool.add(true)
92           repeatedString.add("215")
93           repeatedBytes.add(toBytes("216"))
94           repeatedGroup.add(TestAllTypesLiteKt.repeatedGroup { a = 217 })
95           repeatedNestedMessage.add(nestedMessage { bb = 218 })
96           repeatedForeignMessage.add(foreignMessageLite { c = 219 })
97           repeatedImportMessage.add(ImportMessageLite.newBuilder().setD(220).build())
98           repeatedLazyMessage.add(nestedMessage { bb = 227 })
99           repeatedNestedEnum.add(NestedEnum.BAR)
100           repeatedForeignEnum.add(ForeignEnumLite.FOREIGN_LITE_BAR)
101           repeatedImportEnum.add(ImportEnumLite.IMPORT_LITE_BAR)
102           repeatedStringPiece.add("224")
103           repeatedCord.add("225")
104           repeatedInt32 += 301
105           repeatedInt64 += 302
106           repeatedUint32 += 303
107           repeatedUint64 += 304
108           repeatedSint32 += 305
109           repeatedSint64 += 306
110           repeatedFixed32 += 307
111           repeatedFixed64 += 308
112           repeatedSfixed32 += 309
113           repeatedSfixed64 += 310
114           repeatedFloat += 311f
115           repeatedDouble += 312.0
116           repeatedBool += false
117           repeatedString += "315"
118           repeatedBytes += toBytes("316")
119           repeatedGroup += TestAllTypesLiteKt.repeatedGroup { a = 317 }
120           repeatedNestedMessage += nestedMessage { bb = 318 }
121           repeatedForeignMessage += foreignMessageLite { c = 319 }
122           repeatedImportMessage += ImportMessageLite.newBuilder().setD(320).build()
123           repeatedLazyMessage += TestAllTypesLiteKt.nestedMessage { bb = 327 }
124           repeatedNestedEnum += NestedEnum.BAZ
125           repeatedForeignEnum += ForeignEnumLite.FOREIGN_LITE_BAZ
126           repeatedImportEnum += ImportEnumLite.IMPORT_LITE_BAZ
127           repeatedStringPiece += "324"
128           repeatedCord += "325"
129           defaultInt32 = 401
130           defaultInt64 = 402
131           defaultUint32 = 403
132           defaultUint64 = 404
133           defaultSint32 = 405
134           defaultSint64 = 406
135           defaultFixed32 = 407
136           defaultFixed64 = 408
137           defaultSfixed32 = 409
138           defaultSfixed64 = 410
139           defaultFloat = 411f
140           defaultDouble = 412.0
141           defaultBool = false
142           defaultString = "415"
143           defaultBytes = toBytes("416")
144           defaultNestedEnum = NestedEnum.FOO
145           defaultForeignEnum = ForeignEnumLite.FOREIGN_LITE_FOO
146           defaultImportEnum = ImportEnumLite.IMPORT_LITE_FOO
147           defaultStringPiece = "424"
148           defaultCord = "425"
149           oneofUint32 = 601
150           oneofNestedMessage = TestAllTypesLiteKt.nestedMessage { bb = 602 }
151           oneofString = "603"
152           oneofBytes = toBytes("604")
153         }
154       )
155       .isEqualTo(TestUtilLite.getAllLiteSetBuilder().build())
156   }
157 
158   @Suppress("CheckReturnValue")
159   @Test
testGettersnull160   fun testGetters() {
161     testAllTypesLite {
162       optionalInt32 = 101
163       assertThat(optionalInt32).isEqualTo(101)
164       optionalString = "115"
165       assertThat(optionalString).isEqualTo("115")
166       optionalGroup = TestAllTypesLiteKt.optionalGroup { a = 117 }
167       assertThat(optionalGroup).isEqualTo(TestAllTypesLiteKt.optionalGroup { a = 117 })
168       optionalNestedMessage = TestAllTypesLiteKt.nestedMessage { bb = 118 }
169       assertThat(optionalNestedMessage).isEqualTo(TestAllTypesLiteKt.nestedMessage { bb = 118 })
170       optionalNestedEnum = NestedEnum.BAZ
171       assertThat(optionalNestedEnum).isEqualTo(NestedEnum.BAZ)
172       defaultInt32 = 401
173       assertThat(defaultInt32).isEqualTo(401)
174       oneofUint32 = 601
175       assertThat(oneofUint32).isEqualTo(601)
176     }
177   }
178 
179   @Suppress("CheckReturnValue")
180   @Test
testDefaultGettersnull181   fun testDefaultGetters() {
182     testAllTypesLite {
183       assertThat(defaultInt32).isEqualTo(41)
184       assertThat(defaultString).isEqualTo("hello")
185       assertThat(defaultNestedEnum).isEqualTo(NestedEnum.BAR)
186       assertThat(defaultStringPiece).isEqualTo("abc")
187     }
188   }
189 
190   @Suppress("CheckReturnValue")
191   @Test
testRepeatedGettersAndSettersnull192   fun testRepeatedGettersAndSetters() {
193     testAllTypesLite {
194       repeatedInt32.addAll(listOf(1, 2))
195       assertThat(repeatedInt32).isEqualTo(listOf(1, 2))
196       repeatedInt32 += listOf(3, 4)
197       assertThat(repeatedInt32).isEqualTo(listOf(1, 2, 3, 4))
198       repeatedInt32[0] = 5
199       assertThat(repeatedInt32).isEqualTo(listOf(5, 2, 3, 4))
200 
201       repeatedString.addAll(listOf("1", "2"))
202       assertThat(repeatedString).isEqualTo(listOf("1", "2"))
203       repeatedString += listOf("3", "4")
204       assertThat(repeatedString).isEqualTo(listOf("1", "2", "3", "4"))
205       repeatedString[0] = "5"
206       assertThat(repeatedString).isEqualTo(listOf("5", "2", "3", "4"))
207 
208       repeatedGroup.addAll(
209         listOf(
210           TestAllTypesLiteKt.repeatedGroup { a = 1 },
211           TestAllTypesLiteKt.repeatedGroup { a = 2 },
212         )
213       )
214       assertThat(repeatedGroup)
215         .isEqualTo(
216           listOf(
217             TestAllTypesLiteKt.repeatedGroup { a = 1 },
218             TestAllTypesLiteKt.repeatedGroup { a = 2 },
219           )
220         )
221       repeatedGroup +=
222         listOf(
223           TestAllTypesLiteKt.repeatedGroup { a = 3 },
224           TestAllTypesLiteKt.repeatedGroup { a = 4 },
225         )
226       assertThat(repeatedGroup)
227         .isEqualTo(
228           listOf(
229             TestAllTypesLiteKt.repeatedGroup { a = 1 },
230             TestAllTypesLiteKt.repeatedGroup { a = 2 },
231             TestAllTypesLiteKt.repeatedGroup { a = 3 },
232             TestAllTypesLiteKt.repeatedGroup { a = 4 },
233           )
234         )
235       repeatedGroup[0] = TestAllTypesLiteKt.repeatedGroup { a = 5 }
236       assertThat(repeatedGroup)
237         .isEqualTo(
238           listOf(
239             TestAllTypesLiteKt.repeatedGroup { a = 5 },
240             TestAllTypesLiteKt.repeatedGroup { a = 2 },
241             TestAllTypesLiteKt.repeatedGroup { a = 3 },
242             TestAllTypesLiteKt.repeatedGroup { a = 4 },
243           )
244         )
245 
246       repeatedNestedMessage.addAll(listOf(nestedMessage { bb = 1 }, nestedMessage { bb = 2 }))
247       assertThat(repeatedNestedMessage)
248         .isEqualTo(listOf(nestedMessage { bb = 1 }, nestedMessage { bb = 2 }))
249       repeatedNestedMessage += listOf(nestedMessage { bb = 3 }, nestedMessage { bb = 4 })
250       assertThat(repeatedNestedMessage)
251         .isEqualTo(
252           listOf(
253             nestedMessage { bb = 1 },
254             nestedMessage { bb = 2 },
255             nestedMessage { bb = 3 },
256             nestedMessage { bb = 4 },
257           )
258         )
259       repeatedNestedMessage[0] = nestedMessage { bb = 5 }
260       assertThat(repeatedNestedMessage)
261         .isEqualTo(
262           listOf(
263             nestedMessage { bb = 5 },
264             nestedMessage { bb = 2 },
265             nestedMessage { bb = 3 },
266             nestedMessage { bb = 4 },
267           )
268         )
269 
270       repeatedNestedEnum.addAll(listOf(NestedEnum.FOO, NestedEnum.BAR))
271       assertThat(repeatedNestedEnum).isEqualTo(listOf(NestedEnum.FOO, NestedEnum.BAR))
272       repeatedNestedEnum += listOf(NestedEnum.BAZ, NestedEnum.FOO)
273       assertThat(repeatedNestedEnum)
274         .isEqualTo(listOf(NestedEnum.FOO, NestedEnum.BAR, NestedEnum.BAZ, NestedEnum.FOO))
275       repeatedNestedEnum[0] = NestedEnum.BAR
276       assertThat(repeatedNestedEnum)
277         .isEqualTo(listOf(NestedEnum.BAR, NestedEnum.BAR, NestedEnum.BAZ, NestedEnum.FOO))
278     }
279   }
280 
281   @Suppress("CheckReturnValue")
282   @Test
testHazzersnull283   fun testHazzers() {
284     testAllTypesLite {
285       optionalInt32 = 101
286       assertThat(hasOptionalInt32()).isTrue()
287       assertThat(hasOptionalString()).isFalse()
288       optionalGroup = TestAllTypesLiteKt.optionalGroup { a = 117 }
289       assertThat(hasOptionalGroup()).isTrue()
290       assertThat(hasOptionalNestedMessage()).isFalse()
291       optionalNestedEnum = NestedEnum.BAZ
292       assertThat(hasOptionalNestedEnum()).isTrue()
293       assertThat(hasDefaultInt32()).isFalse()
294       oneofUint32 = 601
295       assertThat(hasOneofUint32()).isTrue()
296     }
297 
298     testAllTypesLite {
299       assertThat(hasOptionalInt32()).isFalse()
300       optionalString = "115"
301       assertThat(hasOptionalString()).isTrue()
302       assertThat(hasOptionalGroup()).isFalse()
303       optionalNestedMessage = TestAllTypesLiteKt.nestedMessage { bb = 118 }
304       assertThat(hasOptionalNestedMessage()).isTrue()
305       assertThat(hasOptionalNestedEnum()).isFalse()
306       defaultInt32 = 401
307       assertThat(hasDefaultInt32()).isTrue()
308       assertThat(hasOneofUint32()).isFalse()
309     }
310   }
311 
312   @Suppress("CheckReturnValue")
313   @Test
testClearsnull314   fun testClears() {
315     testAllTypesLite {
316       optionalInt32 = 101
317       clearOptionalInt32()
318       assertThat(hasOptionalInt32()).isFalse()
319 
320       optionalString = "115"
321       clearOptionalString()
322       assertThat(hasOptionalString()).isFalse()
323 
324       optionalGroup = TestAllTypesLiteKt.optionalGroup { a = 117 }
325       clearOptionalGroup()
326       assertThat(hasOptionalGroup()).isFalse()
327 
328       optionalNestedMessage = TestAllTypesLiteKt.nestedMessage { bb = 118 }
329       clearOptionalNestedMessage()
330       assertThat(hasOptionalNestedMessage()).isFalse()
331 
332       optionalNestedEnum = NestedEnum.BAZ
333       clearOptionalNestedEnum()
334       assertThat(hasOptionalNestedEnum()).isFalse()
335 
336       defaultInt32 = 401
337       clearDefaultInt32()
338       assertThat(hasDefaultInt32()).isFalse()
339 
340       oneofUint32 = 601
341       clearOneofUint32()
342       assertThat(hasOneofUint32()).isFalse()
343     }
344   }
345 
346   @Test
testCopynull347   fun testCopy() {
348     val message = testAllTypesLite {
349       optionalInt32 = 101
350       optionalString = "115"
351     }
352     val modifiedMessage = message.copy { optionalInt32 = 201 }
353 
354     assertThat(message)
355       .isEqualTo(
356         TestAllTypesLite.newBuilder().setOptionalInt32(101).setOptionalString("115").build()
357       )
358     assertThat(modifiedMessage)
359       .isEqualTo(
360         TestAllTypesLite.newBuilder().setOptionalInt32(201).setOptionalString("115").build()
361       )
362   }
363 
364   @Test
testOneofnull365   fun testOneof() {
366     val message = testAllTypesLite {
367       oneofString = "foo"
368       assertThat(oneofFieldCase).isEqualTo(TestAllTypesLite.OneofFieldCase.ONEOF_STRING)
369       assertThat(oneofString).isEqualTo("foo")
370       clearOneofField()
371       assertThat(hasOneofUint32()).isFalse()
372       assertThat(oneofFieldCase).isEqualTo(TestAllTypesLite.OneofFieldCase.ONEOFFIELD_NOT_SET)
373       oneofUint32 = 5
374     }
375 
376     assertThat(message.getOneofFieldCase()).isEqualTo(TestAllTypesLite.OneofFieldCase.ONEOF_UINT32)
377     assertThat(message.getOneofUint32()).isEqualTo(5)
378   }
379 
380   @Test
testExtensionsSetnull381   fun testExtensionsSet() {
382     assertThat(
383         testAllExtensionsLite {
384           setExtension(UnittestLite.optionalInt32ExtensionLite, 101)
385           setExtension(UnittestLite.optionalInt64ExtensionLite, 102L)
386           setExtension(UnittestLite.optionalUint32ExtensionLite, 103)
387           setExtension(UnittestLite.optionalUint64ExtensionLite, 104L)
388           setExtension(UnittestLite.optionalSint32ExtensionLite, 105)
389           setExtension(UnittestLite.optionalSint64ExtensionLite, 106L)
390           setExtension(UnittestLite.optionalFixed32ExtensionLite, 107)
391           setExtension(UnittestLite.optionalFixed64ExtensionLite, 108L)
392           setExtension(UnittestLite.optionalSfixed32ExtensionLite, 109)
393           setExtension(UnittestLite.optionalSfixed64ExtensionLite, 110L)
394           setExtension(UnittestLite.optionalFloatExtensionLite, 111F)
395           setExtension(UnittestLite.optionalDoubleExtensionLite, 112.0)
396           setExtension(UnittestLite.optionalBoolExtensionLite, true)
397           setExtension(UnittestLite.optionalStringExtensionLite, "115")
398           setExtension(UnittestLite.optionalBytesExtensionLite, toBytes("116"))
399           setExtension(
400             UnittestLite.optionalGroupExtensionLite,
401             optionalGroupExtensionLite { a = 117 },
402           )
403           setExtension(
404             UnittestLite.optionalNestedMessageExtensionLite,
405             TestAllTypesLiteKt.nestedMessage { bb = 118 },
406           )
407           setExtension(
408             UnittestLite.optionalForeignMessageExtensionLite,
409             foreignMessageLite { c = 119 },
410           )
411           setExtension(
412             UnittestLite.optionalImportMessageExtensionLite,
413             ImportMessageLite.newBuilder().setD(120).build(),
414           )
415           setExtension(
416             UnittestLite.optionalPublicImportMessageExtensionLite,
417             PublicImportMessageLite.newBuilder().setE(126).build(),
418           )
419           setExtension(
420             UnittestLite.optionalLazyMessageExtensionLite,
421             TestAllTypesLiteKt.nestedMessage { bb = 127 },
422           )
423           setExtension(
424             UnittestLite.optionalUnverifiedLazyMessageExtensionLite,
425             TestAllTypesLiteKt.nestedMessage { bb = 128 },
426           )
427           setExtension(UnittestLite.optionalNestedEnumExtensionLite, NestedEnum.BAZ)
428           setExtension(
429             UnittestLite.optionalForeignEnumExtensionLite,
430             ForeignEnumLite.FOREIGN_LITE_BAZ,
431           )
432           setExtension(UnittestLite.optionalImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ)
433           setExtension(UnittestLite.optionalStringPieceExtensionLite, "124")
434           setExtension(UnittestLite.optionalCordExtensionLite, "125")
435           this[UnittestLite.repeatedInt32ExtensionLite].add(201)
436           this[UnittestLite.repeatedInt64ExtensionLite].add(202L)
437           this[UnittestLite.repeatedUint32ExtensionLite].add(203)
438           this[UnittestLite.repeatedUint64ExtensionLite].add(204L)
439           this[UnittestLite.repeatedSint32ExtensionLite].add(205)
440           this[UnittestLite.repeatedSint64ExtensionLite].add(206L)
441           this[UnittestLite.repeatedFixed32ExtensionLite].add(207)
442           this[UnittestLite.repeatedFixed64ExtensionLite].add(208L)
443           this[UnittestLite.repeatedSfixed32ExtensionLite].add(209)
444           this[UnittestLite.repeatedSfixed64ExtensionLite].add(210L)
445           this[UnittestLite.repeatedFloatExtensionLite].add(211F)
446           this[UnittestLite.repeatedDoubleExtensionLite].add(212.0)
447           this[UnittestLite.repeatedBoolExtensionLite].add(true)
448           this[UnittestLite.repeatedStringExtensionLite].add("215")
449           this[UnittestLite.repeatedBytesExtensionLite].add(toBytes("216"))
450           this[UnittestLite.repeatedGroupExtensionLite].add(repeatedGroupExtensionLite { a = 217 })
451           this[UnittestLite.repeatedNestedMessageExtensionLite].add(
452             TestAllTypesLiteKt.nestedMessage { bb = 218 }
453           )
454           this[UnittestLite.repeatedForeignMessageExtensionLite].add(foreignMessageLite { c = 219 })
455           this[UnittestLite.repeatedImportMessageExtensionLite].add(
456             ImportMessageLite.newBuilder().setD(220).build()
457           )
458           this[UnittestLite.repeatedLazyMessageExtensionLite].add(
459             TestAllTypesLiteKt.nestedMessage { bb = 227 }
460           )
461           this[UnittestLite.repeatedNestedEnumExtensionLite].add(NestedEnum.BAR)
462           this[UnittestLite.repeatedForeignEnumExtensionLite].add(ForeignEnumLite.FOREIGN_LITE_BAR)
463           this[UnittestLite.repeatedImportEnumExtensionLite].add(ImportEnumLite.IMPORT_LITE_BAR)
464           this[UnittestLite.repeatedStringPieceExtensionLite].add("224")
465           this[UnittestLite.repeatedCordExtensionLite].add("225")
466           this[UnittestLite.repeatedInt32ExtensionLite] += 301
467           this[UnittestLite.repeatedInt64ExtensionLite] += 302L
468           this[UnittestLite.repeatedUint32ExtensionLite] += 303
469           this[UnittestLite.repeatedUint64ExtensionLite] += 304L
470           this[UnittestLite.repeatedSint32ExtensionLite] += 305
471           this[UnittestLite.repeatedSint64ExtensionLite] += 306L
472           this[UnittestLite.repeatedFixed32ExtensionLite] += 307
473           this[UnittestLite.repeatedFixed64ExtensionLite] += 308L
474           this[UnittestLite.repeatedSfixed32ExtensionLite] += 309
475           this[UnittestLite.repeatedSfixed64ExtensionLite] += 310L
476           this[UnittestLite.repeatedFloatExtensionLite] += 311F
477           this[UnittestLite.repeatedDoubleExtensionLite] += 312.0
478           this[UnittestLite.repeatedBoolExtensionLite] += false
479           this[UnittestLite.repeatedStringExtensionLite] += "315"
480           this[UnittestLite.repeatedBytesExtensionLite] += toBytes("316")
481           this[UnittestLite.repeatedGroupExtensionLite] += repeatedGroupExtensionLite { a = 317 }
482           this[UnittestLite.repeatedNestedMessageExtensionLite] +=
483             TestAllTypesLiteKt.nestedMessage { bb = 318 }
484           this[UnittestLite.repeatedForeignMessageExtensionLite] += foreignMessageLite { c = 319 }
485           this[UnittestLite.repeatedImportMessageExtensionLite] +=
486             ImportMessageLite.newBuilder().setD(320).build()
487           this[UnittestLite.repeatedLazyMessageExtensionLite] +=
488             TestAllTypesLiteKt.nestedMessage { bb = 327 }
489           this[UnittestLite.repeatedNestedEnumExtensionLite] += NestedEnum.BAZ
490           this[UnittestLite.repeatedForeignEnumExtensionLite] += ForeignEnumLite.FOREIGN_LITE_BAZ
491           this[UnittestLite.repeatedImportEnumExtensionLite] += ImportEnumLite.IMPORT_LITE_BAZ
492           this[UnittestLite.repeatedStringPieceExtensionLite] += "324"
493           this[UnittestLite.repeatedCordExtensionLite] += "325"
494           this[UnittestLite.defaultInt32ExtensionLite] = 401
495           this[UnittestLite.defaultInt64ExtensionLite] = 402L
496           this[UnittestLite.defaultUint32ExtensionLite] = 403
497           this[UnittestLite.defaultUint64ExtensionLite] = 404L
498           this[UnittestLite.defaultSint32ExtensionLite] = 405
499           this[UnittestLite.defaultSint64ExtensionLite] = 406L
500           this[UnittestLite.defaultFixed32ExtensionLite] = 407
501           this[UnittestLite.defaultFixed64ExtensionLite] = 408L
502           this[UnittestLite.defaultSfixed32ExtensionLite] = 409
503           this[UnittestLite.defaultSfixed64ExtensionLite] = 410L
504           this[UnittestLite.defaultFloatExtensionLite] = 411F
505           this[UnittestLite.defaultDoubleExtensionLite] = 412.0
506           this[UnittestLite.defaultBoolExtensionLite] = false
507           this[UnittestLite.defaultStringExtensionLite] = "415"
508           this[UnittestLite.defaultBytesExtensionLite] = toBytes("416")
509           this[UnittestLite.defaultNestedEnumExtensionLite] = NestedEnum.FOO
510           this[UnittestLite.defaultForeignEnumExtensionLite] = ForeignEnumLite.FOREIGN_LITE_FOO
511           this[UnittestLite.defaultImportEnumExtensionLite] = ImportEnumLite.IMPORT_LITE_FOO
512           this[UnittestLite.defaultStringPieceExtensionLite] = "424"
513           this[UnittestLite.defaultCordExtensionLite] = "425"
514           this[UnittestLite.oneofUint32ExtensionLite] = 601
515           this[UnittestLite.oneofNestedMessageExtensionLite] =
516             TestAllTypesLiteKt.nestedMessage { bb = 602 }
517           this[UnittestLite.oneofStringExtensionLite] = "603"
518           this[UnittestLite.oneofBytesExtensionLite] = toBytes("604")
519         }
520       )
521       .isEqualTo(TestUtilLite.getAllLiteExtensionsSet())
522   }
523 
524   @Suppress("CheckReturnValue")
525   @Test
testExtensionGettersnull526   fun testExtensionGetters() {
527     testAllExtensionsLite {
528       this[UnittestLite.optionalInt32ExtensionLite] = 101
529       assertThat(this[UnittestLite.optionalInt32ExtensionLite]).isEqualTo(101)
530       this[UnittestLite.optionalStringExtensionLite] = "115"
531       assertThat(this[UnittestLite.optionalStringExtensionLite]).isEqualTo("115")
532       this[UnittestLite.optionalGroupExtensionLite] = optionalGroupExtensionLite { a = 117 }
533       assertThat(this[UnittestLite.optionalGroupExtensionLite])
534         .isEqualTo(optionalGroupExtensionLite { a = 117 })
535       this[UnittestLite.optionalNestedMessageExtensionLite] =
536         TestAllTypesLiteKt.nestedMessage { bb = 118 }
537       assertThat(this[UnittestLite.optionalNestedMessageExtensionLite])
538         .isEqualTo(TestAllTypesLiteKt.nestedMessage { bb = 118 })
539       this[UnittestLite.optionalNestedEnumExtensionLite] = NestedEnum.BAZ
540       assertThat(this[UnittestLite.optionalNestedEnumExtensionLite]).isEqualTo(NestedEnum.BAZ)
541       this[UnittestLite.defaultInt32ExtensionLite] = 401
542       assertThat(this[UnittestLite.defaultInt32ExtensionLite]).isEqualTo(401)
543       this[UnittestLite.oneofUint32ExtensionLite] = 601
544       assertThat(this[UnittestLite.oneofUint32ExtensionLite]).isEqualTo(601)
545     }
546   }
547 
548   @Suppress("CheckReturnValue")
549   @Test
testRepeatedExtensionGettersAndSettersnull550   fun testRepeatedExtensionGettersAndSetters() {
551     testAllExtensionsLite {
552       this[UnittestLite.repeatedInt32ExtensionLite].addAll(listOf(1, 2))
553       assertThat(this[UnittestLite.repeatedInt32ExtensionLite]).isEqualTo(listOf(1, 2))
554       this[UnittestLite.repeatedInt32ExtensionLite] += listOf(3, 4)
555       assertThat(this[UnittestLite.repeatedInt32ExtensionLite]).isEqualTo(listOf(1, 2, 3, 4))
556       this[UnittestLite.repeatedInt32ExtensionLite][0] = 5
557       assertThat(this[UnittestLite.repeatedInt32ExtensionLite]).isEqualTo(listOf(5, 2, 3, 4))
558 
559       this[UnittestLite.repeatedStringExtensionLite].addAll(listOf("1", "2"))
560       assertThat(this[UnittestLite.repeatedStringExtensionLite]).isEqualTo(listOf("1", "2"))
561       this[UnittestLite.repeatedStringExtensionLite] += listOf("3", "4")
562       assertThat(this[UnittestLite.repeatedStringExtensionLite])
563         .isEqualTo(listOf("1", "2", "3", "4"))
564       this[UnittestLite.repeatedStringExtensionLite][0] = "5"
565       assertThat(this[UnittestLite.repeatedStringExtensionLite])
566         .isEqualTo(listOf("5", "2", "3", "4"))
567 
568       this[UnittestLite.repeatedGroupExtensionLite].addAll(
569         listOf(repeatedGroupExtensionLite { a = 1 }, repeatedGroupExtensionLite { a = 2 })
570       )
571       assertThat(this[UnittestLite.repeatedGroupExtensionLite])
572         .isEqualTo(
573           listOf(repeatedGroupExtensionLite { a = 1 }, repeatedGroupExtensionLite { a = 2 })
574         )
575       this[UnittestLite.repeatedGroupExtensionLite] +=
576         listOf(repeatedGroupExtensionLite { a = 3 }, repeatedGroupExtensionLite { a = 4 })
577       assertThat(this[UnittestLite.repeatedGroupExtensionLite])
578         .isEqualTo(
579           listOf(
580             repeatedGroupExtensionLite { a = 1 },
581             repeatedGroupExtensionLite { a = 2 },
582             repeatedGroupExtensionLite { a = 3 },
583             repeatedGroupExtensionLite { a = 4 },
584           )
585         )
586       this[UnittestLite.repeatedGroupExtensionLite][0] = repeatedGroupExtensionLite { a = 5 }
587       assertThat(this[UnittestLite.repeatedGroupExtensionLite])
588         .isEqualTo(
589           listOf(
590             repeatedGroupExtensionLite { a = 5 },
591             repeatedGroupExtensionLite { a = 2 },
592             repeatedGroupExtensionLite { a = 3 },
593             repeatedGroupExtensionLite { a = 4 },
594           )
595         )
596 
597       this[UnittestLite.repeatedNestedMessageExtensionLite].addAll(
598         listOf(nestedMessage { bb = 1 }, nestedMessage { bb = 2 })
599       )
600       assertThat(this[UnittestLite.repeatedNestedMessageExtensionLite])
601         .isEqualTo(listOf(nestedMessage { bb = 1 }, nestedMessage { bb = 2 }))
602       this[UnittestLite.repeatedNestedMessageExtensionLite] +=
603         listOf(nestedMessage { bb = 3 }, nestedMessage { bb = 4 })
604       assertThat(this[UnittestLite.repeatedNestedMessageExtensionLite])
605         .isEqualTo(
606           listOf(
607             nestedMessage { bb = 1 },
608             nestedMessage { bb = 2 },
609             nestedMessage { bb = 3 },
610             nestedMessage { bb = 4 },
611           )
612         )
613       this[UnittestLite.repeatedNestedMessageExtensionLite][0] = nestedMessage { bb = 5 }
614       assertThat(this[UnittestLite.repeatedNestedMessageExtensionLite])
615         .isEqualTo(
616           listOf(
617             nestedMessage { bb = 5 },
618             nestedMessage { bb = 2 },
619             nestedMessage { bb = 3 },
620             nestedMessage { bb = 4 },
621           )
622         )
623 
624       this[UnittestLite.repeatedNestedEnumExtensionLite].addAll(
625         listOf(NestedEnum.FOO, NestedEnum.BAR)
626       )
627       assertThat(this[UnittestLite.repeatedNestedEnumExtensionLite])
628         .isEqualTo(listOf(NestedEnum.FOO, NestedEnum.BAR))
629       this[UnittestLite.repeatedNestedEnumExtensionLite] += listOf(NestedEnum.BAZ, NestedEnum.FOO)
630       assertThat(this[UnittestLite.repeatedNestedEnumExtensionLite])
631         .isEqualTo(listOf(NestedEnum.FOO, NestedEnum.BAR, NestedEnum.BAZ, NestedEnum.FOO))
632       this[UnittestLite.repeatedNestedEnumExtensionLite][0] = NestedEnum.BAR
633       assertThat(this[UnittestLite.repeatedNestedEnumExtensionLite])
634         .isEqualTo(listOf(NestedEnum.BAR, NestedEnum.BAR, NestedEnum.BAZ, NestedEnum.FOO))
635     }
636   }
637 
638   @Suppress("CheckReturnValue")
639   @Test
testExtensionContainsnull640   fun testExtensionContains() {
641     testAllExtensionsLite {
642       this[UnittestLite.optionalInt32ExtensionLite] = 101
643       assertThat(contains(UnittestLite.optionalInt32ExtensionLite)).isTrue()
644       assertThat(contains(UnittestLite.optionalStringExtensionLite)).isFalse()
645       this[UnittestLite.optionalGroupExtensionLite] = optionalGroupExtensionLite { a = 117 }
646       assertThat(contains(UnittestLite.optionalGroupExtensionLite)).isTrue()
647       assertThat(contains(UnittestLite.optionalNestedMessageExtensionLite)).isFalse()
648       this[UnittestLite.optionalNestedEnumExtensionLite] = NestedEnum.BAZ
649       assertThat(contains(UnittestLite.optionalNestedEnumExtensionLite)).isTrue()
650       assertThat(contains(UnittestLite.defaultInt32ExtensionLite)).isFalse()
651       this[UnittestLite.oneofUint32ExtensionLite] = 601
652       assertThat(contains(UnittestLite.oneofUint32ExtensionLite)).isTrue()
653     }
654 
655     testAllExtensionsLite {
656       assertThat(contains(UnittestLite.optionalInt32ExtensionLite)).isFalse()
657       this[UnittestLite.optionalStringExtensionLite] = "115"
658       assertThat(contains(UnittestLite.optionalStringExtensionLite)).isTrue()
659       assertThat(contains(UnittestLite.optionalGroupExtensionLite)).isFalse()
660       this[UnittestLite.optionalNestedMessageExtensionLite] =
661         TestAllTypesLiteKt.nestedMessage { bb = 118 }
662       assertThat(contains(UnittestLite.optionalNestedMessageExtensionLite)).isTrue()
663       assertThat(contains(UnittestLite.optionalNestedEnumExtensionLite)).isFalse()
664       this[UnittestLite.defaultInt32ExtensionLite] = 401
665       assertThat(contains(UnittestLite.defaultInt32ExtensionLite)).isTrue()
666       assertThat(contains(UnittestLite.oneofUint32ExtensionLite)).isFalse()
667     }
668   }
669 
670   @Suppress("CheckReturnValue")
671   @Test
testExtensionClearsnull672   fun testExtensionClears() {
673     testAllExtensionsLite {
674       this[UnittestLite.optionalInt32ExtensionLite] = 101
675       clear(UnittestLite.optionalInt32ExtensionLite)
676       assertThat(contains(UnittestLite.optionalInt32ExtensionLite)).isFalse()
677 
678       this[UnittestLite.optionalStringExtensionLite] = "115"
679       clear(UnittestLite.optionalStringExtensionLite)
680       assertThat(contains(UnittestLite.optionalStringExtensionLite)).isFalse()
681 
682       this[UnittestLite.optionalGroupExtensionLite] = optionalGroupExtensionLite { a = 117 }
683       clear(UnittestLite.optionalGroupExtensionLite)
684       assertThat(contains(UnittestLite.optionalGroupExtensionLite)).isFalse()
685 
686       this[UnittestLite.optionalNestedMessageExtensionLite] =
687         TestAllTypesLiteKt.nestedMessage { bb = 118 }
688       clear(UnittestLite.optionalNestedMessageExtensionLite)
689       assertThat(contains(UnittestLite.optionalNestedMessageExtensionLite)).isFalse()
690 
691       this[UnittestLite.optionalNestedEnumExtensionLite] = NestedEnum.BAZ
692       clear(UnittestLite.optionalNestedEnumExtensionLite)
693       assertThat(contains(UnittestLite.optionalNestedEnumExtensionLite)).isFalse()
694 
695       this[UnittestLite.defaultInt32ExtensionLite] = 401
696       clear(UnittestLite.defaultInt32ExtensionLite)
697       assertThat(contains(UnittestLite.defaultInt32ExtensionLite)).isFalse()
698 
699       this[UnittestLite.oneofUint32ExtensionLite] = 601
700       clear(UnittestLite.oneofUint32ExtensionLite)
701       assertThat(contains(UnittestLite.oneofUint32ExtensionLite)).isFalse()
702     }
703   }
704 
705   @Test
testEmptyMessagesnull706   fun testEmptyMessages() {
707     assertThat(testEmptyMessageLite {}).isEqualTo(TestEmptyMessageLite.newBuilder().build())
708 
709     assertThat(testEmptyMessageWithExtensionsLite {})
710       .isEqualTo(TestEmptyMessageWithExtensionsLite.newBuilder().build())
711   }
712 
713   @Test
testMapSettersnull714   fun testMapSetters() {
715     assertThat(
716         testMapLite {
717           mapInt32Int32[1] = 2
718           mapInt64Int64[1L] = 2L
719           mapUint32Uint32[1] = 2
720           mapUint64Uint64[1L] = 2L
721           mapSint32Sint32[1] = 2
722           mapSint64Sint64[1L] = 2L
723           mapFixed32Fixed32[1] = 2
724           mapFixed64Fixed64[1L] = 2L
725           mapSfixed32Sfixed32[1] = 2
726           mapSfixed64Sfixed64[1L] = 2L
727           mapInt32Float[1] = 2F
728           mapInt32Double[1] = 2.0
729           mapBoolBool[true] = true
730           mapStringString["1"] = "2"
731           mapInt32Bytes[1] = toBytes("2")
732           mapInt32Enum[1] = MapEnumLite.MAP_ENUM_FOO_LITE
733           mapInt32ForeignMessage[1] = foreignMessageLite { c = 1 }
734         }
735       )
736       .isEqualTo(
737         TestMapLite.newBuilder()
738           .putMapInt32Int32(1, 2)
739           .putMapInt64Int64(1L, 2L)
740           .putMapUint32Uint32(1, 2)
741           .putMapUint64Uint64(1L, 2L)
742           .putMapSint32Sint32(1, 2)
743           .putMapSint64Sint64(1L, 2L)
744           .putMapFixed32Fixed32(1, 2)
745           .putMapFixed64Fixed64(1L, 2L)
746           .putMapSfixed32Sfixed32(1, 2)
747           .putMapSfixed64Sfixed64(1L, 2L)
748           .putMapInt32Float(1, 2F)
749           .putMapInt32Double(1, 2.0)
750           .putMapBoolBool(true, true)
751           .putMapStringString("1", "2")
752           .putMapInt32Bytes(1, toBytes("2"))
753           .putMapInt32Enum(1, MapEnumLite.MAP_ENUM_FOO_LITE)
754           .putMapInt32ForeignMessage(1, foreignMessageLite { c = 1 })
755           .build()
756       )
757   }
758 
759   @Suppress("CheckReturnValue")
760   @Test
testMapGettersAndSettersnull761   fun testMapGettersAndSetters() {
762     testMapLite {
763       mapInt32Int32.put(1, 2)
764       assertThat(mapInt32Int32).isEqualTo(mapOf(1 to 2))
765       mapInt32Int32[3] = 4
766       assertThat(mapInt32Int32).isEqualTo(mapOf(1 to 2, 3 to 4))
767       mapInt32Int32.putAll(mapOf(5 to 6, 7 to 8))
768       assertThat(mapInt32Int32).isEqualTo(mapOf(1 to 2, 3 to 4, 5 to 6, 7 to 8))
769 
770       mapStringString.put("1", "2")
771       assertThat(mapStringString).isEqualTo(mapOf("1" to "2"))
772       mapStringString["3"] = "4"
773       assertThat(mapStringString).isEqualTo(mapOf("1" to "2", "3" to "4"))
774       mapStringString.putAll(mapOf("5" to "6", "7" to "8"))
775       assertThat(mapStringString).isEqualTo(mapOf("1" to "2", "3" to "4", "5" to "6", "7" to "8"))
776 
777       mapInt32Enum.put(1, MapEnumLite.MAP_ENUM_FOO_LITE)
778       assertThat(mapInt32Enum).isEqualTo(mapOf(1 to MapEnumLite.MAP_ENUM_FOO_LITE))
779       mapInt32Enum[2] = MapEnumLite.MAP_ENUM_BAR_LITE
780       assertThat(mapInt32Enum)
781         .isEqualTo(mapOf(1 to MapEnumLite.MAP_ENUM_FOO_LITE, 2 to MapEnumLite.MAP_ENUM_BAR_LITE))
782       mapInt32Enum.putAll(
783         mapOf(3 to MapEnumLite.MAP_ENUM_BAZ_LITE, 4 to MapEnumLite.MAP_ENUM_FOO_LITE)
784       )
785       assertThat(mapInt32Enum)
786         .isEqualTo(
787           mapOf(
788             1 to MapEnumLite.MAP_ENUM_FOO_LITE,
789             2 to MapEnumLite.MAP_ENUM_BAR_LITE,
790             3 to MapEnumLite.MAP_ENUM_BAZ_LITE,
791             4 to MapEnumLite.MAP_ENUM_FOO_LITE,
792           )
793         )
794 
795       mapInt32ForeignMessage.put(1, foreignMessageLite { c = 1 })
796       assertThat(mapInt32ForeignMessage).isEqualTo(mapOf(1 to foreignMessageLite { c = 1 }))
797       mapInt32ForeignMessage[2] = foreignMessageLite { c = 2 }
798       assertThat(mapInt32ForeignMessage)
799         .isEqualTo(mapOf(1 to foreignMessageLite { c = 1 }, 2 to foreignMessageLite { c = 2 }))
800       mapInt32ForeignMessage.putAll(
801         mapOf(3 to foreignMessageLite { c = 3 }, 4 to foreignMessageLite { c = 4 })
802       )
803       assertThat(mapInt32ForeignMessage)
804         .isEqualTo(
805           mapOf(
806             1 to foreignMessageLite { c = 1 },
807             2 to foreignMessageLite { c = 2 },
808             3 to foreignMessageLite { c = 3 },
809             4 to foreignMessageLite { c = 4 },
810           )
811         )
812     }
813   }
814 
815   @Suppress("CheckReturnValue")
816   @Test
testMapRemovenull817   fun testMapRemove() {
818     testMapLite {
819       mapInt32Int32.putAll(mapOf(1 to 2, 3 to 4))
820       mapInt32Int32.remove(1)
821       assertThat(mapInt32Int32).isEqualTo(mapOf(3 to 4))
822 
823       mapStringString.putAll(mapOf("1" to "2", "3" to "4"))
824       mapStringString.remove("1")
825       assertThat(mapStringString).isEqualTo(mapOf("3" to "4"))
826 
827       mapInt32Enum.putAll(
828         mapOf(1 to MapEnumLite.MAP_ENUM_FOO_LITE, 2 to MapEnumLite.MAP_ENUM_BAR_LITE)
829       )
830       mapInt32Enum.remove(1)
831       assertThat(mapInt32Enum).isEqualTo(mapOf(2 to MapEnumLite.MAP_ENUM_BAR_LITE))
832 
833       mapInt32ForeignMessage.putAll(
834         mapOf(1 to foreignMessageLite { c = 1 }, 2 to foreignMessageLite { c = 2 })
835       )
836       mapInt32ForeignMessage.remove(1)
837       assertThat(mapInt32ForeignMessage).isEqualTo(mapOf(2 to foreignMessageLite { c = 2 }))
838     }
839   }
840 
841   @Suppress("CheckReturnValue")
842   @Test
testMapClearnull843   fun testMapClear() {
844     testMapLite {
845       mapInt32Int32.putAll(mapOf(1 to 2, 3 to 4))
846       mapInt32Int32.clear()
847       assertThat(mapInt32Int32.isEmpty()).isTrue()
848 
849       mapStringString.putAll(mapOf("1" to "2", "3" to "4"))
850       mapStringString.clear()
851       assertThat(mapStringString.isEmpty()).isTrue()
852 
853       mapInt32Enum.putAll(
854         mapOf(1 to MapEnumLite.MAP_ENUM_FOO_LITE, 2 to MapEnumLite.MAP_ENUM_BAR_LITE)
855       )
856       mapInt32Enum.clear()
857       assertThat(mapInt32Enum.isEmpty()).isTrue()
858 
859       mapInt32ForeignMessage.putAll(
860         mapOf(1 to foreignMessageLite { c = 1 }, 2 to foreignMessageLite { c = 2 })
861       )
862       mapInt32ForeignMessage.clear()
863       assertThat(mapInt32ForeignMessage.isEmpty()).isTrue()
864     }
865   }
866 
867   @Test
testEvilNamesnull868   fun testEvilNames() {
869     assertThat(
870         evilNamesProto2 {
871           initialized = true
872           hasFoo = true
873           bar = "foo"
874           isInitialized = true
875           fooBar = "foo"
876           aLLCAPS += "foo"
877           aLLCAPSMAP[1] = true
878           hasUnderbarPrecedingNumeric1Foo = true
879           hasUnderbarPrecedingNumeric42Bar = true
880           hasUnderbarPrecedingNumeric123Foo42BarBaz = true
881           extension += "foo"
882           class_ += 1
883           int = 1.0
884           long = true
885           boolean = 1L
886           sealed = "foo"
887           interface_ = 1F
888           object_ = "foo"
889           cachedSize_ = "foo"
890           serializedSize_ = true
891           by = "foo"
892         }
893       )
894       .isEqualTo(
895         EvilNamesProto2.newBuilder()
896           .setInitialized(true)
897           .setHasFoo(true)
898           .setBar("foo")
899           .setIsInitialized(true)
900           .setFooBar("foo")
901           .addALLCAPS("foo")
902           .putALLCAPSMAP(1, true)
903           .setHasUnderbarPrecedingNumeric1Foo(true)
904           .setHasUnderbarPrecedingNumeric42Bar(true)
905           .setHasUnderbarPrecedingNumeric123Foo42BarBaz(true)
906           .addExtension("foo")
907           .addClass_(1)
908           .setInt(1.0)
909           .setLong(true)
910           .setBoolean(1L)
911           .setSealed("foo")
912           .setInterface(1F)
913           .setObject("foo")
914           .setCachedSize_("foo")
915           .setSerializedSize_(true)
916           .setBy("foo")
917           .build()
918       )
919 
920     assertThat(interface_ {}).isEqualTo(Interface.newBuilder().build())
921   }
922 
923   @Suppress("CheckReturnValue")
924   @Test
testHardKeywordGettersAndSettersnull925   fun testHardKeywordGettersAndSetters() {
926     hardKeywordsAllTypesProto2 {
927       as_ = 1
928       assertThat(as_).isEqualTo(1)
929 
930       break_ = HardKeywordsAllTypesProto2.NestedEnum.FOO
931       assertThat(break_).isEqualTo(HardKeywordsAllTypesProto2.NestedEnum.FOO)
932 
933       do_ = HardKeywordsAllTypesProto2Kt.nestedMessage { while_ = 1 }
934       assertThat(do_).isEqualTo(HardKeywordsAllTypesProto2Kt.nestedMessage { while_ = 1 })
935 
936       continue_[1] = 1
937       assertThat(continue_[1]).isEqualTo(1)
938 
939       else_ += 1
940       assertThat(else_).isEqualTo(listOf(1))
941 
942       for_ += "foo"
943       assertThat(for_).isEqualTo(listOf("foo"))
944 
945       fun_ += HardKeywordsAllTypesProto2.NestedEnum.FOO
946       assertThat(fun_).isEqualTo(listOf(HardKeywordsAllTypesProto2.NestedEnum.FOO))
947 
948       if_ += HardKeywordsAllTypesProto2Kt.nestedMessage { while_ = 1 }
949       assertThat(if_).isEqualTo(listOf(HardKeywordsAllTypesProto2Kt.nestedMessage { while_ = 1 }))
950     }
951   }
952 
953   @Suppress("CheckReturnValue")
954   @Test
testHardKeywordHazzersnull955   fun testHardKeywordHazzers() {
956     hardKeywordsAllTypesProto2 {
957       as_ = 1
958       assertThat(hasAs_()).isTrue()
959 
960       break_ = HardKeywordsAllTypesProto2.NestedEnum.FOO
961       assertThat(hasBreak_()).isTrue()
962 
963       do_ = HardKeywordsAllTypesProto2Kt.nestedMessage { while_ = 1 }
964       assertThat(hasDo_()).isTrue()
965     }
966   }
967 
968   @Suppress("CheckReturnValue")
969   @Test
testHardKeywordClearsnull970   fun testHardKeywordClears() {
971     hardKeywordsAllTypesProto2 {
972       as_ = 1
973       clearAs_()
974       assertThat(hasAs_()).isFalse()
975 
976       break_ = HardKeywordsAllTypesProto2.NestedEnum.FOO
977       clearBreak_()
978       assertThat(hasBreak_()).isFalse()
979 
980       do_ = HardKeywordsAllTypesProto2Kt.nestedMessage { while_ = 1 }
981       clearDo_()
982       assertThat(hasDo_()).isFalse()
983     }
984   }
985 }
986