From 00003684e859ff7f15f2e603537e91db7644991e Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 8 Feb 2017 11:29:13 +0100 Subject: [PATCH] Add test for converting a string literal to UAST --- .../testData/StringTemplateInClass.kt | 3 +++ plugins/uast-kotlin/tests/KotlinUastApiTest.kt | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 plugins/uast-kotlin/testData/StringTemplateInClass.kt diff --git a/plugins/uast-kotlin/testData/StringTemplateInClass.kt b/plugins/uast-kotlin/testData/StringTemplateInClass.kt new file mode 100644 index 00000000000..01c380c96b8 --- /dev/null +++ b/plugins/uast-kotlin/testData/StringTemplateInClass.kt @@ -0,0 +1,3 @@ +class Demo { + val foo = X.bar("lorem") +} diff --git a/plugins/uast-kotlin/tests/KotlinUastApiTest.kt b/plugins/uast-kotlin/tests/KotlinUastApiTest.kt index 44029d4eca0..7c304e4a569 100644 --- a/plugins/uast-kotlin/tests/KotlinUastApiTest.kt +++ b/plugins/uast-kotlin/tests/KotlinUastApiTest.kt @@ -1,8 +1,13 @@ package org.jetbrains.uast.test.kotlin +import org.jetbrains.kotlin.psi.KtLiteralStringTemplateEntry import org.jetbrains.uast.UAnnotation import org.jetbrains.uast.UFile +import org.jetbrains.uast.ULiteralExpression +import org.jetbrains.uast.psi.PsiElementBacked import org.jetbrains.uast.test.env.findElementByText +import org.jetbrains.uast.toUElement +import org.junit.Assert import org.junit.Test @@ -17,5 +22,15 @@ class KotlinUastApiTest : AbstractKotlinUastTest() { assertEquals(annotation.findAttributeValue("to")?.expression?.evaluate(), 0) } } -} + @Test fun testConvertStringTemplate() { + doTest("StringTemplateInClass") { name, file -> + val literalExpression = file.findElementByText("lorem") + val psi = (literalExpression as PsiElementBacked).psi!! + Assert.assertTrue(psi is KtLiteralStringTemplateEntry) + val literalExpressionAgain = psi.toUElement() + Assert.assertTrue(literalExpressionAgain is ULiteralExpression) + + } + } +}