diff --git a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/conditionals/test/ConditionalsLiveHoverTest.java b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/conditionals/test/ConditionalsLiveHoverTest.java index 0b2d50771..cbe73ead3 100644 --- a/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/conditionals/test/ConditionalsLiveHoverTest.java +++ b/headless-services/boot-java-language-server/src/test/java/org/springframework/ide/vscode/boot/java/conditionals/test/ConditionalsLiveHoverTest.java @@ -55,11 +55,11 @@ public class ConditionalsLiveHoverTest { } @Test - public void testLiveHoverConditionalOnMissingBean() throws Exception { + public void testLiveHoverConditionalOnBean() throws Exception { File directory = new File( ProjectsHarness.class.getResource("/test-projects/test-conditionals-live-hover/").toURI()); - String docUri = "file://" +directory.getAbsolutePath() + "/src/main/java/example/HelloConfig.java"; + String docUri = "file://" +directory.getAbsolutePath() + "/src/main/java/example/HelloConfig2.java"; // Build a mock running boot app @@ -70,15 +70,37 @@ public class ConditionalsLiveHoverTest { .processId("22022") .host("cfapps.io") .processName("test-conditionals-live-hover") - .getAutoConfigReport("{\"positiveMatches\":{\"HelloConfig#mising\":[{\"condition\":\"OnBeanCondition\",\"message\":\"@ConditionalOnMissingBean (types: example.Hello; SearchStrategy: all) did not find any beans\"}]}}") + .getAutoConfigReport("{\"positiveMatches\":{\"HelloConfig2#hi\":[{\"condition\":\"OnBeanCondition\",\"message\":\"@ConditionalOnBean (types: example.Hello; SearchStrategy: all) found bean 'missing'\"}]}}") .build(); harness.intialize(directory); Editor editor = harness.newEditorFromFileUri(docUri, LanguageId.JAVA); - editor.assertHoverContains("@ConditionalOnMissingBean", "Condition: OnBeanCondition\n" + + editor.assertHoverContains("@ConditionalOnBean", "Condition: OnBeanCondition\n" + "\n" + - "Message: @ConditionalOnMissingBean (types: example.Hello; SearchStrategy: all) did not find any beans"); + "Message: @ConditionalOnBean (types: example.Hello; SearchStrategy: all) found bean 'missing'"); + + } + + @Test + public void testLiveHoverConditionalOnMissingBean() throws Exception { + + File directory = new File( + ProjectsHarness.class.getResource("/test-projects/test-conditionals-live-hover/").toURI()); + String docUri = "file://" + directory.getAbsolutePath() + "/src/main/java/example/HelloConfig.java"; + + // Build a mock running boot app + mockAppProvider.builder().isSpringBootApp(true).containsLanguageServerProcessPropery(false).port("1111") + .processId("22022").host("cfapps.io").processName("test-conditionals-live-hover") + .getAutoConfigReport( + "{\"positiveMatches\":{\"HelloConfig#missing\":[{\"condition\":\"OnBeanCondition\",\"message\":\"@ConditionalOnMissingBean (types: example.Hello; SearchStrategy: all) did not find any beans\"}]}}") + .build(); + + harness.intialize(directory); + + Editor editor = harness.newEditorFromFileUri(docUri, LanguageId.JAVA); + editor.assertHoverContains("@ConditionalOnMissingBean", "Condition: OnBeanCondition\n" + "\n" + + "Message: @ConditionalOnMissingBean (types: example.Hello; SearchStrategy: all) did not find any beans"); } } diff --git a/headless-services/boot-java-language-server/src/test/resources/test-projects/test-conditionals-live-hover/src/main/java/example/HelloConfig.java b/headless-services/boot-java-language-server/src/test/resources/test-projects/test-conditionals-live-hover/src/main/java/example/HelloConfig.java index df9189d03..53eb8178e 100644 --- a/headless-services/boot-java-language-server/src/test/resources/test-projects/test-conditionals-live-hover/src/main/java/example/HelloConfig.java +++ b/headless-services/boot-java-language-server/src/test/resources/test-projects/test-conditionals-live-hover/src/main/java/example/HelloConfig.java @@ -9,7 +9,7 @@ public class HelloConfig { @Bean @ConditionalOnMissingBean - public Hello mising() { + public Hello missing() { return null; } } diff --git a/headless-services/boot-java-language-server/src/test/resources/test-projects/test-conditionals-live-hover/src/main/java/example/HelloConfig2.java b/headless-services/boot-java-language-server/src/test/resources/test-projects/test-conditionals-live-hover/src/main/java/example/HelloConfig2.java new file mode 100644 index 000000000..87f42dbc6 --- /dev/null +++ b/headless-services/boot-java-language-server/src/test/resources/test-projects/test-conditionals-live-hover/src/main/java/example/HelloConfig2.java @@ -0,0 +1,22 @@ +package example; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class HelloConfig2 { + + @Bean + @ConditionalOnBean + public Hello hi() { + return null; + } + + @Bean + @ConditionalOnMissingBean + public Hello missing() { + return null; + } +}