This is an automated email from the ASF dual-hosted git repository.

borinquenkid pushed a commit to branch merge-hibernate6
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 143640fcf95cc28aa52a4262c2175606423c97ec
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Sun Sep 7 20:41:49 2025 -0500

    Fixed EnumSpec
---
 .../cfg/domainbinding/EnumTypeBinder.java          |  6 +-
 .../cfg/domainbinding/GrailsEnumType.java          | 15 ++++
 .../grails/data/testing/tck/tests/EnumSpec.groovy  | 85 +++++++++++++---------
 3 files changed, 68 insertions(+), 38 deletions(-)

diff --git 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/EnumTypeBinder.java
 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/EnumTypeBinder.java
index 0da72db063..9b98e8c915 100644
--- 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/EnumTypeBinder.java
+++ 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/EnumTypeBinder.java
@@ -49,15 +49,15 @@ public class EnumTypeBinder {
         if (typeName != null) {
             simpleValue.setTypeName(typeName);
         } else {
-            if (DEFAULT_ENUM_TYPE.equals(enumType) || 
"string".equalsIgnoreCase(enumType)) {
+            if (GrailsEnumType.DEFAULT.getType().equals(enumType) || 
GrailsEnumType.STRING.getType().equalsIgnoreCase(enumType)) {
                 simpleValue.setTypeName(ENUM_TYPE_CLASS);
                 enumProperties.put(EnumType.TYPE, 
String.valueOf(Types.VARCHAR));
                 enumProperties.put(EnumType.NAMED, Boolean.TRUE.toString());
-            } else if ("ordinal".equalsIgnoreCase(enumType)) {
+            } else if 
(GrailsEnumType.ORDINAL.getType().equalsIgnoreCase(enumType)) {
                 simpleValue.setTypeName(ENUM_TYPE_CLASS);
                 enumProperties.put(EnumType.TYPE, 
String.valueOf(Types.INTEGER));
                 enumProperties.put(EnumType.NAMED, Boolean.FALSE.toString());
-            } else if ("identity".equals(enumType)) {
+            } else if (GrailsEnumType.ORDINAL.getType().equals(enumType)) {
                 simpleValue.setTypeName(IdentityEnumType.class.getName());
             } else {
                 throw new MappingException("Invalid enum type [" + enumType + 
"].");
diff --git 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsEnumType.java
 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsEnumType.java
new file mode 100644
index 0000000000..0ce19f0f79
--- /dev/null
+++ 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsEnumType.java
@@ -0,0 +1,15 @@
+package org.grails.orm.hibernate.cfg.domainbinding;
+
+public enum GrailsEnumType
+{
+    DEFAULT("default"), STRING("string"), ORDINAL("ordinal"), 
IDENTITY("identity");
+    private final String type;
+
+    private GrailsEnumType(String type) {
+        this.type = type;
+    }
+
+    public String getType() {
+        return type;
+    }
+}
diff --git 
a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/EnumSpec.groovy
 
b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/EnumSpec.groovy
index e51de2c3be..5464c8a146 100644
--- 
a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/EnumSpec.groovy
+++ 
b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/EnumSpec.groovy
@@ -59,52 +59,67 @@ class EnumSpec extends GrailsDataTckSpec {
         new EnumThing(name: 'e2', en: TestEnum.V1).save(failOnError: true)
         new EnumThing(name: 'e3', en: TestEnum.V2).save(failOnError: true)
 
-        EnumThing instance1
-        EnumThing instance2
-        EnumThing instance3
+        List instance1
+        List instance2
+        List instance3
 
         when:
-        instance1 = EnumThing.findByEnInList([TestEnum.V1])
-        instance2 = EnumThing.findByEnInList([TestEnum.V2])
-        instance3 = EnumThing.findByEnInList([TestEnum.V3])
+        instance1 = EnumThing.findAllByEn(TestEnum.V1)
+        instance2 = EnumThing.findAllByEn(TestEnum.V2)
+        instance3 = EnumThing.findAllByEn(TestEnum.V3)
 
         then:
-        instance1 != null
-        instance1.en == TestEnum.V1
+        instance1.size() == 2
+        instance1.every { it.en == TestEnum.V1 }
 
-        instance2 != null
-        instance2.en == TestEnum.V2
+        instance2.size() == 1
+        instance2.every { it.en == TestEnum.V2 }
 
-        instance3 == null
+        instance3.isEmpty()
+
+        when:
+        instance1 = EnumThing.findAllByEnInList([TestEnum.V1])
+        instance2 = EnumThing.findAllByEnInList([TestEnum.V2])
+        instance3 = EnumThing.findAllByEnInList([TestEnum.V3])
+
+        then:
+        instance1.size() == 2
+        instance1.every { it.en == TestEnum.V1 }
+
+        instance2.size() == 1
+        instance2.every { it.en == TestEnum.V2 }
+
+        instance3.isEmpty()
     }
 
-    void "Test findBy()"() {
+    void "Test findAllBy()"() {
         given:
 
         new EnumThing(name: 'e1', en: TestEnum.V1).save(failOnError: true)
         new EnumThing(name: 'e2', en: TestEnum.V1).save(failOnError: true)
         new EnumThing(name: 'e3', en: TestEnum.V2).save(failOnError: true)
 
-        EnumThing instance1
-        EnumThing instance2
-        EnumThing instance3
+        List instance1
+        List instance2
+        List instance3
 
         when:
-        instance1 = EnumThing.findByEn(TestEnum.V1)
-        instance2 = EnumThing.findByEn(TestEnum.V2)
-        instance3 = EnumThing.findByEn(TestEnum.V3)
+        instance1 = EnumThing.findAllByEn(TestEnum.V1)
+        instance2 = EnumThing.findAllByEn(TestEnum.V2)
+        instance3 = EnumThing.findAllByEn(TestEnum.V3)
 
         then:
-        instance1 != null
-        instance1.en == TestEnum.V1
+        instance1.size() == 2
+        instance1.every { it.en == TestEnum.V1 }
+
+        instance2.size() == 1
+        instance2.every { it.en == TestEnum.V2 }
 
-        instance2 != null
-        instance2.en == TestEnum.V2
+        instance3.isEmpty()
 
-        instance3 == null
     }
 
-    void "Test findBy() with clearing the session"() {
+    void "Test findAllBy() with clearing the session"() {
         given:
 
         new EnumThing(name: 'e1', en: TestEnum.V1).save(failOnError: true, 
flush: true)
@@ -112,23 +127,23 @@ class EnumSpec extends GrailsDataTckSpec {
         new EnumThing(name: 'e3', en: TestEnum.V2).save(failOnError: true, 
flush: true)
         manager.session.clear()
 
-        EnumThing instance1
-        EnumThing instance2
-        EnumThing instance3
+        List instance1
+        List instance2
+        List instance3
 
         when:
-        instance1 = EnumThing.findByEn(TestEnum.V1)
-        instance2 = EnumThing.findByEn(TestEnum.V2)
-        instance3 = EnumThing.findByEn(TestEnum.V3)
+        instance1 = EnumThing.findAllByEn(TestEnum.V1)
+        instance2 = EnumThing.findAllByEn(TestEnum.V2)
+        instance3 = EnumThing.findAllByEn(TestEnum.V3)
 
         then:
-        instance1 != null
-        instance1.en == TestEnum.V1
+        instance1.size() == 2
+        instance1.every { it.en == TestEnum.V1 }
 
-        instance2 != null
-        instance2.en == TestEnum.V2
+        instance2.size() == 1
+        instance2.every { it.en == TestEnum.V2 }
 
-        instance3 == null
+        instance3.isEmpty()
     }
 
     void "Test findAllBy()"() {

Reply via email to