From 349b209deb2a830677b2db5abd8cf435f43e5d4b Mon Sep 17 00:00:00 2001 From: Gavin King Date: Sun, 8 Sep 2024 22:12:31 +0200 Subject: [PATCH] HHH-17739 add tests --- .../basic/ListOfByteArrayTest.java | 36 ++++++++++++++++ .../annotations/basic/ListOfStringTest.java | 41 +++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 hibernate-core/src/test/java/org/hibernate/orm/test/annotations/basic/ListOfByteArrayTest.java create mode 100644 hibernate-core/src/test/java/org/hibernate/orm/test/annotations/basic/ListOfStringTest.java diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/basic/ListOfByteArrayTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/basic/ListOfByteArrayTest.java new file mode 100644 index 0000000000..4bcfc592ed --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/basic/ListOfByteArrayTest.java @@ -0,0 +1,36 @@ +package org.hibernate.orm.test.annotations.basic; + +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import org.hibernate.MappingException; +import org.hibernate.testing.orm.junit.DialectFeatureChecks; +import org.hibernate.testing.orm.junit.EntityManagerFactoryScope; +import org.hibernate.testing.orm.junit.JiraKey; +import org.hibernate.testing.orm.junit.Jpa; +import org.hibernate.testing.orm.junit.RequiresDialectFeature; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; + +@JiraKey("HHH-17739") +@Jpa(annotatedClasses = ListOfByteArrayTest.Broken.class) +@RequiresDialectFeature(feature = DialectFeatureChecks.SupportsStandardArrays.class) +public class ListOfByteArrayTest { + @Test void test(EntityManagerFactoryScope scope) { + try { + scope.getEntityManagerFactory(); + fail(); + } + catch (MappingException e) { + assertTrue( e.getMessage().contains("binaryList") ); + } + } + @Entity + static class Broken { + @Id long id; + List binaryList; // this is not supported + } +} diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/basic/ListOfStringTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/basic/ListOfStringTest.java new file mode 100644 index 0000000000..7171112364 --- /dev/null +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/annotations/basic/ListOfStringTest.java @@ -0,0 +1,41 @@ +package org.hibernate.orm.test.annotations.basic; + +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import org.hibernate.testing.orm.junit.DialectFeatureChecks; +import org.hibernate.testing.orm.junit.EntityManagerFactoryScope; +import org.hibernate.testing.orm.junit.JiraKey; +import org.hibernate.testing.orm.junit.Jpa; +import org.hibernate.testing.orm.junit.RequiresDialectFeature; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@JiraKey("HHH-17739") +@Jpa(annotatedClasses = ListOfStringTest.Unbroken.class) +@RequiresDialectFeature(feature = DialectFeatureChecks.SupportsStandardArrays.class) +public class ListOfStringTest { + @Test void test(EntityManagerFactoryScope scope) { + scope.inTransaction(entityManager -> { + entityManager.persist( new Unbroken( List.of("hello", "world") ) ); + }); + scope.inTransaction(entityManager -> { + assertEquals( List.of("hello", "world"), + entityManager.find(Unbroken.class, 0).stringList ); + }); + + } + @Entity + static class Unbroken { + @Id long id; + List stringList; // this should be OK + + Unbroken(List stringList) { + this.stringList = stringList; + } + Unbroken() { + } + } +}