DATAJDBC-637 - Fix tests for all databases.
Adds SQL scripts for all databases. Separates tests for all databases vs. those that actually support nanosecond precision. Original pull request: #255.
This commit is contained in:
@@ -823,11 +823,26 @@ public class JdbcAggregateTemplateIntegrationTests {
|
||||
}
|
||||
|
||||
@Test // DATAJDBC-637
|
||||
@EnabledOnFeature(SUPPORTS_NANOSECOND_PRECISION)
|
||||
public void saveAndLoadDateTimeWithFullPrecision() {
|
||||
|
||||
WithLocalDateTime entity = new WithLocalDateTime();
|
||||
entity.id = 23L;
|
||||
entity.testTime = LocalDateTime.of(5, 5, 5, 5, 5, 5, 123456789);
|
||||
entity.testTime = LocalDateTime.of(2005, 5, 5, 5, 5, 5, 123456789);
|
||||
|
||||
template.insert(entity);
|
||||
|
||||
WithLocalDateTime loaded = template.findById(23L, WithLocalDateTime.class);
|
||||
|
||||
assertThat(loaded.testTime).isEqualTo(entity.testTime);
|
||||
}
|
||||
|
||||
@Test // DATAJDBC-637
|
||||
public void saveAndLoadDateTimeWithMicrosecondPrecision() {
|
||||
|
||||
WithLocalDateTime entity = new WithLocalDateTime();
|
||||
entity.id = 23L;
|
||||
entity.testTime = LocalDateTime.of(2005, 5, 5, 5, 5, 5, 123456000);
|
||||
|
||||
template.insert(entity);
|
||||
|
||||
|
||||
@@ -72,6 +72,11 @@ public class TestDatabaseFeatures {
|
||||
assumeThat(database).isNotIn(Database.MySql, Database.MariaDb, Database.SqlServer, Database.Db2, Database.Oracle);
|
||||
}
|
||||
|
||||
private void supportsNanosecondPrecision() {
|
||||
|
||||
assumeThat(database).isNotIn(Database.MySql, Database.PostgreSql, Database.MariaDb, Database.SqlServer);
|
||||
}
|
||||
|
||||
private void supportsMultiDimensionalArrays() {
|
||||
|
||||
supportsArrays();
|
||||
@@ -109,6 +114,7 @@ public class TestDatabaseFeatures {
|
||||
SUPPORTS_HUGE_NUMBERS(TestDatabaseFeatures::supportsHugeNumbers), //
|
||||
SUPPORTS_ARRAYS(TestDatabaseFeatures::supportsArrays), //
|
||||
SUPPORTS_GENERATED_IDS_IN_REFERENCED_ENTITIES(TestDatabaseFeatures::supportsGeneratedIdsInReferencedEntities), //
|
||||
SUPPORTS_NANOSECOND_PRECISION(TestDatabaseFeatures::supportsNanosecondPrecision), //
|
||||
IS_HSQL(f -> f.databaseIs(Database.Hsql));
|
||||
|
||||
private final Consumer<TestDatabaseFeatures> featureMethod;
|
||||
|
||||
@@ -35,6 +35,7 @@ DROP TABLE NO_ID_LIST_CHAIN4;
|
||||
|
||||
DROP TABLE WITH_READ_ONLY;
|
||||
DROP TABLE VERSIONED_AGGREGATE;
|
||||
DROP TABLE WITH_LOCAL_DATE_TIME;
|
||||
|
||||
CREATE TABLE LEGO_SET
|
||||
(
|
||||
@@ -343,3 +344,10 @@ CREATE TABLE VERSIONED_AGGREGATE
|
||||
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY,
|
||||
VERSION BIGINT
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE WITH_LOCAL_DATE_TIME
|
||||
(
|
||||
ID BIGINT NOT NULL PRIMARY KEY,
|
||||
TEST_TIME TIMESTAMP(9)
|
||||
);
|
||||
@@ -307,6 +307,6 @@ CREATE TABLE WITH_READ_ONLY
|
||||
|
||||
CREATE TABLE WITH_LOCAL_DATE_TIME
|
||||
(
|
||||
ID SERIAL PRIMARY KEY,
|
||||
ID BIGINT PRIMARY KEY,
|
||||
TEST_TIME TIMESTAMP(9) WITHOUT TIME ZONE
|
||||
);
|
||||
@@ -290,3 +290,10 @@ CREATE TABLE VERSIONED_AGGREGATE
|
||||
ID BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
VERSION BIGINT
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE WITH_LOCAL_DATE_TIME
|
||||
(
|
||||
ID BIGINT PRIMARY KEY,
|
||||
TEST_TIME TIMESTAMP(6)
|
||||
);
|
||||
@@ -316,3 +316,12 @@ CREATE TABLE VERSIONED_AGGREGATE
|
||||
ID BIGINT IDENTITY PRIMARY KEY,
|
||||
VERSION BIGINT
|
||||
);
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS WITH_LOCAL_DATE_TIME;
|
||||
|
||||
CREATE TABLE WITH_LOCAL_DATE_TIME
|
||||
(
|
||||
ID BIGINT PRIMARY KEY,
|
||||
TEST_TIME datetime2(7)
|
||||
);
|
||||
@@ -295,3 +295,10 @@ CREATE TABLE WITH_READ_ONLY
|
||||
NAME VARCHAR(200),
|
||||
READ_ONLY VARCHAR(200) DEFAULT 'from-db'
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE WITH_LOCAL_DATE_TIME
|
||||
(
|
||||
ID BIGINT PRIMARY KEY,
|
||||
TEST_TIME TIMESTAMP(6)
|
||||
);
|
||||
@@ -27,6 +27,7 @@ DROP TABLE NO_ID_MAP_CHAIN3 CASCADE CONSTRAINTS PURGE;
|
||||
DROP TABLE NO_ID_MAP_CHAIN4 CASCADE CONSTRAINTS PURGE;
|
||||
DROP TABLE VERSIONED_AGGREGATE CASCADE CONSTRAINTS PURGE;
|
||||
DROP TABLE WITH_READ_ONLY CASCADE CONSTRAINTS PURGE;
|
||||
DROP TABLE WITH_LOCAL_DATE_TIME CASCADE CONSTRAINTS PURGE;
|
||||
|
||||
CREATE TABLE LEGO_SET
|
||||
(
|
||||
@@ -325,3 +326,10 @@ CREATE TABLE WITH_READ_ONLY
|
||||
NAME VARCHAR(200),
|
||||
READ_ONLY VARCHAR(200) DEFAULT 'from-db'
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE WITH_LOCAL_DATE_TIME
|
||||
(
|
||||
ID NUMBER PRIMARY KEY,
|
||||
TEST_TIME TIMESTAMP(9)
|
||||
);
|
||||
@@ -318,3 +318,9 @@ CREATE TABLE WITH_READ_ONLY
|
||||
NAME VARCHAR(200),
|
||||
READ_ONLY VARCHAR(200) DEFAULT 'from-db'
|
||||
);
|
||||
|
||||
CREATE TABLE WITH_LOCAL_DATE_TIME
|
||||
(
|
||||
ID BIGINT PRIMARY KEY,
|
||||
TEST_TIME TIMESTAMP(9) WITHOUT TIME ZONE
|
||||
);
|
||||
Reference in New Issue
Block a user