This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 8.0.x-hibernate7 in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 041c86307740b0a064d7febeb499e008a26a99f6 Author: Walter B Duque de Estrada <[email protected]> AuthorDate: Sat Jan 10 10:14:01 2026 -0600 more fixes --- grails-data-hibernate7/core/HIBERNATE7-TESTS.csv | 5 +-- .../ColumnConfigToColumnBinderSpec.groovy | 2 +- .../cfg/domainbinding/ManyToOneBinderSpec.groovy | 38 ++++++++-------------- 3 files changed, 15 insertions(+), 30 deletions(-) diff --git a/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv b/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv index 0b23eff3ae..fb33f021e1 100644 --- a/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv +++ b/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv @@ -2,10 +2,7 @@ `src/test/groovy/org/grails/orm/hibernate/HibernateGormStaticApiSpec.groovy` , FAILED , withSession fails with persistence context issue; HQL escape test fails. `src/test/groovy/org/grails/orm/hibernate/HibernateGormInstanceApiSpec.groovy` , FAILED , delete() method missing/renamed? remove() called instead. `src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleValueBinderSpec.groovy` , FAILED , Generator binding issues. - `src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ColumnConfigToColumnBinderSpec.groovy` , FAILED , Sealed class org.hibernate.mapping.Column cannot be mocked. - `src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/UniqueNameGeneratorSpec.groovy` , FAILED , Sealed class org.hibernate.mapping.Column cannot be mocked. - `src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CascadeBehaviorPersisterSpec.groovy` , FAILED , Unsupported cascade style: save-update. - `src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneBinderSpec.groovy` , FAILED , Final class org.hibernate.mapping.ManyToOne cannot be mocked. + `src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CascadeBehaviorPersisterSpec.groovy` , FAILED , Unsupported cascade style: save-update. `src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CascadeBehaviorFetcherSpec.groovy` , FAILED , Expected save-update but got all. `src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/StringColumnConstraintsBinderSpec.groovy` , FAILED , Sealed class org.hibernate.mapping.Column cannot be mocked. `src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneValuesBinderSpec.groovy` , FAILED , Final class org.hibernate.mapping.ManyToOne cannot be mocked. diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ColumnConfigToColumnBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ColumnConfigToColumnBinderSpec.groovy index e9b6ab95f8..70b8f5a647 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ColumnConfigToColumnBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ColumnConfigToColumnBinderSpec.groovy @@ -21,7 +21,7 @@ class ColumnConfigToColumnBinderSpec extends Specification { columnConfig.unique = true when: - binder.bindColumnConfigToColumn(column, columnConfig, null) + binder.bindColumnConfigToColumn(column, columnConfig, new PropertyConfig()) then: column.length == 100 diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneBinderSpec.groovy index 175e3100d2..c256f1ed44 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ManyToOneBinderSpec.groovy @@ -21,7 +21,6 @@ class ManyToOneBinderSpec extends HibernateGormDatastoreSpec { @Unroll def "Test bindManyToOne orchestration for #scenario"() { given: - // 1. Create mocks for all dependencies def namingStrategy = Mock(PersistentEntityNamingStrategy) def simpleValueBinder = Mock(SimpleValueBinder) def propertyConfigConverter = Mock(PersistentPropertyToPropertyConfig) @@ -30,34 +29,24 @@ class ManyToOneBinderSpec extends HibernateGormDatastoreSpec { def columnFetcher = Mock(SimpleValueColumnFetcher) def entityWrapper = Mock(HibernateEntityWrapper) - // 2. Instantiate the binder using the protected constructor def binder = new ManyToOneBinder(namingStrategy, simpleValueBinder, propertyConfigConverter, manyToOneValuesBinder, compositeBinder, columnFetcher, entityWrapper) - // 3. Set up mocks for method arguments def association = Mock(Association) - - def manyToOne = new ManyToOne(getGrailsDomainBinder().getMetadataBuildingContext(),null) + def manyToOne = new ManyToOne(getGrailsDomainBinder().getMetadataBuildingContext(), null) def path = "/test" def refDomainClass = Mock(PersistentEntity) - def mapping = Mock(Mapping) - def propertyConfig = Mock(PropertyConfig) + def mapping = new Mapping() + def propertyConfig = new PropertyConfig() - // 4. Define mock behaviors association.getAssociatedEntity() >> refDomainClass entityWrapper.getMappedForm(refDomainClass) >> mapping propertyConfigConverter.toPropertyConfig(association) >> propertyConfig - mapping.hasCompositeIdentifier() >> hasCompositeId - - if (hasCompositeId) { - def compositeId = Mock(CompositeIdentity) - mapping.getIdentity() >> compositeId - } + mapping.setIdentity(hasCompositeId ? new CompositeIdentity() : null) when: binder.bindManyToOne(association, manyToOne, path) then: - // 5. Verify the orchestration logic 1 * manyToOneValuesBinder.bindManyToOneValues(association, manyToOne) compositeBinderCalls * compositeBinder.bindCompositeIdentifierToManyToOne(association, manyToOne, _, refDomainClass, path) simpleValueBinderCalls * simpleValueBinder.bindSimpleValue(association, null, manyToOne, path) @@ -81,7 +70,7 @@ class ManyToOneBinderSpec extends HibernateGormDatastoreSpec { def binder = new ManyToOneBinder(namingStrategy, simpleValueBinder, propertyConfigConverter, manyToOneValuesBinder, compositeBinder, columnFetcher, entityWrapper) def property = Mock(ManyToMany) - def manyToOne = new ManyToOne(getGrailsDomainBinder().getMetadataBuildingContext(),null) + def manyToOne = new ManyToOne(getGrailsDomainBinder().getMetadataBuildingContext(), null) def ownerEntity = Mock(PersistentEntity) def mapping = new Mapping() mapping.setColumns(new HashMap<String, PropertyConfig>()) @@ -119,20 +108,19 @@ class ManyToOneBinderSpec extends HibernateGormDatastoreSpec { def binder = new ManyToOneBinder(namingStrategy, simpleValueBinder, propertyConfigConverter, manyToOneValuesBinder, compositeBinder, columnFetcher, entityWrapper) def property = Mock(OneToOne) - def manyToOne = new ManyToOne(getGrailsDomainBinder().getMetadataBuildingContext(),null) + def manyToOne = new ManyToOne(getGrailsDomainBinder().getMetadataBuildingContext(), null) def refDomainClass = Mock(PersistentEntity) - def mapping = Mock(Mapping) + def mapping = new Mapping() def propertyConfig = Mock(PropertyConfig) def column = new Column('test') def inverseSide = Mock(Association) property.getAssociatedEntity() >> refDomainClass entityWrapper.getMappedForm(refDomainClass) >> mapping - mapping.hasCompositeIdentifier() >> false + mapping.setIdentity(null) propertyConfigConverter.toPropertyConfig(property) >> propertyConfig columnFetcher.getColumnForSimpleValue(manyToOne) >> column - // Configure mocks based on scenario propertyConfig.isUnique() >> isUnique propertyConfig.isUniqueWithinGroup() >> isUniqueWithinGroup property.isBidirectional() >> isBidirectional @@ -143,7 +131,7 @@ class ManyToOneBinderSpec extends HibernateGormDatastoreSpec { binder.bindManyToOne(property, manyToOne, "/test") then: - 1 * manyToOne.setAlternateUniqueKey(true) + manyToOne.isAlternateUniqueKey() if (expectedUniqueValue != null) { assert column.isUnique() == expectedUniqueValue } else { @@ -172,16 +160,16 @@ class ManyToOneBinderSpec extends HibernateGormDatastoreSpec { def binder = new ManyToOneBinder(namingStrategy, simpleValueBinder, propertyConfigConverter, manyToOneValuesBinder, compositeBinder, columnFetcher, entityWrapper) def property = Mock(OneToOne) - def manyToOne = new ManyToOne(getGrailsDomainBinder().getMetadataBuildingContext(),null) + def manyToOne = new ManyToOne(getGrailsDomainBinder().getMetadataBuildingContext(), null) def refDomainClass = Mock(PersistentEntity) - def mapping = Mock(Mapping) + def mapping = new Mapping() def propertyConfig = new PropertyConfig() property.getAssociatedEntity() >> refDomainClass entityWrapper.getMappedForm(refDomainClass) >> mapping - mapping.hasCompositeIdentifier() >> false + mapping.setIdentity(null) propertyConfigConverter.toPropertyConfig(property) >> propertyConfig - columnFetcher.getColumnForSimpleValue(manyToOne) >> null // No column found + columnFetcher.getColumnForSimpleValue(manyToOne) >> null when: binder.bindManyToOne(property, manyToOne, "/test")
