From c6febf594685e6d8f4576c5ab64dba7876b965a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kroi=C3=9F=2C=20Florian?= Date: Sun, 16 Nov 2025 11:11:06 +0100 Subject: [PATCH] refactor(tests): Upgrade tests to JUnit 5 --- org.eclipse.lsp4e.test/META-INF/MANIFEST.MF | 6 +- ...entTypeToLanguageServerDefinitionTest.java | 14 +- .../lsp4e/test/LanguageServerWrapperTest.java | 11 +- .../lsp4e/test/LanguageServersTest.java | 72 +++++----- .../test/LanguageServiceAccessorTest.java | 32 +++-- .../lsp4e/test/RunningLanguageServerTest.java | 14 +- .../lsp4e/test/VersioningSupportTest.java | 12 +- .../lsp4e/test/WorkspaceFoldersTest.java | 8 +- .../CallHierarchyLabelProviderTest.java | 8 +- .../CallHierarchyViewContentTest.java | 15 ++- .../test/codeactions/CodeActionTests.java | 19 +-- .../eclipse/lsp4e/test/color/ColorTest.java | 6 +- .../commands/DynamicRegistrationTest.java | 11 +- .../completion/AbstractCompletionTest.java | 6 +- .../completion/CompleteCompletionTest.java | 12 +- .../completion/CompletionOrderingTests.java | 5 +- .../completion/ContextInformationTest.java | 9 +- .../DynamicCompletionRegistrationTest.java | 10 +- .../completion/IncompleteCompletionTest.java | 10 +- .../InsertReplaceCompletionTest.java | 4 +- .../completion/ScoreOfFilterMatchTest.java | 19 +-- .../completion/VariableReplacementTest.java | 4 +- .../debug/DebugScopesAndVariablesTest.java | 48 +++---- .../eclipse/lsp4e/test/debug/DebugTest.java | 12 +- .../JsonParserWithStringSubstitutionTest.java | 13 +- .../declaration/LSBasedHyperlinkTest.java | 4 +- .../lsp4e/test/definition/DefinitionTest.java | 8 +- .../HyperlinkDetectorErrorHandlingTest.java | 9 +- .../test/diagnostics/DiagnosticsTest.java | 14 +- .../DocumentLinkReconcilingTest.java | 4 +- .../test/documentLink/DocumentLinkTest.java | 5 +- .../test/edit/DocumentDidChangeTest.java | 8 +- .../lsp4e/test/edit/DocumentDidCloseTest.java | 6 +- .../lsp4e/test/edit/DocumentDidOpenTest.java | 6 +- .../lsp4e/test/edit/DocumentDidSaveTest.java | 6 +- .../test/edit/DocumentEditAndUndoTest.java | 9 +- .../test/edit/DocumentRevertAndCloseTest.java | 4 +- .../edit/DocumentWillSaveWaitUntilTest.java | 4 +- .../lsp4e/test/edit/LSPEclipseUtilsTest.java | 123 +++++++++--------- .../test/folding/FoldingCommandsTest.java | 5 +- .../lsp4e/test/folding/FoldingTest.java | 4 +- .../format/FormatHandlerReadOnlyTest.java | 4 +- .../format/FormatRegionsProviderUtilTest.java | 4 +- .../eclipse/lsp4e/test/format/FormatTest.java | 10 +- .../lsp4e/test/highlight/HighlightTest.java | 16 +-- .../eclipse/lsp4e/test/hover/HoverTest.java | 30 ++--- .../test/internal/CharsInputStreamTest.java | 5 +- .../internal/DocumentInputStreamTest.java | 9 +- .../internal/HumanFriendlyComparatorTest.java | 4 +- .../test/linkedediting/LinkedEditingTest.java | 20 +-- .../lsp4e/test/message/ShowMessageTest.java | 2 +- .../codelens/LSPCodeMiningTest.java | 4 +- .../LSPLineContentCodeMiningTest.java | 4 +- .../EditorToOutlineAdapterFactoryTest.java | 17 +-- .../test/outline/OutlineContentTest.java | 7 +- .../test/outline/OutlineViewerInputTest.java | 18 +-- .../outline/SymbolsLabelProviderTest.java | 5 +- .../test/references/FindReferencesTest.java | 30 +++-- .../lsp4e/test/rename/LSPTextChangeTest.java | 5 +- .../eclipse/lsp4e/test/rename/RenameTest.java | 7 +- ...manticHighlightReconcilerStrategyTest.java | 9 +- ...SemanticTokensDataStreamProcessorTest.java | 4 +- .../SemanticTokensLegendProviderTest.java | 6 +- .../semanticTokens/StyleRangeHolderTest.java | 5 +- .../semanticTokens/StyleRangeMergerTest.java | 6 +- .../server/StreamConnectionProviderTest.java | 9 +- .../lsp4e/test/symbols/SymbolsModelTest.java | 6 +- .../lsp4e/test/utils/AbstractTest.java | 24 ++-- .../test/utils/AbstractTestWithProject.java | 19 ++- ...lCleanRule.java => AllCleanExtension.java} | 18 +-- .../lsp4e/test/utils/NoErrorLoggedRule.java | 19 +-- .../lsp4e/test/utils/TestInfoExtension.java | 27 ++++ .../lsp4e/test/utils/TestInfoRule.java | 46 ------- .../eclipse/lsp4e/test/utils/TestUtils.java | 4 +- 74 files changed, 543 insertions(+), 459 deletions(-) rename org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/{AllCleanRule.java => AllCleanExtension.java} (81%) create mode 100644 org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestInfoExtension.java delete mode 100644 org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestInfoRule.java diff --git a/org.eclipse.lsp4e.test/META-INF/MANIFEST.MF b/org.eclipse.lsp4e.test/META-INF/MANIFEST.MF index b8f31ee6b..6fc839b54 100644 --- a/org.eclipse.lsp4e.test/META-INF/MANIFEST.MF +++ b/org.eclipse.lsp4e.test/META-INF/MANIFEST.MF @@ -8,7 +8,6 @@ Bundle-Vendor: Eclipse LSP4E Bundle-RequiredExecutionEnvironment: JavaSE-21 Require-Bundle: org.eclipse.core.runtime, org.eclipse.core.resources, - org.junit, org.eclipse.ui, org.eclipse.ui.workbench, org.eclipse.ui.ide, @@ -29,5 +28,8 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.e4.ui.model.workbench, org.eclipse.e4.ui.workbench, org.eclipse.tm4e.ui, - org.eclipse.core.filesystem + org.eclipse.core.filesystem, + junit-jupiter-api, + org.hamcrest, + org.opentest4j Automatic-Module-Name: org.eclipse.lsp4e.test diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/ContentTypeToLanguageServerDefinitionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/ContentTypeToLanguageServerDefinitionTest.java index 34ecb13cc..046504c0e 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/ContentTypeToLanguageServerDefinitionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/ContentTypeToLanguageServerDefinitionTest.java @@ -11,8 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; @@ -21,9 +21,9 @@ 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; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; public class ContentTypeToLanguageServerDefinitionTest extends AbstractTest { @@ -31,12 +31,12 @@ public class ContentTypeToLanguageServerDefinitionTest extends AbstractTest { public static final String DISABLED_CONTENT_TYPE = "org.eclipse.lsp4e.test.content-type-disabled"; public static final String DISABLED_SERVER_PREF = SERVER_TO_DISABLE + "/" + DISABLED_CONTENT_TYPE; - @BeforeClass + @BeforeAll public static void setup() { LanguageServerPlugin.getDefault().getPreferenceStore().setValue(DISABLED_SERVER_PREF, "false"); } - @AfterClass + @AfterAll public static void cleanup() { TestUtils.getDisabledLS().setUserEnabled(false); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServerWrapperTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServerWrapperTest.java index 7cb13eb9d..4c3d0ed22 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServerWrapperTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServerWrapperTest.java @@ -14,7 +14,8 @@ 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 static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Collection; import java.util.concurrent.CompletableFuture; @@ -31,14 +32,14 @@ import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockConnectionProviderMultiRootFolders; import org.eclipse.ui.IEditorPart; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; public class LanguageServerWrapperTest extends AbstractTestWithProject { private IProject project2; - @Before + @BeforeEach public void setUp() throws Exception { project2 = TestUtils.createProject("LanguageServerWrapperTestProject2" + System.currentTimeMillis()); } @@ -134,7 +135,7 @@ public void testStartStopAndActive() throws CoreException, AssertionError { Integer cpStartCount= MockConnectionProviderMultiRootFolders.getStartCount(); Integer cpStopCount= MockConnectionProviderMultiRootFolders.getStopCount(); - assertEquals("startCount == stopCount", cpStartCount, cpStopCount); + assertEquals(cpStartCount, cpStopCount, "startCount == stopCount"); } } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServersTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServersTest.java index 07a364e6e..c50c27745 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServersTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServersTest.java @@ -13,8 +13,16 @@ package org.eclipse.lsp4e.test; import static org.eclipse.lsp4e.LanguageServiceAccessor.hasActiveLanguageServers; -import static org.eclipse.lsp4e.test.utils.TestUtils.*; -import static org.junit.Assert.*; +import static org.eclipse.lsp4e.test.utils.TestUtils.createUniqueTestFile; +import static org.eclipse.lsp4e.test.utils.TestUtils.openEditor; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForCondition; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assumptions.assumeTrue; import java.util.Collections; import java.util.List; @@ -55,8 +63,7 @@ import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.tests.harness.util.DisplayHelper; -import org.junit.Assume; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class LanguageServersTest extends AbstractTestWithProject { @@ -172,11 +179,11 @@ public synchronized CompletableFuture hover(HoverParams position) { .withCapability(ServerCapabilities::getHoverProvider) .computeAll(ls -> ls.getTextDocumentService().hover(params).thenApply(h -> h.getContents().getLeft().get(0).getLeft())); - assertEquals("Should have had two responses", 2, result.size()); + assertEquals(2, result.size(), "Should have had two responses"); final Object first = CompletableFuture.anyOf(result.get(0), result.get(1)).join(); - assertEquals("HoverContent1 should have returned first, independently", "HoverContent1", first); + assertEquals("HoverContent1", first, "HoverContent1 should have returned first, independently"); List hovers = result.stream().map(CompletableFuture::join).toList(); @@ -195,7 +202,7 @@ public synchronized CompletableFuture hover(HoverParams position) { @Test public void testCollectAllUserCannotBlockListener() throws Exception { // This test will only work if a minimum of two tasks can be run in the common pool without blocking! - Assume.assumeTrue("Test skipped as common thread pool does not have multiple executors", ForkJoinPool.commonPool().getParallelism() >= 2); + assumeTrue(ForkJoinPool.commonPool().getParallelism() >= 2, "Test skipped as common thread pool does not have multiple executors"); final var hoverResponse = new Hover(List.of(Either.forLeft("HoverContent")), new Range(new Position(0, 0), new Position(0, 10))); MockLanguageServer.INSTANCE.setHover(hoverResponse); @@ -235,8 +242,8 @@ public void testCollectAllUserCannotBlockListener() throws Exception { final String resultThread = resultThreadFuture.join(); - assertTrue("Second hover response should not have been blocked by the first but took " + secondResponseTime + " ms", secondResponseTime < 1000); - assertTrue("Result should not have run on an LS listener thread but ran on " + resultThread, !resultThread.startsWith("LS")); + assertTrue(secondResponseTime < 1000, "Second hover response should not have been blocked by the first but took " + secondResponseTime + " ms"); + assertTrue(!resultThread.startsWith("LS"), "Result should not have run on an LS listener thread but ran on " + resultThread); } @Test @@ -283,7 +290,7 @@ public synchronized CompletableFuture hover(HoverParams position) { Optional result = response.join(); assertTrue(result.isPresent()); - assertEquals("HoverContent1 should have arrived first", "HoverContent1", result.get()); + assertEquals("HoverContent1", result.get(), "HoverContent1 should have arrived first"); // It won't *normally) matter in production but because the tests run quickly, make sure the test teardown doesn't // occur before the slower, ignored result has completed, otherwise will get a load of console noise @@ -331,9 +338,9 @@ public synchronized CompletableFuture hover(HoverParams position) { .computeFirst(ls -> ls.getTextDocumentService().hover(params).thenApply(h -> h == null ? null : h.getContents().getLeft().get(0).getLeft())); Optional result = response.join(); - assertTrue("Should have returned a result", result.isPresent()); + assertTrue(result.isPresent(), "Should have returned a result"); - assertEquals("HoverContent2 should have been the result", "HoverContent2", result.get()); + assertEquals("HoverContent2", result.get(), "HoverContent2 should have been the result"); } @@ -366,7 +373,7 @@ public synchronized CompletableFuture hover(HoverParams position) { .computeFirst(ls -> ls.getTextDocumentService().hover(params).thenApply(h -> h == null ? null : h.getContents().getLeft().get(0).getLeft())); Optional result = response.join(); - assertTrue("Should not have returned a result", result.isEmpty()); + assertTrue(result.isEmpty(), "Should not have returned a result"); } @Test @@ -410,9 +417,9 @@ public synchronized CompletableFuture hover(HoverParams position) { .computeFirst(ls -> ls.getTextDocumentService().hover(params).thenApply(h -> h == null ? Collections.emptyList() : List.of(h.getContents().getLeft().get(0).getLeft()))); Optional> result = response.join(); - assertTrue("Should have returned a result", result.isPresent()); + assertTrue(result.isPresent(), "Should have returned a result"); - assertEquals("HoverContent2 should have been the result", "HoverContent2", result.get().get(0)); + assertEquals("HoverContent2", result.get().get(0), "HoverContent2 should have been the result"); } /** @@ -492,7 +499,7 @@ public synchronized CompletableFuture hover(HoverParams position) { message.append(" Too Late " );message.append(i); message.append(System.lineSeparator()); }); - assertTrue(message.toString(), tooEarlyHover.isEmpty() && tooLateHover.isEmpty()); + assertTrue(tooEarlyHover.isEmpty() && tooLateHover.isEmpty(), message.toString()); } /** @@ -580,8 +587,8 @@ public synchronized CompletableFuture hover(HoverParams position) { final long finishTime = System.currentTimeMillis() - startTime; - assertTrue(String.format("Dispatch should not have blocked but took %d ms vs overall test time of %d ms", dispatchTime, finishTime), dispatchTime < 1000); - assertEquals("Should not have been any messages dispatched on UI thread", 0, uiDispatchCount.get()); + assertTrue(dispatchTime < 1000, String.format("Dispatch should not have blocked but took %d ms vs overall test time of %d ms", dispatchTime, finishTime)); + assertEquals(0, uiDispatchCount.get(), "Should not have been any messages dispatched on UI thread"); } @Test @@ -590,7 +597,7 @@ public void testAnyMatchingIsNonBlocking() throws Exception { long start = System.currentTimeMillis(); assertFalse(LanguageServers.forProject(project).anyMatching()); long duration = System.currentTimeMillis() - start; - assertTrue("LanguageServers.anyMatching() took too long: " + duration + "ms", duration < 100); + assertTrue(duration < 100, "LanguageServers.anyMatching() took too long: " + duration + "ms"); // test with one slow LS available MockLanguageServer.INSTANCE.setTimeToProceedQueries(5_000); @@ -600,7 +607,7 @@ public void testAnyMatchingIsNonBlocking() throws Exception { try { assertTrue(LanguageServers.forProject(project).anyMatching()); duration = System.currentTimeMillis() - start; - assertTrue("LanguageServers.anyMatching() took too long: " + duration + "ms", duration < 100); + assertTrue(duration < 100, "LanguageServers.anyMatching() took too long: " + duration + "ms"); } finally { editor1.getSite().getPage().closeEditor(editor1, false); } @@ -617,7 +624,7 @@ public void testNoMatchingServers() throws Exception { LanguageServerDocumentExecutor executor = LanguageServers.forDocument(document).withFilter(sc -> false); - assertFalse("Should not have been any valid LS", executor.anyMatching()); + assertFalse(executor.anyMatching(), "Should not have been any valid LS"); final var params = new HoverParams(); final var position = new Position(); @@ -626,10 +633,10 @@ public void testNoMatchingServers() throws Exception { params.setPosition(position); Optional result = executor.computeFirst(ls -> ls.getTextDocumentService().hover(params)).get(10, TimeUnit.SECONDS); - assertFalse("Should not have had a result", result.isPresent()); + assertFalse(result.isPresent(), "Should not have had a result"); List collectedResult = executor.collectAll(ls -> ls.getTextDocumentService().hover(params)).get(10, TimeUnit.SECONDS); - assertTrue("Should not have had a result", collectedResult.isEmpty()); + assertTrue(collectedResult.isEmpty(), "Should not have had a result"); List> allResults = executor.computeAll(ls -> ls.getTextDocumentService().hover(params)); for (CompletableFuture f : allResults) { @@ -638,7 +645,7 @@ public void testNoMatchingServers() throws Exception { } } - @Test(expected=CompletionException.class) + @Test public void testComputeFirstBubblesException() throws Exception { MockLanguageServer.INSTANCE.setTextDocumentService(new MockTextDocumentService(MockLanguageServer.INSTANCE::buildMaybeDelayedFuture) { @Override @@ -664,11 +671,14 @@ public synchronized CompletableFuture hover(HoverParams position) { position.setLine(0); params.setPosition(position); - CompletableFuture> response = LanguageServers.forDocument(document) - .withCapability(ServerCapabilities::getHoverProvider) - .computeFirst(ls -> ls.getTextDocumentService().hover(params).thenApply(h -> h == null ? null : h.getContents().getLeft().get(0).getLeft())); + assertThrows(CompletionException.class, () -> { + CompletableFuture> response = LanguageServers.forDocument(document) + .withCapability(ServerCapabilities::getHoverProvider) + .computeFirst(ls -> ls.getTextDocumentService().hover(params) + .thenApply(h -> h == null ? null : h.getContents().getLeft().get(0).getLeft())); - response.join(); + response.join(); + }); } /** @@ -700,8 +710,8 @@ public void testWrapperWrapsSameLS() throws Exception { final var matching = new AtomicInteger(); - assertEquals("Should have had two responses", 2, result.size()); - assertNotEquals("LS should have been different proxies", result.get(0).second(), result.get(1).second()); + assertEquals(2, result.size(), "Should have had two responses"); + assertNotEquals(result.get(0).second(), result.get(1).second(), "LS should have been different proxies"); result.forEach(p -> { p.first().execute(ls -> { if (ls == p.second()) { @@ -711,7 +721,7 @@ public void testWrapperWrapsSameLS() throws Exception { }).join(); }); - assertEquals("Wrapper should have used same LS", 2, matching.get()); + assertEquals(2, matching.get(), "Wrapper should have used same LS"); } /** diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServiceAccessorTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServiceAccessorTest.java index 7e23250de..fa8c3fdba 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServiceAccessorTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServiceAccessorTest.java @@ -13,10 +13,26 @@ *******************************************************************************/ package org.eclipse.lsp4e.test; -import static org.eclipse.lsp4e.LSPEclipseUtils.*; -import static org.eclipse.lsp4e.LanguageServiceAccessor.*; -import static org.eclipse.lsp4e.test.utils.TestUtils.*; -import static org.junit.Assert.*; +import static org.eclipse.lsp4e.LSPEclipseUtils.getDocument; +import static org.eclipse.lsp4e.LSPEclipseUtils.getTextViewer; +import static org.eclipse.lsp4e.LanguageServiceAccessor.getLSPDocumentInfosFor; +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.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.concurrent.CompletableFuture; @@ -41,7 +57,7 @@ import org.eclipse.lsp4j.ServerCapabilities; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.texteditor.ITextEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class LanguageServiceAccessorTest extends AbstractTestWithProject { @@ -130,8 +146,8 @@ public void testReuseSameLSforMultiContentType() throws Exception { var file1LS = file1LanguageServers.get(0).serverDefinition; assertTrue(file2LanguageServers.contains(file1LS)); // LS from file1 is reused - assertEquals("Not right amount of language servers bound to project", 2, - LanguageServers.forProject(project).computeAll(ls -> CompletableFuture.completedFuture(null)).size()); + assertEquals(2, LanguageServers.forProject(project).computeAll(ls -> CompletableFuture.completedFuture(null)).size(), + "Not right amount of language servers bound to project"); } @Test @@ -317,7 +333,7 @@ public void testLanguageServerHierarchy_parentContentTypeUsed() throws Exception var servers = getLSWrappers(testFile, MATCH_ALL); var iterator = servers.iterator(); assertEquals("org.eclipse.lsp4e.test.server", iterator.next().serverDefinition.id); - assertFalse("Should only be a single LS", iterator.hasNext()); + assertFalse(iterator.hasNext(), "Should only be a single LS"); } @Test diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/RunningLanguageServerTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/RunningLanguageServerTest.java index b3ddddf4a..24bf3fec8 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/RunningLanguageServerTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/RunningLanguageServerTest.java @@ -12,10 +12,10 @@ package org.eclipse.lsp4e.test; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; @@ -31,7 +31,7 @@ import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.texteditor.AbstractTextEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RunningLanguageServerTest extends AbstractTestWithProject { @@ -69,8 +69,8 @@ public void testDisabledLanguageServer() throws Exception { @NonNull List initializedLanguageServers = LanguageServiceAccessor .getLSWrappers(testFile, capabilities -> true); assertNotNull(initializedLanguageServers); - assertEquals("language server should not be started because it is disabled", 0, - initializedLanguageServers.size()); + assertEquals(0, initializedLanguageServers.size(), + "language server should not be started because it is disabled"); lsDefinition.setUserEnabled(true); LanguageServiceAccessor.enableLanguageServerContentType(lsDefinition, TestUtils.getEditors()); diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/VersioningSupportTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/VersioningSupportTest.java index 33b300049..9ee64f424 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/VersioningSupportTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/VersioningSupportTest.java @@ -12,8 +12,10 @@ *******************************************************************************/ package org.eclipse.lsp4e.test; -import static org.eclipse.lsp4e.test.utils.TestUtils.*; -import static org.junit.Assert.fail; +import static org.eclipse.lsp4e.test.utils.TestUtils.numberOfChangesIs; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.fail; import java.util.ArrayList; import java.util.ConcurrentModificationException; @@ -35,7 +37,7 @@ import org.eclipse.lsp4j.ServerCapabilities; import org.eclipse.lsp4j.TextEdit; import org.eclipse.ui.IEditorPart; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class VersioningSupportTest extends AbstractTestWithProject { @@ -76,7 +78,7 @@ public void testVersionSupportSuccess() throws Exception { TestUtils.closeEditor(editor, false); } - @Test(expected=ConcurrentModificationException.class) + @Test public void testVersionedEditsFailsOnModification() throws Exception { final var formattingTextEdits = new ArrayList(); formattingTextEdits.add(new TextEdit(new Range(new Position(0, 0), new Position(0, 1)), "MyF")); @@ -103,6 +105,6 @@ public void testVersionedEditsFailsOnModification() throws Exception { viewer.getDocument().replace(0, 0, "Hello"); waitForAndAssertCondition(1_000, numberOfChangesIs(1)); - edits.apply(); + assertThrows(ConcurrentModificationException.class, () -> edits.apply()); } } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/WorkspaceFoldersTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/WorkspaceFoldersTest.java index 76e8a3fbf..809e517fb 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/WorkspaceFoldersTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/WorkspaceFoldersTest.java @@ -13,7 +13,7 @@ package org.eclipse.lsp4e.test; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.net.URI; import java.nio.file.Paths; @@ -32,12 +32,12 @@ import org.eclipse.lsp4j.ServerCapabilities; import org.eclipse.lsp4j.WorkspaceFoldersOptions; import org.eclipse.lsp4j.WorkspaceServerCapabilities; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; public class WorkspaceFoldersTest extends AbstractTestWithProject { - @Before + @BeforeEach public void setUp() { MockLanguageServer.INSTANCE.getWorkspaceService().getWorkspaceFoldersEvents().clear(); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/callhierarchy/CallHierarchyLabelProviderTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/callhierarchy/CallHierarchyLabelProviderTest.java index 4da73b7dc..47c00f723 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/callhierarchy/CallHierarchyLabelProviderTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/callhierarchy/CallHierarchyLabelProviderTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.callhierarchy; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import org.eclipse.jface.viewers.StyledString; import org.eclipse.lsp4e.callhierarchy.CallHierarchyLabelProvider; @@ -19,14 +19,14 @@ import org.eclipse.lsp4e.test.utils.AbstractTest; import org.eclipse.lsp4j.CallHierarchyItem; import org.eclipse.swt.custom.StyleRange; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; public class CallHierarchyLabelProviderTest extends AbstractTest { private static CallHierarchyLabelProvider labelProvider = null; - @BeforeClass + @BeforeAll public static void setUp() { labelProvider = new CallHierarchyLabelProvider(); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/callhierarchy/CallHierarchyViewContentTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/callhierarchy/CallHierarchyViewContentTest.java index f9b76c58e..d38d33efb 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/callhierarchy/CallHierarchyViewContentTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/callhierarchy/CallHierarchyViewContentTest.java @@ -12,7 +12,9 @@ package org.eclipse.lsp4e.test.callhierarchy; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; @@ -32,7 +34,9 @@ import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.TreeItem; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInfo; /** * UI-level test that opens a file, initializes Call Hierarchy and verifies that @@ -41,8 +45,9 @@ public class CallHierarchyViewContentTest extends AbstractTestWithProject { @Override - public void setUpProject() throws Exception { - super.setUpProject(); + @BeforeEach + public void setUpProject(TestInfo testInfo) throws Exception { + super.setUpProject(testInfo); // Ensure the mock server advertises callHierarchyProvider MockLanguageServer.reset(() -> { ServerCapabilities caps = MockLanguageServer.defaultServerCapabilities(); @@ -84,7 +89,7 @@ public void testCallHierarchyShowsCalleeAndCaller() throws Exception { Tree tree = viewer.getTree(); TreeItem root = tree.getItem(0); Object rootData = root.getData(); - assertTrue("Expected CallHierarchyViewTreeNode root", rootData instanceof CallHierarchyViewTreeNode); + assertInstanceOf(CallHierarchyViewTreeNode.class, rootData, "Expected CallHierarchyViewTreeNode root"); var rootNode = (CallHierarchyViewTreeNode) rootData; assertEquals("callee", rootNode.getCallContainer().getName()); diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/codeactions/CodeActionTests.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/codeactions/CodeActionTests.java index 3e1f0855a..ba901586f 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/codeactions/CodeActionTests.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/codeactions/CodeActionTests.java @@ -11,8 +11,10 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.codeactions; -import static org.eclipse.lsp4e.test.utils.TestUtils.*; -import static org.junit.Assert.*; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForCondition; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; import java.util.Collections; @@ -50,12 +52,12 @@ import org.eclipse.ui.texteditor.AbstractTextEditor; import org.eclipse.ui.texteditor.ITextEditorActionConstants; import org.eclipse.ui.texteditor.TextOperationAction; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; public class CodeActionTests extends AbstractTestWithProject { - public final @Rule NoErrorLoggedRule noErrorLoggedRule = new NoErrorLoggedRule(); + public final @RegisterExtension NoErrorLoggedRule noErrorLoggedRule = new NoErrorLoggedRule(); @Test public void testCodeActionsClientCommandForTextEdit() throws CoreException { @@ -107,7 +109,7 @@ private void checkCompletionContent(final Table completionProposalList) { waitForAndAssertCondition("No item found", 100, () -> completionProposalList.getItemCount() > 0); assertEquals(1, completionProposalList.getItemCount()); final TableItem quickAssistItem = completionProposalList.getItem(0); - assertTrue("Missing quick assist proposal", quickAssistItem.getText().contains("fixme")); //$NON-NLS-1$ //$NON-NLS-2$ + assertTrue(quickAssistItem.getText().contains("fixme"), "Missing quick assist proposal"); //$NON-NLS-1$ //$NON-NLS-2$ } @Test @@ -262,13 +264,14 @@ private static IMarker assertDiagnostics(IFile f, String markerMessage, String r final IMarker m = f.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, true, IResource.DEPTH_ZERO)[0]; assertEquals(markerMessage, m.getAttribute(IMarker.MESSAGE)); - assertEquals(resolutionExpected ? "Resolution not found within expected time." : "Unexpected resolution found", resolutionExpected, + assertEquals(resolutionExpected, waitForCondition(2_000, () -> IDE.getMarkerHelpRegistry().hasResolutions(m) && // need this 2nd condition because async introduces a dummy resolution that's // not the one we want IDE.getMarkerHelpRegistry().getResolutions(m).length > 0 && - IDE.getMarkerHelpRegistry().getResolutions(m)[0].getLabel().equals(resolutionLabel))); + IDE.getMarkerHelpRegistry().getResolutions(m)[0].getLabel().equals(resolutionLabel)), + resolutionExpected ? "Resolution not found within expected time." : "Unexpected resolution found"); return m; } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/color/ColorTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/color/ColorTest.java index 3ef26bb53..f47a30f3a 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/color/ColorTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/color/ColorTest.java @@ -35,14 +35,14 @@ import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.ide.IDE; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; public class ColorTest extends AbstractTestWithProject { private RGB color; - @Before + @BeforeEach public void setUp() { color = new RGB(56, 78, 90); // a color that's not likely used anywhere else MockLanguageServer.INSTANCE.getTextDocumentService().setDocumentColors(List.of(new ColorInformation(new Range(new Position(0, 0), new Position(0, 1)), new Color(color.red / 255., color.green / 255., color.blue / 255., 255)))); diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/commands/DynamicRegistrationTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/commands/DynamicRegistrationTest.java index 5413c14fd..df0aac27e 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/commands/DynamicRegistrationTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/commands/DynamicRegistrationTest.java @@ -12,7 +12,10 @@ package org.eclipse.lsp4e.test.commands; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForCondition; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; import java.util.UUID; @@ -36,8 +39,8 @@ import org.eclipse.lsp4j.WorkspaceFoldersOptions; import org.eclipse.lsp4j.WorkspaceServerCapabilities; import org.eclipse.lsp4j.services.LanguageClient; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.google.gson.Gson; @@ -46,7 +49,7 @@ public class DynamicRegistrationTest extends AbstractTestWithProject { private static final String WORKSPACE_EXECUTE_COMMAND = "workspace/executeCommand"; private static final String WORKSPACE_DID_CHANGE_FOLDERS = "workspace/didChangeWorkspaceFolders"; - @Before + @BeforeEach public void setUp() throws Exception { IFile testFile = TestUtils.createFile(project, "shouldUseExtension.lspt", ""); diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/AbstractCompletionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/AbstractCompletionTest.java index 9030ee120..8d29b7961 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/AbstractCompletionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/AbstractCompletionTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.completion; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.List; @@ -31,13 +31,13 @@ import org.eclipse.lsp4j.Range; import org.eclipse.lsp4j.TextEdit; import org.eclipse.lsp4j.jsonrpc.messages.Either; -import org.junit.Before; +import org.junit.jupiter.api.BeforeEach; public abstract class AbstractCompletionTest extends AbstractTestWithProject { protected LSContentAssistProcessor contentAssistProcessor; - @Before + @BeforeEach public void setUp() { contentAssistProcessor = new LSContentAssistProcessor(true, false); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompleteCompletionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompleteCompletionTest.java index 44b9b126b..d35086b18 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompleteCompletionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompleteCompletionTest.java @@ -13,7 +13,11 @@ package org.eclipse.lsp4e.test.completion; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.net.URI; import java.util.ArrayList; @@ -58,7 +62,7 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; import org.eclipse.ui.tests.harness.util.DisplayHelper; -import org.junit.Test; +import org.junit.jupiter.api.Test; import com.google.gson.JsonPrimitive; @@ -474,10 +478,10 @@ record Test(String completion, String expected, String fileContent, int caretPos ICompletionProposal[] proposals = contentAssistProcessor.computeCompletionProposals(viewer, test.caretPos()); - assertEquals("Unexpected proposals length for " + test + " - ", 1, proposals.length); + assertEquals(1, proposals.length, "Unexpected proposals length for " + test + " - "); ((LSCompletionProposal) proposals[0]).apply(viewer, '\n', 0, test.caretPos()); - assertEquals("Unexpected result for " + test + " - ", test.expected, viewer.getDocument().get()); + assertEquals(test.expected, viewer.getDocument().get(), "Unexpected result for " + test + " - "); } } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompletionOrderingTests.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompletionOrderingTests.java index 9d413b832..fdf61e9ae 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompletionOrderingTests.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompletionOrderingTests.java @@ -11,7 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.completion; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; @@ -30,7 +31,7 @@ import org.eclipse.lsp4j.Range; import org.eclipse.lsp4j.TextEdit; import org.eclipse.lsp4j.jsonrpc.messages.Either; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class CompletionOrderingTests extends AbstractCompletionTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ContextInformationTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ContextInformationTest.java index e7bb4132c..badbb1502 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ContextInformationTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ContextInformationTest.java @@ -11,7 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.completion; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Collections; import java.util.List; @@ -27,13 +28,13 @@ import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.SignatureHelp; import org.eclipse.lsp4j.SignatureInformation; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; public class ContextInformationTest extends AbstractCompletionTest { @Override - @Before + @BeforeEach public void setUp() { contentAssistProcessor = new LSContentAssistProcessor(); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/DynamicCompletionRegistrationTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/DynamicCompletionRegistrationTest.java index 60e8bf6ae..08f544b24 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/DynamicCompletionRegistrationTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/DynamicCompletionRegistrationTest.java @@ -12,7 +12,9 @@ package org.eclipse.lsp4e.test.completion; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.List; @@ -36,8 +38,8 @@ import org.eclipse.lsp4j.TextEdit; import org.eclipse.lsp4j.jsonrpc.messages.Either; import org.eclipse.lsp4j.services.LanguageClient; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import com.google.gson.Gson; @@ -49,7 +51,7 @@ public class DynamicCompletionRegistrationTest extends AbstractTestWithProject { private LSContentAssistProcessor contentAssistProcessor; - @Before + @BeforeEach public void setup() { contentAssistProcessor = new LSContentAssistProcessor(true, false); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/IncompleteCompletionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/IncompleteCompletionTest.java index 77b0b194a..2e1804bf6 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/IncompleteCompletionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/IncompleteCompletionTest.java @@ -13,10 +13,10 @@ package org.eclipse.lsp4e.test.completion; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.net.URI; @@ -55,7 +55,7 @@ import org.eclipse.swt.graphics.Point; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.texteditor.ITextEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class IncompleteCompletionTest extends AbstractCompletionTest { /* diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/InsertReplaceCompletionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/InsertReplaceCompletionTest.java index 374a02888..2cd2cf7c1 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/InsertReplaceCompletionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/InsertReplaceCompletionTest.java @@ -16,7 +16,7 @@ */ package org.eclipse.lsp4e.test.completion; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; @@ -31,7 +31,7 @@ import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; import org.eclipse.swt.graphics.Point; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class InsertReplaceCompletionTest extends AbstractCompletionTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ScoreOfFilterMatchTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ScoreOfFilterMatchTest.java index 24e4559c9..8820b9270 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ScoreOfFilterMatchTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ScoreOfFilterMatchTest.java @@ -11,7 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.completion; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; import java.util.Random; import java.util.concurrent.Executors; @@ -19,7 +20,7 @@ import java.util.concurrent.TimeoutException; import org.eclipse.lsp4e.operations.completion.CompletionProposalTools; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Test cases for {@link CompletionProposalTools#getScoreOfFilterMatch(String, String)} @@ -46,7 +47,7 @@ public void testCaseInsensitivity() { final var completionFilter = "eXaMpLe"; final int expectedScore = 0; final int actualScore = CompletionProposalTools.getScoreOfFilterMatch(documentFilter, completionFilter); - assertEquals("The score should be 0 for case-insensitive matches.", expectedScore, actualScore); + assertEquals(expectedScore, actualScore, "The score should be 0 for case-insensitive matches."); } @Test @@ -55,7 +56,7 @@ public void testEmptyCompletionFilter() { final var completionFilter = ""; final int expectedScore = -1; final int actualScore = CompletionProposalTools.getScoreOfFilterMatch(documentFilter, completionFilter); - assertEquals("The score should be -1 for an empty completionFilter.", expectedScore, actualScore); + assertEquals(expectedScore, actualScore, "The score should be -1 for an empty completionFilter."); } @Test @@ -64,7 +65,7 @@ public void testEmptyDocumentFilter() { final var completionFilter = "example"; final int expectedScore = 0; final int actualScore = CompletionProposalTools.getScoreOfFilterMatch(documentFilter, completionFilter); - assertEquals("The score should be 0 for an empty documentFilter.", expectedScore, actualScore); + assertEquals(expectedScore, actualScore, "The score should be 0 for an empty documentFilter."); } /** @@ -105,7 +106,7 @@ public void testExactMatch() { final var completionFilter = "example"; final int expectedScore = 0; final int actualScore = CompletionProposalTools.getScoreOfFilterMatch(documentFilter, completionFilter); - assertEquals("The score should be 0 for exact matches.", expectedScore, actualScore); + assertEquals(expectedScore, actualScore, "The score should be 0 for exact matches."); } @Test @@ -114,7 +115,7 @@ public void testNoMatch() { final var completionFilter = "example"; final int expectedScore = -1; final int actualScore = CompletionProposalTools.getScoreOfFilterMatch(documentFilter, completionFilter); - assertEquals("The score should be -1 when there's no match.", expectedScore, actualScore); + assertEquals(expectedScore, actualScore, "The score should be -1 when there's no match."); } @Test @@ -123,7 +124,7 @@ public void testPrefixMatch() { final var completionFilter = "example"; final int expectedScore = 0; final int actualScore = CompletionProposalTools.getScoreOfFilterMatch(documentFilter, completionFilter); - assertEquals("The score should be 0 when documentFilter is a prefix.", expectedScore, actualScore); + assertEquals(expectedScore, actualScore, "The score should be 0 when documentFilter is a prefix."); } @Test @@ -132,6 +133,6 @@ public void testScatteredMatch() { final var completionFilter = "example"; final int expectedScore = 6; final int actualScore = CompletionProposalTools.getScoreOfFilterMatch(documentFilter, completionFilter); - assertEquals("The score should account for scattered characters.", expectedScore, actualScore); + assertEquals(expectedScore, actualScore, "The score should account for scattered characters."); } } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/VariableReplacementTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/VariableReplacementTest.java index 1010dd12f..9b6e0afe4 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/VariableReplacementTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/VariableReplacementTest.java @@ -8,7 +8,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.completion; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; @@ -26,7 +26,7 @@ import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; import org.eclipse.ui.PartInitException; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class VariableReplacementTest extends AbstractCompletionTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugScopesAndVariablesTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugScopesAndVariablesTest.java index c6f7d9acc..8518dba44 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugScopesAndVariablesTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugScopesAndVariablesTest.java @@ -11,7 +11,11 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.debug; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.InputStream; import java.io.OutputStream; @@ -55,7 +59,7 @@ import org.eclipse.lsp4j.jsonrpc.Launcher; import org.eclipse.lsp4j.jsonrpc.MessageConsumer; import org.eclipse.lsp4j.jsonrpc.RemoteEndpoint; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * End-to-end style test around DSPStackFrame.getVariables() to verify that @@ -229,39 +233,39 @@ public void testScopesAndVariablesAreReturned() throws Exception { TestUtils.waitForAndAssertCondition(5000, target::isSuspended); var threads = target.getThreads(); - assertTrue("No threads reported by debug target", threads.length > 0); - assertEquals("Expected exactly one thread", 1, threads.length); - assertEquals("Thread name mismatch", "Main", threads[0].getName()); - assertEquals("Thread id mismatch", Integer.valueOf(1), threads[0].getId()); + assertTrue(threads.length > 0, "No threads reported by debug target"); + assertEquals(1, threads.length, "Expected exactly one thread"); + assertEquals("Main", threads[0].getName(), "Thread name mismatch"); + assertEquals(Integer.valueOf(1), threads[0].getId(), "Thread id mismatch"); var frames = threads[0].getStackFrames(); - assertTrue("No stack frames available on stopped thread", frames.length > 0); - assertEquals("Expected exactly one frame", 1, frames.length); + assertTrue(frames.length > 0, "No stack frames available on stopped thread"); + assertEquals(1, frames.length, "Expected exactly one frame"); IStackFrame frame = frames[0]; - assertEquals("Frame name mismatch", "func", frame.getName()); - assertEquals("Frame line mismatch", 1, frame.getLineNumber()); - assertEquals("Frame id mismatch", 101, ((DSPStackFrame) frame).getFrameId().intValue()); + assertEquals("func", frame.getName(), "Frame name mismatch"); + assertEquals(1, frame.getLineNumber(), "Frame line mismatch"); + assertEquals(101, ((DSPStackFrame) frame).getFrameId().intValue(), "Frame id mismatch"); IVariable[] scopes = frame.getVariables(); - assertTrue("Expected at least one scope", scopes.length > 0); - assertEquals("Expected exactly one scope", 1, scopes.length); + assertTrue(scopes.length > 0, "Expected at least one scope"); + assertEquals(1, scopes.length, "Expected exactly one scope"); // Expect exactly one scope named "locals" assertArrayEquals(new String[] { "locals" }, new String[] { scopes[0].getName() }); - assertTrue("Scope should advertise child variables", scopes[0].getValue().hasVariables()); + assertTrue(scopes[0].getValue().hasVariables(), "Scope should advertise child variables"); // Expand the scope to fetch actual variables via 'variables' request var value = scopes[0].getValue(); var vars = value.getVariables(); - assertNotNull("Scope value should not be null", value); - assertTrue("Expected at least one variable under 'locals'", vars != null && vars.length > 0); - assertEquals("Expected exactly one local variable", 1, vars.length); + assertNotNull(value, "Scope value should not be null"); + assertTrue(vars != null && vars.length > 0, "Expected at least one variable under 'locals'"); + assertEquals(1, vars.length, "Expected exactly one local variable"); assertArrayEquals(new String[] { "x" }, new String[] { vars[0].getName() }); - assertEquals("Variable value mismatch", "42", vars[0].getValue().getValueString()); - assertFalse("Leaf variable should not have children", vars[0].getValue().hasVariables()); + assertEquals("42", vars[0].getValue().getValueString(), "Variable value mismatch"); + assertFalse(vars[0].getValue().hasVariables(), "Leaf variable should not have children"); // Capabilities returned by mock initialize - assertNotNull("Capabilities should be available after initialize", target.getCapabilities()); - assertFalse("supportsConfigurationDoneRequest should be false", - target.getCapabilities().getSupportsConfigurationDoneRequest()); + assertNotNull(target.getCapabilities(), "Capabilities should be available after initialize"); + assertFalse(target.getCapabilities().getSupportsConfigurationDoneRequest(), + "supportsConfigurationDoneRequest should be false"); } } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugTest.java index b087337d4..086757c34 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugTest.java @@ -11,9 +11,9 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.debug; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.fail; import java.util.Map; @@ -21,7 +21,7 @@ import org.eclipse.lsp4e.test.utils.AbstractTestWithProject; import org.eclipse.lsp4j.jsonrpc.json.JsonRpcMethod; import org.eclipse.lsp4j.jsonrpc.services.ServiceEndpoints; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DebugTest extends AbstractTestWithProject { @@ -38,8 +38,8 @@ public class DebugTest extends AbstractTestWithProject { public void testSupportedJSONRPCMethods() throws Exception { try { Map rpcMethods = ServiceEndpoints.getSupportedMethods(DSPDebugTarget.class); - assertNotNull("RPC Methods not found on DSPDebugTarget", rpcMethods); - assertFalse("Zero RPC Methods found on DSPDebugTarget", rpcMethods.isEmpty()); + assertNotNull(rpcMethods, "RPC Methods not found on DSPDebugTarget"); + assertFalse(rpcMethods.isEmpty(), "Zero RPC Methods found on DSPDebugTarget"); } catch (Throwable ex) { fail("An error occurred while getting the RPC Methods of DSPDebugTarget: " + ex.getMessage()); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/debugmodel/JsonParserWithStringSubstitutionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/debugmodel/JsonParserWithStringSubstitutionTest.java index 589b2b10c..8ecb3c8e1 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/debugmodel/JsonParserWithStringSubstitutionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/debugmodel/JsonParserWithStringSubstitutionTest.java @@ -8,7 +8,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.debug.debugmodel; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.util.ArrayList; import java.util.Map; @@ -22,7 +23,7 @@ import org.eclipse.core.variables.IValueVariableListener; import org.eclipse.lsp4e.debug.debugmodel.JsonParserWithStringSubstitution; import org.eclipse.lsp4e.test.utils.AbstractTest; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class JsonParserWithStringSubstitutionTest extends AbstractTest { @@ -130,11 +131,11 @@ public String generateVariableExpression(String varName, String arg) { * * Test if an exception is thrown when the json is _not_ an object at the top level. */ - @Test(expected = IllegalStateException.class) + @Test public void testThrowsIllegaStateException() throws IllegalStateException, CoreException { final var json = "[\"value1\", \"value2\", \"value3\"]"; final var jsonParser = new JsonParserWithStringSubstitution(new StringVariableManagerMock()); - jsonParser.parseJsonObject(json); + assertThrows(IllegalStateException.class, () -> jsonParser.parseJsonObject(json)); } /** @@ -144,12 +145,12 @@ public void testThrowsIllegaStateException() throws IllegalStateException, CoreE * Test if an exception is thrown when the json contains a variable that is _not_ * known to the {@link IStringVariableManager}. */ - @Test(expected = CoreException.class) + @Test public void testThrowsCoreException() throws IllegalStateException, CoreException { final var json = "{\"key\":\"unknown_variable\"}"; final var stringVariableManager = new StringVariableManagerMock("Test", "Test"); final var jsonParser = new JsonParserWithStringSubstitution(stringVariableManager); - jsonParser.parseJsonObject(json); + assertThrows(CoreException.class, () -> jsonParser.parseJsonObject(json)); } /** diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/declaration/LSBasedHyperlinkTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/declaration/LSBasedHyperlinkTest.java index bfdf68d42..076c1bd37 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/declaration/LSBasedHyperlinkTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/declaration/LSBasedHyperlinkTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.declaration; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.File; import java.net.URI; @@ -25,7 +25,7 @@ import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4j.Location; import org.eclipse.lsp4j.LocationLink; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class LSBasedHyperlinkTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/DefinitionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/DefinitionTest.java index ae66e21cc..d617126a9 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/DefinitionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/DefinitionTest.java @@ -11,7 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.definition; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.util.ArrayList; @@ -39,8 +40,7 @@ import org.eclipse.lsp4j.Range; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.texteditor.ITextEditor; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DefinitionTest extends AbstractTestWithProject { @@ -143,6 +143,6 @@ public void testReturnsPromptly() throws Exception { long duration = System.currentTimeMillis(); hyperlinkDetector.detectHyperlinks(viewer, new Region(1, 0), true); duration = System.currentTimeMillis() - duration; - Assert.assertTrue(duration < 500); + assertTrue(duration < 500); } } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/HyperlinkDetectorErrorHandlingTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/HyperlinkDetectorErrorHandlingTest.java index 558dde6f6..348ed934b 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/HyperlinkDetectorErrorHandlingTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/HyperlinkDetectorErrorHandlingTest.java @@ -11,7 +11,10 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.definition; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; import java.util.concurrent.CompletableFuture; @@ -34,7 +37,7 @@ import org.eclipse.lsp4j.ServerCapabilities; import org.eclipse.lsp4j.TypeDefinitionParams; import org.eclipse.lsp4j.jsonrpc.messages.Either; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class HyperlinkDetectorErrorHandlingTest extends AbstractTestWithProject { @@ -98,7 +101,7 @@ public CompletableFuture, List { - assertEquals("there should be 1 marker for each language server", 2, file - .findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, true, IResource.DEPTH_ZERO).length); + assertEquals(2, file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, true, IResource.DEPTH_ZERO).length, + "there should be 1 marker for each language server"); return true; }); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkReconcilingTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkReconcilingTest.java index 363478539..65d28d612 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkReconcilingTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkReconcilingTest.java @@ -16,7 +16,7 @@ package org.eclipse.lsp4e.test.documentLink; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.List; @@ -36,7 +36,7 @@ import org.eclipse.lsp4j.Range; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.graphics.Color; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DocumentLinkReconcilingTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkTest.java index c1f13043b..144db5fb9 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkTest.java @@ -11,7 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.documentLink; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.File; import java.util.ArrayList; @@ -32,7 +33,7 @@ import org.eclipse.lsp4j.Range; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.texteditor.ITextEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DocumentLinkTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidChangeTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidChangeTest.java index f0296e9cd..f1b1bf7c2 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidChangeTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidChangeTest.java @@ -12,8 +12,10 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.edit; -import static org.eclipse.lsp4e.test.utils.TestUtils.*; -import static org.junit.Assert.*; +import static org.eclipse.lsp4e.test.utils.TestUtils.numberOfChangesIs; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.File; import java.util.List; @@ -36,7 +38,7 @@ import org.eclipse.swt.custom.StyledText; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.ide.IDE; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DocumentDidChangeTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidCloseTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidCloseTest.java index 02ce3f816..ef9d539cc 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidCloseTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidCloseTest.java @@ -11,8 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.edit; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.File; import java.util.concurrent.CompletableFuture; @@ -30,7 +30,7 @@ import org.eclipse.lsp4j.DidCloseTextDocumentParams; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.ide.IDE; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DocumentDidCloseTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidOpenTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidOpenTest.java index cafb1113b..404ec281a 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidOpenTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidOpenTest.java @@ -11,8 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.edit; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.File; import java.util.concurrent.CompletableFuture; @@ -31,7 +31,7 @@ import org.eclipse.ui.IEditorPart; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.texteditor.AbstractTextEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DocumentDidOpenTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidSaveTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidSaveTest.java index fa1fcfe61..7d695e0ee 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidSaveTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidSaveTest.java @@ -13,8 +13,8 @@ package org.eclipse.lsp4e.test.edit; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.File; import java.util.concurrent.CompletableFuture; @@ -34,7 +34,7 @@ import org.eclipse.lsp4j.DidSaveTextDocumentParams; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.ide.IDE; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DocumentDidSaveTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentEditAndUndoTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentEditAndUndoTest.java index 97de2f55b..ad5e5ac72 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentEditAndUndoTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentEditAndUndoTest.java @@ -13,7 +13,8 @@ package org.eclipse.lsp4e.test.edit; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; @@ -34,7 +35,7 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Event; import org.eclipse.ui.IEditorPart; -import org.junit.Test; +import org.junit.jupiter.api.Test; import com.google.common.collect.Iterators; @@ -95,7 +96,7 @@ private void type(Control control, char c) { }); waitForAndAssertCondition(3_000, () -> { - assertEquals("Document content isn't correctly changed", "", doc.get()); + assertEquals("", doc.get(), "Document content isn't correctly changed"); return true; }); @@ -104,7 +105,7 @@ private void type(Control control, char c) { BusyIndicator.showWhile(display, () -> textOperationTarget.doOperation(ITextOperationTarget.UNDO)); waitForAndAssertCondition(3_000, () -> { - assertEquals("Document content isn't correctly reverted", initialContent, doc.get()); + assertEquals(initialContent, doc.get(), "Document content isn't correctly reverted"); return true; }); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentRevertAndCloseTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentRevertAndCloseTest.java index c1b2f1227..a12ed1261 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentRevertAndCloseTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentRevertAndCloseTest.java @@ -12,7 +12,7 @@ package org.eclipse.lsp4e.test.edit; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; import org.eclipse.core.resources.IFile; import org.eclipse.jface.text.IDocument; @@ -24,7 +24,7 @@ import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.texteditor.AbstractTextEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DocumentRevertAndCloseTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentWillSaveWaitUntilTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentWillSaveWaitUntilTest.java index 299353af4..2bfdedb0f 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentWillSaveWaitUntilTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentWillSaveWaitUntilTest.java @@ -12,7 +12,7 @@ package org.eclipse.lsp4e.test.edit; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.util.List; @@ -30,7 +30,7 @@ import org.eclipse.lsp4j.Range; import org.eclipse.lsp4j.TextEdit; import org.eclipse.ui.IEditorPart; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DocumentWillSaveWaitUntilTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/LSPEclipseUtilsTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/LSPEclipseUtilsTest.java index 273f5d021..05b7550f5 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/LSPEclipseUtilsTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/LSPEclipseUtilsTest.java @@ -13,7 +13,14 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.edit; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assumptions.assumeFalse; +import static org.junit.jupiter.api.Assumptions.assumeTrue; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -66,14 +73,12 @@ import org.eclipse.ui.IEditorPart; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.texteditor.AbstractTextEditor; -import org.junit.Assert; -import org.junit.Assume; -import org.junit.Rule; -import org.junit.Test; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; public class LSPEclipseUtilsTest extends AbstractTestWithProject { - public final @Rule NoErrorLoggedRule noErrorLoggedRule = new NoErrorLoggedRule(); + public final @RegisterExtension NoErrorLoggedRule noErrorLoggedRule = new NoErrorLoggedRule(); @Test public void testOpenInEditorExternalFile() throws Exception { @@ -86,16 +91,16 @@ public void testOpenInEditorExternalFile() throws Exception { public void testWorkspaceEdit_insertText() throws Exception { final var textEdit = new TextEdit(new Range(new Position(0, 0), new Position(0, 0)), "insert"); AbstractTextEditor editor = applyWorkspaceTextEdit(textEdit); - Assert.assertEquals("insertHere", ((StyledText)editor.getAdapter(Control.class)).getText()); - Assert.assertEquals("insertHere", editor.getDocumentProvider().getDocument(editor.getEditorInput()).get()); + assertEquals("insertHere", ((StyledText)editor.getAdapter(Control.class)).getText()); + assertEquals("insertHere", editor.getDocumentProvider().getDocument(editor.getEditorInput()).get()); } @Test public void testWorkspaceEdit_WithExaggeratedRange() throws Exception { final var textEdit = new TextEdit(new Range(new Position(0, 0), new Position(Integer.MAX_VALUE, Integer.MAX_VALUE)), "insert"); AbstractTextEditor editor = applyWorkspaceTextEdit(textEdit); - Assert.assertEquals("insert", ((StyledText)editor.getAdapter(Control.class)).getText()); - Assert.assertEquals("insert", editor.getDocumentProvider().getDocument(editor.getEditorInput()).get()); + assertEquals("insert", ((StyledText)editor.getAdapter(Control.class)).getText()); + assertEquals("insert", editor.getDocumentProvider().getDocument(editor.getEditorInput()).get()); } private AbstractTextEditor applyWorkspaceTextEdit(TextEdit textEdit) throws CoreException { @@ -120,8 +125,8 @@ public void testWorkspaceEditMultipleChanges() throws Exception { LSPEclipseUtils.toUri(f).toString(), edits)); // they should be applied from bottom to top LSPEclipseUtils.applyWorkspaceEdit(workspaceEdit); - Assert.assertEquals("abcHere\nabcHere2", ((StyledText) editor.getAdapter(Control.class)).getText()); - Assert.assertEquals("abcHere\nabcHere2", + assertEquals("abcHere\nabcHere2", ((StyledText) editor.getAdapter(Control.class)).getText()); + assertEquals("abcHere\nabcHere2", editor.getDocumentProvider().getDocument(editor.getEditorInput()).get()); } @@ -146,11 +151,11 @@ public void testWorkspaceEdit_CreateAndPopulateFile() throws Exception { public void testURIToResourceMapping() throws CoreException { // bug 508841 IFile file = project.getFile("res"); file.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor()); - Assert.assertEquals(file, LSPEclipseUtils.findResourceFor(file.getLocationURI().toString())); + assertEquals(file, LSPEclipseUtils.findResourceFor(file.getLocationURI().toString())); project.getFile("suffix").create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor()); IProject project2 = TestUtils.createProject(project.getName() + "suffix"); - Assert.assertEquals(project2, LSPEclipseUtils.findResourceFor(project2.getLocationURI().toString())); + assertEquals(project2, LSPEclipseUtils.findResourceFor(project2.getLocationURI().toString())); } @Test @@ -164,8 +169,8 @@ public void testReturnMostNestedFileRegardlessArrayOrder() throws CoreException IFile someFile = project.getFile("folder/res"); someFile.create(new ByteArrayInputStream(new byte[0]), true, new NullProgressMonitor()); - Assert.assertEquals(mostNestedFile, LSPEclipseUtils.findMostNested(new IFile[] {mostNestedFile, someFile})); - Assert.assertEquals(mostNestedFile, LSPEclipseUtils.findMostNested(new IFile[] {someFile, mostNestedFile})); + assertEquals(mostNestedFile, LSPEclipseUtils.findMostNested(new IFile[] {mostNestedFile, someFile})); + assertEquals(mostNestedFile, LSPEclipseUtils.findMostNested(new IFile[] {someFile, mostNestedFile})); } @Test @@ -175,18 +180,18 @@ public void testLinkedResourceURIToResourceMapping() throws CoreException, IOExc IFile linkedFile = project.getFile("linked_file"); linkedFile.createLink(externalFile.toUri(), 0, new NullProgressMonitor()); - Assert.assertTrue(linkedFile.isLinked()); - Assert.assertEquals(linkedFile, LSPEclipseUtils.findResourceFor(linkedFile.getLocationURI().toString())); + assertTrue(linkedFile.isLinked()); + assertEquals(linkedFile, LSPEclipseUtils.findResourceFor(linkedFile.getLocationURI().toString())); IFolder linkedFolder = project.getFolder("linked_folder"); linkedFolder.createLink(externalFolder.toUri(), 0, new NullProgressMonitor()); - Assert.assertTrue(linkedFolder.isLinked()); - Assert.assertEquals(linkedFolder, + assertTrue(linkedFolder.isLinked()); + assertEquals(linkedFolder, LSPEclipseUtils.findResourceFor(linkedFolder.getLocationURI().toString())); Files.createFile(externalFolder.resolve("child")); IFile linkedFolderFile = linkedFolder.getFile("child"); - Assert.assertEquals(linkedFolderFile, + assertEquals(linkedFolderFile, LSPEclipseUtils.findResourceFor(linkedFolderFile.getLocationURI().toString())); } @@ -198,27 +203,27 @@ public void testVirtualResourceURIToResourceMapping() throws CoreException, IOEx IFolder virtualFolder = project.getFolder("virtual_folder"); virtualFolder.create(IResource.VIRTUAL, true, new NullProgressMonitor()); - Assert.assertEquals(virtualFolder.isVirtual(), true); - Assert.assertEquals(virtualFolder.getLocationURI().toString(), "virtual:/virtual"); - Assert.assertEquals(virtualFolder.getRawLocationURI().toString(), "virtual:/virtual"); + assertEquals(virtualFolder.isVirtual(), true); + assertEquals(virtualFolder.getLocationURI().toString(), "virtual:/virtual"); + assertEquals(virtualFolder.getRawLocationURI().toString(), "virtual:/virtual"); // getLocationURI()/getRawLocationURI() of virtual folders cannot be used to resolve a workspace resource // thus LSPEclipseUtils.findResourceFor() returns null - Assert.assertEquals(null, LSPEclipseUtils.findResourceFor(virtualFolder.getLocationURI().toString())); + assertEquals(null, LSPEclipseUtils.findResourceFor(virtualFolder.getLocationURI().toString())); IFile linkedFile = virtualFolder.getFile("linked_file"); linkedFile.createLink(externalFile.toUri(), 0, new NullProgressMonitor()); - Assert.assertTrue(linkedFile.isLinked()); - Assert.assertEquals(linkedFile, LSPEclipseUtils.findResourceFor(linkedFile.getLocationURI().toString())); + assertTrue(linkedFile.isLinked()); + assertEquals(linkedFile, LSPEclipseUtils.findResourceFor(linkedFile.getLocationURI().toString())); IFolder linkedFolder = virtualFolder.getFolder("linked_folder"); linkedFolder.createLink(externalFolder.toUri(), 0, new NullProgressMonitor()); - Assert.assertTrue(linkedFolder.isLinked()); - Assert.assertEquals(linkedFolder, + assertTrue(linkedFolder.isLinked()); + assertEquals(linkedFolder, LSPEclipseUtils.findResourceFor(linkedFolder.getLocationURI().toString())); Files.createFile(externalFolder.resolve("child")); IFile linkedFolderFile = linkedFolder.getFile("child"); - Assert.assertEquals(linkedFolderFile, + assertEquals(linkedFolderFile, LSPEclipseUtils.findResourceFor(linkedFolderFile.getLocationURI().toString())); } @@ -231,8 +236,8 @@ public void testCustomURIToResourceMapping() throws CoreException { // bug 57642 IFile file = project.getFile("res.txt"); file.createLink(uri, IResource.REPLACE | IResource.ALLOW_MISSING_LOCAL, new NullProgressMonitor()); - Assert.assertEquals(file, LSPEclipseUtils.findResourceFor(file.getLocationURI().toString())); - Assert.assertEquals(file, LSPEclipseUtils.getFileHandle(file.getLocationURI())); + assertEquals(file, LSPEclipseUtils.findResourceFor(file.getLocationURI().toString())); + assertEquals(file, LSPEclipseUtils.getFileHandle(file.getLocationURI())); } @Test @@ -240,7 +245,7 @@ public void testCustomResourceToURIMapping() throws CoreException { // bug 57642 URI uri = URI.create("other://res.txt"); IFile file = project.getFile("res.txt"); file.createLink(uri, IResource.REPLACE | IResource.ALLOW_MISSING_LOCAL, new NullProgressMonitor()); - Assert.assertEquals(LSPEclipseUtils.toUri(file).toString(), "other://a/res.txt"); + assertEquals(LSPEclipseUtils.toUri(file).toString(), "other://a/res.txt"); } @Test @@ -250,7 +255,7 @@ public void testApplyTextEditLongerThanOrigin() throws Exception { final var textEdit = new TextEdit(new Range(new Position(1, 4), new Position(1, 4 + "InsertHere".length())), "Inserted"); IDocument document = viewer.getDocument(); LSPEclipseUtils.applyEdit(textEdit, document); - Assert.assertEquals("line1\nlineInserted", document.get()); + assertEquals("line1\nlineInserted", document.get()); } @Test @@ -260,7 +265,7 @@ public void testApplyTextEditShorterThanOrigin() throws Exception { final var textEdit = new TextEdit(new Range(new Position(1, 4), new Position(1, 4 + "HERE".length())), "Inserted"); IDocument document = viewer.getDocument(); LSPEclipseUtils.applyEdit(textEdit, document); - Assert.assertEquals("line1\nlineInserted", document.get()); + assertEquals("line1\nlineInserted", document.get()); } @Test @@ -272,7 +277,7 @@ public void testTextEditInsertSameOffset() throws Exception { new TextEdit(new Range(new Position(0, 0), new Position(0, 0)), "Exception") }; IDocument document = viewer.getDocument(); LSPEclipseUtils.applyEdits(document, List.of(edits)); - Assert.assertEquals(" throws Exception", document.get()); + assertEquals(" throws Exception", document.get()); } @Test @@ -286,63 +291,63 @@ public void testTextEditSplittedLineEndings() throws Exception { // WHEN the TextEdit gets applied to the document: LSPEclipseUtils.applyEdits(document, List.of(edits)); // THEN line1 has been swapped with line 3: - Assert.assertEquals("line3\r\nline2\r\nline1\r\n", document.get()); + assertEquals("line3\r\nline2\r\nline1\r\n", document.get()); // AND the number of lines is still the same, because we have not appended a line: - Assert.assertEquals(linesBeforeApplyEdits, document.getNumberOfLines()); + assertEquals(linesBeforeApplyEdits, document.getNumberOfLines()); } @Test public void testURICreationUnix() { - Assume.assumeFalse(Platform.OS_WIN32.equals(Platform.getOS())); - Assert.assertEquals("file:///test%20with%20space", LSPEclipseUtils.toUri(new File("/test with space")).toString()); + assumeFalse(Platform.OS_WIN32.equals(Platform.getOS())); + assertEquals("file:///test%20with%20space", LSPEclipseUtils.toUri(new File("/test with space")).toString()); } @Test public void testToUri_WindowsDriveLetter() { - Assume.assumeTrue(Platform.OS_WIN32.equals(Platform.getOS())); + assumeTrue(Platform.OS_WIN32.equals(Platform.getOS())); // Use a synthetic drive path (doesn't need to exist) File drivePath = new File("C:\\Temp\\with space"); URI uri = LSPEclipseUtils.toUri(drivePath); // Should be file:///C:/... and percent-encode spaces - Assert.assertTrue(uri.toString().startsWith("file:///C:/Temp/")); - Assert.assertFalse(uri.toString().contains(" ")); - Assert.assertTrue(uri.toString().contains("with%20space")); + assertTrue(uri.toString().startsWith("file:///C:/Temp/")); + assertFalse(uri.toString().contains(" ")); + assertTrue(uri.toString().contains("with%20space")); // Should not contain quadruple slashes - Assert.assertFalse(uri.toString().startsWith("file:////")); + assertFalse(uri.toString().startsWith("file:////")); } @Test public void testUNCwindowsURI() { - Assume.assumeTrue(Platform.OS_WIN32.equals(Platform.getOS())); + assumeTrue(Platform.OS_WIN32.equals(Platform.getOS())); URI preferredURI = URI.create("file://localhost/c$/Windows"); URI javaURI = URI.create("file:////localhost/c$/Windows"); File file1 = LSPEclipseUtils.fromUri(preferredURI); File file2 = LSPEclipseUtils.fromUri(javaURI); - Assert.assertEquals(file1, file2); + assertEquals(file1, file2); } @Test public void testToUri_WindowsUNC() { - Assume.assumeTrue(Platform.OS_WIN32.equals(Platform.getOS())); + assumeTrue(Platform.OS_WIN32.equals(Platform.getOS())); File unc = new File("\\\\localhost\\c$\\Windows"); URI uri = LSPEclipseUtils.toUri(unc); System.err.println(uri.toString()); - Assert.assertTrue(uri.toString().startsWith("file://localhost/c$/Windows")); + assertTrue(uri.toString().startsWith("file://localhost/c$/Windows")); File uncWithSpaces = new File("\\\\server-name\\shared folder\\dir with space"); URI uriWithSpaces = LSPEclipseUtils.toUri(uncWithSpaces); - Assert.assertTrue(uriWithSpaces.toString().startsWith("file://server-name/shared%20folder/dir%20with%20space")); + assertTrue(uriWithSpaces.toString().startsWith("file://server-name/shared%20folder/dir%20with%20space")); // Ensure there is an authority and no malformed quadruple slashes - Assert.assertFalse(uriWithSpaces.toString().startsWith("file:////")); + assertFalse(uriWithSpaces.toString().startsWith("file:////")); } @Test public void testToWorkspaceFolder() { WorkspaceFolder folder = LSPEclipseUtils.toWorkspaceFolder(project); - Assert.assertEquals(project.getName(), folder.getName()); - Assert.assertEquals("file://", folder.getUri().substring(0, "file://".length())); + assertEquals(project.getName(), folder.getName()); + assertEquals("file://", folder.getUri().substring(0, "file://".length())); } @Test @@ -501,7 +506,7 @@ public void testGetOpenEditorExternalFile() throws Exception { out.write('a'); } IDE.openEditorOnFileStore(UI.getActivePage(), EFS.getStore(file.toURI())); - Assert.assertNotEquals(Collections.emptySet(), LSPEclipseUtils.findOpenEditorsFor(file.toURI())); + assertNotEquals(Collections.emptySet(), LSPEclipseUtils.findOpenEditorsFor(file.toURI())); } @Test @@ -512,7 +517,7 @@ public void testToCompletionParams_EmptyDocument() throws Exception { // When toCompletionParams get called with offset == 0 and document.getLength() == 0: var param = LSPEclipseUtils.toCompletionParams(file.getLocationURI(), 0, LSPEclipseUtils.getDocument(file), triggerChars); // Then no context has been added to param: - Assert.assertNull(param.getContext()); + assertNull(param.getContext()); } @Test @@ -523,7 +528,7 @@ public void testToCompletionParams_ZeroOffset() throws Exception { // When toCompletionParams get called with offset == 0 and document.getLength() > 0: var param = LSPEclipseUtils.toCompletionParams(file.getLocationURI(), 0, LSPEclipseUtils.getDocument(file), triggerChars); // Then the trigger kind is Invoked: - Assert.assertEquals(param.getContext().getTriggerKind(), CompletionTriggerKind.Invoked); + assertEquals(param.getContext().getTriggerKind(), CompletionTriggerKind.Invoked); } @Test @@ -534,9 +539,9 @@ public void testToCompletionParams_MatchingTriggerCharacter() throws Exception { // When toCompletionParams get called with offset > 0 and document.getLength() > 0: var param = LSPEclipseUtils.toCompletionParams(file.getLocationURI(), 4, LSPEclipseUtils.getDocument(file), triggerChars); // Then the context has been added with a colon as trigger character: - Assert.assertEquals(param.getContext().getTriggerCharacter(), ":"); + assertEquals(param.getContext().getTriggerCharacter(), ":"); // And the trigger kind is TriggerCharacter: - Assert.assertEquals(param.getContext().getTriggerKind(), CompletionTriggerKind.TriggerCharacter); + assertEquals(param.getContext().getTriggerKind(), CompletionTriggerKind.TriggerCharacter); } @Test @@ -547,7 +552,7 @@ public void testToCompletionParams_NonMatchingTriggerCharacter() throws Exceptio // When toCompletionParams get called with offset > 0 and document.getLength() > 0: var param = LSPEclipseUtils.toCompletionParams(file.getLocationURI(), 3, LSPEclipseUtils.getDocument(file), triggerChars); // Then the trigger kind is Invoked: - Assert.assertEquals(param.getContext().getTriggerKind(), CompletionTriggerKind.Invoked); + assertEquals(param.getContext().getTriggerKind(), CompletionTriggerKind.Invoked); } @Test diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/folding/FoldingCommandsTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/folding/FoldingCommandsTest.java index 42003420b..b95f78f03 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/folding/FoldingCommandsTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/folding/FoldingCommandsTest.java @@ -11,7 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.folding; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.List; @@ -31,7 +32,7 @@ import org.eclipse.lsp4j.FoldingRangeKind; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.handlers.IHandlerService; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FoldingCommandsTest extends AbstractTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/folding/FoldingTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/folding/FoldingTest.java index 72912c0a1..154f88918 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/folding/FoldingTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/folding/FoldingTest.java @@ -8,7 +8,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.folding; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; @@ -25,7 +25,7 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.tests.harness.util.DisplayHelper; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FoldingTest extends AbstractTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatHandlerReadOnlyTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatHandlerReadOnlyTest.java index ebdc370ae..fe0fc3e60 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatHandlerReadOnlyTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatHandlerReadOnlyTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.format; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; import java.util.HashSet; @@ -39,7 +39,7 @@ import org.eclipse.ui.PlatformUI; import org.eclipse.ui.handlers.IHandlerService; import org.eclipse.ui.texteditor.ITextEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FormatHandlerReadOnlyTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatRegionsProviderUtilTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatRegionsProviderUtilTest.java index d7602f30e..e97dda3ba 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatRegionsProviderUtilTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatRegionsProviderUtilTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.format; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Dictionary; import java.util.Hashtable; @@ -22,7 +22,7 @@ import org.eclipse.lsp4e.format.DefaultFormatRegionsProvider; import org.eclipse.lsp4e.format.IFormatRegionsProvider; import org.eclipse.lsp4e.internal.FormatRegionsProviderUtil; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.osgi.framework.BundleContext; import org.osgi.framework.FrameworkUtil; import org.osgi.framework.ServiceRegistration; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatTest.java index ab0cb24c0..0a22092d7 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatTest.java @@ -11,8 +11,12 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.format; -import static org.eclipse.lsp4e.test.utils.TestUtils.*; -import static org.junit.Assert.*; +import static org.eclipse.lsp4e.test.utils.TestUtils.numberOfChangesIs; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import java.util.ArrayList; import java.util.Collections; @@ -40,7 +44,7 @@ import org.eclipse.lsp4j.TextEdit; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.texteditor.ITextEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FormatTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/highlight/HighlightTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/highlight/HighlightTest.java index 9d51ecbdd..457d22a2e 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/highlight/HighlightTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/highlight/HighlightTest.java @@ -14,7 +14,9 @@ package org.eclipse.lsp4e.test.highlight; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.fail; +import static org.junit.jupiter.api.Assumptions.assumeTrue; import java.util.ArrayList; import java.util.List; @@ -37,9 +39,7 @@ import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; import org.eclipse.ui.IEditorReference; -import org.junit.Assert; -import org.junit.Assume; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.osgi.framework.Bundle; import org.osgi.framework.Version; @@ -71,7 +71,7 @@ public void testHighlight() throws CoreException { return true; }); } else { - Assert.fail("ISourceViewer expected but got: " + viewer); + fail("ISourceViewer expected but got: " + viewer); } } @@ -147,8 +147,8 @@ public void testHighlightsInMultipleViewersForOneSource() throws CoreException { break; } } - Assert.assertNotNull(viewer2); - Assert.assertNotNull(editorToClose); + assertNotNull(viewer2); + assertNotNull(editorToClose); final var annotationModel2 = viewer2.getAnnotationModel(); @@ -224,6 +224,6 @@ private void assertAnnotationDoesNotExist(IAnnotationModel annotationModel, Stri private void checkGenericEditorVersion() { // ignore tests for generic editor without reconciler API Bundle bundle = Platform.getBundle("org.eclipse.ui.genericeditor"); - Assume.assumeTrue(bundle.getVersion().compareTo(new Version(1, 1, 0)) >= 0); + assumeTrue(bundle.getVersion().compareTo(new Version(1, 1, 0)) >= 0); } } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/hover/HoverTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/hover/HoverTest.java index 17bab197f..5fb0dd66f 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/hover/HoverTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/hover/HoverTest.java @@ -12,17 +12,16 @@ package org.eclipse.lsp4e.test.hover; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; -import java.io.IOException; import java.lang.reflect.Field; import java.util.Collections; -import java.util.concurrent.TimeUnit; import java.util.List; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.core.filesystem.EFS; @@ -51,15 +50,14 @@ import org.eclipse.ui.IEditorPart; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.ide.IDE; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; @SuppressWarnings("restriction") public class HoverTest extends AbstractTestWithProject { private LSPTextHover hover; - @Before + @BeforeEach public void setUp() { hover = new LSPTextHover(); } @@ -85,8 +83,8 @@ public void testHoverRegionInvalidOffset() throws CoreException { var region = hover.getHoverRegion(viewer, 15); assertNotNull(region); - assertTrue("region should include the hover offset", - region.getOffset() <= 15 && (region.getOffset() + region.getLength()) >= 15); + assertTrue(region.getOffset() <= 15 && (region.getOffset() + region.getLength()) >= 15, + "region should include the hover offset"); } @Test @@ -147,7 +145,7 @@ public void testHoverOnExternalFile() throws Exception { ITextViewer viewer = LSPEclipseUtils .getTextViewer(IDE.openInternalEditorOnFileStore(UI.getActivePage(), EFS.getStore(file.toURI()))); String html = hover.getHoverInfoFuture(viewer, new Region(0, 0)).get(2, TimeUnit.SECONDS); - Assert.assertTrue(html != null && html.contains("blah")); + assertTrue(html != null && html.contains("blah")); } @Test @@ -161,10 +159,10 @@ public void testMultipleHovers() throws Exception { String hoverInfo = hover.getHoverInfoFuture(viewer, new Region(0, 10)).get(2, TimeUnit.SECONDS); int index = hoverInfo.indexOf("HoverContent"); - assertNotEquals("Hover content not found", -1, index); + assertNotEquals(-1, index, "Hover content not found"); index += "HoverContent".length(); index = hoverInfo.indexOf("HoverContent", index); - assertNotEquals("Hover content found only once", -1, index); + assertNotEquals(-1, index, "Hover content found only once"); } @Test @@ -218,7 +216,7 @@ public void completed(ProgressEvent event) { } }); - assertNotNull("Editor should be opened", viewer.getTextWidget()); + assertNotNull(viewer.getTextWidget(), "Editor should be opened"); UI.getActivePage().activate(editorPart); browser.setText(hoverContent); diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/CharsInputStreamTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/CharsInputStreamTest.java index 2f232ee5a..b5a8e3961 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/CharsInputStreamTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/CharsInputStreamTest.java @@ -12,13 +12,14 @@ package org.eclipse.lsp4e.test.internal; import static java.nio.charset.StandardCharsets.UTF_8; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.ArrayList; import org.eclipse.lsp4e.internal.CharsInputStream; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class CharsInputStreamTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/DocumentInputStreamTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/DocumentInputStreamTest.java index c59dcb703..8e8e9e99d 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/DocumentInputStreamTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/DocumentInputStreamTest.java @@ -12,7 +12,8 @@ package org.eclipse.lsp4e.test.internal; import static java.nio.charset.StandardCharsets.UTF_8; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.ArrayList; @@ -24,8 +25,8 @@ import org.eclipse.lsp4e.internal.DocumentInputStream; import org.eclipse.lsp4e.test.utils.AbstractTestWithProject; import org.eclipse.lsp4e.test.utils.TestUtils; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; public class DocumentInputStreamTest extends AbstractTestWithProject { @@ -39,7 +40,7 @@ public class DocumentInputStreamTest extends AbstractTestWithProject { private IDocument document; - @Before + @BeforeEach public void setUp() throws CoreException { final var testFile = TestUtils.createUniqueTestFile(project, TEST_UNICODE); document = LSPEclipseUtils.getDocument(testFile); diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/HumanFriendlyComparatorTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/HumanFriendlyComparatorTest.java index 78b45a5e7..0fe77d785 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/HumanFriendlyComparatorTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/internal/HumanFriendlyComparatorTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.internal; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.text.Collator; import java.util.Arrays; @@ -19,7 +19,7 @@ import java.util.Locale; import org.eclipse.lsp4e.internal.HumanFriendlyComparator; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class HumanFriendlyComparatorTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/linkedediting/LinkedEditingTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/linkedediting/LinkedEditingTest.java index abace9b11..f612fc756 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/linkedediting/LinkedEditingTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/linkedediting/LinkedEditingTest.java @@ -12,10 +12,11 @@ package org.eclipse.lsp4e.test.linkedediting; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import java.util.ArrayList; import java.util.HashMap; @@ -35,8 +36,7 @@ import org.eclipse.lsp4j.LinkedEditingRanges; import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class LinkedEditingTest extends AbstractTestWithProject { @@ -58,7 +58,7 @@ public void testLinkedEditing() throws CoreException { } Annotation annotation = annotations.get(new LinkedPosition(sourceViewer.getDocument(), 10, 4, 0)); - Assert.assertNotNull(annotation); + assertNotNull(annotation); assertTrue(annotation.getType().startsWith("org.eclipse.ui.internal.workbench.texteditor.link")); } @@ -73,7 +73,7 @@ public void testLinkedEditingExitPolicy() throws CoreException { IAnnotationModel model = sourceViewer.getAnnotationModel(); List annotations = findAnnotations(sourceViewer, 14).stream().filter(a -> a.getType().startsWith("org.eclipse.ui.internal.workbench.texteditor.link")).toList(); - assertEquals("Exepected only 1 link annotation here, got " + annotations, 1, annotations.size()); + assertEquals(1, annotations.size(), "Exepected only 1 link annotation here, got " + annotations); Annotation masterAnnotation = findAnnotation(sourceViewer, "org.eclipse.ui.internal.workbench.texteditor.link.master"); assertNotNull(masterAnnotation); assertTrue(annotations.contains(masterAnnotation)); @@ -110,7 +110,7 @@ public void testSelectionChange() throws CoreException { ITextViewer viewer = TestUtils.openTextViewer(testFile); if (!(viewer instanceof ISourceViewer)) { - Assert.fail(); + fail(); } var sourceViewer = (ISourceViewer) viewer; @@ -149,7 +149,7 @@ private ISourceViewer setupSimpleHtmlPageViewer() throws CoreException { ITextViewer viewer = TestUtils.openTextViewer(testFile); if (!(viewer instanceof ISourceViewer)) { - Assert.fail(); + fail(); } return (ISourceViewer) viewer; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/message/ShowMessageTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/message/ShowMessageTest.java index 3a7b3b895..c96bcab11 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/message/ShowMessageTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/message/ShowMessageTest.java @@ -27,7 +27,7 @@ import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.ide.IDE; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ShowMessageTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/codelens/LSPCodeMiningTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/codelens/LSPCodeMiningTest.java index 30faec723..0cbcef5f7 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/codelens/LSPCodeMiningTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/codelens/LSPCodeMiningTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.operations.codelens; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; import java.util.concurrent.TimeUnit; @@ -42,7 +42,7 @@ import org.eclipse.swt.widgets.Event; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.handlers.IHandlerService; -import org.junit.Test; +import org.junit.jupiter.api.Test; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/inlayhint/LSPLineContentCodeMiningTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/inlayhint/LSPLineContentCodeMiningTest.java index 4360b5f21..2fbded965 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/inlayhint/LSPLineContentCodeMiningTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/inlayhint/LSPLineContentCodeMiningTest.java @@ -12,7 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.operations.inlayhint; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; import java.util.concurrent.TimeUnit; @@ -37,7 +37,7 @@ import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; -import org.junit.Test; +import org.junit.jupiter.api.Test; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/EditorToOutlineAdapterFactoryTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/EditorToOutlineAdapterFactoryTest.java index 271d59205..ffc47cebb 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/EditorToOutlineAdapterFactoryTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/EditorToOutlineAdapterFactoryTest.java @@ -11,6 +11,9 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.outline; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.CoreException; import org.eclipse.lsp4e.test.utils.AbstractTestWithProject; @@ -21,15 +24,14 @@ import org.eclipse.ui.IViewPart; import org.eclipse.ui.tests.harness.util.DisplayHelper; import org.eclipse.ui.views.contentoutline.ContentOutline; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; public class EditorToOutlineAdapterFactoryTest extends AbstractTestWithProject { private static ContentOutline outline; - @BeforeClass + @BeforeAll public static void setUpBeforeClass() { // look for content outline in current workbench, could be null IViewPart viewPart = UI.getActivePage().findView("org.eclipse.ui.views.ContentOutline"); //$NON-NLS-1$ @@ -39,7 +41,7 @@ public static void setUpBeforeClass() { outline = thisOutline; } - Assert.assertNotNull(outline); + assertNotNull(outline); } @Test @@ -54,11 +56,10 @@ public void testGetAdapter() throws CoreException { outline.partOpened(outline); long endOpenOutline = System.currentTimeMillis(); long durationOpenOutline = endOpenOutline - beginOpenOutline; - Assert.assertTrue(String.format("Open outline took longer than 50ms: %d", durationOpenOutline), - durationOpenOutline <= 50); + assertTrue(durationOpenOutline <= 50, String.format("Open outline took longer than 50ms: %d", durationOpenOutline)); DisplayHelper.sleep(Display.getCurrent(), 1000); // leave time for outline to be refreshed when LS is ready. String pageClassName = outline.getCurrentPage().getClass().getCanonicalName(); - Assert.assertTrue("Outline page class is not as expected: " + pageClassName, pageClassName.contains("lsp4e")); + assertTrue(pageClassName.contains("lsp4e"), "Outline page class is not as expected: " + pageClassName); } } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineContentTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineContentTest.java index 79825bed2..4cff2fe4b 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineContentTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineContentTest.java @@ -8,8 +8,9 @@ */ package org.eclipse.lsp4e.test.outline; -import static org.eclipse.lsp4e.test.utils.TestUtils.*; -import static org.junit.Assert.assertFalse; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForCondition; +import static org.junit.jupiter.api.Assertions.assertFalse; import java.io.FileWriter; import java.io.IOException; @@ -43,7 +44,7 @@ import org.eclipse.ui.tests.harness.util.DisplayHelper; import org.eclipse.ui.texteditor.ITextEditor; import org.eclipse.ui.views.contentoutline.IContentOutlinePage; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class OutlineContentTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineViewerInputTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineViewerInputTest.java index 7bc7e8c55..ef9660d36 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineViewerInputTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineViewerInputTest.java @@ -11,8 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.outline; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.FileWriter; import java.io.IOException; @@ -25,7 +25,7 @@ import org.eclipse.lsp4e.test.utils.AbstractTestWithProject; import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.ui.texteditor.ITextEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * Tests to verify that documentURI always contains absolute paths in the file system. @@ -43,15 +43,15 @@ public void testDocumentURIAbsolutePathForWorkspaceFile() throws CoreException, var outlineInput = new LSSymbolsContentProvider.OutlineViewerInput(document, null, null); var documentURI = getDocumentURI(outlineInput); - assertNotNull("documentURI should not be null", documentURI); + assertNotNull(documentURI, "documentURI should not be null"); // Verify it represents a valid file system path assertTrue("file".equals(documentURI.getScheme())); assertTrue(documentURI.toString().startsWith("file:///")); // For workspace files, verify the URI corresponds to the absolute workspace file location var workspaceFileLocation = testFile.getLocation().toString(); - assertTrue("documentURI should contain the abolute path in the file system", - documentURI.toString().contains(workspaceFileLocation)); + assertTrue(documentURI.toString().contains(workspaceFileLocation), + "documentURI should contain the abolute path in the file system"); } @Test @@ -70,7 +70,7 @@ public void testDocumentURIAbsolutePathForExternalFile() throws IOException, Cor var outlineInput = new LSSymbolsContentProvider.OutlineViewerInput(document, null, editor); var documentURI = getDocumentURI(outlineInput); - assertNotNull("DocumentURI should not be null for external files", documentURI); + assertNotNull(documentURI, "DocumentURI should not be null for external files"); // Verify it represents a valid file system path assertTrue("file".equals(documentURI.getScheme())); @@ -78,8 +78,8 @@ public void testDocumentURIAbsolutePathForExternalFile() throws IOException, Cor // Verify it points to the same file we created // replace '\' with '/' on Windows and remove leading '/' from documentURI path on Windows: - assertTrue("documentURI should contain the abolute path in the file system", - documentURI.toString().contains(tempFile.getAbsolutePath().replace("\\","/"))); + assertTrue(documentURI.toString().contains(tempFile.getAbsolutePath().replace("\\","/")), + "documentURI should contain the abolute path in the file system"); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/SymbolsLabelProviderTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/SymbolsLabelProviderTest.java index 46262ca49..a796bf4b6 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/SymbolsLabelProviderTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/SymbolsLabelProviderTest.java @@ -11,7 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.outline; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.eclipse.lsp4e.outline.SymbolsLabelProvider; import org.eclipse.lsp4e.outline.SymbolsModel; @@ -22,7 +23,7 @@ import org.eclipse.lsp4j.Range; import org.eclipse.lsp4j.SymbolInformation; import org.eclipse.lsp4j.SymbolKind; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class SymbolsLabelProviderTest extends AbstractTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/references/FindReferencesTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/references/FindReferencesTest.java index feb592ff8..2b883e7b4 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/references/FindReferencesTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/references/FindReferencesTest.java @@ -13,7 +13,11 @@ package org.eclipse.lsp4e.test.references; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import java.util.HashMap; import java.util.List; @@ -42,9 +46,9 @@ import org.eclipse.ui.monitoring.UiFreezeEvent; import org.eclipse.ui.services.IEvaluationService; import org.eclipse.ui.tests.harness.util.DisplayHelper; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; @SuppressWarnings("restriction") public class FindReferencesTest extends AbstractTestWithProject { @@ -66,7 +70,7 @@ public void log(UiFreezeEvent event) { } } - @Before + @BeforeEach public void setUp() throws Exception { ensureSearchResultViewIsClosed(); @@ -78,7 +82,7 @@ public void setUp() throws Exception { new Location(testFile.getLocationURI().toString(), new Range(new Position(1, 6), new Position(1, 11)))); } - @After + @AfterEach public void tearDown() { ensureSearchResultViewIsClosed(); } @@ -113,8 +117,9 @@ public void testFindReferencesIsNonBlocking() throws Exception { handler.execute(new ExecutionEvent(null, new HashMap<>(), null, evaluationService.getCurrentState())); long executionTime = System.currentTimeMillis() - startTime; - assertTrue(handler.getClass().getSimpleName() + ".execute(...) blocks UI for " + executionTime - + "ms. Acceptable is <" + uiFreezeThreshold + "ms", executionTime < uiFreezeThreshold); + assertTrue(executionTime < uiFreezeThreshold, + handler.getClass().getSimpleName() + ".execute(...) blocks UI for " + executionTime + + "ms. Acceptable is <" + uiFreezeThreshold + "ms"); waitForAndAssertSearchResult(searchResultListener, findReferencesFakeDuration, findReferencesFakeDuration + 1_000); @@ -124,8 +129,7 @@ public void testFindReferencesIsNonBlocking() throws Exception { } final var uiFreezeCount = UiFreezeEventLogger.INSTANCE.events.size(); - assertEquals("UI Thread was frozen " + uiFreezeCount + " times for more than " + uiFreezeThreshold + "ms", // - 0, uiFreezeCount); + assertEquals(0, uiFreezeCount, "UI Thread was frozen " + uiFreezeCount + " times for more than " + uiFreezeThreshold + "ms"); } private EventLoopMonitorThread initFreezeMonitor(int uiFreezeThreshold) { @@ -180,7 +184,7 @@ private void waitForAndAssertSearchResult(CompletableFuture { final var searchResult = searchResultListener.getNow(null); - assertNotNull("No search query was executed", searchResult); + assertNotNull(searchResult, "No search query was executed"); if (searchResult.first() instanceof LSSearchResult lsSearchResult) { final long now = System.currentTimeMillis(); @@ -204,9 +208,9 @@ private void waitForAndAssertSearchResult(CompletableFuture= min_time_ms); + assertTrue(searchDuration.get() >= min_time_ms, "Search result returned too early!"); - assertNotNull("Search result view is not shown", NewSearchUI.getSearchResultView()); + assertNotNull(NewSearchUI.getSearchResultView(), "Search result view is not shown"); } else { fail("Search result " + searchResult + " is not of expected type LSSearchResult"); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/LSPTextChangeTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/LSPTextChangeTest.java index a06e7d283..843e7a0d5 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/LSPTextChangeTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/LSPTextChangeTest.java @@ -11,7 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.rename; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.File; import java.nio.file.Files; @@ -27,7 +28,7 @@ import org.eclipse.lsp4j.Range; import org.eclipse.lsp4j.TextEdit; import org.eclipse.ltk.core.refactoring.PerformChangeOperation; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class LSPTextChangeTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/RenameTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/RenameTest.java index 1a9c56c93..ceebca515 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/RenameTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/RenameTest.java @@ -14,7 +14,10 @@ package org.eclipse.lsp4e.test.rename; import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.File; import java.lang.reflect.Method; @@ -60,7 +63,7 @@ import org.eclipse.ui.commands.ICommandService; import org.eclipse.ui.handlers.IHandlerService; import org.eclipse.ui.texteditor.ITextEditor; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RenameTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticHighlightReconcilerStrategyTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticHighlightReconcilerStrategyTest.java index 480cfedb0..a575f576a 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticHighlightReconcilerStrategyTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticHighlightReconcilerStrategyTest.java @@ -8,7 +8,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.semanticTokens; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; import java.util.List; @@ -23,14 +24,14 @@ import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.tests.harness.util.DisplayHelper; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; public class SemanticHighlightReconcilerStrategyTest extends AbstractTestWithProject { private Shell shell; - @Before + @BeforeEach public void setUp() { shell = new Shell(); diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensDataStreamProcessorTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensDataStreamProcessorTest.java index c1d4859db..784983e13 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensDataStreamProcessorTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensDataStreamProcessorTest.java @@ -8,7 +8,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.semanticTokens; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.List; @@ -17,7 +17,7 @@ import org.eclipse.lsp4e.test.utils.AbstractTest; import org.eclipse.lsp4j.SemanticTokensLegend; import org.eclipse.swt.custom.StyleRange; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class SemanticTokensDataStreamProcessorTest extends AbstractTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensLegendProviderTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensLegendProviderTest.java index df8359059..307cc964b 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensLegendProviderTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensLegendProviderTest.java @@ -8,8 +8,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.semanticTokens; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.util.List; @@ -20,7 +20,7 @@ import org.eclipse.lsp4e.operations.semanticTokens.SemanticTokensClient; import org.eclipse.lsp4e.test.utils.AbstractTestWithProject; import org.eclipse.lsp4e.test.utils.TestUtils; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class SemanticTokensLegendProviderTest extends AbstractTestWithProject { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeHolderTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeHolderTest.java index f22f5bb02..d0a02e11b 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeHolderTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeHolderTest.java @@ -8,7 +8,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.semanticTokens; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; import java.util.List; @@ -19,7 +20,7 @@ import org.eclipse.lsp4e.test.utils.AbstractTest; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.graphics.Color; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class StyleRangeHolderTest extends AbstractTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeMergerTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeMergerTest.java index e7406942d..cfcbaf190 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeMergerTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeMergerTest.java @@ -10,7 +10,7 @@ import static org.eclipse.lsp4e.test.semanticTokens.SemanticTokensTestUtil.GREEN; import static org.eclipse.lsp4e.test.semanticTokens.SemanticTokensTestUtil.RED; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.List; @@ -18,13 +18,13 @@ import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.Region; import org.eclipse.jface.text.TextPresentation; -import org.eclipse.lsp4e.operations.semanticTokens.StyleRangeMerger; import org.eclipse.lsp4e.operations.semanticTokens.StyleRangeHolder; +import org.eclipse.lsp4e.operations.semanticTokens.StyleRangeMerger; import org.eclipse.lsp4e.test.utils.AbstractTest; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.graphics.Color; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class StyleRangeMergerTest extends AbstractTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/server/StreamConnectionProviderTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/server/StreamConnectionProviderTest.java index e1116b83a..c7cc3b0c8 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/server/StreamConnectionProviderTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/server/StreamConnectionProviderTest.java @@ -12,7 +12,8 @@ package org.eclipse.lsp4e.test.server; import static java.nio.charset.StandardCharsets.UTF_8; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -24,7 +25,7 @@ import org.eclipse.lsp4e.server.StreamConnectionProvider; import org.eclipse.lsp4j.jsonrpc.messages.Message; import org.eclipse.lsp4j.services.LanguageServer; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class StreamConnectionProviderTest { @@ -69,7 +70,7 @@ public void test_forwardCopy_singleByteRead_writesToProvidedOutput() throws Exce // read one byte at a time to exercise single-byte read path } } - assertEquals("expected input to be forwarded to provided OutputStream", "ABC", sink.toString(UTF_8)); + assertEquals("ABC", sink.toString(UTF_8), "expected input to be forwarded to provided OutputStream"); } @Test @@ -80,7 +81,7 @@ public void test_forwardCopy_readArray_onEOF_returnsMinusOne_noException() throw try (final var forwarding = newProvider().forwardCopyTo(emptyInput, sink)) { final var buf = new byte[8]; int n = forwarding.read(buf); // should be -1 and not throw - assertEquals("expected EOF (-1) on empty stream", -1, n); + assertEquals(-1, n, "expected EOF (-1) on empty stream"); } assertArrayEquals(new byte[0], sink.toByteArray()); } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/symbols/SymbolsModelTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/symbols/SymbolsModelTest.java index c5038ab2f..dec6d64db 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/symbols/SymbolsModelTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/symbols/SymbolsModelTest.java @@ -12,7 +12,9 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.symbols; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.net.URI; import java.util.Arrays; @@ -28,7 +30,7 @@ import org.eclipse.lsp4j.SymbolInformation; import org.eclipse.lsp4j.SymbolKind; import org.eclipse.lsp4j.jsonrpc.messages.Either; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class SymbolsModelTest extends AbstractTest { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AbstractTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AbstractTest.java index 58bfd226f..f95c36add 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AbstractTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AbstractTest.java @@ -15,13 +15,14 @@ import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.ServerCapabilities; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Rule; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Order; +import org.junit.jupiter.api.extension.RegisterExtension; /** - * Test base class that configures a {@link AllCleanRule} and a - * {@link TestInfoRule} and works around a surefire-plugin issue which + * Test base class that configures a {@link AllCleanExtension} and a + * {@link TestInfoExtension} and works around a surefire-plugin issue which * suppresses output to stderr */ public abstract class AbstractTest { @@ -30,7 +31,7 @@ public abstract class AbstractTest { private static final boolean isExecutedBySurefirePlugin = System.getProperty("surefire.real.class.path") != null; - @BeforeClass + @BeforeAll public static void setUpSystemErrRedirection() throws Exception { if (isExecutedBySurefirePlugin) { // redirect stderr to stdout during test execution as it is otherwise suppressed @@ -40,15 +41,20 @@ public static void setUpSystemErrRedirection() throws Exception { } } - @AfterClass + @AfterAll public static void tearDownSystemErrRedirection() throws Exception { if (isExecutedBySurefirePlugin) { System.setErr(originalSystemErr); } } - public final @Rule(order = 1) AllCleanRule allCleanRule = new AllCleanRule(this::getServerCapabilities); - public final @Rule(order = 0) TestInfoRule testInfo = new TestInfoRule(); + @RegisterExtension + @Order(1) + public final AllCleanExtension allCleanRule = new AllCleanExtension(this::getServerCapabilities); + + @RegisterExtension + @Order(0) + public final TestInfoExtension testInfo = new TestInfoExtension(); /** * Override if required, used by {@link #allCleanRule} diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AbstractTestWithProject.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AbstractTestWithProject.java index 02ed3876d..35e4e8641 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AbstractTestWithProject.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AbstractTestWithProject.java @@ -11,10 +11,13 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.utils; +import java.lang.reflect.Method; + import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; -import org.junit.After; -import org.junit.Before; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.TestInfo; /** * Test base class that provides a new unique temporary test project for each @org.junit.Test run @@ -22,13 +25,15 @@ public abstract class AbstractTestWithProject extends AbstractTest { protected IProject project; - @Before - public void setUpProject() throws Exception { - project = TestUtils.createProject( - testInfo.getSimpleClassName() + "_" + testInfo.getMethodName() + "_" + System.currentTimeMillis()); + @BeforeEach + public void setUpProject(TestInfo testInfo) throws Exception { + String testClass = testInfo.getTestClass().map(Class::getSimpleName).orElse("UnknownTestClass"); + String testMethod = testInfo.getTestMethod().map(Method::getName).orElse("UnknownTestMethod"); + String projectName = testClass + "_" + testMethod + "_" + System.currentTimeMillis(); + project = TestUtils.createProject(projectName); } - @After + @AfterEach public void tearDownProject() throws Exception { if (project != null) { project.delete(IResource.FORCE, null); diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AllCleanRule.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AllCleanExtension.java similarity index 81% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AllCleanRule.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AllCleanExtension.java index 7ae5d7a97..85e10b5d0 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AllCleanRule.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AllCleanExtension.java @@ -25,24 +25,24 @@ import org.eclipse.lsp4j.ServerCapabilities; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.intro.IIntroPart; -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; +import org.junit.jupiter.api.extension.AfterEachCallback; +import org.junit.jupiter.api.extension.BeforeEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; -public class AllCleanRule extends TestWatcher { +public class AllCleanExtension implements BeforeEachCallback, AfterEachCallback { private final Supplier serverConfigurer; - public AllCleanRule() { + public AllCleanExtension() { this.serverConfigurer = MockLanguageServer::defaultServerCapabilities; } - public AllCleanRule(final Supplier serverConfigurer) { + public AllCleanExtension(final Supplier serverConfigurer) { this.serverConfigurer = serverConfigurer; } @Override - protected void starting(Description description) { - super.starting(description); + public void beforeEach(ExtensionContext context) throws Exception { IIntroPart intro = PlatformUI.getWorkbench().getIntroManager().getIntro(); if (intro != null) { PlatformUI.getWorkbench().getIntroManager().closeIntro(intro); @@ -51,9 +51,8 @@ protected void starting(Description description) { } @Override - protected void finished(Description description) { + public void afterEach(ExtensionContext context) throws Exception { clear(); - super.finished(description); } private void clear() { @@ -74,4 +73,5 @@ private void clear() { MockConnectionProvider.cancellations.clear(); TestUtils.tearDown(); } + } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/NoErrorLoggedRule.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/NoErrorLoggedRule.java index 4d5e5672c..34cdc1f89 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/NoErrorLoggedRule.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/NoErrorLoggedRule.java @@ -11,6 +11,8 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.utils; +import static org.junit.jupiter.api.Assertions.assertEquals; + import java.lang.System.Logger.Level; import java.util.ArrayList; import java.util.Collections; @@ -20,11 +22,11 @@ import org.eclipse.core.runtime.ILogListener; import org.eclipse.core.runtime.IStatus; import org.eclipse.lsp4e.LanguageServerPlugin; -import org.junit.Assert; -import org.junit.rules.TestWatcher; -import org.junit.runner.Description; +import org.junit.jupiter.api.extension.AfterEachCallback; +import org.junit.jupiter.api.extension.BeforeEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; -public class NoErrorLoggedRule extends TestWatcher { +public class NoErrorLoggedRule implements BeforeEachCallback, AfterEachCallback { private ILog log; private ILogListener listener; @@ -54,16 +56,15 @@ public NoErrorLoggedRule(ILog log) { } @Override - protected void starting(Description description) { - super.starting(description); + public void beforeEach(ExtensionContext context) throws Exception { loggedErrors.clear(); log.addLogListener(listener); } @Override - protected void finished(Description description) { + public void afterEach(ExtensionContext context) throws Exception { log.removeLogListener(listener); - Assert.assertEquals("Some errors were logged", Collections.emptyList(), loggedErrors); - super.finished(description); + assertEquals(Collections.emptyList(), loggedErrors, "Some errors were logged"); } + } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestInfoExtension.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestInfoExtension.java new file mode 100644 index 000000000..81026b4c5 --- /dev/null +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestInfoExtension.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2024 Vegard IT GmbH and others. + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Sebastian Thomschke (Vegard IT GmbH) - initial implementation + *******************************************************************************/ +package org.eclipse.lsp4e.test.utils; + +import java.lang.System.Logger.Level; + +import org.junit.jupiter.api.extension.BeforeEachCallback; +import org.junit.jupiter.api.extension.ExtensionContext; + +public class TestInfoExtension implements BeforeEachCallback { + + @Override + public void beforeEach(ExtensionContext context) { + String testClass = context.getTestClass().map(Class::getName).orElse("UnknownTestClass"); + System.getLogger(testClass).log(Level.INFO, "Testing [" + context.getDisplayName() + "]..."); + } + +} diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestInfoRule.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestInfoRule.java deleted file mode 100644 index e78f117b1..000000000 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestInfoRule.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2024 Vegard IT GmbH and others. - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Sebastian Thomschke (Vegard IT GmbH) - initial implementation - *******************************************************************************/ -package org.eclipse.lsp4e.test.utils; - -import java.lang.System.Logger.Level; - -import org.junit.rules.TestName; -import org.junit.runner.Description; - -public class TestInfoRule extends TestName { - private volatile Class testClass; - private volatile String displayName; - - @Override - protected void starting(Description d) { - super.starting(d); - testClass = d.getTestClass(); - System.getLogger(testClass.getName()).log(Level.INFO, "Testing [" + getMethodName() + "()]..."); - } - - public String getClassName() { - return testClass.getName(); - } - - public String getDisplayName() { - return displayName; - } - - public String getSimpleClassName() { - return testClass.getSimpleName(); - } - - @Override - public String toString() { - return getClassName() + "#" + getMethodName(); - } -} diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestUtils.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestUtils.java index 21d536106..05abfb9c3 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestUtils.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestUtils.java @@ -12,7 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.utils; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.ByteArrayInputStream; import java.io.File; @@ -366,7 +366,7 @@ protected boolean condition() { } throw new AssertionError(errorMessage, ex[0]); } - assertTrue(errorMessage, isConditionMet); + assertTrue(isConditionMet, errorMessage); } public static boolean waitForCondition(int timeout_ms, Condition condition) {