/* * Copyright 2004-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.compass.core.test.managedid; import org.compass.core.CompassSession; import org.compass.core.CompassTransaction; import org.compass.core.Resource; import org.compass.core.test.AbstractTestCase; /** * @author kimchy */ public class ManagedIdTests extends AbstractTestCase { protected String[] getMappings() { return new String[] { "managedid/ManagedId.cpm.xml" }; } public void testAutoDifferentMetaData() { CompassSession session = openSession(); CompassTransaction tr = session.beginTransaction(); Long id = new Long(1); A a = new A(); a.setId(id); a.setValue1("value1"); a.setValue2("value2"); session.save(a); Resource r = session.getResource(A.class, id); String val = r.getValue("$/a/id"); assertNotNull(val); assertEquals("1", val); val = r.getValue("$/a/value1"); assertNull(val); val = r.getValue("$/a/value2"); assertNull(val); tr.commit(); } public void testAutoSameMetaData() { CompassSession session = openSession(); CompassTransaction tr = session.beginTransaction(); Long id = new Long(1); B b = new B(); b.setId(id); b.setValue1("value1"); b.setValue2("value2"); session.save(b); Resource r = session.getResource(B.class, id); String val = r.getValue("$/b/id"); assertNotNull(val); assertEquals("1", val); val = r.getValue("$/b/value1"); assertNotNull(val); assertEquals("value1", val); val = r.getValue("$/b/value2"); assertNotNull(val); assertEquals("value2", val); tr.commit(); } public void testAutoMultipleMetaDataWithDifferent() { CompassSession session = openSession(); CompassTransaction tr = session.beginTransaction(); Long id = new Long(1); C c = new C(); c.setId(id); c.setValue1("value1"); c.setValue2("value2"); session.save(c); Resource r = session.getResource(C.class, id); String val = r.getValue("$/c/id"); assertNotNull(val); assertEquals("1", val); val = r.getValue("$/c/value1"); assertNull(val); val = r.getValue("$/c/value2"); assertNull(val); tr.commit(); } public void testAutoConstnat() { CompassSession session = openSession(); CompassTransaction tr = session.beginTransaction(); Long id = new Long(1); Constant c = new Constant(); c.setId(id); c.setValue1("value1"); c.setValue2("value2"); session.save(c); Resource r = session.getResource(Constant.class, id); String val = r.getValue("$/constant/id"); assertNotNull(val); assertEquals("1", val); val = r.getValue("$/constant/value1"); assertNotNull(val); val = r.getValue("$/constant/value2"); assertNull(val); tr.commit(); } public void testAutoWithComponents() { CompassSession session = openSession(); CompassTransaction tr = session.beginTransaction(); ChildComponent c = new ChildComponent(); c.setValue1("value1"); c.setValue2("value2"); Long id = new Long(1); ParentComponent parentComponent = new ParentComponent(); parentComponent.setId(id); parentComponent.setValue1("value1"); parentComponent.setValue2("value2"); parentComponent.setChildComponent(c); session.save(parentComponent); Resource r = session.getResource(ParentComponent.class, id); String val = r.getValue("$/parentComp/id"); assertNotNull(val); assertEquals("1", val); val = r.getValue("$/parentComp/value1"); assertNotNull(val); val = r.getValue("$/parentComp/value2"); assertNotNull(val); val = r.getValue("$/parentComp/childComponent/value1"); assertNotNull(val); val = r.getValue("$/parentComp/childComponent/value2"); assertNotNull(val); tr.commit(); } public void testAutoWitRreferences() { CompassSession session = openSession(); CompassTransaction tr = session.beginTransaction(); Long id = new Long(1); ChildReference cr = new ChildReference(); cr.setId(id); cr.setValue1("value1"); cr.setValue2("value2"); session.save(cr); ParentReference pr = new ParentReference(); pr.setId(id); pr.setValue1("value1"); pr.setValue2("value2"); pr.setChildReference(cr); session.save(pr); Resource r = session.getResource(ParentReference.class, id); String val = r.getValue("$/parentRef/id"); assertNotNull(val); assertEquals("1", val); val = r.getValue("$/parentRef/value1"); assertNull(val); val = r.getValue("$/parentRef/value2"); assertNull(val); val = r.getValue("$/parentRef/childReference/id"); assertNotNull(val); assertEquals("1", val); tr.commit(); } public void testNoManagedId() { CompassSession session = openSession(); CompassTransaction tr = session.beginTransaction(); Long id = new Long(1); D d = new D(); d.setId(id); d.setValue("value1"); session.save(d); d = (D) session.load(D.class, new Long(1)); assertNotNull(d); assertEquals(new Long(1), d.getId()); assertNull(d.getValue()); tr.commit(); } }