@Test public void testInitialize_absoluteWorkspacePath() throws InterruptedException, ExecutionException { InitializeParams initializeParams = getInitializeParams(Optional.empty()); InitializeResult result = server.initialize(initializeParams).get(); assertInitializeResultIsCorrect(folder.getRoot().toPath().toAbsolutePath().normalize(), result); // Test normalization initializeParams = getInitializeParams(Optional.of( folder.getRoot().toPath().toAbsolutePath().toString() + "/somethingelse/..")); result = server.initialize(initializeParams).get(); assertInitializeResultIsCorrect(folder.getRoot().toPath().toAbsolutePath().normalize(), result); }
@Test public void testInitialize_uriWorkspacePath() throws InterruptedException, ExecutionException { InitializeParams params = getInitializeParams(Optional.empty()); InitializeResult result = server.initialize(params).get(); assertInitializeResultIsCorrect(folder.getRoot().toPath().toAbsolutePath().normalize(), result); // Test normalization params = getInitializeParams(Optional.of( folder.getRoot().toPath().toAbsolutePath().toString() + "/somethingelse/..")); result = server.initialize(params).get(); assertInitializeResultIsCorrect(folder.getRoot().toPath().toAbsolutePath().normalize(), result); }
@Test public void testInitialize_relativeWorkspacePath() throws InterruptedException, ExecutionException, IOException { File workspaceRoot = Paths.get("").toAbsolutePath().resolve("test-directory-to-be-deleted").toFile(); // Create a directory in our working directory // If this fails, make sure ./groovy-language-server/test-directory-to-be-deleted doesn't exist. assertThat(workspaceRoot.mkdir()).isTrue(); InitializeParams params = getInitializeParams(Optional.of("test-directory-to-be-deleted")); InitializeResult result = server.initialize(params).get(); assertInitializeResultIsCorrect(workspaceRoot.toPath(), result); // Test normalization params = getInitializeParams(Optional.of("./test-directory-to-be-deleted")); result = server.initialize(params).get(); assertInitializeResultIsCorrect(workspaceRoot.toPath(), result); params = getInitializeParams(Optional.of("somethingelse/../something/../test-directory-to-be-deleted")); result = server.initialize(params).get(); assertInitializeResultIsCorrect(workspaceRoot.toPath(), result); // Delete the directory we created in our working directory assertThat(workspaceRoot.delete()).isTrue(); }
@Test public void testInitialize_rootPathRootUri() throws Exception { InitializeParams rootPathParams = new InitializeParams(); rootPathParams.setRootPath(folder.getRoot().toPath().toString()); InitializeParams rootUriParams = new InitializeParams(); rootUriParams.setRootUri(folder.getRoot().toURI().toString()); GroovyLanguageServer pathServer = new GroovyLanguageServer(Mockito.mock(LanguageServerState.class), Mockito.mock(TextDocumentService.class), Mockito.mock(WorkspaceService.class)); pathServer.initialize(rootPathParams); GroovyLanguageServer uriServer = new GroovyLanguageServer(Mockito.mock(LanguageServerState.class), Mockito.mock(TextDocumentService.class), Mockito.mock(WorkspaceService.class)); uriServer.initialize(rootUriParams); assertThat(pathServer.getWorkspaceRoot()).isEqualTo(uriServer.getWorkspaceRoot()); }
@Test public void testInitialize_noRootPathOrRootUri() throws Exception { InitializeParams params = new InitializeParams(); assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> server.initialize(params)); }