mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-04 00:44:19 +01:00
call TursoDB::open from constructor
This commit is contained in:
@@ -185,9 +185,10 @@ public final class TursoDB implements AutoCloseable {
|
||||
}
|
||||
|
||||
// TODO: receive config as argument
|
||||
private TursoDB(String url, String filePath) {
|
||||
private TursoDB(String url, String filePath) throws SQLException {
|
||||
this.url = url;
|
||||
this.filePath = filePath;
|
||||
open(0);
|
||||
}
|
||||
|
||||
// TODO: add support for JNI
|
||||
@@ -201,16 +202,11 @@ public final class TursoDB implements AutoCloseable {
|
||||
return this.isOpen;
|
||||
}
|
||||
|
||||
public void open(int openFlags) throws SQLException {
|
||||
private void open(int openFlags) throws SQLException {
|
||||
open0(filePath, openFlags);
|
||||
}
|
||||
|
||||
private void open0(String filePath, int openFlags) throws SQLException {
|
||||
if (isOpen) {
|
||||
throw TursoExceptionUtils.buildTursoException(
|
||||
TursoErrorCode.TURSO_ETC.code, "Already opened");
|
||||
}
|
||||
|
||||
byte[] filePathBytes = stringToUtf8ByteArray(filePath);
|
||||
if (filePathBytes == null) {
|
||||
throw TursoExceptionUtils.buildTursoException(
|
||||
|
||||
@@ -37,13 +37,7 @@ public final class TursoDBFactory {
|
||||
|
||||
try {
|
||||
return databaseHolder.computeIfAbsent(
|
||||
url,
|
||||
(Sneaky<String, TursoDB, SQLException>)
|
||||
u -> {
|
||||
TursoDB tursoDB = TursoDB.create(u, filePath);
|
||||
tursoDB.open(0);
|
||||
return tursoDB;
|
||||
});
|
||||
url, (Sneaky<String, TursoDB, SQLException>) u -> TursoDB.create(u, filePath));
|
||||
} catch (Exception e) {
|
||||
throw new SQLException("Error opening connection", e);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package tech.turso.core;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import tech.turso.TestUtils;
|
||||
import tech.turso.TursoErrorCode;
|
||||
@@ -13,34 +11,16 @@ import tech.turso.exceptions.TursoException;
|
||||
public class TursoDBTest {
|
||||
|
||||
@Test
|
||||
void db_should_open_normally() throws Exception {
|
||||
void db_should_open_and_close_normally() throws Exception {
|
||||
TursoDB.load();
|
||||
String dbPath = TestUtils.createTempFile();
|
||||
TursoDB db = TursoDB.create("jdbc:turso" + dbPath, dbPath);
|
||||
db.open(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
void db_should_close_normally() throws Exception {
|
||||
TursoDB.load();
|
||||
String dbPath = TestUtils.createTempFile();
|
||||
TursoDB db = TursoDB.create("jdbc:turso" + dbPath, dbPath);
|
||||
db.open(0);
|
||||
db.close();
|
||||
|
||||
assertFalse(db.isOpen());
|
||||
}
|
||||
|
||||
@Test
|
||||
void should_throw_exception_when_opened_twice() throws Exception {
|
||||
TursoDB.load();
|
||||
String dbPath = TestUtils.createTempFile();
|
||||
TursoDB db = TursoDB.create("jdbc:turso:" + dbPath, dbPath);
|
||||
db.open(0);
|
||||
|
||||
assertThatThrownBy(() -> db.open(0)).isInstanceOf(SQLException.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void throwJavaException_should_throw_appropriate_java_exception() throws Exception {
|
||||
TursoDB.load();
|
||||
|
||||
Reference in New Issue
Block a user