GRAILS-1019: Allowing expressions to be used with the 'disabled' attribute for g...
[grails.git] / test / groovy / org / codehaus / groovy / grails / orm / hibernate / ComponentMappingTests.groovy
blob738c20e592cccc4eafd91cb20136f44f4c032d95
1 package org.codehaus.groovy.grails.orm.hibernate;
3 import org.codehaus.groovy.grails.commons.*
4 import org.codehaus.groovy.grails.commons.test.*
6 class ComponentMappingTests extends AbstractGrailsHibernateTests {
8 void testComponentMapping() {
9 def personClass = ga.getDomainClass("ComponentMappingPerson")
10 def addressClass = ga.classLoader.loadClass("ComponentMappingAddress")
12 def p = personClass.newInstance()
14 p.name = "Homer Simpson"
15 def a1 = addressClass.newInstance()
16 a1.number = "22"; a1.postCode = "3345243" ; a1.person = p
17 def a2 = addressClass.newInstance()
18 a2.number = "454"; a2.postCode = "340854" ; a2.person = p
20 p.homeAddress = a1
21 p.workAddress = a2
23 assert p.save()
24 session.flush()
26 session.clear()
28 p = personClass.clazz.get(1)
30 assert p
31 assert p.homeAddress
32 assert p.workAddress
34 assertEquals "22", p.homeAddress.number
35 assertEquals "3345243", p.homeAddress.postCode
36 assertEquals "454", p.workAddress.number
37 assertEquals "340854", p.workAddress.postCode
39 assertEquals "Homer Simpson", p.workAddress.person.name
44 void onSetUp() {
45 this.gcl.parseClass('''
46 class ComponentMappingPerson {
47 Long id
48 Long version
49 String name
50 ComponentMappingAddress homeAddress
51 ComponentMappingAddress workAddress
53 static embedded = ['homeAddress', 'workAddress']
55 class ComponentMappingAddress {
56 ComponentMappingPerson person
57 String number
58 String postCode
60 class ComponentMappingStoreItem {
61 Long id
62 Long version
64 String name
65 String description
66 ComponentMappingPrice price
67 static embedded = ['price']
70 class ComponentMappingPrice {
71 Long id
72 Long version
74 BigDecimal amount
75 Integer quantity
77 '''
81 void onTearDown() {