/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* bdoughan - Jan 27/2009 - 1.1 - Initial implementation | |
******************************************************************************/ | |
package org.eclipse.persistence.testing.sdo.helper.jaxbhelper.oppositeproperty; | |
import java.io.InputStream; | |
import java.util.ArrayList; | |
import java.util.List; | |
import org.eclipse.persistence.testing.sdo.SDOTestCase; | |
import commonj.sdo.DataObject; | |
import commonj.sdo.Property; | |
import commonj.sdo.Type; | |
import commonj.sdo.helper.DataFactory; | |
import org.eclipse.persistence.jaxb.JAXBContext; | |
import org.eclipse.persistence.oxm.XMLContext; | |
import org.eclipse.persistence.sdo.helper.SDOHelperContext; | |
import org.eclipse.persistence.sdo.helper.jaxb.JAXBHelperContext; | |
public class OppositePropertyTestCases extends SDOTestCase { | |
private static final String XML_SCHEMA = "org/eclipse/persistence/testing/sdo/helper/jaxbhelper/oppositeproperty/OppositeProperty.xsd"; | |
private JAXBHelperContext jaxbHelperContext; | |
public OppositePropertyTestCases(String name) { | |
super(name); | |
} | |
public void setUp() { | |
OppositeProject project = new OppositeProject(); | |
XMLContext xmlContext = new XMLContext(project); | |
JAXBContext jaxbContext = new JAXBContext(xmlContext); | |
jaxbHelperContext = new JAXBHelperContext(jaxbContext); | |
InputStream xsd = Thread.currentThread().getContextClassLoader().getResourceAsStream(XML_SCHEMA); | |
jaxbHelperContext.getXSDHelper().define(xsd, null); | |
} | |
public void testOppositePropertySet() { | |
DataObject rootDO = jaxbHelperContext.getDataFactory().create("urn:opposite", "root"); | |
DataObject child1DO = rootDO.createDataObject("child1"); | |
DataObject child2DO = rootDO.createDataObject("child2"); | |
Property child2Property = child1DO.getType().getProperty("child2"); | |
child1DO.set(child2Property, child2DO); | |
this.assertEquals(child1DO, child2DO.get("child1")); | |
Child2 child2 = (Child2) jaxbHelperContext.unwrap(child2DO); | |
this.assertNotNull(child2.getChild1()); | |
} | |
public void testOppositePropertyCleared1() { | |
DataObject rootDO = jaxbHelperContext.getDataFactory().create("urn:opposite", "root"); | |
DataObject child1DO = rootDO.createDataObject("child1"); | |
DataObject child2DO = rootDO.createDataObject("child2"); | |
DataObject newChild2DO = rootDO.createDataObject("child2"); | |
Property child2Property = child1DO.getType().getProperty("child2"); | |
child1DO.set(child2Property, child2DO); | |
child1DO.set(child2Property, newChild2DO); | |
this.assertNull(child2DO.get("child1")); | |
this.assertEquals(child1DO, newChild2DO.get("child1")); | |
Child2 child2 = (Child2) jaxbHelperContext.unwrap(child2DO); | |
this.assertNull(child2.getChild1()); | |
Child2 newChild2 = (Child2) jaxbHelperContext.unwrap(newChild2DO); | |
this.assertNotNull(newChild2.getChild1()); | |
} | |
public void testOppositePropertyCleared2() { | |
DataObject rootDO = jaxbHelperContext.getDataFactory().create("urn:opposite", "root"); | |
DataObject child1DO = jaxbHelperContext.getDataFactory().create("urn:opposite", "child1"); | |
DataObject child2DO = jaxbHelperContext.getDataFactory().create("urn:opposite", "child2"); | |
DataObject newChild2DO = jaxbHelperContext.getDataFactory().create("urn:opposite", "child2"); | |
Property child2Property = child1DO.getType().getProperty("child2"); | |
child1DO.set(child2Property, child2DO); | |
child1DO.set(child2Property, newChild2DO); | |
this.assertNull(child2DO.get("child1")); | |
this.assertEquals(child1DO, newChild2DO.get("child1")); | |
Child2 child2 = (Child2) jaxbHelperContext.unwrap(child2DO); | |
this.assertNull(child2.getChild1()); | |
Child2 newChild2 = (Child2) jaxbHelperContext.unwrap(newChild2DO); | |
this.assertNotNull(newChild2.getChild1()); | |
} | |
public void testOppositePropertySetCollectionCaseAdd() { | |
DataObject rootDO = jaxbHelperContext.getDataFactory().create("urn:opposite", "root"); | |
DataObject child1DO = rootDO.createDataObject("child1"); | |
DataObject child2DO = rootDO.createDataObject("child2"); | |
Property child2CollectionProperty = child1DO.getType().getProperty("child2collection"); | |
List list = child1DO.getList(child2CollectionProperty); | |
list.add(child2DO); | |
this.assertEquals(child1DO, child2DO.get("child1")); | |
Child2 child2 = (Child2) jaxbHelperContext.unwrap(child2DO); | |
this.assertNotNull(child2.getChild1()); | |
} | |
public void testOppositePropertySetCollectionCaseSet() { | |
DataObject rootDO = jaxbHelperContext.getDataFactory().create("urn:opposite", "root"); | |
DataObject child1DO = rootDO.createDataObject("child1"); | |
DataObject child2DO = rootDO.createDataObject("child2"); | |
Property child2CollectionProperty = child1DO.getType().getProperty("child2collection"); | |
List child2Collection = new ArrayList(); | |
child2Collection.add(child2DO); | |
child1DO.setList(child2CollectionProperty, child2Collection); | |
this.assertEquals(child1DO, child2DO.get("child1")); | |
Child2 child2 = (Child2) jaxbHelperContext.unwrap(child2DO); | |
this.assertNotNull(child2.getChild1()); | |
} | |
public void tearDown() { | |
} | |
} |