Skip to content

Commit

Permalink
Derive test database name from test class name
Browse files Browse the repository at this point in the history
- Introduce intermediate test base class UcanaccessBaseFileTest
- Create missing dedicated test databases
- Ensure no test uses test database of other test
  • Loading branch information
spannm committed Apr 8, 2024
1 parent dd7f15b commit 8de477e
Show file tree
Hide file tree
Showing 33 changed files with 95 additions and 154 deletions.
2 changes: 1 addition & 1 deletion src/main/java/net/ucanaccess/type/AccessVersion.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public enum AccessVersion {

private static final AccessVersion DEFAULT_ACCESS_VERSION = AccessVersion.V2003;

private final FileFormat fileFormat;
private final FileFormat fileFormat;

AccessVersion(FileFormat _fileFormat) {
fileFormat = _fileFormat;
Expand Down
10 changes: 3 additions & 7 deletions src/test/java/net/ucanaccess/jdbc/AccessLikeTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,15 @@
import static net.ucanaccess.type.SqlConstants.*;

import net.ucanaccess.test.AccessDefaultVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.test.UcanaccessBaseFileTest;
import net.ucanaccess.type.AccessVersion;
import net.ucanaccess.util.Sql;
import org.junit.jupiter.params.ParameterizedTest;

import java.sql.SQLException;
import java.util.List;

class AccessLikeTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "accessLike.mdb"; // Access 2000
}
class AccessLikeTest extends UcanaccessBaseFileTest {

@ParameterizedTest(name = "[{index}] {0}")
@AccessDefaultVersionSource
Expand Down Expand Up @@ -77,4 +72,5 @@ void testNotLikeExternal(AccessVersion _accessVersion) throws SQLException {
st.execute("DROP TABLE t_like4");
}
}

}
9 changes: 2 additions & 7 deletions src/test/java/net/ucanaccess/jdbc/AliasNamingTest.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
package net.ucanaccess.jdbc;

import net.ucanaccess.test.AccessDefaultVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.test.UcanaccessBaseFileTest;
import net.ucanaccess.type.AccessVersion;
import org.junit.jupiter.params.ParameterizedTest;

import java.sql.SQLException;

class AliasNamingTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "aliasNaming.accdb";
}
class AliasNamingTest extends UcanaccessBaseFileTest {

@ParameterizedTest(name = "[{index}] {0}")
@AccessDefaultVersionSource
Expand Down
9 changes: 2 additions & 7 deletions src/test/java/net/ucanaccess/jdbc/AlterTableTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import io.github.spannm.jackcess.Index.Column;
import net.ucanaccess.exception.UcanaccessSQLException;
import net.ucanaccess.test.AccessVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.test.UcanaccessBaseFileTest;
import net.ucanaccess.type.AccessVersion;
import net.ucanaccess.util.HibernateSupport;
import net.ucanaccess.util.Sql;
Expand All @@ -22,12 +22,7 @@
import java.sql.Statement;
import java.util.Map;

class AlterTableTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "badDb.accdb";
}
class AlterTableTest extends UcanaccessBaseFileTest {

@Override
protected void init(AccessVersion _accessVersion) throws SQLException {
Expand Down
9 changes: 2 additions & 7 deletions src/test/java/net/ucanaccess/jdbc/BlobOleLazyLoadingTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import static org.assertj.core.api.Assertions.assertThat;

import net.ucanaccess.test.AccessVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.test.UcanaccessBaseFileTest;
import net.ucanaccess.type.AccessVersion;
import org.junit.jupiter.params.ParameterizedTest;

Expand All @@ -16,12 +16,7 @@
import java.sql.Statement;
import java.util.Arrays;

class BlobOleLazyLoadingTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "blobOleLazyLoading.accdb";
}
class BlobOleLazyLoadingTest extends UcanaccessBaseFileTest {

// It only works with JRE 1.6 and later (JDBC 3)
@ParameterizedTest(name = "[{index}] {0}")
Expand Down
9 changes: 2 additions & 7 deletions src/test/java/net/ucanaccess/jdbc/BooleanTest.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package net.ucanaccess.jdbc;

import net.ucanaccess.test.AccessVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.test.UcanaccessBaseFileTest;
import net.ucanaccess.type.AccessVersion;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
Expand All @@ -11,7 +11,7 @@
import java.util.Locale;
import java.util.Objects;

class BooleanTest extends UcanaccessBaseTest {
class BooleanTest extends UcanaccessBaseFileTest {

@BeforeAll
static void setLocale() {
Expand All @@ -24,11 +24,6 @@ static void resetLocale() {
Locale.setDefault(Objects.requireNonNullElseGet(locale, Locale::getDefault));
}

@Override
protected String getAccessPath() {
return getTestDbDir() + "boolean.accdb";
}

@Override
protected void init(AccessVersion _accessVersion) throws SQLException {
super.init(_accessVersion);
Expand Down
9 changes: 2 additions & 7 deletions src/test/java/net/ucanaccess/jdbc/CalculatedFieldTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,13 @@

import net.ucanaccess.exception.UcanaccessSQLException;
import net.ucanaccess.test.AccessVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.test.UcanaccessBaseFileTest;
import net.ucanaccess.type.AccessVersion;
import org.junit.jupiter.params.ParameterizedTest;

import java.sql.ResultSet;

class CalculatedFieldTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "calculatedField.accdb";
}
class CalculatedFieldTest extends UcanaccessBaseFileTest {

@ParameterizedTest(name = "[{index}] {0}")
@AccessVersionSource(include = "V2010")
Expand Down
9 changes: 2 additions & 7 deletions src/test/java/net/ucanaccess/jdbc/ColumnOrderTest.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
package net.ucanaccess.jdbc;

import net.ucanaccess.test.AccessDefaultVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.test.UcanaccessBaseFileTest;
import net.ucanaccess.type.AccessVersion;
import org.junit.jupiter.params.ParameterizedTest;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;

class ColumnOrderTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "columnOrder.accdb";
}
class ColumnOrderTest extends UcanaccessBaseFileTest {

@Override
protected UcanaccessConnectionBuilder buildConnection() {
Expand Down
9 changes: 2 additions & 7 deletions src/test/java/net/ucanaccess/jdbc/ComplexTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import net.ucanaccess.exception.UcanaccessRuntimeException;
import net.ucanaccess.exception.UcanaccessSQLException;
import net.ucanaccess.test.AccessVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.test.UcanaccessBaseFileTest;
import net.ucanaccess.type.AccessVersion;
import org.junit.jupiter.params.ParameterizedTest;
import org.mockito.Mockito;
Expand All @@ -17,12 +17,7 @@
import java.sql.SQLException;
import java.time.LocalDateTime;

class ComplexTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "complex.accdb";
}
class ComplexTest extends UcanaccessBaseFileTest {

@ParameterizedTest(name = "[{index}] {0}")
@AccessVersionSource(include = "V2010")
Expand Down
8 changes: 1 addition & 7 deletions src/test/java/net/ucanaccess/jdbc/ConcatNullsFalseTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,8 @@

class ConcatNullsFalseTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "badDb.accdb";
}

protected UcanaccessConnectionBuilder buildConnection() {
return super.buildConnection()
.withConcatNulls(false);
return super.buildConnection().withConcatNulls(false);
}

@ParameterizedTest(name = "[{index}] {0}")
Expand Down
8 changes: 1 addition & 7 deletions src/test/java/net/ucanaccess/jdbc/ConcatNullsTrueTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,12 @@

class ConcatNullsTrueTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "badDb.accdb";
}

@Override
protected UcanaccessConnectionBuilder buildConnection() {
// By default, any null value will cause the function to return null.
// If the property is set false, then NULL values are replaced with empty strings.
// see: http://hsqldb.org/doc/guide/builtinfunctions-chapt.html
return super.buildConnection()
.withConcatNulls(true);
return super.buildConnection().withConcatNulls(true);
}

@ParameterizedTest(name = "[{index}] {0}")
Expand Down
9 changes: 2 additions & 7 deletions src/test/java/net/ucanaccess/jdbc/CorruptedTest.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package net.ucanaccess.jdbc;

import net.ucanaccess.test.AccessVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.test.UcanaccessBaseFileTest;
import net.ucanaccess.type.AccessVersion;
import org.junit.jupiter.params.ParameterizedTest;

Expand All @@ -14,12 +14,7 @@
import java.util.regex.Pattern;
import java.util.stream.Collectors;

class CorruptedTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "corrupted.accdb"; // Access 2007
}
class CorruptedTest extends UcanaccessBaseFileTest {

@ParameterizedTest(name = "[{index}] {0}")
@AccessVersionSource(include = "V2007")
Expand Down
15 changes: 5 additions & 10 deletions src/test/java/net/ucanaccess/jdbc/CreateTableTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,24 +22,19 @@

class CreateTableTest extends UcanaccessBaseTest {

@Override
protected String getAccessPath() {
return getTestDbDir() + "badDb.accdb";
}

private void createAsSelect() throws SQLException {
try (UcanaccessStatement st = ucanaccess.createStatement()) {
st.executeUpdate("CREATE TABLE AAA_BIS as (SELECT baaaa,a,c FROM AAA) WITH DATA");
st.executeUpdate("CREATE TABLE AAA_BIS as (SELECT baaaa, a, c FROM AAA) WITH DATA");
checkQuery("SELECT * FROM AAA_bis ORDER BY baaaa",
recs(rec("33A", 3, "G"), rec("33B", 111, "G")));
st.executeUpdate("CREATE TABLE AAA_quadris as (SELECT AAA.baaaa,AAA_BIS.baaaa as xxx FROM AAA,AAA_BIS) WITH DATA");
st.executeUpdate("CREATE TABLE AAA_quadris as (SELECT AAA.baaaa, AAA_BIS.baaaa as xxx FROM AAA, AAA_BIS) WITH DATA");
dumpQueryResult("SELECT * FROM AAA_quadris ORDER BY baaaa");
}
}

private void createAsSelect2() throws SQLException {
try (UcanaccessStatement st = ucanaccess.createStatement()) {
st.executeUpdate("CREATE TABLE AAA_TRIS as (SELECT baaaa,a,c FROM AAA) WITH NO DATA");
st.executeUpdate("CREATE TABLE AAA_TRIS as (SELECT baaaa, a, c FROM AAA) WITH NO DATA");
st.execute("INSERT INTO AAA_TRIS SELECT * FROM AAA_bis");
checkQuery("SELECT * FROM AAA_tris ORDER BY baaaa",
recs(rec("33A", 3, "G"), rec("33B", 111, "G")));
Expand Down Expand Up @@ -108,8 +103,8 @@ void setDPK() throws SQLException {

try (UcanaccessStatement st = ucanaccess.createStatement()) {
executeStatements(st,
"INSERT INTO dtrx VALUES('Hi all',444.3)",
"INSERT INTO dtrx VALUES('Hi all',4454.3)");
"INSERT INTO dtrx VALUES('Hi all', 444.3)",
"INSERT INTO dtrx VALUES('Hi all', 4454.3)");
}

dumpQueryResult("SELECT * FROM dtrx");
Expand Down
13 changes: 9 additions & 4 deletions src/test/java/net/ucanaccess/jdbc/ExceptionCodeTest.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package net.ucanaccess.jdbc;

import static net.ucanaccess.type.SqlConstants.CREATE;
import static net.ucanaccess.type.SqlConstants.TABLE;
import static org.assertj.core.api.Assertions.assertThatThrownBy;

import net.ucanaccess.exception.UcanaccessSQLException;
import net.ucanaccess.test.AccessVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.type.AccessVersion;
import net.ucanaccess.util.Sql;
import org.hsqldb.error.ErrorCode;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
Expand All @@ -29,8 +32,9 @@ static void resetLocale() {
}

@Override
protected String getAccessPath() {
return getTestDbDir() + "boolean.accdb";
protected void init(AccessVersion _accessVersion) throws SQLException {
super.init(_accessVersion);
executeStatements(Sql.of(CREATE, TABLE, "t (pk VARCHAR(10) PRIMARY KEY)"));
}

@ParameterizedTest(name = "[{index}] {0}")
Expand All @@ -40,9 +44,10 @@ void testVUKException(AccessVersion _accessVersion) throws SQLException {

try (UcanaccessStatement st = ucanaccess.createStatement()) {

st.execute("INSERT INTO T(pk, b) VALUES('pippo', true)");
String sql = "INSERT INTO t(pk) VALUES('apk')";
st.execute(sql);

assertThatThrownBy(() -> st.execute("INSERT INTO T(pk, b) VALUES('pippo', true)"))
assertThatThrownBy(() -> st.execute(sql))
.isInstanceOf(UcanaccessSQLException.class)
.hasMessageContaining("integrity constraint violation: unique constraint or index violation")
.hasFieldOrPropertyWithValue("ErrorCode", -ErrorCode.X_23505)
Expand Down
9 changes: 2 additions & 7 deletions src/test/java/net/ucanaccess/jdbc/FloatTest.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package net.ucanaccess.jdbc;

import net.ucanaccess.test.AccessVersionSource;
import net.ucanaccess.test.UcanaccessBaseTest;
import net.ucanaccess.test.UcanaccessBaseFileTest;
import net.ucanaccess.type.AccessVersion;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
Expand All @@ -12,7 +12,7 @@
import java.util.Locale;
import java.util.Objects;

class FloatTest extends UcanaccessBaseTest {
class FloatTest extends UcanaccessBaseFileTest {

@BeforeAll
static void setLocale() {
Expand All @@ -25,11 +25,6 @@ static void resetLocale() {
Locale.setDefault(Objects.requireNonNullElseGet(locale, Locale::getDefault));
}

@Override
protected String getAccessPath() {
return getTestDbDir() + "float.accdb"; // Access 2007
}

@ParameterizedTest(name = "[{index}] {0}")
@AccessVersionSource(include = "V2007")
void testCreate(AccessVersion _accessVersion) throws SQLException {
Expand Down
Loading

0 comments on commit 8de477e

Please sign in to comment.