dbeaver/pro#8766 Migrage from junit 4 to junit 6 (#4290)

* dbeaver/pro#8766 Boom

* dbeaver/pro#8766 Boom

* dbeaver/pro#8766 Boom

* dbeaver/pro#8766 Boom
This commit is contained in:
Tsimafei Labanovich
2026-06-09 16:26:42 +02:00
committed by GitHub
parent ba7268bb8f
commit f728590b90
20 changed files with 284 additions and 250 deletions
@@ -7,8 +7,7 @@ Bundle-Release-Date: 20220606
Bundle-Vendor: DBeaver Corp
Bundle-RequiredExecutionEnvironment: JavaSE-21
Bundle-ActivationPolicy: lazy
Require-Bundle: org.junit,
org.mockito.mockito-core,
Require-Bundle: org.eclipse.core.runtime,
org.apache.felix.scr,
org.jkiss.dbeaver.osgi.test.runner;visibility:=reexport,
org.jkiss.dbeaver.model.sql,
@@ -1,20 +1,37 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2026 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.cloudbeaver;
import io.cloudbeaver.app.CEAppStarter;
import io.cloudbeaver.utils.WebTestUtils;
import org.jkiss.junit.osgi.OSGITestRunner;
import org.jkiss.junit.osgi.annotation.RunWithApplication;
import org.jkiss.junit.osgi.annotation.RunWithProduct;
import org.jkiss.junit.osgi.annotation.RunnerProxy;
import org.jkiss.junit.osgi.behaviors.IAsyncApplication;
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnitRunner;
import org.jkiss.junit.osgi.extension.OSGITestExtension;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.MockitoAnnotations;
import java.net.CookieManager;
import java.net.http.HttpClient;
@RunWithProduct("CloudbeaverServerUnitTest.product")
@RunnerProxy(MockitoJUnitRunner.class)
@RunWith(OSGITestRunner.class)
@ExtendWith(OSGITestExtension.class)
@RunWithApplication(
bundleName = "io.cloudbeaver.server.ce",
registryName = "io.cloudbeaver.product.ce.application",
@@ -22,6 +39,15 @@ import java.net.http.HttpClient;
vmArgs = {"logback.configurationFile", "workspace/conf/logback.xml"}
)
public abstract class CloudbeaverMockTest implements IAsyncApplication {
@BeforeAll
public static void startServer() throws Exception {
CEAppStarter.startServerIfNotStarted();
}
@BeforeEach
public void setupMocks() {
MockitoAnnotations.openMocks(this);
}
private static final String GQL_API_URL = "http://localhost:18978/api/gql";
private static final String SERVER_STATUS_URL = "http://localhost:18978/status";
private final HttpClient httpClient = HttpClient.newBuilder()
@@ -24,7 +24,7 @@ import io.cloudbeaver.utils.WebTestUtils;
import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.utils.SecurityUtils;
import org.junit.AfterClass;
import org.junit.jupiter.api.AfterAll;
import java.net.CookieManager;
import java.net.http.HttpClient;
@@ -43,6 +43,9 @@ public class CEAppStarter {
public static void startServerIfNotStarted() throws Exception {
System.out.println("Start CBApplication");
if (testApp != null) {
return;
}
if (DBWorkbench.isPlatformStarted() && DBWorkbench.getPlatform().getApplication() instanceof CBApplication<?>) {
testApp = (CBApplication<?>) DBWorkbench.getPlatform().getApplication();
return;
@@ -66,7 +69,7 @@ public class CEAppStarter {
}
}
@AfterClass
@AfterAll
public static void shutdownServer() {
testApp.stop();
}
@@ -19,8 +19,8 @@ package io.cloudbeaver.model.lsp;
import org.eclipse.lsp4j.*;
import org.jkiss.dbeaver.ext.h2.model.H2SQLDialect;
import org.jkiss.dbeaver.model.lsp.context.ContextAwareDocument;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@@ -35,12 +35,12 @@ public class DBLTextDocumentServiceContextTest extends H2DataSourceTest {
);
ContextAwareDocument contextedDocument = DocumentServiceTestUtils.getDocument(service, document.getUri());
Assert.assertNotNull(contextedDocument);
Assert.assertEquals(dataSourceDescriptor.getDataSource(), contextedDocument.getDataSource());
Assert.assertNotNull(contextedDocument.getExecutionContext());
Assert.assertEquals(dataSourceDescriptor.getDataSource(), contextedDocument.getExecutionContext().getDataSource());
Assert.assertTrue(contextedDocument.getSyntaxManager().getDialect() instanceof H2SQLDialect);
Assert.assertNotNull(contextedDocument.getRuleManager());
Assertions.assertNotNull(contextedDocument);
Assertions.assertEquals(dataSourceDescriptor.getDataSource(), contextedDocument.getDataSource());
Assertions.assertNotNull(contextedDocument.getExecutionContext());
Assertions.assertEquals(dataSourceDescriptor.getDataSource(), contextedDocument.getExecutionContext().getDataSource());
Assertions.assertTrue(contextedDocument.getSyntaxManager().getDialect() instanceof H2SQLDialect);
Assertions.assertNotNull(contextedDocument.getRuleManager());
}
@Test
@@ -69,14 +69,14 @@ public class DBLTextDocumentServiceContextTest extends H2DataSourceTest {
profile->>'name' AS name;
""".trim();
Assert.assertEquals(expectedQuery.trim(), edit.getNewText());
Assertions.assertEquals(expectedQuery.trim(), edit.getNewText());
Position start = edit.getRange().getStart();
Assert.assertEquals(0, start.getLine());
Assert.assertEquals(0, start.getCharacter());
Assertions.assertEquals(0, start.getLine());
Assertions.assertEquals(0, start.getCharacter());
Position end = edit.getRange().getEnd();
Assert.assertEquals(1, end.getLine());
Assert.assertEquals(97, end.getCharacter());
Assertions.assertEquals(1, end.getLine());
Assertions.assertEquals(97, end.getCharacter());
}
@Test
@@ -90,8 +90,8 @@ public class DBLTextDocumentServiceContextTest extends H2DataSourceTest {
CompletionList completions = service.completion(completionParams).get().getRight();
Assert.assertNotNull(completions);
Assert.assertTrue(completions.getItems().isEmpty());
Assertions.assertNotNull(completions);
Assertions.assertTrue(completions.getItems().isEmpty());
}
@Test
@@ -105,9 +105,9 @@ public class DBLTextDocumentServiceContextTest extends H2DataSourceTest {
CompletionList completions = service.completion(completionParams).get().getRight();
Assert.assertNotNull(completions);
Assert.assertFalse(completions.getItems().isEmpty());
Assert.assertEquals("SELECT", completions.getItems().getFirst().getLabel());
Assertions.assertNotNull(completions);
Assertions.assertFalse(completions.getItems().isEmpty());
Assertions.assertEquals("SELECT", completions.getItems().getFirst().getLabel());
}
@Test
@@ -124,8 +124,8 @@ public class DBLTextDocumentServiceContextTest extends H2DataSourceTest {
CompletionList completions = service.completion(completionParams).get().getRight();
Assert.assertNotNull(completions);
Assert.assertEquals(1, completions.getItems().size());
Assert.assertEquals("FROM", completions.getItems().getFirst().getLabel());
Assertions.assertNotNull(completions);
Assertions.assertEquals(1, completions.getItems().size());
Assertions.assertEquals("FROM", completions.getItems().getFirst().getLabel());
}
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2025 DBeaver Corp and others
* Copyright (C) 2010-2026 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,9 +23,9 @@ import org.jkiss.dbeaver.model.lsp.DBLTextDocumentService;
import org.jkiss.dbeaver.model.lsp.context.ContextAwareDocument;
import org.jkiss.dbeaver.model.sql.SQLSyntaxManager;
import org.jkiss.dbeaver.model.sql.parser.SQLRuleManager;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.List;
import java.util.Objects;
@@ -38,7 +38,7 @@ import java.util.concurrent.ExecutionException;
public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
private DBLTextDocumentService service;
@Before
@BeforeEach
public void setUp() {
service = new DBLTextDocumentService();
}
@@ -55,9 +55,9 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
service.didOpen(params);
ContextAwareDocument document = DocumentServiceTestUtils.getDocument(service, uri);
Assert.assertNotNull(document);
Assert.assertEquals(document.getSyntaxManager().getDialect(), BasicSQLDialect.INSTANCE);
Assert.assertNull(document.getExecutionContext());
Assertions.assertNotNull(document);
Assertions.assertEquals(document.getSyntaxManager().getDialect(), BasicSQLDialect.INSTANCE);
Assertions.assertNull(document.getExecutionContext());
}
@Test
@@ -67,14 +67,14 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
service.didOpen(new DidOpenTextDocumentParams(textDocument));
ContextAwareDocument savedDocument = DocumentServiceTestUtils.getDocument(service, textDocument.getUri());
Assert.assertNotNull(savedDocument);
Assert.assertEquals(query, savedDocument.getText());
Assertions.assertNotNull(savedDocument);
Assertions.assertEquals(query, savedDocument.getText());
SQLSyntaxManager syntaxManager = savedDocument.getSyntaxManager();
Assert.assertNotNull(syntaxManager);
Assert.assertEquals(BasicSQLDialect.INSTANCE, syntaxManager.getDialect());
Assertions.assertNotNull(syntaxManager);
Assertions.assertEquals(BasicSQLDialect.INSTANCE, syntaxManager.getDialect());
SQLRuleManager ruleManager = savedDocument.getRuleManager();
Assert.assertNotNull(ruleManager);
Assertions.assertNotNull(ruleManager);
}
@Test
@@ -84,10 +84,10 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
ContextAwareDocument savedDocument = Objects.requireNonNull(DocumentServiceTestUtils.getDocument(service, textDocument.getUri()));
SQLSyntaxManager syntaxManager = savedDocument.getSyntaxManager();
Assert.assertNotNull(syntaxManager);
Assert.assertEquals(BasicSQLDialect.INSTANCE, syntaxManager.getDialect());
Assertions.assertNotNull(syntaxManager);
Assertions.assertEquals(BasicSQLDialect.INSTANCE, syntaxManager.getDialect());
SQLRuleManager ruleManager = savedDocument.getRuleManager();
Assert.assertNotNull(ruleManager);
Assertions.assertNotNull(ruleManager);
}
@Test
@@ -103,8 +103,8 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
service.didChange(new DidChangeTextDocumentParams(textDocumentChange, contentChanges));
ContextAwareDocument updatedDocument = DocumentServiceTestUtils.getDocument(service, textDocument.getUri());
Assert.assertNotNull(updatedDocument);
Assert.assertEquals(updatedSql, updatedDocument.getText());
Assertions.assertNotNull(updatedDocument);
Assertions.assertEquals(updatedSql, updatedDocument.getText());
}
@Test
@@ -120,10 +120,10 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
TextDocumentContentChangeEvent event2 = new TextDocumentContentChangeEvent(updatedSql2);
List<TextDocumentContentChangeEvent> contentChanges = List.of(event1, event2);
Assert.assertThrows(
"Unexpected number of document changes: 2",
Assertions.assertThrows(
IllegalArgumentException.class,
() -> service.didChange(new DidChangeTextDocumentParams(textDocumentChange, contentChanges))
() -> service.didChange(new DidChangeTextDocumentParams(textDocumentChange, contentChanges)),
"Unexpected number of document changes: 2"
);
}
@@ -138,7 +138,7 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
service.didClose(closeParams);
ContextAwareDocument updatedDocument = DocumentServiceTestUtils.getDocument(service, textDocument.getUri());
Assert.assertNull(updatedDocument);
Assertions.assertNull(updatedDocument);
}
@Test
@@ -155,15 +155,15 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
FROM
tablename AS alias;
""";
Assert.assertEquals(expectedQuery.trim(), textEdit.getNewText());
Assertions.assertEquals(expectedQuery.trim(), textEdit.getNewText());
Position start = textEdit.getRange().getStart();
Assert.assertEquals(0, start.getCharacter());
Assert.assertEquals(0, start.getLine());
Assertions.assertEquals(0, start.getCharacter());
Assertions.assertEquals(0, start.getLine());
Position end = textEdit.getRange().getEnd();
Assert.assertEquals(0, end.getLine());
Assert.assertEquals(42, end.getCharacter());
Assertions.assertEquals(0, end.getLine());
Assertions.assertEquals(42, end.getCharacter());
}
@Test
@@ -190,15 +190,15 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
schemaname3.tablename3
;
""".trim();
Assert.assertEquals(expectedQuery.trim(), textEdit.getNewText());
Assertions.assertEquals(expectedQuery.trim(), textEdit.getNewText());
Position start = textEdit.getRange().getStart();
Assert.assertEquals(0, start.getCharacter());
Assert.assertEquals(0, start.getLine());
Assertions.assertEquals(0, start.getCharacter());
Assertions.assertEquals(0, start.getLine());
Position end = textEdit.getRange().getEnd();
Assert.assertEquals(3, end.getLine());
Assert.assertEquals(1, end.getCharacter());
Assertions.assertEquals(3, end.getLine());
Assertions.assertEquals(1, end.getCharacter());
}
@Test
@@ -223,10 +223,10 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
END $$;
""".trim();
Assert.assertEquals(expectedQuery.trim(), textEdit.getNewText());
Assertions.assertEquals(expectedQuery.trim(), textEdit.getNewText());
Position end = textEdit.getRange().getEnd();
Assert.assertEquals(1, end.getLine());
Assert.assertEquals(63, end.getCharacter());
Assertions.assertEquals(1, end.getLine());
Assertions.assertEquals(63, end.getCharacter());
}
@Test
@@ -238,7 +238,7 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
SemanticTokensParams params = new SemanticTokensParams(new TextDocumentIdentifier(document.getUri()));
Integer[] tokensData = service.semanticTokensFull(params).get().getData().toArray(new Integer[0]);
Assert.assertArrayEquals(
Assertions.assertArrayEquals(
new Integer[] {0, 0, 6, 0, 0},
tokensData
);
@@ -259,7 +259,7 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
0, 23, 5, 0, 0, // WHERE
0, 39, 5, 1, 0 // 'Doe'
};
Assert.assertArrayEquals(
Assertions.assertArrayEquals(
expectedData,
tokensData
);
@@ -286,7 +286,7 @@ public class DBLTextDocumentServiceTest extends CloudbeaverMockTest {
3, 0, 5, 0, 0, // WHERE
4, 14, 5, 1, 0 // 'Doe'
};
Assert.assertArrayEquals(
Assertions.assertArrayEquals(
expectedData,
tokensData
);
@@ -25,9 +25,9 @@ import org.jkiss.dbeaver.model.lsp.DBLServerSessionProvider;
import org.jkiss.dbeaver.model.lsp.DBLTextDocumentService;
import org.jkiss.dbeaver.model.lsp.context.ContextAwareDocument;
import org.jkiss.dbeaver.registry.DataSourceRegistry;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
@@ -35,12 +35,12 @@ public class DBLTextDocumentServiceWorkspaceTest extends H2DataSourceTest {
private static final String PROJECT_ID = "DBLTextDocumentServiceProject";
private static final String DATA_SOURCE_ID = "workspace-test-data-source";
private DBLTextDocumentService service = new DBLTextDocumentService(new TestSessionProvider());
private DBLTextDocumentService service;
protected DBPWorkspace workspace;
protected DBPProject project;
@Before
@BeforeEach
public void setUpWorkspace() {
workspace = Mockito.mock(DBPWorkspace.class);
project = Mockito.mock(DBPProject.class);
@@ -71,7 +71,7 @@ public class DBLTextDocumentServiceWorkspaceTest extends H2DataSourceTest {
service.didOpen(new DidOpenTextDocumentParams(document));
ContextAwareDocument contextAwareDocument = DocumentServiceTestUtils.getDocument(service, document.getUri());
Assert.assertNotNull(contextAwareDocument);
Assert.assertEquals(dataSourceDescriptor.getDataSource(), contextAwareDocument.getDataSource());
Assertions.assertNotNull(contextAwareDocument);
Assertions.assertEquals(dataSourceDescriptor.getDataSource(), contextAwareDocument.getDataSource());
}
}
@@ -30,8 +30,8 @@ import org.jkiss.dbeaver.model.runtime.LoggingProgressMonitor;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.utils.PrefUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import java.nio.file.Path;
import java.sql.SQLException;
@@ -45,7 +45,7 @@ public abstract class H2DataSourceTest extends CloudbeaverMockTest {
protected DBLTextDocumentService service;
@Before
@BeforeEach
public void setUp() throws DBException {
PrefUtils.setDefaultPreferenceValue(
DBWorkbench.getPlatform().getPreferenceStore(),
@@ -64,11 +64,11 @@ public abstract class H2DataSourceTest extends CloudbeaverMockTest {
);
try (JDBCStatement stmt = databaseSession.createStatement()) {
Assert.assertFalse(stmt.execute("CREATE TABLE TEST_TABLE1 (id IDENTITY NOT NULL PRIMARY KEY, a VARCHAR, b INT)"));
Assert.assertFalse(stmt.execute("CREATE TABLE TEST_TABLE2 (id IDENTITY NOT NULL PRIMARY KEY, a VARCHAR, b INT)"));
Assertions.assertFalse(stmt.execute("CREATE TABLE TEST_TABLE1 (id IDENTITY NOT NULL PRIMARY KEY, a VARCHAR, b INT)"));
Assertions.assertFalse(stmt.execute("CREATE TABLE TEST_TABLE2 (id IDENTITY NOT NULL PRIMARY KEY, a VARCHAR, b INT)"));
for (int i = 0; i < 100; i++) {
Assert.assertFalse(stmt.execute("INSERT INTO TEST_TABLE1 (a, b) VALUES ('test" + i + "', " + i + ")"));
Assert.assertFalse(stmt.execute("INSERT INTO TEST_TABLE2 (a, b) VALUES ('test" + i + "', " + i + ")"));
Assertions.assertFalse(stmt.execute("INSERT INTO TEST_TABLE1 (a, b) VALUES ('test" + i + "', " + i + ")"));
Assertions.assertFalse(stmt.execute("INSERT INTO TEST_TABLE2 (a, b) VALUES ('test" + i + "', " + i + ")"));
}
} catch (SQLException e) {
throw new IllegalStateException(e);
@@ -22,8 +22,8 @@ import io.cloudbeaver.service.navigator.WebNavigatorNodeInfo;
import org.jkiss.dbeaver.model.navigator.DBNDatabaseNode;
import org.jkiss.dbeaver.model.navigator.DBNNode;
import org.jkiss.dbeaver.model.struct.DBSObject;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
public class WebNavigatorNodeInfoTest extends CloudbeaverMockTest {
@@ -44,13 +44,13 @@ public class WebNavigatorNodeInfoTest extends CloudbeaverMockTest {
WebNavigatorNodeInfo info = new WebNavigatorNodeInfo(session, node);
Assert.assertEquals("node/path", info.getId());
Assert.assertEquals("node://uri", info.getUri());
Assert.assertEquals("NodeName", info.getName());
Assert.assertEquals("A description", info.getDescription());
Assert.assertEquals("nodeType", info.getNodeType());
Assert.assertTrue(info.isHasChildren());
Assert.assertEquals("node://uri", info.toString());
Assertions.assertEquals("node/path", info.getId());
Assertions.assertEquals("node://uri", info.getUri());
Assertions.assertEquals("NodeName", info.getName());
Assertions.assertEquals("A description", info.getDescription());
Assertions.assertEquals("nodeType", info.getNodeType());
Assertions.assertTrue(info.isHasChildren());
Assertions.assertEquals("node://uri", info.toString());
}
@Test
@@ -66,11 +66,11 @@ public class WebNavigatorNodeInfoTest extends CloudbeaverMockTest {
WebNavigatorNodeInfo info = new WebNavigatorNodeInfo(session, dbNode);
Assert.assertNotNull(info.getObject());
Assert.assertEquals("DBNodeName", info.getName());
Assertions.assertNotNull(info.getObject());
Assertions.assertEquals("DBNodeName", info.getName());
Mockito.when(session.getLocale()).thenReturn("es");
Assert.assertEquals("DBNodeName1", info.getName());
Assertions.assertEquals("DBNodeName1", info.getName());
}
@@ -29,10 +29,10 @@ import org.jkiss.dbeaver.model.data.json.JSONUtils;
import org.jkiss.dbeaver.model.rm.RMController;
import org.jkiss.dbeaver.model.rm.RMProject;
import org.jkiss.utils.SecurityUtils;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.net.URI;
@@ -49,22 +49,22 @@ public class RMNIOTest extends CloudbeaverMockTest {
private static RMProject testProject;
private static RMNIOFileSystemProvider rmFsProvider;
@BeforeClass
@BeforeAll
public static void init() throws Exception {
CEAppStarter.startServerIfNotStarted();
WebGQLClient client = CEAppStarter.createClient();
Map<String, Object> authInfo = CEAppStarter.authenticateTestUser(client);
Assert.assertEquals(SMAuthStatus.SUCCESS.name(), JSONUtils.getString(authInfo, "authStatus"));
Assertions.assertEquals(SMAuthStatus.SUCCESS.name(), JSONUtils.getString(authInfo, "authStatus"));
String sessionId = client.getSessionIdCookie();
webSession = (WebSession) CEAppStarter.getTestApp().getSessionManager().getSession(sessionId);
Assert.assertNotNull(webSession);
Assertions.assertNotNull(webSession);
var projectName = "NIO_Test" + SecurityUtils.generateUniqueId();
testProject = webSession.getRmController().createProject(projectName, null);
rmFsProvider = new RMNIOFileSystemProvider(webSession.getRmController());
}
@AfterClass
@AfterAll
public static void destroy() throws Exception {
if (webSession != null && testProject != null) {
webSession.getUserContext().getRmController().deleteProject(testProject.getId());
@@ -75,19 +75,19 @@ public class RMNIOTest extends CloudbeaverMockTest {
public void projectPathTest() throws DBException {
var projectUri = getProjectUri();
RMPath path = (RMPath) rmFsProvider.getPath(projectUri);
Assert.assertEquals(path.getRmProjectId(), testProject.getId());
Assert.assertTrue(path.isProjectPath());
Assert.assertTrue(path.isAbsolute());
Assert.assertNull(path.getParent());
Assert.assertNull(path.getRoot());
Assert.assertTrue(Files.isDirectory(path));
Assert.assertTrue(Files.exists(path));
Assertions.assertEquals(path.getRmProjectId(), testProject.getId());
Assertions.assertTrue(path.isProjectPath());
Assertions.assertTrue(path.isAbsolute());
Assertions.assertNull(path.getParent());
Assertions.assertNull(path.getRoot());
Assertions.assertTrue(Files.isDirectory(path));
Assertions.assertTrue(Files.exists(path));
}
@Test
public void testNotExistProject() {
RMPath notExistPath = new RMPath(new RMNIOFileSystem("s_not_exist", rmFsProvider));
Assert.assertFalse(Files.exists(notExistPath));
Assertions.assertFalse(Files.exists(notExistPath));
}
@Test
@@ -96,17 +96,17 @@ public class RMNIOTest extends CloudbeaverMockTest {
String randomProject = "s_random_project_" + randomName;
RMPath newProjectPath = new RMPath(new RMNIOFileSystem(randomProject, rmFsProvider));
Assert.assertFalse(Files.exists(newProjectPath));
Assertions.assertFalse(Files.exists(newProjectPath));
//create project via nio
Files.createDirectory(newProjectPath);
Assert.assertTrue(Files.exists(newProjectPath));
Assert.assertNotNull(webSession.getRmController().getProject(randomProject, false, false));
Assertions.assertTrue(Files.exists(newProjectPath));
Assertions.assertNotNull(webSession.getRmController().getProject(randomProject, false, false));
//delete project via nio
Files.delete(newProjectPath);
Assert.assertFalse(Files.exists(newProjectPath));
Assert.assertNull(webSession.getRmController().getProject(randomProject, false, false));
Assertions.assertFalse(Files.exists(newProjectPath));
Assertions.assertNull(webSession.getRmController().getProject(randomProject, false, false));
}
@Test
@@ -114,7 +114,7 @@ public class RMNIOTest extends CloudbeaverMockTest {
RMPath rootPath = (RMPath) rmFsProvider.getPath(getProjectUri());
String scriptName = "child.sql";
Path scriptPath = rootPath.resolve(scriptName);
Assert.assertEquals(getProjectUri() + "/" + "child.sql", scriptPath.toString());
Assertions.assertEquals(getProjectUri() + "/" + "child.sql", scriptPath.toString());
}
@Test
@@ -130,8 +130,8 @@ public class RMNIOTest extends CloudbeaverMockTest {
list
.map(path -> ((RMPath) path).getResourcePath())
.collect(Collectors.toSet());
Assert.assertTrue(filesFromNio.contains(file1));
Assert.assertTrue(filesFromNio.contains(file2));
Assertions.assertTrue(filesFromNio.contains(file1));
Assertions.assertTrue(filesFromNio.contains(file2));
}
}
@@ -144,8 +144,8 @@ public class RMNIOTest extends CloudbeaverMockTest {
//create file
Files.createFile(scriptPath);
Assert.assertTrue(Files.exists(scriptPath));
Assert.assertNotNull(rm.getResource(testProject.getId(), script));
Assertions.assertTrue(Files.exists(scriptPath));
Assertions.assertNotNull(rm.getResource(testProject.getId(), script));
//set content rm://s_test_project/test_script.sql
@@ -153,13 +153,13 @@ public class RMNIOTest extends CloudbeaverMockTest {
Files.writeString(scriptPath, sql);
String dataFromNio = Files.readString(scriptPath);
String dataFromRM = new String(rm.getResourceContents(testProject.getId(), script));
Assert.assertEquals(sql, dataFromNio);
Assert.assertEquals(sql, dataFromRM);
Assertions.assertEquals(sql, dataFromNio);
Assertions.assertEquals(sql, dataFromRM);
//delete
Files.delete(scriptPath);
Assert.assertFalse(Files.exists(scriptPath));
Assert.assertNull(rm.getResource(testProject.getId(), script));
Assertions.assertFalse(Files.exists(scriptPath));
Assertions.assertNull(rm.getResource(testProject.getId(), script));
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2025 DBeaver Corp and others
* Copyright (C) 2010-2026 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,7 +19,10 @@ package io.cloudbeaver.model.rm.lock;
import io.cloudbeaver.CloudbeaverMockTest;
import io.cloudbeaver.app.CEAppStarter;
import org.jkiss.dbeaver.Log;
import org.junit.*;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
@@ -35,16 +38,17 @@ public class RMLockTest extends CloudbeaverMockTest {
private static final Log log = Log.getLog(RMLockTest.class);
private final String project1 = "s_fakeProject1";
private final String project2 = "s_fakeProject2";
private static final ExecutorService executor = Executors.newFixedThreadPool(2);
private static ExecutorService executor;
@AfterClass
public static void shutdown() {
executor.shutdown();
}
@BeforeClass
@BeforeAll
public static void startServer() throws Exception {
CEAppStarter.startServerIfNotStarted();
executor = Executors.newFixedThreadPool(2);
}
@AfterAll
public static void shutdown() {
executor.shutdown();
}
@Test
@@ -90,8 +94,8 @@ public class RMLockTest extends CloudbeaverMockTest {
Runnable runnable2 = () -> {
try {
thread2CDL.await(1, TimeUnit.MINUTES);
Assert.assertTrue("Project not locket by thread 1", isLockedByThread1.get());
Assert.assertTrue("Project not locked", lockController2.isFileLocked(project1));
Assertions.assertTrue(isLockedByThread1.get(), "Project not locket by thread 1");
Assertions.assertTrue(lockController2.isFileLocked(project1), "Project not locked");
try (var lock = lockController2.lock(project1, "testThatProjectLocked2")) {
//that we were really waiting for the file and the lock was not removed earlier
Mockito.verify(lockController2, Mockito.atLeast(atLeastWaitCalls)).awaitingUnlock(Mockito.any());
@@ -110,7 +114,7 @@ public class RMLockTest extends CloudbeaverMockTest {
if (exceptionReference.get() != null) {
throw exceptionReference.get();
}
Assert.assertFalse(lockController2.isFileLocked(project1));
Assertions.assertFalse(lockController2.isFileLocked(project1));
}
@Test
@@ -130,7 +134,7 @@ public class RMLockTest extends CloudbeaverMockTest {
isLockedByThread1.set(true);
thread2InitCDL.countDown();
thread1CDL.await(1, TimeUnit.MINUTES);
Assert.assertTrue("Project2 not locked by thread2", isLockedByThread2.get());
Assertions.assertTrue(isLockedByThread2.get(), "Project2 not locked by thread2");
thread2CDL.countDown();
} catch (Throwable e) {
log.error(e);
@@ -146,7 +150,7 @@ public class RMLockTest extends CloudbeaverMockTest {
try {
try (var lock = lockController2.lock(project2, "testAccessToDifferentProjects2")) {
thread2InitCDL.await();
Assert.assertTrue("Project1 not locket by thread1", isLockedByThread1.get());
Assertions.assertTrue(isLockedByThread1.get(), "Project1 not locket by thread1");
isLockedByThread2.set(true);
thread1CDL.countDown();
thread2CDL.await();
@@ -167,8 +171,8 @@ public class RMLockTest extends CloudbeaverMockTest {
throw exceptionReference.get();
}
Assert.assertFalse(lockController2.isFileLocked(project1));
Assert.assertFalse(lockController2.isFileLocked(project2));
Assertions.assertFalse(lockController2.isFileLocked(project1));
Assertions.assertFalse(lockController2.isFileLocked(project2));
}
@Test
@@ -197,7 +201,7 @@ public class RMLockTest extends CloudbeaverMockTest {
Runnable runnable2 = () -> {
try {
try (var lock = lockController2.lock(project1, "testForceUnlock2")) {
Assert.assertTrue("Project1 not locket by thread1", isLockedByThread1.get());
Assertions.assertTrue(isLockedByThread1.get(), "Project1 not locket by thread1");
Mockito.verify(lockController2, Mockito.atLeast(5)).isLocked(Mockito.any());
thread1CDL.countDown();
}
@@ -215,6 +219,6 @@ public class RMLockTest extends CloudbeaverMockTest {
if (exceptionReference.get() != null) {
throw exceptionReference.get();
}
Assert.assertFalse(lockController2.isFileLocked(project1));
Assertions.assertFalse(lockController2.isFileLocked(project1));
}
}
@@ -29,9 +29,9 @@ import org.jkiss.dbeaver.model.rm.RMProjectType;
import org.jkiss.dbeaver.model.websocket.event.datasource.WSDataSourceEvent;
import org.jkiss.dbeaver.model.websocket.event.datasource.WSDataSourceProperty;
import org.jkiss.dbeaver.registry.DataSourceDescriptor;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
@@ -44,7 +44,7 @@ public class WebSessionProjectTest extends CloudbeaverMockTest {
private RMProject rmProject;
@Before
@BeforeEach
public void setUp() throws Exception {
var sessionContext = Mockito.mock(SMSessionContext.class);
Mockito.when(webSession.getSessionContext()).thenReturn(sessionContext);
@@ -69,14 +69,14 @@ public class WebSessionProjectTest extends CloudbeaverMockTest {
// add connection
var info = project.addConnection(ds);
Assert.assertNotNull(info);
Assertions.assertNotNull(info);
var fetched = project.findWebConnectionInfo("ds1");
Assert.assertNotNull(fetched);
Assert.assertEquals("ds1", fetched.getDataSourceContainer().getId());
Assertions.assertNotNull(fetched);
Assertions.assertEquals("ds1", fetched.getDataSourceContainer().getId());
// remove connection
project.removeConnection(ds);
Assert.assertNull(project.findWebConnectionInfo("ds1"));
Assertions.assertNull(project.findWebConnectionInfo("ds1"));
}
@Test
@@ -91,7 +91,7 @@ public class WebSessionProjectTest extends CloudbeaverMockTest {
return registry;
}
};
Assert.assertThrows(DBWebException.class, () -> project.getWebConnectionInfo("missing"));
Assertions.assertThrows(DBWebException.class, () -> project.getWebConnectionInfo("missing"));
}
@Test
@@ -115,9 +115,9 @@ public class WebSessionProjectTest extends CloudbeaverMockTest {
List<?> connections = project.getConnections();
Mockito.verify(registry, Mockito.times(1)).getDataSources();
Assert.assertNotNull(connections);
Assert.assertEquals(1, connections.size());
Assert.assertEquals("ds1", project.getConnections().getFirst().getDataSourceContainer().getId());
Assertions.assertNotNull(connections);
Assertions.assertEquals(1, connections.size());
Assertions.assertEquals("ds1", project.getConnections().getFirst().getDataSourceContainer().getId());
}
@Test
@@ -140,10 +140,10 @@ public class WebSessionProjectTest extends CloudbeaverMockTest {
Mockito.when(event.getDataSourceIds()).thenReturn(List.of("ds1"));
boolean res = project.updateProjectDataSources(event);
Assert.assertTrue(res);
Assertions.assertTrue(res);
var info = project.findWebConnectionInfo("ds1");
Assert.assertNotNull(info);
Assert.assertEquals("ds1", info.getDataSourceContainer().getId());
Assertions.assertNotNull(info);
Assertions.assertEquals("ds1", info.getDataSourceContainer().getId());
}
@@ -164,20 +164,20 @@ public class WebSessionProjectTest extends CloudbeaverMockTest {
}
};
Assert.assertNotNull(project.getConnections());
Assertions.assertNotNull(project.getConnections());
WSDataSourceEvent event = Mockito.mock(WSDataSourceEvent.class);
Mockito.when(event.getId()).thenReturn(WSDataSourceEvent.UPDATED);
Mockito.when(event.getDataSourceIds()).thenReturn(List.of("ds1"));
Mockito.when(event.getProperty()).thenReturn(WSDataSourceProperty.NAME);
Assert.assertTrue(project.updateProjectDataSources(event));
Assertions.assertTrue(project.updateProjectDataSources(event));
var info = project.findWebConnectionInfo("ds1");
Assert.assertNotNull(info);
Assert.assertEquals("ds1", info.getDataSourceContainer().getId());
Assertions.assertNotNull(info);
Assertions.assertEquals("ds1", info.getDataSourceContainer().getId());
Mockito.when(event.getProperty()).thenReturn(WSDataSourceProperty.INTERNAL);
Assert.assertFalse(project.updateProjectDataSources(event));
Assertions.assertFalse(project.updateProjectDataSources(event));
}
@@ -204,8 +204,8 @@ public class WebSessionProjectTest extends CloudbeaverMockTest {
Mockito.when(event.getDataSourceIds()).thenReturn(List.of("ds1"));
boolean res = project.updateProjectDataSources(event);
Assert.assertTrue(res);
Assert.assertNull(project.findWebConnectionInfo("ds1"));
Assertions.assertTrue(res);
Assertions.assertNull(project.findWebConnectionInfo("ds1"));
}
@Test
@@ -226,8 +226,8 @@ public class WebSessionProjectTest extends CloudbeaverMockTest {
Mockito.when(event.getDataSourceIds()).thenReturn(List.of("ds1"));
boolean res = project.updateProjectDataSources(event);
Assert.assertFalse(res);
Assert.assertNull(project.findWebConnectionInfo("ds1"));
Assertions.assertFalse(res);
Assertions.assertNull(project.findWebConnectionInfo("ds1"));
}
@Test
@@ -253,9 +253,9 @@ public class WebSessionProjectTest extends CloudbeaverMockTest {
// when registry is marked as loaded, it should not be queried again
Mockito.verify(registry, Mockito.never()).getDataSources();
Assert.assertNotNull(connections);
Assert.assertEquals(1, connections.size());
Assert.assertEquals("ds1", project.getConnections().getFirst().getDataSourceContainer().getId());
Assertions.assertNotNull(connections);
Assertions.assertEquals(1, connections.size());
Assertions.assertEquals("ds1", project.getConnections().getFirst().getDataSourceContainer().getId());
}
}
@@ -22,9 +22,9 @@ import io.cloudbeaver.model.app.ServletAuthApplication;
import org.jkiss.dbeaver.model.websocket.event.WSEventController;
import org.jkiss.utils.function.ThrowableConsumer;
import org.jkiss.utils.function.ThrowableFunction;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import java.util.Collections;
@@ -35,7 +35,7 @@ public class WebSessionTest extends CloudbeaverMockTest {
private WebSession session;
@Before
@BeforeEach
public void initWebSession() throws Exception {
session = new WebSession(getFakeRequestInfo(), mockApplication(), Collections.emptyMap());
}
@@ -44,13 +44,13 @@ public class WebSessionTest extends CloudbeaverMockTest {
public void localeAndBasicAttributes() throws Exception {
// Locale
session.setLocale("test-locale");
Assert.assertEquals("test-locale", session.getLocale());
Assertions.assertEquals("test-locale", session.getLocale());
session.setLocale(null);
Assert.assertEquals(Locale.getDefault().getLanguage(), session.getLocale());
Assertions.assertEquals(Locale.getDefault().getLanguage(), session.getLocale());
// Persistent attribute must survive reset/close
session.setAttribute("persistentKey", "persistValue", true);
Assert.assertEquals("persistValue", session.getAttribute("persistentKey"));
Assertions.assertEquals("persistValue", session.getAttribute("persistentKey"));
// Non-persistent attribute created via getAttribute with creator/disposer
AtomicBoolean disposed = new AtomicBoolean(false);
@@ -60,24 +60,23 @@ public class WebSessionTest extends CloudbeaverMockTest {
};
String created = session.getAttribute("createdKey", creator, disposer);
Assert.assertEquals("created", created);
Assertions.assertEquals("created", created);
// persistent attribute should still be available
Assert.assertEquals("persistValue", session.getAttribute("persistentKey"));
Assertions.assertEquals("persistValue", session.getAttribute("persistentKey"));
session.close();
// persistent attribute should иу тгдд
Assert.assertNull("persistValue", session.getAttribute("persistentKey"));
Assert.assertTrue("disposer must be invoked during close()", disposed.get());
Assertions.assertNull(session.getAttribute("persistentKey"), "persistValue");
Assertions.assertTrue(disposed.get(), "disposer must be invoked during close()");
}
@Test
public void asyncTaskStatusNotFound() throws Exception {
Assert.assertThrows(
"DBWebException must be thrown for unknown async task",
DBWebException.class, () -> session.asyncTaskStatus("nonexistent-task", false)
Assertions.assertThrows(
DBWebException.class, () -> session.asyncTaskStatus("nonexistent-task", false),
"DBWebException must be thrown for unknown async task"
);
}
@@ -25,8 +25,8 @@ import org.jkiss.code.NotNull;
import org.jkiss.dbeaver.model.auth.SMAuthStatus;
import org.jkiss.dbeaver.model.data.json.JSONUtils;
import org.jkiss.utils.SecurityUtils;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
@@ -56,7 +56,7 @@ public class AuthenticationTest extends CloudbeaverMockTest {
public void testLoginUser() throws Exception {
WebGQLClient client = CEAppStarter.createClient();
Map<String, Object> authInfo = CEAppStarter.authenticateTestUser(client);
Assert.assertEquals(SMAuthStatus.SUCCESS.name(), JSONUtils.getString(authInfo, "authStatus"));
Assertions.assertEquals(SMAuthStatus.SUCCESS.name(), JSONUtils.getString(authInfo, "authStatus"));
}
@@ -67,14 +67,14 @@ public class AuthenticationTest extends CloudbeaverMockTest {
Map<String, Object> credsWithCamelCase = getUserCredentials(userId);
// authenticating with user
Map<String, Object> authInfo = CEAppStarter.authenticateTestUser(client, credsWithCamelCase);
Assert.assertEquals(SMAuthStatus.SUCCESS.name(), JSONUtils.getString(authInfo, "authStatus"));
Assertions.assertEquals(SMAuthStatus.SUCCESS.name(), JSONUtils.getString(authInfo, "authStatus"));
Map<String, Object> activeUser = client.sendQuery(GQL_ACTIVE_USER, null);
Assert.assertEquals(userId.toLowerCase(), JSONUtils.getString(activeUser, "userId"));
Assertions.assertEquals(userId.toLowerCase(), JSONUtils.getString(activeUser, "userId"));
// making logout
client.sendQuery(GQL_AUTH_LOGOUT, Map.of("provider", "local"));
activeUser = client.sendQuery(GQL_ACTIVE_USER, null);
Assert.assertNotEquals(userId.toLowerCase(), JSONUtils.getString(activeUser, "userId"));
Assertions.assertNotEquals(userId.toLowerCase(), JSONUtils.getString(activeUser, "userId"));
}
}
@@ -95,9 +95,9 @@ public class AuthenticationTest extends CloudbeaverMockTest {
headers.put(RPAuthProvider.X_USER, testUserId);
headers.put(RPAuthProvider.X_TEAM, "user");
Map<String, Object> sessionInfo = client.sendQueryWithHeaders(GQL_OPEN_SESSION, null, headers);
Assert.assertTrue(JSONUtils.getBoolean(sessionInfo, "valid"));
Assertions.assertTrue(JSONUtils.getBoolean(sessionInfo, "valid"));
Map<String, Object> activeUser = client.sendQuery(GQL_ACTIVE_USER, null);
Assert.assertEquals(testUserId, JSONUtils.getString(activeUser, "userId"));
Assertions.assertEquals(testUserId, JSONUtils.getString(activeUser, "userId"));
}
}
@@ -29,9 +29,9 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.websocket.WSConstants;
import org.jkiss.utils.CommonUtils;
import org.jkiss.utils.HttpConstants;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentMatchers;
import org.mockito.Mock;
import org.mockito.Mockito;
@@ -47,7 +47,7 @@ public class CBEventsLongPollingServletTest extends CloudbeaverMockTest {
@Mock
WebHeadlessSession headlessSession;
@Before
@BeforeEach
public void initMocks() {
request = Mockito.mock(HttpServletRequest.class);
sessionManager = Mockito.mock(WebAppSessionManager.class);
@@ -98,7 +98,7 @@ public class CBEventsLongPollingServletTest extends CloudbeaverMockTest {
BaseWebSession resolved = invokeResolve(new TestServlet(), request);
Assert.assertSame(headlessSession, resolved);
Assertions.assertSame(headlessSession, resolved);
}
@Test
@@ -111,7 +111,7 @@ public class CBEventsLongPollingServletTest extends CloudbeaverMockTest {
ArgumentMatchers.any(), ArgumentMatchers.anyBoolean()))
.thenReturn(null);
Assert.assertNull(invokeResolve(new TestServlet(), request));
Assertions.assertNull(invokeResolve(new TestServlet(), request));
}
@Test
@@ -125,7 +125,7 @@ public class CBEventsLongPollingServletTest extends CloudbeaverMockTest {
ArgumentMatchers.any(WebHttpRequestInfo.class), ArgumentMatchers.eq(true)))
.thenThrow(new RuntimeException("Get HeadlessSession failed"));
Assert.assertNull(invokeResolve(new TestServlet(), request));
Assertions.assertNull(invokeResolve(new TestServlet(), request));
}
private BaseWebSession invokeResolve(TestServlet servlet, HttpServletRequest req) {
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2025 DBeaver Corp and others
* Copyright (C) 2010-2026 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,13 +23,13 @@ import io.cloudbeaver.model.rm.RMNIOTest;
import io.cloudbeaver.model.rm.lock.RMLockTest;
import io.cloudbeaver.model.session.WebSessionProjectTest;
import io.cloudbeaver.model.session.WebSessionTest;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.platform.suite.api.SelectClasses;
import org.junit.platform.suite.api.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses(
@Suite
@SelectClasses(
{
ConnectionsTest.class,
SQLQueryTranslatorTest.class,
@@ -45,12 +45,12 @@ import org.junit.runners.Suite;
)
public class CEServerTestSuite {
@BeforeClass
@BeforeAll
public static void startServer() throws Exception {
CEAppStarter.startServerIfNotStarted();
}
@AfterClass
@AfterAll
public static void shutdownServer() {
CEAppStarter.shutdownServer();
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2024 DBeaver Corp and others
* Copyright (C) 2010-2026 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,8 +25,8 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.data.json.JSONUtils;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.utils.GeneralUtils;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.nio.file.Path;
import java.util.LinkedHashMap;
@@ -82,24 +82,24 @@ public class ConnectionsTest extends CloudbeaverMockTest {
Map<String, Object> configuration = new LinkedHashMap<>();
Map<String, Object> variables = new LinkedHashMap<>();
variables.put("config", configuration);
Assert.assertThrows(
"Template connection or driver must be specified",
Assertions.assertThrows(
DBException.class,
() -> client.sendQuery(GQL_CONNECTIONS_CREATE, variables)
() -> client.sendQuery(GQL_CONNECTIONS_CREATE, variables),
"Template connection or driver must be specified"
);
String templateId = "test_template";
configuration.put("templateId", templateId);
Assert.assertThrows(
"Template connection '" + templateId + "' not found",
Assertions.assertThrows(
DBException.class,
() -> client.sendQuery(GQL_CONNECTIONS_CREATE, variables)
() -> client.sendQuery(GQL_CONNECTIONS_CREATE, variables),
"Template connection '" + templateId + "' not found"
);
configuration.remove("templateId");
configuration.put("driverId", "postgresql:postgres-jdbc");
Map<String, Object> addedConnection = client.sendQuery(GQL_CONNECTIONS_CREATE, variables);
Assert.assertNotNull(addedConnection);
Assertions.assertNotNull(addedConnection);
checkAddedConnection(client, addedConnection);
String addedConnectionId = JSONUtils.getString(addedConnection, "id");
@@ -111,24 +111,26 @@ public class ConnectionsTest extends CloudbeaverMockTest {
variables1.put("config", config1);
variables1.put("nodePath", nodePath);
Assert.assertThrows(
Assertions.assertThrows(
DBException.class,
() -> client.sendQuery(GQL_COPY_CONNECTION_FROM_NODE, variables1)
);
variables1.put("projectId", "u_test");
Map<String, Object> copiedConnection = client.sendQuery(GQL_COPY_CONNECTION_FROM_NODE, variables1);
Assert.assertNotNull(copiedConnection);
Assertions.assertNotNull(copiedConnection);
checkAddedConnection(client, copiedConnection);
String copiedConnectionId = JSONUtils.getString(copiedConnection, "id");
Assert.assertTrue(client.sendQuery(GQL_CONNECTIONS_DELETE, Map.of("id", addedConnectionId)));
Assert.assertTrue(client.sendQuery(GQL_CONNECTIONS_DELETE, Map.of("id", copiedConnectionId)));
Boolean deleted1 = client.sendQuery(GQL_CONNECTIONS_DELETE, Map.of("id", addedConnectionId));
Assertions.assertTrue(deleted1);
Boolean deleted2 = client.sendQuery(GQL_CONNECTIONS_DELETE, Map.of("id", copiedConnectionId));
Assertions.assertTrue(deleted2);
}
private void checkAddedConnection(@NotNull WebGQLClient client, @NotNull Map<String, Object> addedConnection) throws Exception {
List<Map<String, Object>> connections = client.sendQuery(GQL_CONNECTIONS_GET, null);
Assert.assertTrue(connections.contains(addedConnection));
Assert.assertNotNull(JSONUtils.getString(addedConnection, "id"));
Assertions.assertTrue(connections.contains(addedConnection));
Assertions.assertNotNull(JSONUtils.getString(addedConnection, "id"));
String nodePath = JSONUtils.getString(addedConnection, "nodePath");
Assert.assertNotNull(nodePath);
Assertions.assertNotNull(nodePath);
}
}
@@ -18,8 +18,8 @@ package io.cloudbeaver.test.platform;
import io.cloudbeaver.CloudbeaverMockTest;
import io.cloudbeaver.app.CEAppStarter;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.net.CookieManager;
import java.net.URI;
@@ -44,6 +44,6 @@ public class NoSessionTest extends CloudbeaverMockTest {
httpClient.send(request, HttpResponse.BodyHandlers.ofByteArray());
Assert.assertTrue(cookieManager.getCookieStore().getCookies().isEmpty());
Assertions.assertTrue(cookieManager.getCookieStore().getCookies().isEmpty());
}
}
@@ -1,6 +1,6 @@
/*
* DBeaver - Universal Database Manager
* Copyright (C) 2010-2024 DBeaver Corp and others
* Copyright (C) 2010-2026 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -27,9 +27,9 @@ import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.model.auth.SMAuthStatus;
import org.jkiss.dbeaver.model.data.json.JSONUtils;
import org.jkiss.utils.IOUtils;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.nio.file.Path;
import java.util.Map;
@@ -68,34 +68,34 @@ public class ResourceManagerTest extends CloudbeaverMockTest {
}
}""";
@BeforeClass
@BeforeAll
public static void init() throws Exception {
Assert.assertTrue(CBApplication.getInstance().getAppConfiguration().isResourceManagerEnabled());
Assertions.assertTrue(CBApplication.getInstance().getAppConfiguration().isResourceManagerEnabled());
client = CEAppStarter.createClient();
Map<String, Object> authInfo = CEAppStarter.authenticateTestUser(client);
Assert.assertEquals(SMAuthStatus.SUCCESS.name(), JSONUtils.getString(authInfo, "authStatus"));
Assertions.assertEquals(SMAuthStatus.SUCCESS.name(), JSONUtils.getString(authInfo, "authStatus"));
}
@Test
public void createDeleteResourceTest() throws Exception {
String projectId = "u_test";
String resourcePath = "testScript.sql";
Assert.assertTrue(createResource(projectId, resourcePath, false));
Assert.assertThrows(
"Resource '" + IOUtils.getFileNameWithoutExtension(Path.of(resourcePath)) + "' already exists",
Assertions.assertTrue(createResource(projectId, resourcePath, false));
Assertions.assertThrows(
DBException.class,
() -> createResource(projectId, resourcePath, false)
() -> createResource(projectId, resourcePath, false),
"Resource '" + IOUtils.getFileNameWithoutExtension(Path.of(resourcePath)) + "' already exists"
);
Assert.assertTrue(createResource(projectId, resourcePath, true));
Assert.assertTrue(deleteResource(projectId, resourcePath));
Assertions.assertTrue(createResource(projectId, resourcePath, true));
Assertions.assertTrue(deleteResource(projectId, resourcePath));
}
@Test
public void listResourcesWithInvalidProjectId() throws Exception {
Assert.assertThrows(
"Project id is empty",
Assertions.assertThrows(
DBException.class,
() -> client.sendQuery(GQL_RESOURCES_LIST, Map.of("projectId", ""))
() -> client.sendQuery(GQL_RESOURCES_LIST, Map.of("projectId", "")),
"Project id is empty"
);
}
@@ -29,8 +29,8 @@ import org.jkiss.dbeaver.model.sql.SQLDialect;
import org.jkiss.dbeaver.model.sql.translate.SQLQueryTranslator;
import org.jkiss.dbeaver.runtime.DBWorkbench;
import org.jkiss.dbeaver.utils.GeneralUtils;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -208,10 +208,10 @@ public class SQLQueryTranslatorTest extends CloudbeaverMockTest {
preferenceStore,
basicSql
);
Assert.assertEquals(
entry.getKey().getDialectId() + " has invalid syntax " + translated,
Assertions.assertEquals(
normalizeScript(entry.getValue()),
normalizeScript(translated)
normalizeScript(translated),
entry.getKey().getDialectId() + " has invalid syntax " + translated
);
}
}
+1
View File
@@ -58,6 +58,7 @@
<application>io.cloudbeaver.product.ce.application</application>
<product>io.cloudbeaver.product.ce.product</product>
<testRuntime>default</testRuntime>
<providerHint>junit6</providerHint>
<testClass>io.cloudbeaver.test.platform.CEServerTestSuite</testClass>
<appArgLine>-web-config workspace/conf/cloudbeaver.conf</appArgLine>
<environmentVariables>