Skip to content

Commit

Permalink
add AbstractTest and AbstractTestWithProject classes
Browse files Browse the repository at this point in the history
  • Loading branch information
sebthom committed May 17, 2024
1 parent c9a3ce1 commit d855a35
Show file tree
Hide file tree
Showing 49 changed files with 293 additions and 599 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@
import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition;
import org.eclipse.lsp4e.LanguageServerPlugin;
import org.eclipse.lsp4e.LanguageServersRegistry;
import org.eclipse.lsp4e.test.utils.AbstractTest;
import org.eclipse.lsp4e.test.utils.TestUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class ContentTypeToLanguageServerDefinitionTest {
public class ContentTypeToLanguageServerDefinitionTest extends AbstractTest {

public static final String SERVER_TO_DISABLE = "org.eclipse.lsp4e.test.server.disable";
public static final String DISABLED_CONTENT_TYPE = "org.eclipse.lsp4e.test.content-type-disabled";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
package org.eclipse.lsp4e.test;

import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.matchesPattern;
import static org.junit.Assert.*;

import java.io.IOException;
Expand All @@ -27,31 +29,25 @@
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.lsp4e.LanguageServerWrapper;
import org.eclipse.lsp4e.LanguageServiceAccessor;
import org.eclipse.lsp4e.test.utils.AllCleanRule;
import org.eclipse.lsp4e.test.utils.AbstractTestWithProject;
import org.eclipse.lsp4e.test.utils.MockConnectionProviderWithStartException;
import org.eclipse.lsp4e.test.utils.TestUtils;
import org.eclipse.ui.IEditorPart;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

public class LanguageServerWrapperTest {
public class LanguageServerWrapperTest extends AbstractTestWithProject {

private IProject project1;
private IProject project2;

@Rule
public AllCleanRule clear = new AllCleanRule();

@Before
public void setUp() throws CoreException {
project1 = TestUtils.createProject("LanguageServerWrapperTestProject1" + System.currentTimeMillis());
public void setUp() throws Exception {
project2 = TestUtils.createProject("LanguageServerWrapperTestProject2" + System.currentTimeMillis());
}

@Test
public void testConnect() throws Exception {
IFile testFile1 = TestUtils.createFile(project1, "shouldUseExtension.lsptWithMultiRoot", "");
IFile testFile1 = TestUtils.createFile(project, "shouldUseExtension.lsptWithMultiRoot", "");
IFile testFile2 = TestUtils.createFile(project2, "shouldUseExtension.lsptWithMultiRoot", "");

IEditorPart editor1 = TestUtils.openEditor(testFile1);
Expand All @@ -64,8 +60,8 @@ public void testConnect() throws Exception {
LanguageServerWrapper wrapper = wrappers.iterator().next();
waitForAndAssertCondition(2_000, () -> wrapper.isActive());

// e.g. LanguageServerWrapper@69fe8c75 [serverId=org.eclipse.lsp4e.test.server-with-multi-root-support, initialPath=null, initialProject=P/LanguageServerWrapperTestProject11691664858710, isActive=true]
assertTrue(wrapper.toString().matches("LanguageServerWrapper@[0-9a-f]+ \\[serverId=org.eclipse.lsp4e.test.server-with-multi-root-support, initialPath=null, initialProject=P\\/LanguageServerWrapperTestProject1[0-9]+, isActive=true, pid=(null|[0-9])+\\]"));
// e.g. LanguageServerWrapper@69fe8c75 [serverId=org.eclipse.lsp4e.test.server-with-multi-root-support, initialPath=null, initialProject=P/LanguageServerWrapperTest_testConnect_11691664858710, isActive=true]
assertThat(wrapper.toString(), matchesPattern("LanguageServerWrapper@[0-9a-f]+ \\[serverId=org.eclipse.lsp4e.test.server-with-multi-root-support, initialPath=null, initialProject=P\\/LanguageServerWrapperTest_testConnect_[0-9]+, isActive=true, pid=(null|[0-9])+\\]"));

assertTrue(wrapper.isConnectedTo(testFile1.getLocationURI()));
assertTrue(wrapper.isConnectedTo(testFile2.getLocationURI()));
Expand All @@ -80,7 +76,7 @@ public void testConnect() throws Exception {
*/
@Test
public void testStopAndActive() throws CoreException, IOException, AssertionError, InterruptedException, ExecutionException {
IFile testFile1 = TestUtils.createFile(project1, "shouldUseExtension.lsptWithMultiRoot", "");
IFile testFile1 = TestUtils.createFile(project, "shouldUseExtension.lsptWithMultiRoot", "");
IEditorPart editor1 = TestUtils.openEditor(testFile1);
@NonNull Collection<LanguageServerWrapper> wrappers = LanguageServiceAccessor.getLSWrappers(testFile1, request -> true);
assertEquals(1, wrappers.size());
Expand Down Expand Up @@ -120,7 +116,7 @@ public void testStopAndActive() throws CoreException, IOException, AssertionErro

@Test
public void testStartExceptionRace() throws Exception {
IFile testFile1 = TestUtils.createFile(project1, "shouldUseExtension.lsptStartException", "");
IFile testFile1 = TestUtils.createFile(project, "shouldUseExtension.lsptStartException", "");

IEditorPart editor1 = TestUtils.openEditor(testFile1);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,6 @@
import java.util.function.Predicate;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.jface.text.IDocument;
Expand All @@ -45,7 +43,7 @@
import org.eclipse.lsp4e.LanguageServers;
import org.eclipse.lsp4e.LanguageServers.LanguageServerDocumentExecutor;
import org.eclipse.lsp4e.internal.Pair;
import org.eclipse.lsp4e.test.utils.AllCleanRule;
import org.eclipse.lsp4e.test.utils.AbstractTestWithProject;
import org.eclipse.lsp4e.test.utils.MockConnectionProvider;
import org.eclipse.lsp4e.test.utils.TestUtils;
import org.eclipse.lsp4e.tests.mock.MockLanguageServer;
Expand All @@ -65,24 +63,12 @@
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.tests.harness.util.DisplayHelper;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

public class LanguageServersTest {

@Rule
public AllCleanRule clear = new AllCleanRule();

private IProject project;
public class LanguageServersTest extends AbstractTestWithProject {

private final Predicate<ServerCapabilities> MATCH_ALL = sc -> true;

@Before
public void setUp() throws CoreException {
project = TestUtils.createProject("LanguageServersTest" + System.currentTimeMillis());
}

@Test
public void testCollectAll() throws Exception {
final AtomicInteger hoverCount = new AtomicInteger();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,7 @@
import static org.eclipse.lsp4e.LanguageServiceAccessor.getLSWrapper;
import static org.eclipse.lsp4e.LanguageServiceAccessor.getLSWrappers;
import static org.eclipse.lsp4e.LanguageServiceAccessor.hasActiveLanguageServers;
import static org.eclipse.lsp4e.test.utils.TestUtils.createFile;
import static org.eclipse.lsp4e.test.utils.TestUtils.createProject;
import static org.eclipse.lsp4e.test.utils.TestUtils.createTempFile;
import static org.eclipse.lsp4e.test.utils.TestUtils.createUniqueTestFile;
import static org.eclipse.lsp4e.test.utils.TestUtils.createUniqueTestFileMultiLS;
import static org.eclipse.lsp4e.test.utils.TestUtils.openEditor;
import static org.eclipse.lsp4e.test.utils.TestUtils.openTextViewer;
import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition;
import static org.eclipse.lsp4e.test.utils.TestUtils.waitForCondition;
import static org.eclipse.lsp4e.test.utils.TestUtils.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
Expand All @@ -40,7 +32,6 @@
import java.util.function.Predicate;

import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Platform;
Expand All @@ -51,31 +42,20 @@
import org.eclipse.lsp4e.LanguageServerPlugin;
import org.eclipse.lsp4e.LanguageServers;
import org.eclipse.lsp4e.LanguageServersRegistry;
import org.eclipse.lsp4e.test.utils.AllCleanRule;
import org.eclipse.lsp4e.test.utils.AbstractTestWithProject;
import org.eclipse.lsp4e.test.utils.MappingEnablementTester;
import org.eclipse.lsp4e.tests.mock.MockLanguageServer;
import org.eclipse.lsp4e.tests.mock.MockLanguageServerMultiRootFolders;
import org.eclipse.lsp4e.ui.UI;
import org.eclipse.lsp4j.ServerCapabilities;
import org.eclipse.ui.ide.IDE;
import org.eclipse.ui.texteditor.ITextEditor;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

public class LanguageServiceAccessorTest {
public class LanguageServiceAccessorTest extends AbstractTestWithProject {

private static final Predicate<ServerCapabilities> MATCH_ALL = capabilities -> true;

@Rule
public AllCleanRule clear = new AllCleanRule();
private IProject project;

@Before
public void setUp() throws CoreException {
project = createProject("LanguageServiceAccessorTest" + System.currentTimeMillis());
}

@Test
public void testGetLSWrapper() throws IOException {
var serverDefinition = LanguageServersRegistry.getInstance().getDefinition("org.eclipse.lsp4e.test.server");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,32 +20,20 @@
import java.util.List;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition;
import org.eclipse.lsp4e.LanguageServerWrapper;
import org.eclipse.lsp4e.LanguageServiceAccessor;
import org.eclipse.lsp4e.test.utils.AllCleanRule;
import org.eclipse.lsp4e.test.utils.AbstractTestWithProject;
import org.eclipse.lsp4e.test.utils.TestUtils;
import org.eclipse.lsp4e.tests.mock.MockLanguageServer;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.texteditor.AbstractTextEditor;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

public class RunningLanguageServerTest {

private IProject project;

@Rule public AllCleanRule clear = new AllCleanRule();

@Before
public void setUp() throws CoreException {
project = TestUtils.createProject("StartStopServerTest" + System.currentTimeMillis());
}
public class RunningLanguageServerTest extends AbstractTestWithProject {

/**
* checks if language servers get started and shutdown correctly if opening and
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,13 @@
import java.util.List;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.lsp4e.LSPEclipseUtils;
import org.eclipse.lsp4e.LanguageServers;
import org.eclipse.lsp4e.VersionedEdits;
import org.eclipse.lsp4e.internal.DocumentUtil;
import org.eclipse.lsp4e.test.utils.AllCleanRule;
import org.eclipse.lsp4e.test.utils.AbstractTestWithProject;
import org.eclipse.lsp4e.test.utils.TestUtils;
import org.eclipse.lsp4e.tests.mock.MockLanguageServer;
import org.eclipse.lsp4j.DocumentFormattingParams;
Expand All @@ -38,20 +36,9 @@
import org.eclipse.lsp4j.ServerCapabilities;
import org.eclipse.lsp4j.TextEdit;
import org.eclipse.ui.IEditorPart;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

public class VersioningSupportTest {
@Rule
public AllCleanRule clear = new AllCleanRule();

private IProject project;

@Before
public void setUp() throws CoreException {
project = TestUtils.createProject("VersioningSupportTest" + System.currentTimeMillis());
}
public class VersioningSupportTest extends AbstractTestWithProject {

@Test
public void testVersionSupportSuccess() throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,13 @@
import java.net.URI;
import java.util.Collection;
import java.util.List;
import java.util.function.Supplier;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.lsp4e.ConnectDocumentToLanguageServerSetupParticipant;
import org.eclipse.lsp4e.LanguageServerWrapper;
import org.eclipse.lsp4e.LanguageServiceAccessor;
import org.eclipse.lsp4e.test.utils.AllCleanRule;
import org.eclipse.lsp4e.test.utils.AbstractTestWithProject;
import org.eclipse.lsp4e.test.utils.TestUtils;
import org.eclipse.lsp4e.test.utils.TestUtils.JobSynchronizer;
import org.eclipse.lsp4e.tests.mock.MockLanguageServer;
Expand All @@ -41,18 +38,13 @@
import org.eclipse.lsp4j.WorkspaceFoldersOptions;
import org.eclipse.lsp4j.WorkspaceServerCapabilities;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

public class WorkspaceFoldersTest implements Supplier<ServerCapabilities> {

@Rule public AllCleanRule clear = new AllCleanRule(this);
private IProject project;
public class WorkspaceFoldersTest extends AbstractTestWithProject {

@Before
public void setUp() throws CoreException {
public void setUp() {
MockLanguageServer.INSTANCE.getWorkspaceService().getWorkspaceFoldersEvents().clear();
project = TestUtils.createProject("WorkspaceFoldersTest" + System.currentTimeMillis());
}

@Test
Expand Down Expand Up @@ -193,7 +185,7 @@ public void testProjectReopen() throws Exception {
}

@Override
public ServerCapabilities get() {
public ServerCapabilities getServerCapabilities() {
// Enable workspace folders on the mock server (for this test only)
final ServerCapabilities base = MockLanguageServer.defaultServerCapabilities();

Expand Down

0 comments on commit d855a35

Please sign in to comment.