Skip to content

Commit ec9536a

Browse files
committed
Polish tests by decreasing new Gson() usage
Signed-off-by: BoykoAlex <alex.boyko@broadcom.com>
1 parent 11cff66 commit ec9536a

24 files changed

+119
-186
lines changed

headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@
153153
import com.google.common.collect.Multimap;
154154
import com.google.common.collect.MultimapBuilder;
155155
import com.google.gson.JsonArray;
156+
import com.google.gson.JsonElement;
156157

157158
import reactor.core.publisher.Mono;
158159

@@ -1050,6 +1051,14 @@ public Editor newEditorFromFileUri(String docUri, LanguageId languageId) throws
10501051
return newEditor(languageId, content, docUri);
10511052
}
10521053

1054+
public void changeConfiguration(Map<String, Object> m) {
1055+
changeConfiguration(new Settings(getServer().getGson().toJsonTree(m)));
1056+
}
1057+
1058+
public void changeConfiguration(String s) {
1059+
changeConfiguration(new Settings(getServer().getGson().fromJson(s, JsonElement.class)));
1060+
}
1061+
10531062
public void changeConfiguration(Settings settings) {
10541063
getServer().getWorkspaceService().didChangeConfiguration(new DidChangeConfigurationParams(settings.getRawSettings()));
10551064
getServer().getAsync().waitForAll();

headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/BootLanguageServerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
@Retention(RUNTIME)
2828
@Target(TYPE)
2929
@OverrideAutoConfiguration(enabled=false)
30-
@ImportAutoConfiguration(classes= {LanguageServerAutoConf.class, JavaTestConf.class})
30+
@ImportAutoConfiguration(classes= {LanguageServerAutoConf.class, JavaTestConf.class, LsGsonConfig.class})
3131
@SpringBootTest(classes={
3232
BootLanguageServerBootApp.class
3333
})

headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/JavaTestConf.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2020, 2026 Pivotal, Inc.
2+
* Copyright (c) 2020 Pivotal, Inc.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v1.0
55
* which accompanies this distribution, and is available at
@@ -15,10 +15,8 @@
1515
import java.util.Arrays;
1616
import java.util.Collection;
1717
import java.util.Optional;
18-
import java.util.function.Consumer;
1918

2019
import org.eclipse.lsp4j.TextDocumentIdentifier;
21-
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2220
import org.springframework.context.annotation.Bean;
2321
import org.springframework.context.annotation.Configuration;
2422
import org.springframework.ide.vscode.boot.jdt.ls.JavaProjectsService;
@@ -28,7 +26,6 @@
2826
import org.springframework.ide.vscode.commons.java.IJavaProject;
2927
import org.springframework.ide.vscode.commons.java.IJavadocProvider;
3028
import org.springframework.ide.vscode.commons.javadoc.JavaDocProviders;
31-
import org.springframework.ide.vscode.commons.languageserver.LanguageServerRunner;
3229
import org.springframework.ide.vscode.commons.languageserver.java.CompositeJavaProjectFinder;
3330
import org.springframework.ide.vscode.commons.languageserver.java.CompositeProjectOvserver;
3431
import org.springframework.ide.vscode.commons.languageserver.java.JavadocService;
@@ -37,9 +34,6 @@
3734
import org.springframework.ide.vscode.commons.maven.java.MavenProjectCache;
3835
import org.springframework.ide.vscode.commons.maven.java.MavenProjectFinder;
3936
import org.springframework.ide.vscode.commons.protocol.java.Classpath.CPE;
40-
import org.springframework.ide.vscode.languageserver.testharness.HarnessLanguageServerRunner;
41-
42-
import com.google.gson.GsonBuilder;
4337

4438
@Configuration
4539
public class JavaTestConf {
@@ -85,12 +79,5 @@ public Collection<? extends IJavaProject> all() {
8579
}
8680
};
8781
}
88-
89-
@ConditionalOnMissingBean(LanguageServerRunner.class)
90-
@Bean
91-
HarnessLanguageServerRunner harnessLanguageServerRunner(Optional<Consumer<GsonBuilder>> configGsonOpt) {
92-
return new HarnessLanguageServerRunner(configGsonOpt);
93-
}
94-
9582

9683
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*******************************************************************************
2+
* Copyright (c) 2026 Broadcom, Inc.
3+
* All rights reserved. This program and the accompanying materials
4+
* are made available under the terms of the Eclipse Public License v1.0
5+
* which accompanies this distribution, and is available at
6+
* https://www.eclipse.org/legal/epl-v10.html
7+
*
8+
* Contributors:
9+
* Pivotal, Inc. - initial API and implementation
10+
*******************************************************************************/
11+
package org.springframework.ide.vscode.boot.bootiful;
12+
13+
import java.util.Optional;
14+
import java.util.function.Consumer;
15+
16+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
17+
import org.springframework.context.annotation.Bean;
18+
import org.springframework.context.annotation.Configuration;
19+
import org.springframework.ide.vscode.commons.languageserver.LanguageServerRunner;
20+
import org.springframework.ide.vscode.languageserver.testharness.HarnessLanguageServerRunner;
21+
22+
import com.google.gson.GsonBuilder;
23+
24+
@Configuration
25+
public class LsGsonConfig {
26+
27+
@ConditionalOnMissingBean(LanguageServerRunner.class)
28+
@Bean
29+
HarnessLanguageServerRunner harnessLanguageServerRunner(Optional<Consumer<GsonBuilder>> configGsonOpt) {
30+
return new HarnessLanguageServerRunner(configGsonOpt);
31+
}
32+
33+
}

headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/bootiful/XmlBeansTestConf.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness;
3232

3333
@Configuration
34-
@Import(AdHocPropertyHarnessTestConf.class)
34+
@Import({AdHocPropertyHarnessTestConf.class, LsGsonConfig.class})
3535
public class XmlBeansTestConf {
3636

3737
@Bean public IndexCache symbolCache() {

headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/beans/test/BeanCompletionProviderTest.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,13 @@
3737
import org.springframework.ide.vscode.boot.index.SpringMetamodelIndex;
3838
import org.springframework.ide.vscode.commons.java.IJavaProject;
3939
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
40-
import org.springframework.ide.vscode.commons.languageserver.util.Settings;
4140
import org.springframework.ide.vscode.commons.protocol.spring.Bean;
4241
import org.springframework.ide.vscode.commons.util.text.LanguageId;
4342
import org.springframework.ide.vscode.languageserver.testharness.Editor;
4443
import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness;
4544
import org.springframework.ide.vscode.project.harness.ProjectsHarness;
4645
import org.springframework.test.context.junit.jupiter.SpringExtension;
4746

48-
import com.google.gson.Gson;
49-
5047
/**
5148
* @author Udayani V
5249
*/
@@ -79,8 +76,7 @@ public void setup() throws Exception {
7976

8077
directory = new File(ProjectsHarness.class.getResource("/test-projects/test-spring-indexing/").toURI());
8178

82-
Map<String, ?> settings = Map.of("boot-java", Map.of("java", Map.of("completions", Map.of("inject-bean", true))));
83-
harness.changeConfiguration(new Settings(new Gson().toJsonTree(settings)));
79+
harness.changeConfiguration(Map.of("boot-java", Map.of("java", Map.of("completions", Map.of("inject-bean", true)))));
8480

8581
String projectDir = directory.toURI().toString();
8682
project = projectFinder.find(new TextDocumentIdentifier(projectDir)).get();

headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/cron/JdtCronReconcilerTest.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,12 @@
2121
import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest;
2222
import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf;
2323
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
24-
import org.springframework.ide.vscode.commons.languageserver.util.Settings;
2524
import org.springframework.ide.vscode.commons.util.text.LanguageId;
2625
import org.springframework.ide.vscode.languageserver.testharness.Editor;
2726
import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness;
2827
import org.springframework.ide.vscode.project.harness.ProjectsHarness;
2928
import org.springframework.test.context.junit.jupiter.SpringExtension;
3029

31-
import com.google.gson.Gson;
32-
import com.google.gson.JsonElement;
33-
3430
@ExtendWith(SpringExtension.class)
3531
@BootLanguageServerTest
3632
@Import(SymbolProviderTestConf.class)
@@ -54,17 +50,15 @@ public void setup() throws Exception {
5450
// trigger project creation
5551
projectFinder.find(new TextDocumentIdentifier(projectDir)).get();
5652

57-
String changedSettings = """
58-
{
59-
"boot-java": {
60-
"validation": {
61-
"cron": "ON"
53+
harness.changeConfiguration("""
54+
{
55+
"boot-java": {
56+
"validation": {
57+
"cron": "ON"
58+
}
6259
}
63-
}
64-
}
65-
""";
66-
JsonElement settingsAsJson = new Gson().fromJson(changedSettings, JsonElement.class);
67-
harness.changeConfiguration(new Settings(settingsAsJson));
60+
}
61+
""");
6862
}
6963

7064
@Test

headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/data/jpa/queries/JdtDataQuerySemanticTokensProviderTest.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.springframework.context.annotation.Import;
2020
import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest;
2121
import org.springframework.ide.vscode.boot.bootiful.HoverTestConf;
22-
import org.springframework.ide.vscode.commons.languageserver.util.Settings;
2322
import org.springframework.ide.vscode.commons.maven.java.MavenJavaProject;
2423
import org.springframework.ide.vscode.commons.util.text.LanguageId;
2524
import org.springframework.ide.vscode.languageserver.testharness.Editor;
@@ -28,9 +27,6 @@
2827
import org.springframework.ide.vscode.project.harness.ProjectsHarness;
2928
import org.springframework.test.context.junit.jupiter.SpringExtension;
3029

31-
import com.google.gson.Gson;
32-
import com.google.gson.JsonElement;
33-
3430
@ExtendWith(SpringExtension.class)
3531
@BootLanguageServerTest
3632
@Import(HoverTestConf.class)
@@ -47,15 +43,13 @@ public void setup() throws Exception {
4743
jp = projects.mavenProject("boot-mysql");
4844
harness.useProject(jp);
4945

50-
String changedSettings = """
51-
{
52-
"boot-java": {
53-
"jpql": true
54-
}
55-
}
56-
""";
57-
JsonElement settingsAsJson = new Gson().fromJson(changedSettings, JsonElement.class);
58-
harness.changeConfiguration(new Settings(settingsAsJson));
46+
harness.changeConfiguration("""
47+
{
48+
"boot-java": {
49+
"jpql": true
50+
}
51+
}
52+
""");
5953
}
6054

6155
@Test

headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/data/jpa/queries/QueryReconcilerTest.java

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,12 @@
2121
import org.springframework.ide.vscode.boot.bootiful.BootLanguageServerTest;
2222
import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf;
2323
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
24-
import org.springframework.ide.vscode.commons.languageserver.util.Settings;
2524
import org.springframework.ide.vscode.commons.util.text.LanguageId;
2625
import org.springframework.ide.vscode.languageserver.testharness.Editor;
2726
import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness;
2827
import org.springframework.ide.vscode.project.harness.ProjectsHarness;
2928
import org.springframework.test.context.junit.jupiter.SpringExtension;
3029

31-
import com.google.gson.Gson;
32-
import com.google.gson.JsonElement;
33-
3430
@ExtendWith(SpringExtension.class)
3531
@BootLanguageServerTest
3632
@Import(SymbolProviderTestConf.class)
@@ -54,21 +50,19 @@ public void setup() throws Exception {
5450
// trigger project creation
5551
projectFinder.find(new TextDocumentIdentifier(projectDir)).get();
5652

57-
String changedSettings = """
58-
{
59-
"spring-boot": {
60-
"ls": {
61-
"problem": {
62-
"data-query": {
63-
"SQL_SYNTAX": "ERROR"
53+
harness.changeConfiguration("""
54+
{
55+
"spring-boot": {
56+
"ls": {
57+
"problem": {
58+
"data-query": {
59+
"SQL_SYNTAX": "ERROR"
60+
}
6461
}
6562
}
6663
}
67-
}
68-
}
69-
""";
70-
JsonElement settingsAsJson = new Gson().fromJson(changedSettings, JsonElement.class);
71-
harness.changeConfiguration(new Settings(settingsAsJson));
64+
}
65+
""");
7266

7367
}
7468

headless-services/spring-boot-language-server/src/test/java/org/springframework/ide/vscode/boot/java/data/test/DataRepositoryAotMetadataCodeLensProviderJdbcTest.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010
*******************************************************************************/
1111
package org.springframework.ide.vscode.boot.java.data.test;
1212

13+
import static org.junit.jupiter.api.Assertions.assertEquals;
14+
import static org.junit.jupiter.api.Assertions.assertNotNull;
15+
import static org.junit.jupiter.api.Assertions.assertTrue;
16+
1317
import java.nio.charset.StandardCharsets;
1418
import java.nio.file.Files;
1519
import java.nio.file.Path;
@@ -19,9 +23,6 @@
1923
import java.util.concurrent.CompletableFuture;
2024
import java.util.concurrent.TimeUnit;
2125

22-
import com.google.gson.JsonArray;
23-
import com.google.gson.JsonElement;
24-
import com.google.gson.JsonObject;
2526
import org.eclipse.lsp4j.CodeLens;
2627
import org.eclipse.lsp4j.TextDocumentIdentifier;
2728
import org.junit.jupiter.api.BeforeEach;
@@ -34,16 +35,15 @@
3435
import org.springframework.ide.vscode.boot.bootiful.SymbolProviderTestConf;
3536
import org.springframework.ide.vscode.commons.java.IJavaProject;
3637
import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder;
37-
import org.springframework.ide.vscode.commons.languageserver.util.Settings;
3838
import org.springframework.ide.vscode.commons.util.text.LanguageId;
3939
import org.springframework.ide.vscode.languageserver.testharness.Editor;
4040
import org.springframework.ide.vscode.project.harness.BootLanguageServerHarness;
4141
import org.springframework.ide.vscode.project.harness.ProjectsHarness;
4242
import org.springframework.test.context.junit.jupiter.SpringExtension;
4343

44-
import com.google.gson.Gson;
45-
46-
import static org.junit.jupiter.api.Assertions.*;
44+
import com.google.gson.JsonArray;
45+
import com.google.gson.JsonElement;
46+
import com.google.gson.JsonObject;
4747

4848
@ExtendWith(SpringExtension.class)
4949
@BootLanguageServerTest
@@ -62,8 +62,7 @@ public void setup() throws Exception {
6262
harness.useProject(testProject);
6363
harness.intialize(null);
6464

65-
harness.changeConfiguration(new Settings(new Gson()
66-
.toJsonTree(Map.of("boot-java", Map.of("java", Map.of("codelens-over-query-methods", true))))));
65+
harness.changeConfiguration(Map.of("boot-java", Map.of("java", Map.of("codelens-over-query-methods", true))));
6766

6867
// trigger project creation
6968
projectFinder.find(new TextDocumentIdentifier(testProject.getLocationUri().toASCIIString())).get();

0 commit comments

Comments
 (0)