Add parsing of LiveBeanModel to actuator client
This commit is contained in:
@@ -42,6 +42,7 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.ide.vscode.boot.java.autowired.AutowiredHoverProvider;
|
||||
import org.springframework.ide.vscode.boot.java.autowired.SpringBootAppProvider;
|
||||
import org.springframework.ide.vscode.commons.boot.app.cli.livebean.LiveBeansModel;
|
||||
import org.springframework.ide.vscode.commons.java.IClasspath;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaProject;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
|
||||
@@ -82,7 +83,7 @@ public class AutowiredHoverProviderTest {
|
||||
AutowiredHoverProvider provider = new AutowiredHoverProvider();
|
||||
String beansJSON = new String(Files.readAllBytes(new File(directory, "runtime-bean-information.json").toPath()));
|
||||
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, beansJSON);
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, LiveBeansModel.parse(beansJSON));
|
||||
assertNotNull(hint);
|
||||
|
||||
assertEquals(11, hint.getStart().getLine());
|
||||
@@ -106,7 +107,7 @@ public class AutowiredHoverProviderTest {
|
||||
ASTNode node = NodeFinder.perform(cu, offset, 0).getParent();
|
||||
|
||||
AutowiredHoverProvider provider = new AutowiredHoverProvider();
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, (String)null);
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, LiveBeansModel.parse(null));
|
||||
assertNull(hint);
|
||||
}
|
||||
|
||||
@@ -127,7 +128,7 @@ public class AutowiredHoverProviderTest {
|
||||
AutowiredHoverProvider provider = new AutowiredHoverProvider();
|
||||
String beansJSON = new String(Files.readAllBytes(new File(directory, "wrong-runtime-bean-information.json").toPath()));
|
||||
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, beansJSON);
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, LiveBeansModel.parse(beansJSON));
|
||||
assertNull(hint);
|
||||
}
|
||||
|
||||
@@ -146,7 +147,7 @@ public class AutowiredHoverProviderTest {
|
||||
ASTNode node = NodeFinder.perform(cu, offset, 0).getParent();
|
||||
|
||||
AutowiredHoverProvider provider = new AutowiredHoverProvider();
|
||||
String beansJSON = new String(Files.readAllBytes(new File(directory, "runtime-bean-information.json").toPath()));
|
||||
LiveBeansModel beansModel = LiveBeansModel.parse(new String(Files.readAllBytes(new File(directory, "runtime-bean-information.json").toPath())));
|
||||
|
||||
SpringBootAppProvider bootApp = new SpringBootAppProvider() {
|
||||
@Override
|
||||
@@ -160,8 +161,8 @@ public class AutowiredHoverProviderTest {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBeans() throws Exception {
|
||||
return beansJSON;
|
||||
public LiveBeansModel getBeans() throws Exception {
|
||||
return beansModel;
|
||||
}
|
||||
};
|
||||
CompletableFuture<Hover> hoverFuture = provider.provideHover(null, (Annotation)node, null, offset, document, new SpringBootAppProvider[] {bootApp});
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2017 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Pivotal, Inc. - initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.springframework.ide.vscode.boot.java.autowired.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.junit.Test;
|
||||
import org.springframework.ide.vscode.boot.java.autowired.LiveBean;
|
||||
import org.springframework.ide.vscode.boot.java.autowired.LiveBeansModel;
|
||||
import org.springframework.ide.vscode.project.harness.ProjectsHarness;
|
||||
|
||||
/**
|
||||
* @author Martin Lippert
|
||||
*/
|
||||
public class LiveBeansModelTest {
|
||||
|
||||
@Test
|
||||
public void testSimpleModel() throws Exception {
|
||||
String json = IOUtils.toString(ProjectsHarness.class.getResourceAsStream("/live-beans-models/simple-live-beans-model.json"));
|
||||
LiveBeansModel model = LiveBeansModel.parse(json);
|
||||
|
||||
LiveBean[] bean = model.getBeansOfType("org.test.DependencyA");
|
||||
assertEquals(1, bean.length);
|
||||
assertEquals("dependencyA", bean[0].getId());
|
||||
assertEquals("singleton", bean[0].getScope());
|
||||
assertEquals("org.test.DependencyA", bean[0].getType());
|
||||
assertEquals("file [/test-projects/classes/org/test/DependencyA.class]", bean[0].getResource());
|
||||
assertEquals(0, bean[0].getAliases().length);
|
||||
assertEquals(0, bean[0].getDependencies().length);
|
||||
|
||||
bean = model.getBeansOfName("dependencyB");
|
||||
assertEquals(1, bean.length);
|
||||
assertEquals("dependencyB", bean[0].getId());
|
||||
assertEquals("singleton", bean[0].getScope());
|
||||
assertEquals("org.test.DependencyB", bean[0].getType());
|
||||
assertEquals("file [/test-projects/classes/org/test/DependencyB.class]", bean[0].getResource());
|
||||
assertEquals(0, bean[0].getAliases().length);
|
||||
assertEquals(0, bean[0].getDependencies().length);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEmptyModel() throws Exception {
|
||||
String json = IOUtils.toString(ProjectsHarness.class.getResourceAsStream("/live-beans-models/empty-live-beans-model.json"));
|
||||
LiveBeansModel model = LiveBeansModel.parse(json);
|
||||
|
||||
LiveBean[] bean = model.getBeansOfType("org.test.DependencyA");
|
||||
assertEquals(0, bean.length);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTotallyEmptyModel() throws Exception {
|
||||
String json = IOUtils.toString(ProjectsHarness.class.getResourceAsStream("/live-beans-models/totally-empty-live-beans-model.json"));
|
||||
LiveBeansModel model = LiveBeansModel.parse(json);
|
||||
|
||||
LiveBean[] bean = model.getBeansOfType("org.test.DependencyA");
|
||||
assertEquals(0, bean.length);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -42,6 +42,7 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.ide.vscode.boot.java.autowired.SpringBootAppProvider;
|
||||
import org.springframework.ide.vscode.boot.java.beans.ComponentHoverProvider;
|
||||
import org.springframework.ide.vscode.commons.boot.app.cli.livebean.LiveBeansModel;
|
||||
import org.springframework.ide.vscode.commons.java.IClasspath;
|
||||
import org.springframework.ide.vscode.commons.java.IJavaProject;
|
||||
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
|
||||
@@ -82,7 +83,7 @@ public class ComponentHoverProviderTest {
|
||||
ComponentHoverProvider provider = new ComponentHoverProvider();
|
||||
String beansJSON = new String(Files.readAllBytes(new File(directory, "runtime-bean-information-automatically-wired.json").toPath()));
|
||||
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, beansJSON);
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, LiveBeansModel.parse(beansJSON));
|
||||
assertNotNull(hint);
|
||||
|
||||
assertEquals(10, hint.getStart().getLine());
|
||||
@@ -108,7 +109,7 @@ public class ComponentHoverProviderTest {
|
||||
ComponentHoverProvider provider = new ComponentHoverProvider();
|
||||
String beansJSON = new String(Files.readAllBytes(new File(directory, "runtime-bean-information.json").toPath()));
|
||||
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, beansJSON);
|
||||
Range hint = provider.getLiveHoverHint((Annotation)node, document, LiveBeansModel.parse(beansJSON));
|
||||
assertNull(hint);
|
||||
}
|
||||
|
||||
@@ -127,7 +128,7 @@ public class ComponentHoverProviderTest {
|
||||
ASTNode node = NodeFinder.perform(cu, offset, 0).getParent();
|
||||
|
||||
ComponentHoverProvider provider = new ComponentHoverProvider();
|
||||
String beansJSON = new String(Files.readAllBytes(new File(directory, "runtime-bean-information-automatically-wired.json").toPath()));
|
||||
LiveBeansModel beansModel = LiveBeansModel.parse(new String(Files.readAllBytes(new File(directory, "runtime-bean-information-automatically-wired.json").toPath())));
|
||||
|
||||
SpringBootAppProvider bootApp = new SpringBootAppProvider() {
|
||||
@Override
|
||||
@@ -141,8 +142,8 @@ public class ComponentHoverProviderTest {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBeans() throws Exception {
|
||||
return beansJSON;
|
||||
public LiveBeansModel getBeans() throws Exception {
|
||||
return beansModel;
|
||||
}
|
||||
};
|
||||
CompletableFuture<Hover> hoverFuture = provider.provideHover(null, (Annotation) node, null, 0, document, new SpringBootAppProvider[] {bootApp});
|
||||
|
||||
@@ -19,6 +19,7 @@ import java.util.Collection;
|
||||
import org.mockito.Mockito;
|
||||
import org.springframework.ide.vscode.boot.java.handlers.RunningAppProvider;
|
||||
import org.springframework.ide.vscode.commons.boot.app.cli.SpringBootApp;
|
||||
import org.springframework.ide.vscode.commons.boot.app.cli.livebean.LiveBeansModel;
|
||||
import org.springframework.ide.vscode.commons.util.ExceptionUtil;
|
||||
import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness.Builder;
|
||||
|
||||
@@ -67,7 +68,7 @@ public class MockRunningAppProvider {
|
||||
}
|
||||
|
||||
public MockAppBuilder beans(String beans) throws Exception {
|
||||
when(app.getBeans()).thenReturn(beans);
|
||||
when(app.getBeans()).thenReturn(LiveBeansModel.parse(beans));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
[
|
||||
{
|
||||
"context": "application",
|
||||
"parent": null,
|
||||
"beans": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,35 +0,0 @@
|
||||
[
|
||||
{
|
||||
"context": "application",
|
||||
"parent": null,
|
||||
"beans": [
|
||||
{
|
||||
"bean": "dependencyA",
|
||||
"aliases": [],
|
||||
"scope": "singleton",
|
||||
"type": "org.test.DependencyA",
|
||||
"resource": "file [/test-projects/classes/org/test/DependencyA.class]",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"bean": "dependencyB",
|
||||
"aliases": [],
|
||||
"scope": "singleton",
|
||||
"type": "org.test.DependencyB",
|
||||
"resource": "file [/test-projects/classes/org/test/DependencyB.class]",
|
||||
"dependencies": []
|
||||
},
|
||||
{
|
||||
"bean": "myAutowiredComponent",
|
||||
"aliases": [],
|
||||
"scope": "singleton",
|
||||
"type": "org.test.MyAutowiredComponent",
|
||||
"resource": "file [/test-projects/classes/org/test/MyAutowiredComponent.class]",
|
||||
"dependencies": [
|
||||
"dependencyA",
|
||||
"dependencyB"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user