001: /*
002: * Copyright 2004-2006 the original author or authors.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.compass.core.test.component.comp1;
018:
019: import java.util.ArrayList;
020:
021: import org.compass.core.CompassSession;
022: import org.compass.core.CompassTransaction;
023: import org.compass.core.test.AbstractTestCase;
024:
025: /**
026: * @author kimchy
027: */
028: public class Comp1Tests extends AbstractTestCase {
029:
030: protected String[] getMappings() {
031: return new String[] { "component/comp1/mapping.cpm.xml" };
032: }
033:
034: public void testWithSpecialPerson() throws Exception {
035: CompassSession session = openSession();
036: CompassTransaction tr = session.beginTransaction();
037:
038: Person person = new SpecialPerson();
039: person.id = 1;
040: person.description = "test person";
041: person.names = new ArrayList();
042: PersonName personName = new PersonName();
043: personName.names = new ArrayList();
044: personName.names.add("name1");
045: personName.names.add("name2");
046: person.names.add(personName);
047: session.save(person);
048:
049: User user = new User();
050: user.id = 1;
051: user.description = "test user";
052: user.identity = person;
053: session.save(user);
054:
055: person = (Person) session.load(SpecialPerson.class,
056: new Integer(1));
057: assertEquals("test person", person.description);
058: assertEquals(1, person.names.size());
059: personName = (PersonName) person.names.get(0);
060: assertEquals(2, personName.names.size());
061:
062: user = (User) session.load(User.class, "1");
063: assertEquals("test user", user.description);
064: person = user.identity;
065: assertEquals("test person", person.description);
066: assertEquals(1, person.names.size());
067: personName = (PersonName) person.names.get(0);
068: assertEquals(2, personName.names.size());
069:
070: tr.commit();
071: session.close();
072: }
073:
074: public void testWithPerson() throws Exception {
075: CompassSession session = openSession();
076: CompassTransaction tr = session.beginTransaction();
077:
078: Person person = new Person();
079: person.id = 1;
080: person.description = "test person";
081: person.names = new ArrayList();
082: PersonName personName = new PersonName();
083: personName.names = new ArrayList();
084: personName.names.add("name1");
085: personName.names.add("name2");
086: person.names.add(personName);
087: session.save(person);
088:
089: User user = new User();
090: user.id = 1;
091: user.description = "test user";
092: user.identity = person;
093: session.save(user);
094:
095: person = (Person) session.load(Person.class, new Integer(1));
096: assertEquals("test person", person.description);
097: assertEquals(1, person.names.size());
098: personName = (PersonName) person.names.get(0);
099: assertEquals(2, personName.names.size());
100:
101: user = (User) session.load(User.class, "1");
102: assertEquals("test user", user.description);
103: person = user.identity;
104: assertEquals("test person", person.description);
105: assertEquals(1, person.names.size());
106: personName = (PersonName) person.names.get(0);
107: assertEquals(2, personName.names.size());
108:
109: tr.commit();
110: session.close();
111: }
112: }
|