From 7dc818d42ba9b16a05b5fd16d0a953f58e066b78 Mon Sep 17 00:00:00 2001 From: Nicolay Mitropolsky Date: Mon, 18 Feb 2019 17:25:42 +0300 Subject: [PATCH] 191: KotlinUastApiTest.kt missed bunch aligning fix --- .../tests/KotlinUastApiTest.kt.191 | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/plugins/uast-kotlin/tests/KotlinUastApiTest.kt.191 b/plugins/uast-kotlin/tests/KotlinUastApiTest.kt.191 index 4a651f2a797..b8cd83109d3 100644 --- a/plugins/uast-kotlin/tests/KotlinUastApiTest.kt.191 +++ b/plugins/uast-kotlin/tests/KotlinUastApiTest.kt.191 @@ -316,6 +316,44 @@ class KotlinUastApiTest : AbstractKotlinUastTest() { } } + @Test + fun testNestedAnnotationParameters() = doTest("AnnotationComplex") { _, file -> + + fun UFile.annotationAndParam(refText: String, check: (PsiAnnotation, String?) -> Unit) { + findElementByTextFromPsi(refText) + .let { expression -> + val (annotation: PsiAnnotation, paramname: String?) = + getContainingAnnotationEntry(expression) ?: kfail("annotation not found for '$refText' ($expression)") + check(annotation, paramname) + } + } + + file.annotationAndParam("sv1") { annotation, paramname -> + assertEquals("Annotation", annotation.qualifiedName) + assertEquals(null, paramname) + } + file.annotationAndParam("sv2") { annotation, paramname -> + assertEquals("Annotation", annotation.qualifiedName) + assertEquals(null, paramname) + } + file.annotationAndParam("sar1") { annotation, paramname -> + assertEquals("Annotation", annotation.qualifiedName) + assertEquals("strings", paramname) + } + file.annotationAndParam("sar2") { annotation, paramname -> + assertEquals("Annotation", annotation.qualifiedName) + assertEquals("strings", paramname) + } + file.annotationAndParam("[sar]1") { annotation, paramname -> + assertEquals("Annotation", annotation.qualifiedName) + assertEquals("strings", paramname) + } + file.annotationAndParam("[sar]2") { annotation, paramname -> + assertEquals("Annotation", annotation.qualifiedName) + assertEquals("strings", paramname) + } + } + @Test fun testParametersDisorder() = doTest("ParametersDisorder") { _, file ->