import java.io.StringWriter; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.exolab.castor.xml.MarshalException; import org.exolab.castor.xml.Marshaller; import org.exolab.castor.xml.Unmarshaller; import org.exolab.castor.xml.ValidationException; import org.xml.sax.InputSource; public class TestMarshalIDREFS { private static final Log LOG = LogFactory.getLog(TestMarshalIDREFS.class); /** * test marshall idfrefs * * @throws Exception */ public void testMarshallIdrefs() throws Exception { Root test = new Root(); Element1 el1 = new Element1(); el1.setId1("CASTOR"); Element2 el2 = new Element2(); el2.setId2("POLLUX"); Element3 el3 = new Element3(); el3.setId3("PROMETHEE"); ElementRef elRef = new ElementRef(); elRef.addIdref(el1); elRef.addIdref(el2); test.setElement1(el1); test.setElement2(el2); test.setElement3(el3); test.setElementRef(elRef); StringWriter out = new StringWriter(); Marshaller marshaller = new Marshaller(out); marshaller.setValidation(true); marshaller.marshal(test); } /** * test validate a null idref in an idrefs * * @throws Exception */ public void testMarshallIdrefsNullId() throws Exception { Root test = new Root(); Element1 el1 = new Element1(); el1.setId1("CASTOR"); Element2 el2 = new Element2(); el2.setId2("POLLUX"); Element3 el3 = new Element3(); el3.setId3("PROMETHEE"); Element3 el4 = new Element3(); el4.setId3(null); ElementRef elRef = new ElementRef(); elRef.addIdref(el1); elRef.addIdref(el4); test.setElement1(el1); test.setElement2(el2); test.setElement3(el3); test.setElementRef(elRef); try { StringWriter out = new StringWriter(); Marshaller marshaller = new Marshaller(out); marshaller.setValidation(true); marshaller.marshal(test); } catch (Exception e) { // assertTrue(e.getCause() instanceof ValidationException); } } /** * test validate a non existing idref in an idrefs * * @throws Exception */ public void testMarshallIdrefsWrongId() throws Exception { Root test = new Root(); Element1 el1 = new Element1(); el1.setId1("CASTOR"); Element2 el2 = new Element2(); el2.setId2("POLLUX"); Element3 el3 = new Element3(); el3.setId3("PROMETHEE"); Element3 el4 = new Element3(); el4.setId3("WRONG"); ElementRef elRef = new ElementRef(); elRef.addIdref(el1); elRef.addIdref(el4); test.setElement1(el1); test.setElement2(el2); test.setElement3(el3); test.setElementRef(elRef); try { StringWriter out = new StringWriter(); Marshaller marshaller = new Marshaller(out); marshaller.setValidation(true); marshaller.marshal(test); } catch (Exception e) { // assertTrue(e.getCause() instanceof ValidationException); } } }