diff --git a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java index 2beeab130..2a9a32776 100644 --- a/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java +++ b/headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/SpringIndexerBeansTest.java @@ -153,6 +153,14 @@ public class SpringIndexerBeansTest { ); } + @Test + void testScanComponentClassWithNameAndStringConcatenation() throws Exception { + String docUri = directory.toPath().resolve("src/main/java/org/test/SpecialNameComponentWithStringConcatenation.java").toUri().toString(); + SpringIndexerHarness.assertDocumentSymbols(indexer, docUri, + SpringIndexerHarness.symbol("@Component(\"special\" + \"Name\")", "@+ 'specialName' (@Component) SpecialNameComponentWithStringConcatenation") + ); + } + @Test void testScanComponentClassWithNameAndAttributeName() throws Exception { String docUri = directory.toPath().resolve("src/main/java/org/test/SpecialNameComponentWithAttributeName.java").toUri().toString(); @@ -161,6 +169,22 @@ public class SpringIndexerBeansTest { ); } + @Test + void testScanComponentClassWithNameAndAttributeNameWithStringConcatenation() throws Exception { + String docUri = directory.toPath().resolve("src/main/java/org/test/SpecialNameComponentWithAttributeNameWithStringConcatenation.java").toUri().toString(); + SpringIndexerHarness.assertDocumentSymbols(indexer, docUri, + SpringIndexerHarness.symbol("@Component(value = \"specialName\" + \"WithAttributeName\")", "@+ 'specialNameWithAttributeName' (@Component) SpecialNameComponentWithAttributeNameWithStringConcatenation") + ); + } + + @Test + void testScanComponentClassWithNameWithStringConcatenationAndConstant() throws Exception { + String docUri = directory.toPath().resolve("src/main/java/org/test/SpecialNameComponentWithStringConcatenationAndConstant.java").toUri().toString(); + SpringIndexerHarness.assertDocumentSymbols(indexer, docUri, + SpringIndexerHarness.symbol("@Component(\"special\" + \"Name\" + Constants.SAMPLE_CONSTANT)", "@+ 'specialNameSampleConstant' (@Component) SpecialNameComponentWithStringConcatenationAndConstant") + ); + } + @Test void testScanSimpleControllerClass() throws Exception { String docUri = directory.toPath().resolve("src/main/java/org/test/SimpleController.java").toUri().toString(); diff --git a/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/Constants.java b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/Constants.java new file mode 100644 index 000000000..024c9185e --- /dev/null +++ b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/Constants.java @@ -0,0 +1,7 @@ +package org.test; + +public class Constants { + + public static final String SAMPLE_CONSTANT = "SampleConstant"; + +} diff --git a/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/SpecialNameComponentWithAttributeNameWithStringConcatenation.java b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/SpecialNameComponentWithAttributeNameWithStringConcatenation.java new file mode 100644 index 000000000..9749fad79 --- /dev/null +++ b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/SpecialNameComponentWithAttributeNameWithStringConcatenation.java @@ -0,0 +1,7 @@ +package org.test; + +import org.springframework.stereotype.Component; + +@Component(value = "specialName" + "WithAttributeName") +public class SpecialNameComponentWithAttributeNameWithStringConcatenation { +} diff --git a/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/SpecialNameComponentWithStringConcatenation.java b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/SpecialNameComponentWithStringConcatenation.java new file mode 100644 index 000000000..00668be0c --- /dev/null +++ b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/SpecialNameComponentWithStringConcatenation.java @@ -0,0 +1,7 @@ +package org.test; + +import org.springframework.stereotype.Component; + +@Component("special" + "Name") +public class SpecialNameComponentWithStringConcatenation { +} diff --git a/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/SpecialNameComponentWithStringConcatenationAndConstant.java b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/SpecialNameComponentWithStringConcatenationAndConstant.java new file mode 100644 index 000000000..fc338ea6d --- /dev/null +++ b/headless-services/spring-boot-language-server/src/test/resources/test-projects/test-annotation-indexing-beans/src/main/java/org/test/SpecialNameComponentWithStringConcatenationAndConstant.java @@ -0,0 +1,7 @@ +package org.test; + +import org.springframework.stereotype.Component; + +@Component("special" + "Name" + Constants.SAMPLE_CONSTANT) +public class SpecialNameComponentWithStringConcatenationAndConstant { +}