tests for Jakarta Data

thanks @FroMage and others for giving me an example of how to do this
This commit is contained in:
Gavin King 2024-03-01 20:04:13 +01:00
parent af285657db
commit ca12a4c874
5 changed files with 34 additions and 12 deletions

View File

@ -39,6 +39,16 @@ sourceSets {
compileClasspath += sourceSets.main.output + sourceSets.test.output
runtimeClasspath += sourceSets.main.output + sourceSets.test.output
}
jakartaData {
java {
srcDirs = ['src/jakartaData/java']
}
resources {
srcDirs tasks.processTestResources
}
compileClasspath += sourceSets.main.output + sourceSets.test.output
runtimeClasspath += sourceSets.main.output + sourceSets.test.output
}
}
dependencies {
@ -57,6 +67,7 @@ dependencies {
quarkusOrmPanacheImplementation "io.quarkus:quarkus-hibernate-orm-panache:3.6.2"
quarkusHrPanacheImplementation "io.quarkus:quarkus-hibernate-reactive-panache:3.6.2"
jakartaDataImplementation "jakarta.data:jakarta.data-api:1.0.0-SNAPSHOT"
}
// The source set gets a custom configuration which extends the normal test implementation config
@ -67,6 +78,9 @@ configurations {
quarkusHrPanacheImplementation.extendsFrom(testImplementation)
quarkusHrPanacheRuntimeOnly.extendsFrom(testRuntimeOnly)
quarkusHrPanacheCompileOnly.extendsFrom(testCompileOnly)
jakartaDataImplementation.extendsFrom(testImplementation)
jakartaDataRuntimeOnly.extendsFrom(testRuntimeOnly)
jakartaDataCompileOnly.extendsFrom(testCompileOnly)
}
def quarkusOrmPanacheTestTask = tasks.register( 'quarkusOrmPanacheTest', Test ) {
@ -87,6 +101,15 @@ def quarkusHrPanacheTestTask = tasks.register( 'quarkusHrPanacheTest', Test ) {
shouldRunAfter test
}
def jakartaDataTestTask = tasks.register( 'jakartaDataTest', Test ) {
description = 'Runs the Jakarta Data tests.'
group = 'verification'
testClassesDirs = sourceSets.jakartaData.output.classesDirs
classpath = sourceSets.jakartaData.runtimeClasspath
shouldRunAfter test
}
check.dependsOn quarkusHrPanacheTestTask
check.dependsOn quarkusOrmPanacheTestTask
test.dependsOn quarkusHrPanacheTestTask
@ -104,14 +127,6 @@ compileTestJava {
]
}
sourceSets {
test {
java {
exclude '**/data/*.java'
}
}
}
// Tests with records
if ( jdkVersions.test.release.asInt() >= 17 && jdkVersions.explicit ) {
// We need to configure the source and target version to 17

View File

@ -1,4 +1,4 @@
package org.hibernate.jpamodelgen.test.data;
package org.hibernate.jpamodelgen.test.data.data;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;

View File

@ -1,4 +1,4 @@
package org.hibernate.jpamodelgen.test.data;
package org.hibernate.jpamodelgen.test.data.data;
import jakarta.persistence.*;
import org.hibernate.annotations.NaturalId;

View File

@ -1,9 +1,13 @@
package org.hibernate.jpamodelgen.test.data;
package org.hibernate.jpamodelgen.test.data.data;
import jakarta.data.Limit;
import jakarta.data.Order;
import jakarta.data.Sort;
import jakarta.data.page.PageRequest;
import jakarta.data.page.Page;
import jakarta.data.page.Slice;
import jakarta.data.page.KeysetAwarePage;
import jakarta.data.page.KeysetAwareSlice;
import jakarta.data.repository.By;
import jakarta.data.repository.Delete;
import jakarta.data.repository.Find;
@ -133,4 +137,7 @@ public interface BookAuthorRepository {
@Query("from Book where title like :titlePattern")
Slice<Book> booksByTitle2(String titlePattern, PageRequest<Book> pageRequest);
@Find
List<Book> allBooksWithLotsOfSorting(Sort<? super Book> s1, Order<? super Book> order, Sort<? super Book>... s3);
}

View File

@ -4,7 +4,7 @@
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.jpamodelgen.test.data;
package org.hibernate.jpamodelgen.test.data.data;
import org.hibernate.jpamodelgen.test.util.CompilationTest;
import org.hibernate.jpamodelgen.test.util.WithClasses;