diff options
Diffstat (limited to 'test-utils/testData/api/annotatedUtil.kt')
-rw-r--r-- | test-utils/testData/api/annotatedUtil.kt | 149 |
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 |