summaryrefslogtreecommitdiff
path: root/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt
diff options
context:
space:
mode:
Diffstat (limited to 'formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt')
-rw-r--r--formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt28
1 files changed, 27 insertions, 1 deletions
diff --git a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt
index b7332312..03302502 100644
--- a/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt
+++ b/formats/protobuf/commonTest/src/kotlinx/serialization/protobuf/schema/SchemaValidationsTest.kt
@@ -3,7 +3,6 @@ package kotlinx.serialization.protobuf.schema
import kotlinx.serialization.*
import kotlinx.serialization.protobuf.*
import kotlin.test.Test
-import kotlin.test.assertContains
import kotlin.test.assertFailsWith
class SchemaValidationsTest {
@@ -39,6 +38,33 @@ class SchemaValidationsTest {
SECOND
}
+ @Serializable
+ enum class EnumWithExplicitProtoNumberDuplicate {
+ @ProtoNumber(2)
+ FIRST,
+ @ProtoNumber(2)
+ SECOND,
+ }
+
+ @Serializable
+ enum class EnumWithImplicitProtoNumberDuplicate {
+ FIRST,
+ @ProtoNumber(0)
+ SECOND,
+ }
+
+ @Test
+ fun testExplicitDuplicateEnumElementProtoNumber() {
+ val descriptors = listOf(EnumWithExplicitProtoNumberDuplicate.serializer().descriptor)
+ assertFailsWith(IllegalArgumentException::class) { ProtoBufSchemaGenerator.generateSchemaText(descriptors) }
+ }
+
+ @Test
+ fun testImplicitDuplicateEnumElementProtoNumber() {
+ val descriptors = listOf(EnumWithImplicitProtoNumberDuplicate.serializer().descriptor)
+ assertFailsWith(IllegalArgumentException::class) { ProtoBufSchemaGenerator.generateSchemaText(descriptors) }
+ }
+
@Test
fun testInvalidEnumElementSerialName() {
val descriptors = listOf(InvalidEnumElementName.serializer().descriptor)