Browse Source

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.
pull/256/head
Jens Schauder 5 years ago
parent
commit
2188b5d6cf
No known key found for this signature in database
GPG Key ID: 996B1389BA0721C3
  1. 17
      spring-data-jdbc/src/test/java/org/springframework/data/jdbc/core/JdbcAggregateTemplateIntegrationTests.java
  2. 6
      spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/TestDatabaseFeatures.java
  3. 8
      spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-db2.sql
  4. 2
      spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-h2.sql
  5. 7
      spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-mariadb.sql
  6. 9
      spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-mssql.sql
  7. 7
      spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-mysql.sql
  8. 8
      spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-oracle.sql
  9. 6
      spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-postgres.sql

17
spring-data-jdbc/src/test/java/org/springframework/data/jdbc/core/JdbcAggregateTemplateIntegrationTests.java

@ -823,11 +823,26 @@ public class JdbcAggregateTemplateIntegrationTests {
} }
@Test // DATAJDBC-637 @Test // DATAJDBC-637
@EnabledOnFeature(SUPPORTS_NANOSECOND_PRECISION)
public void saveAndLoadDateTimeWithFullPrecision() { public void saveAndLoadDateTimeWithFullPrecision() {
WithLocalDateTime entity = new WithLocalDateTime(); WithLocalDateTime entity = new WithLocalDateTime();
entity.id = 23L; 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); template.insert(entity);

6
spring-data-jdbc/src/test/java/org/springframework/data/jdbc/testing/TestDatabaseFeatures.java

@ -72,6 +72,11 @@ public class TestDatabaseFeatures {
assumeThat(database).isNotIn(Database.MySql, Database.MariaDb, Database.SqlServer, Database.Db2, Database.Oracle); 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() { private void supportsMultiDimensionalArrays() {
supportsArrays(); supportsArrays();
@ -109,6 +114,7 @@ public class TestDatabaseFeatures {
SUPPORTS_HUGE_NUMBERS(TestDatabaseFeatures::supportsHugeNumbers), // SUPPORTS_HUGE_NUMBERS(TestDatabaseFeatures::supportsHugeNumbers), //
SUPPORTS_ARRAYS(TestDatabaseFeatures::supportsArrays), // SUPPORTS_ARRAYS(TestDatabaseFeatures::supportsArrays), //
SUPPORTS_GENERATED_IDS_IN_REFERENCED_ENTITIES(TestDatabaseFeatures::supportsGeneratedIdsInReferencedEntities), // SUPPORTS_GENERATED_IDS_IN_REFERENCED_ENTITIES(TestDatabaseFeatures::supportsGeneratedIdsInReferencedEntities), //
SUPPORTS_NANOSECOND_PRECISION(TestDatabaseFeatures::supportsNanosecondPrecision), //
IS_HSQL(f -> f.databaseIs(Database.Hsql)); IS_HSQL(f -> f.databaseIs(Database.Hsql));
private final Consumer<TestDatabaseFeatures> featureMethod; private final Consumer<TestDatabaseFeatures> featureMethod;

8
spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-db2.sql

@ -35,6 +35,7 @@ DROP TABLE NO_ID_LIST_CHAIN4;
DROP TABLE WITH_READ_ONLY; DROP TABLE WITH_READ_ONLY;
DROP TABLE VERSIONED_AGGREGATE; DROP TABLE VERSIONED_AGGREGATE;
DROP TABLE WITH_LOCAL_DATE_TIME;
CREATE TABLE LEGO_SET CREATE TABLE LEGO_SET
( (
@ -343,3 +344,10 @@ CREATE TABLE VERSIONED_AGGREGATE
ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY, ID BIGINT GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY,
VERSION BIGINT VERSION BIGINT
); );
CREATE TABLE WITH_LOCAL_DATE_TIME
(
ID BIGINT NOT NULL PRIMARY KEY,
TEST_TIME TIMESTAMP(9)
);

2
spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-h2.sql

@ -307,6 +307,6 @@ CREATE TABLE WITH_READ_ONLY
CREATE TABLE WITH_LOCAL_DATE_TIME CREATE TABLE WITH_LOCAL_DATE_TIME
( (
ID SERIAL PRIMARY KEY, ID BIGINT PRIMARY KEY,
TEST_TIME TIMESTAMP(9) WITHOUT TIME ZONE TEST_TIME TIMESTAMP(9) WITHOUT TIME ZONE
); );

7
spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-mariadb.sql

@ -290,3 +290,10 @@ CREATE TABLE VERSIONED_AGGREGATE
ID BIGINT AUTO_INCREMENT PRIMARY KEY, ID BIGINT AUTO_INCREMENT PRIMARY KEY,
VERSION BIGINT VERSION BIGINT
); );
CREATE TABLE WITH_LOCAL_DATE_TIME
(
ID BIGINT PRIMARY KEY,
TEST_TIME TIMESTAMP(6)
);

9
spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-mssql.sql

@ -316,3 +316,12 @@ CREATE TABLE VERSIONED_AGGREGATE
ID BIGINT IDENTITY PRIMARY KEY, ID BIGINT IDENTITY PRIMARY KEY,
VERSION BIGINT VERSION BIGINT
); );
DROP TABLE IF EXISTS WITH_LOCAL_DATE_TIME;
CREATE TABLE WITH_LOCAL_DATE_TIME
(
ID BIGINT PRIMARY KEY,
TEST_TIME datetime2(7)
);

7
spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-mysql.sql

@ -295,3 +295,10 @@ CREATE TABLE WITH_READ_ONLY
NAME VARCHAR(200), NAME VARCHAR(200),
READ_ONLY VARCHAR(200) DEFAULT 'from-db' READ_ONLY VARCHAR(200) DEFAULT 'from-db'
); );
CREATE TABLE WITH_LOCAL_DATE_TIME
(
ID BIGINT PRIMARY KEY,
TEST_TIME TIMESTAMP(6)
);

8
spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-oracle.sql

@ -27,6 +27,7 @@ DROP TABLE NO_ID_MAP_CHAIN3 CASCADE CONSTRAINTS PURGE;
DROP TABLE NO_ID_MAP_CHAIN4 CASCADE CONSTRAINTS PURGE; DROP TABLE NO_ID_MAP_CHAIN4 CASCADE CONSTRAINTS PURGE;
DROP TABLE VERSIONED_AGGREGATE CASCADE CONSTRAINTS PURGE; DROP TABLE VERSIONED_AGGREGATE CASCADE CONSTRAINTS PURGE;
DROP TABLE WITH_READ_ONLY CASCADE CONSTRAINTS PURGE; DROP TABLE WITH_READ_ONLY CASCADE CONSTRAINTS PURGE;
DROP TABLE WITH_LOCAL_DATE_TIME CASCADE CONSTRAINTS PURGE;
CREATE TABLE LEGO_SET CREATE TABLE LEGO_SET
( (
@ -325,3 +326,10 @@ CREATE TABLE WITH_READ_ONLY
NAME VARCHAR(200), NAME VARCHAR(200),
READ_ONLY VARCHAR(200) DEFAULT 'from-db' READ_ONLY VARCHAR(200) DEFAULT 'from-db'
); );
CREATE TABLE WITH_LOCAL_DATE_TIME
(
ID NUMBER PRIMARY KEY,
TEST_TIME TIMESTAMP(9)
);

6
spring-data-jdbc/src/test/resources/org.springframework.data.jdbc.core/JdbcAggregateTemplateIntegrationTests-postgres.sql

@ -318,3 +318,9 @@ CREATE TABLE WITH_READ_ONLY
NAME VARCHAR(200), NAME VARCHAR(200),
READ_ONLY VARCHAR(200) DEFAULT 'from-db' READ_ONLY VARCHAR(200) DEFAULT 'from-db'
); );
CREATE TABLE WITH_LOCAL_DATE_TIME
(
ID BIGINT PRIMARY KEY,
TEST_TIME TIMESTAMP(9) WITHOUT TIME ZONE
);
Loading…
Cancel
Save