Skip to content

Commit 955f6a5

Browse files
committed
Majority of tests fixes on Win
1 parent c7dcc8c commit 955f6a5

File tree

12 files changed

+40
-43
lines changed

12 files changed

+40
-43
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
*******************************************************************************/
1111
package org.springframework.ide.vscode.languageserver.testharness;
1212

13+
import java.io.File;
1314
import java.nio.file.Path;
1415
import java.nio.file.Paths;
1516

@@ -19,10 +20,12 @@
1920

2021
public class ClasspathTestUtil {
2122

23+
public static final String MAIN_JAVA = "main" + File.separatorChar + "java";
24+
2225
public static Path getOutputFolder(IJavaProject jp) throws Exception {
2326
for (CPE cpe : jp.getClasspath().getClasspathEntries()) {
2427
if (Classpath.isSource(cpe)) {
25-
if (cpe.getPath().endsWith("main/java")) {
28+
if (cpe.getPath().endsWith(MAIN_JAVA)) {
2629
return Paths.get(cpe.getOutputFolder());
2730
}
2831
}

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/conditionals/ConditionalOnResourceDefinitionProvider.java

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

13+
import java.nio.file.Path;
1314
import java.util.ArrayList;
1415
import java.util.Collections;
1516
import java.util.List;
@@ -22,16 +23,12 @@
2223
import org.eclipse.lsp4j.Range;
2324
import org.eclipse.lsp4j.TextDocumentIdentifier;
2425
import org.eclipse.lsp4j.jsonrpc.CancelChecker;
25-
import org.slf4j.Logger;
26-
import org.slf4j.LoggerFactory;
2726
import org.springframework.ide.vscode.boot.java.IJavaDefinitionProvider;
2827
import org.springframework.ide.vscode.commons.java.IClasspathUtil;
2928
import org.springframework.ide.vscode.commons.java.IJavaProject;
3029

3130
public class ConditionalOnResourceDefinitionProvider implements IJavaDefinitionProvider {
3231

33-
private static final Logger log = LoggerFactory.getLogger(ConditionalOnResourceDefinitionProvider.class);
34-
3532
@Override
3633
public List<LocationLink> getDefinitions(CancelChecker cancelToken, IJavaProject project,
3734
TextDocumentIdentifier docId, CompilationUnit cu, ASTNode n, int offset) {
@@ -53,12 +50,10 @@ public List<LocationLink> getDefinitions(CancelChecker cancelToken, IJavaProject
5350
private List<LocationLink> getDefinitionForClasspathResource(IJavaProject project, CompilationUnit cu, StringLiteral valueNode, String literalValue) {
5451
literalValue = literalValue.substring("classpath:".length());
5552

56-
String[] resources = findResources(project, literalValue);
57-
5853
List<LocationLink> result = new ArrayList<>();
5954

60-
for (String resource : resources) {
61-
String uri = "file://" + resource;
55+
for (Path resource : findResources(project, literalValue)) {
56+
String uri = resource.toUri().toASCIIString();
6257

6358
Position startPosition = new Position(cu.getLineNumber(valueNode.getStartPosition()) - 1,
6459
cu.getColumnNumber(valueNode.getStartPosition()));
@@ -77,13 +72,10 @@ private List<LocationLink> getDefinitionForClasspathResource(IJavaProject projec
7772
return result;
7873
}
7974

80-
private String[] findResources(IJavaProject project, String resource) {
81-
String[] resources = IClasspathUtil.getClasspathResourcesFullPaths(project.getClasspath())
75+
private Path[] findResources(IJavaProject project, String resource) {
76+
return IClasspathUtil.getClasspathResourcesFullPaths(project.getClasspath())
8277
.filter(path -> path.toString().endsWith(resource))
83-
.map(path -> path.toString())
84-
.toArray(String[]::new);
85-
86-
return resources;
78+
.toArray(Path[]::new);
8779
}
8880

8981
}

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/CompilationUnitCache.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -263,9 +263,9 @@ private synchronized CompletableFuture<CompilationUnit> requestCU(IJavaProject p
263263
try {
264264
logger.info("Started parsing CU for " + uri);
265265
Tuple2<List<Classpath>, INameEnvironmentWithProgress> lookupEnvTuple = loadLookupEnvTuple(project);
266-
String utiStr = uri.toASCIIString();
267-
String unitName = utiStr.substring(utiStr.lastIndexOf("/"));
268-
CompilationUnit cUnit = parse2(fetchContent(uri).toCharArray(), utiStr, unitName, lookupEnvTuple.getT1(), lookupEnvTuple.getT2(),
266+
String uriStr = uri.toASCIIString();
267+
String unitName = uriStr.substring(uriStr.lastIndexOf("/") + 1); // skip over '/'
268+
CompilationUnit cUnit = parse2(fetchContent(uri).toCharArray(), uriStr, unitName, lookupEnvTuple.getT1(), lookupEnvTuple.getT2(),
269269
annotationHierarchies.get(project.getLocationUri(), AnnotationHierarchies::new));
270270

271271
logger.debug("CU Cache: created new AST for {}", uri.toASCIIString());

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexerJava.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ private void scanFile(IJavaProject project, DocumentDescriptor updatedDoc, Strin
280280
content = new String(Files.readAllBytes(path));
281281
}
282282

283-
String unitName = docURI.substring(docURI.lastIndexOf("/"));
283+
String unitName = docURI.substring(docURI.lastIndexOf("/") + 1); // skip over '/'
284284
parser.setUnitName(unitName);
285285
log.debug("Scan file: {}", unitName);
286286
parser.setSource(content.toCharArray());

headless-services/spring-boot-language-server/src/main/java/org/springframework/ide/vscode/boot/java/value/ValueDefinitionProvider.java

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

13+
import java.nio.file.Path;
1314
import java.util.ArrayList;
1415
import java.util.Collections;
1516
import java.util.HashMap;
@@ -165,12 +166,10 @@ private List<Location> findValueReferences(IJavaProject project, String property
165166
private List<LocationLink> getDefinitionForClasspathResource(IJavaProject project, CompilationUnit cu, StringLiteral valueNode, String literalValue) {
166167
literalValue = literalValue.substring("classpath:".length());
167168

168-
String[] resources = findResources(project, literalValue);
169-
170169
List<LocationLink> result = new ArrayList<>();
171170

172-
for (String resource : resources) {
173-
String uri = "file://" + resource;
171+
for (Path resource : findResources(project, literalValue)) {
172+
String uri = resource.toUri().toASCIIString();
174173

175174
Position startPosition = new Position(cu.getLineNumber(valueNode.getStartPosition()) - 1,
176175
cu.getColumnNumber(valueNode.getStartPosition()));
@@ -189,13 +188,10 @@ private List<LocationLink> getDefinitionForClasspathResource(IJavaProject projec
189188
return result;
190189
}
191190

192-
private String[] findResources(IJavaProject project, String resource) {
193-
String[] resources = IClasspathUtil.getClasspathResourcesFullPaths(project.getClasspath())
191+
private Path[] findResources(IJavaProject project, String resource) {
192+
return IClasspathUtil.getClasspathResourcesFullPaths(project.getClasspath())
194193
.filter(path -> path.toString().endsWith(resource))
195-
.map(path -> path.toString())
196-
.toArray(String[]::new);
197-
198-
return resources;
194+
.toArray(Path[]::new);
199195
}
200196

201197
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public class MyComponent {
9898
}
9999
""");
100100

101-
SpringIndexerJava.createParser(project, new AnnotationHierarchies(), true).createASTs(new String[] { file.toFile().toString() }, null, new String[0], new FileASTRequestor() {
101+
SpringIndexerJava.createParser(project, new AnnotationHierarchies(), true).createASTs(new String[] { file.toString() }, null, new String[0], new FileASTRequestor() {
102102
@Override
103103
public void acceptAST(String sourceFilePath, CompilationUnit cu) {
104104
AnnotationHierarchies annotationHierarchies = AnnotationHierarchies.get(cu);

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
package org.springframework.ide.vscode.boot.java.data.test;
1212

1313
import java.io.InputStream;
14+
import java.nio.charset.Charset;
1415
import java.util.Arrays;
1516
import java.util.List;
1617

@@ -61,7 +62,7 @@ void testStandardFindByCompletions() throws Exception {
6162

6263
@Test
6364
void testPrefixSensitiveCompletionsNoPrefix() throws Exception {
64-
prepareCase("{\n}", "{\n<*>");
65+
prepareCase("{%s}".formatted(System.lineSeparator()), "{\n<*>");
6566
assertStandardCompletions();
6667
}
6768

@@ -318,28 +319,28 @@ void testAppendKeywordsStartAlreadyPresent() throws Exception {
318319
}
319320

320321
private void checkCompletionResult(String prefix, String completionLabel, String result) throws Exception {
321-
prepareCase("{\n}", "{\n\t" + prefix + "<*>\n}");
322+
prepareCase("{%s}".formatted(System.lineSeparator()), "{\n\t" + prefix + "<*>\n}");
322323
List<CompletionItem> completions = editor.getCompletions();
323324

324325
for (CompletionItem foundCompletion : completions) {
325326
if (foundCompletion.getLabel().contains(completionLabel)) {
326327
Editor clonedEditor = editor.clone();
327328
clonedEditor.apply(foundCompletion);
328-
assertEquals(result, clonedEditor.getText());
329+
assertEquals(result.replace(System.lineSeparator(), "\n"), clonedEditor.getText().replace(System.lineSeparator(), "\n"));
329330
return;
330331
}
331332
}
332333
fail("Didn't find the proposal with label: " + completionLabel);
333334
}
334335

335336
private void checkCompletions(String alredyPresent, String... expectedCompletions) throws Exception {
336-
prepareCase("{\n}", "{\n\t" + alredyPresent + "<*>");
337+
prepareCase("{%s}".formatted(System.lineSeparator()), "{\n\t" + alredyPresent + "<*>");
337338
assertContainsAnnotationCompletions(Arrays.stream(expectedCompletions).map(expected -> "\t" + expected + "<*>").toArray(String[]::new));
338339
}
339340

340341
private void prepareCase(String selectedAnnotation, String annotationStatementBeforeTest) throws Exception {
341342
InputStream resource = this.getClass().getResourceAsStream("/test-projects/test-spring-data-symbols/src/main/java/org/test/TestCustomerRepositoryForCompletions.java");
342-
String content = IOUtils.toString(resource);
343+
String content = IOUtils.toString(resource, Charset.defaultCharset());
343344

344345
content = content.replace(selectedAnnotation, annotationStatementBeforeTest);
345346
editor = new Editor(harness, content, LanguageId.JAVA);

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212

1313
import static org.junit.jupiter.api.Assertions.assertTrue;
1414

15+
import java.io.File;
16+
import java.nio.file.Paths;
1517
import java.time.Duration;
1618
import java.util.Collections;
1719

@@ -698,7 +700,7 @@ void componentWithAutomaticallyWiredConstructorInjections() throws Exception {
698700
.add(LiveBean.builder()
699701
.id("dependencyA")
700702
.type("com.example.DependencyA")
701-
.fileResource(harness.getOutputFolder() + "/com/example/DependencyA.class")
703+
.fileResource(harness.getOutputFolder().resolve(Paths.get("com/example/DependencyA.class")).toFile().toString())
702704
.build()
703705
)
704706
.add(LiveBean.builder()
@@ -730,16 +732,16 @@ void componentWithAutomaticallyWiredConstructorInjections() throws Exception {
730732
);
731733
editor.assertHighlights("@Component", "AutowiredClass", "depA", "depB");
732734
editor.assertTrimmedHover("@Component",
733-
"**&#8592; `DependencyA` `DependencyB`**\n" +
735+
("**&#8592; `DependencyA` `DependencyB`**\n" +
734736
"- Bean: `dependencyA` \n" +
735737
" Type: `com.example.DependencyA` \n" +
736-
" Resource: `com/example/DependencyA.class`\n" +
738+
" Resource: `com%sexample%sDependencyA.class`\n" +
737739
"- Bean: `dependencyB` \n" +
738740
" Type: `com.example.DependencyB` \n" +
739741
" Resource: `com/example/DependencyB.class`\n" +
740742
" \n" +
741743
"Bean id: `autowiredClass` \n" +
742-
"Process [PID=111, name=`the-app`]\n"
744+
"Process [PID=111, name=`the-app`]\n").formatted(File.separatorChar, File.separatorChar)
743745
);
744746
}
745747

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ private void assertSnippets(List<CompletionItem> completions, String... expected
254254
for (int i = 0; i < expected.length; i++) {
255255
Editor clonedEditor = editor.clone();
256256
clonedEditor.apply(completions.get(i));
257-
assertEquals(expected[i], clonedEditor.getText());
257+
assertEquals(expected[i].replace(System.lineSeparator(), "\n"), clonedEditor.getText().replace(System.lineSeparator(), "\n"));
258258
}
259259
}
260260

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,9 @@ void testSpelExpressionsWithPropertyPlaceholder_withErrors() throws Exception {
353353
assertEquals(1, problems.size());
354354

355355
ReconcileProblem problem = problems.get(0);
356-
assertEquals(199, problem.getOffset());
356+
String lookingFor = "#{${property.";
357+
int offset = doc.get().indexOf(lookingFor);
358+
assertEquals(offset + lookingFor.length(), problem.getOffset());
357359
assertEquals(0, problem.getLength());
358360
assertEquals(SpelProblemType.PROPERTY_PLACE_HOLDER_SYNTAX, problem.getType());
359361
assertTrue(problem.getMessage().startsWith("Place-Holder:"));

0 commit comments

Comments
 (0)