Add fields API
Some checks failed
Maven build / build (push) Failing after 1m14s

This commit is contained in:
Guillaume Dugas
2026-02-17 16:19:33 +01:00
parent def2e4140f
commit cdbe2dfd67
57 changed files with 537 additions and 497 deletions

View File

@@ -45,6 +45,16 @@
<artifactId>quarkus-junit5-internal</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-test-vertx</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>fr.codeanddata.semrack</groupId>
<artifactId>semrack-core-testing</artifactId>

View File

@@ -0,0 +1,73 @@
package fr.codeanddata.semrack.storage.postgres.storage;
import fr.codeanddata.semrack.core.models.StorageGet;
import io.quarkus.hibernate.reactive.panache.Panache;
import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.vertx.RunOnVertxContext;
import io.quarkus.test.vertx.UniAsserter;
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;
import java.util.Map;
@QuarkusTest
public class JpaStorageTest {
@Inject
JpaStorage jpaStorage;
@Test
@RunOnVertxContext
void testJpaStorageGetDefault(UniAsserter asserter) {
asserter.assertThat(
() -> Panache.withSession(() -> jpaStorage.get("doc-001", StorageGet.builder().build())),
doc -> {
assert doc != null;
assert "doc-001".equals(doc.getUid());
assert doc.getAnnotations() == null;
assert doc.getMetadata() == null;
assert doc.getFields() == null;
}
);
}
@Test
@RunOnVertxContext
void testJpaStorageGetWithAnnotationsAndMetadata(UniAsserter asserter) {
asserter.assertThat(
() -> Panache.withSession(() -> jpaStorage.get("doc-001", StorageGet.builder()
.annotationsSource(true)
.metadataSource(true)
.build())),
doc -> {
assert doc != null;
assert doc.getAnnotations() != null;
assert doc.getMetadata() != null;
}
);
}
@Test
@RunOnVertxContext
void testJpaStorageGetWithFields(UniAsserter asserter) {
asserter.assertThat(
() -> Panache.withSession(() -> jpaStorage.get("doc-001", StorageGet.builder()
.fields(Map.of(
"title", "title",
"content", "content",
"sku", "product.sku"
))
.build())),
doc -> {
assert doc != null;
assert doc.getFields() != null;
assert doc.getFields().containsKey("title");
assert "Test Document".equals(doc.getFields().get("title"));
assert doc.getFields().containsKey("content");
assert "Hello World".equals(doc.getFields().get("content"));
assert doc.getFields().containsKey("sku");
assert "001".equals(doc.getFields().get("sku"));
}
);
}
}

View File

@@ -1,23 +0,0 @@
package fr.codeanddata.semrack.storage.postgres.test;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import io.quarkus.test.QuarkusDevModeTest;
public class SemrackStoragePostgresDevModeTest {
// Start hot reload (DevMode) test with your extension loaded
@RegisterExtension
static final QuarkusDevModeTest devModeTest = new QuarkusDevModeTest()
.setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class));
@Test
public void writeYourOwnDevModeTest() {
// Write your dev mode tests here - see the testing extension guide https://quarkus.io/guides/writing-extensions#testing-hot-reload for more information
Assertions.assertTrue(true, "Add dev mode assertions to " + getClass().getName());
}
}

View File

@@ -1,23 +0,0 @@
package fr.codeanddata.semrack.storage.postgres.test;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import io.quarkus.test.QuarkusUnitTest;
public class SemrackStoragePostgresTest {
// Start unit test with your extension loaded
@RegisterExtension
static final QuarkusUnitTest unitTest = new QuarkusUnitTest()
.setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class));
@Test
public void writeYourOwnUnitTest() {
// Write your unit tests here - see the testing extension guide https://quarkus.io/guides/writing-extensions#testing-extensions for more information
Assertions.assertTrue(true, "Add some assertions to " + getClass().getName());
}
}

View File

@@ -0,0 +1,3 @@
quarkus.flyway.enabled=false
quarkus.hibernate-orm.schema-management.strategy=drop-and-create
quarkus.hibernate-orm.sql-load-script=import.sql

View File

@@ -0,0 +1,5 @@
INSERT INTO semrack_document (id, uid, document)
VALUES (nextval('semrack_document_SEQ'), 'doc-001',
'{"uid":"doc-001","annotations":{"category":"test"},"metadata":{"product":{"sku":"001"},"title":"Test Document","content":"Hello World"}}'),
(nextval('semrack_document_SEQ'), 'doc-002',
'{"uid":"doc-002","annotations":{"category":"test"},"metadata":{"product":{"sku":"002"},"title":"Test Document 2","content":"Hello World 2"}}');