diff --git a/build.gradle b/build.gradle index b0bc4ae12d8..1ea02b40ac0 100644 --- a/build.gradle +++ b/build.gradle @@ -136,7 +136,7 @@ apply from: "gradle/idea.gradle" subprojects { configurations { documentation - } + } version = "${projectVersion}.${releaseType}" group = "org.grails" @@ -345,6 +345,9 @@ subprojects { // If there is a corresponding source file in the particular modules // test source tree. Allows a module to override a test/helper. + if (!details.file.isFile()) { + return false + } def candidatePath = details.file.absolutePath def relativePath = toBaseClassRelativePathWithoutExtension(tckClassesDir.absolutePath, candidatePath) @@ -369,7 +372,7 @@ subprojects { configure([groovydoc]) { groovyClasspath += configurations.documentation - } + } modifyPom { delegate.project { diff --git a/grails-datastore-gorm-hibernate/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderTests.groovy b/grails-datastore-gorm-hibernate/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderTests.groovy index 68912f73cb8..28a2aba4b69 100644 --- a/grails-datastore-gorm-hibernate/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderTests.groovy +++ b/grails-datastore-gorm-hibernate/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderTests.groovy @@ -14,6 +14,7 @@ * limitations under the License. */ package org.grails.orm.hibernate.cfg + import grails.core.DefaultGrailsApplication import grails.core.GrailsDomainClass import grails.util.Holders @@ -307,6 +308,38 @@ class Widget { assertFalse descriptionColumn.isUnique() } + void testGroupUniqueProperty() { + DefaultGrailsDomainConfiguration config = getDomainConfig(''' +class CompositeUnique1 { + Long id + Long version + String name + String surname + static constraints = { + name unique:'surname' + } +} +class CompositeUnique2 { + Long id + Long version + String name + String surname + static constraints = { + name unique:'surname' + } +} +''') + Table tableMapping = getTableMapping("composite_unique1", config) + UniqueKey key = tableMapping.getUniqueKey('unique_composite_unique1_name') + assertNotNull(key) + + Table tableMapping2 = getTableMapping("composite_unique2", config) + UniqueKey key2 = tableMapping2.getUniqueKey('unique_composite_unique2_name') + assertNotNull(key2) + + assertTrue(key.name != key2.name) + } + void testPrecisionProperty() { DefaultGrailsDomainConfiguration config = getDomainConfig(''' class Widget { @@ -1123,7 +1156,7 @@ class CascadeParent { } }""")) grailsDomainBinder.evaluateMapping(cascadeParent) - return (PropertyConfig)cascadeParent.persistentProperties.find { it.name == 'child' }.mapping.mappedForm + return (PropertyConfig) cascadeParent.persistentProperties.find { it.name == 'child' }.mapping.mappedForm } private org.hibernate.mapping.Collection findCollection(DefaultGrailsDomainConfiguration config, String role) { @@ -1178,13 +1211,13 @@ class CascadeParent { private void assertColumnNotNullable(String tablename, String columnName, DefaultGrailsDomainConfiguration config) { Table table = getTableMapping(tablename, config) - assertFalse(table.name + "." + columnName + " is nullable", + assertFalse(table.name + "." + columnName + " is nullable", table.getColumn(new Column(columnName)).isNullable()) } private void assertColumnNullable(String tablename, String columnName, DefaultGrailsDomainConfiguration config) { Table table = getTableMapping(tablename, config) - assertTrue(table.name + "." + columnName + " is not nullable", + assertTrue(table.name + "." + columnName + " is not nullable", table.getColumn(new Column(columnName)).isNullable()) } diff --git a/grails-datastore-gorm-hibernate4/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderTests.groovy b/grails-datastore-gorm-hibernate4/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderTests.groovy index c1b6114e745..4f6336abc70 100644 --- a/grails-datastore-gorm-hibernate4/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderTests.groovy +++ b/grails-datastore-gorm-hibernate4/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderTests.groovy @@ -31,6 +31,7 @@ import org.hibernate.mapping.PersistentClass import org.hibernate.mapping.Property import org.hibernate.mapping.SimpleValue import org.hibernate.mapping.Table +import org.hibernate.mapping.UniqueKey import org.springframework.context.support.GenericApplicationContext /** @@ -313,6 +314,39 @@ class Widget { assertFalse descriptionColumn.isUnique() } + void testGroupUniqueProperty() { + DefaultGrailsDomainConfiguration config = getDomainConfig(''' +class CompositeUnique1 { + Long id + Long version + String name + String surname + static constraints = { + name unique:'surname' + } +} +class CompositeUnique2 { + Long id + Long version + String name + String surname + static constraints = { + name unique:'surname' + } +} +''') + Table tableMapping = getTableMapping("composite_unique1", config) + UniqueKey key = tableMapping.getUniqueKey('unique_composite_unique1_name') + assertNotNull(key) + + Table tableMapping2 = getTableMapping("composite_unique2", config) + UniqueKey key2 = tableMapping2.getUniqueKey('unique_composite_unique2_name') + assertNotNull(key2) + + assertTrue(key.name != key2.name) + } + + void testPrecisionProperty() { DefaultGrailsDomainConfiguration config = getDomainConfig(''' class Widget {