aboutsummaryrefslogtreecommitdiff
path: root/test-utils/testData/api/annotatedUtil.kt
diff options
context:
space:
mode:
Diffstat (limited to 'test-utils/testData/api/annotatedUtil.kt')
-rw-r--r--test-utils/testData/api/annotatedUtil.kt149
1 files changed, 149 insertions, 0 deletions
diff --git a/test-utils/testData/api/annotatedUtil.kt b/test-utils/testData/api/annotatedUtil.kt
new file mode 100644
index 00000000..bbd05785
--- /dev/null
+++ b/test-utils/testData/api/annotatedUtil.kt
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2021 Google LLC
+ * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// TEST PROCESSOR: AnnotatedUtilProcessor
+// EXPECTED:
+// Test: OnlyTestAnnotation
+// Test: ParametersTestAnnotationWithValuesTest
+// IsPresent: class com.google.devtools.ksp.processor.ParametersTestAnnotation
+// ByType: com.google.devtools.ksp.processor.ParametersTestAnnotation[booleanValue=true, byteValue=5, shortValue=202, charValue=k, doubleValue=5.12, floatValue=123.3, intValue=2, longValue=4, stringValue=someValue, kClassValue=class java.lang.Throwable, enumValue=VALUE1]
+// Test: ParametersTestAnnotationWithDefaultsTest
+// IsPresent: class com.google.devtools.ksp.processor.ParametersTestAnnotation
+// ByType: com.google.devtools.ksp.processor.ParametersTestAnnotation[booleanValue=false, byteValue=2, shortValue=3, charValue=b, doubleValue=4.0, floatValue=5.0, intValue=6, longValue=7, stringValue=emptystring, kClassValue=interface com.google.devtools.ksp.processor.ParametersTestAnnotation, enumValue=NONE]
+// ByType: com.google.devtools.ksp.processor.ParametersTestAnnotation[booleanValue=false, byteValue=2, shortValue=3, charValue=b, doubleValue=4.0, floatValue=5.0, intValue=6, longValue=7, stringValue=emptystring, kClassValue=interface com.google.devtools.ksp.processor.ParametersTestAnnotation, enumValue=NONE]
+// Test: ParametersTestWithNegativeDefaultsAnnotationTest
+// IsPresent: class com.google.devtools.ksp.processor.ParametersTestWithNegativeDefaultsAnnotation
+// ByType: com.google.devtools.ksp.processor.ParametersTestWithNegativeDefaultsAnnotation[byteValue=-2, shortValue=-3, doubleValue=-4.0, floatValue=-5.0, intValue=-6, longValue=-7]
+// ByType: com.google.devtools.ksp.processor.ParametersTestWithNegativeDefaultsAnnotation[byteValue=-2, shortValue=-3, doubleValue=-4.0, floatValue=-5.0, intValue=-6, longValue=-7]
+// Test: ParameterArraysTestAnnotationWithDefaultTest
+// IsPresent: class com.google.devtools.ksp.processor.ParameterArraysTestAnnotation
+// ByType: ParameterArraysTestAnnotation[booleanArrayValue=[true, false],byteArrayValue=[-2, 4],shortArrayValue=[-1, 2, 3],charArrayValue=[a, b, c],doubleArrayValue=[1.1, 2.2, 3.3],floatArrayValue=[1.0, 2.0, 3.3],intArrayValue=[1, 2, 4, 8, 16],longArrayValue=[1, 2, 4, 8, 16, 32],stringArrayValue=[first, second, third],kClassArrayValue=[class kotlin.Throwable, class com.google.devtools.ksp.processor.ParametersTestAnnotation],enumArrayValue=[VALUE1, VALUE2, VALUE1, VALUE2]]
+// Test: AnnotationWithinAnAnnotationTest
+// IsPresent: class com.google.devtools.ksp.processor.OuterAnnotation
+// ByType: com.google.devtools.ksp.processor.OuterAnnotation[innerAnnotation=com.google.devtools.ksp.processor.InnerAnnotation[value=hello from the other side]]
+// END
+// MODULE: annotations
+// FILE: com/google/devtools/ksp/processor/a.kt
+package com.google.devtools.ksp.processor
+
+import kotlin.reflect.KClass
+import java.lang.Throwable
+
+annotation class Test
+
+@Suppress("LongParameterList")
+annotation class ParametersTestAnnotation(
+ val booleanValue: Boolean = false,
+ val byteValue: Byte = 2,
+ val shortValue: Short = 3,
+ val charValue: Char = 'b',
+ val doubleValue: Double = 4.0,
+ val floatValue: Float = 5.0f,
+ val intValue: Int = 6,
+ val longValue: Long = 7L,
+ val stringValue: String = "emptystring",
+ val kClassValue: KClass<*> = ParametersTestAnnotation::class,
+ val enumValue: TestEnum = TestEnum.NONE,
+)
+
+@Suppress("LongParameterList")
+annotation class ParameterArraysTestAnnotation(
+ val booleanArrayValue: BooleanArray = booleanArrayOf(),
+ val byteArrayValue: ByteArray = byteArrayOf(),
+ val shortArrayValue: ShortArray = shortArrayOf(),
+ val charArrayValue: CharArray = charArrayOf(),
+ val doubleArrayValue: DoubleArray = doubleArrayOf(),
+ val floatArrayValue: FloatArray = floatArrayOf(),
+ val intArrayValue: IntArray = intArrayOf(),
+ val longArrayValue: LongArray = longArrayOf(),
+ val stringArrayValue: Array<String> = emptyArray(),
+ val kClassArrayValue: Array<KClass<*>> = emptyArray(),
+ val enumArrayValue: Array<TestEnum> = emptyArray(),
+)
+
+annotation class ParametersTestWithNegativeDefaultsAnnotation(
+ val byteValue: Byte = -2,
+ val shortValue: Short = -3,
+ val doubleValue: Double = -4.0,
+ val floatValue: Float = -5.0f,
+ val intValue: Int = -6,
+ val longValue: Long = -7L,
+)
+
+enum class TestEnum {
+ NONE, VALUE1, VALUE2
+}
+
+annotation class InnerAnnotation(val value: String = "default")
+
+annotation class OuterAnnotation(
+ val innerAnnotation : InnerAnnotation = InnerAnnotation()
+)
+
+/////////////////////////////////////////////////////////
+// Tests
+/////////////////////////////////////////////////////////
+
+@Test
+@Test
+class OnlyTestAnnotation
+
+@ParametersTestAnnotation(
+ booleanValue = true,
+ byteValue = 5,
+ shortValue = 202,
+ charValue = 'k',
+ doubleValue = 5.12,
+ floatValue = 123.3f,
+ intValue = 2,
+ longValue = 4L,
+ stringValue = "someValue",
+ java.lang.Throwable::class,
+ TestEnum.VALUE1,
+)
+@Test
+class ParametersTestAnnotationWithValuesTest
+
+@ParametersTestAnnotation
+@ParametersTestAnnotation
+@Test
+class ParametersTestAnnotationWithDefaultsTest
+
+@ParametersTestWithNegativeDefaultsAnnotation
+@ParametersTestWithNegativeDefaultsAnnotation
+@Test
+class ParametersTestWithNegativeDefaultsAnnotationTest
+
+@ParameterArraysTestAnnotation(
+ booleanArrayValue = booleanArrayOf(true, false),
+ byteArrayValue = byteArrayOf(-2, 4),
+ shortArrayValue = shortArrayOf(-1, 2, 3),
+ charArrayValue = charArrayOf('a', 'b', 'c'),
+ doubleArrayValue = doubleArrayOf(1.1, 2.2, 3.3),
+ floatArrayValue = floatArrayOf(1.0f, 2.0f, 3.3f),
+ intArrayValue = intArrayOf(1, 2, 4, 8, 16),
+ longArrayValue = longArrayOf(1L, 2L, 4L, 8L, 16, 32L),
+ stringArrayValue = arrayOf("first", "second", "third"),
+ kClassArrayValue = arrayOf(Throwable::class, ParametersTestAnnotation::class),
+ enumArrayValue = arrayOf(TestEnum.VALUE1, TestEnum.VALUE2, TestEnum.VALUE1, TestEnum.VALUE2),
+)
+@Test
+class ParameterArraysTestAnnotationWithDefaultTest
+
+@OuterAnnotation(innerAnnotation = InnerAnnotation("hello from the other side"))
+@Test
+class AnnotationWithinAnAnnotationTest