okay, here is the tests that work with that formatting unset....(thanks
by the way). I assume you still have the patch I sent you, or have you
committed that already?
/** <p>Tests marshalling of non-registered element and then
* registers package and test that it can be marshalled now</p>
*/
public void testDynamicMarshal() throws Exception {
JAXBContext ctx = getFactory();
Marshaller marshaller = ctx.createMarshaller();
org.apache.ws.jaxme.test.misc.address.ObjectFactory factory =
new org.apache.ws.jaxme.test.misc.address.ObjectFactory();
Address addr = factory.createAddress();
NameType name = factory.createAddressTypeNameType();
PostalType postal = factory.createAddressTypePostalType();
postal.setStreet("56 East Ave");
postal.setZIP("50344");
postal.setCity("thornton");
postal.setCountry("US");
postal.setState("CO");
name.setFirst("dean");
name.setLast("hiller");
addr.setId("someID");
addr.setName(name);
addr.setPostal(postal);
StringWriter writer = new StringWriter();
try {
marshaller.marshal(addr, writer);
fail("Should have thrown an exception since address is not
registered yet");
} catch(JAXBException e) {}
//now register(this is not JAXB compliant as of yet)
JAXBContextImpl ctxImpl = (JAXBContextImpl)ctx;
ctxImpl.registerPackages("org.apache.ws.jaxme.test.misc.address",
addr.getClass().getClassLoader());
writer = new StringWriter();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
Boolean.FALSE);
marshaller.marshal(addr, writer);
assertEquals(getXml(), writer.toString());
}
public String getXml() {
return "<?xml version='1.0' encoding='UTF-8'?><Address
id=\"someID\"
xmlns=\"http://ws.apache.org/jaxme/test/misc/address\"><Name><First>dean</First><Last>hiller</Last></Name><Postal><Street>56
East
Ave</Street><ZIP>50344</ZIP><City>thornton</City><State>CO</State><Country>US</Country></Postal></Address>";
}
public void testDynamicUnmarshal() throws JAXBException {
JAXBContext ctx = getFactory();
Unmarshaller unmarshaller = ctx.createUnmarshaller();
StringReader reader = new StringReader(getXml());
InputSource src = new InputSource(reader);
try {
unmarshaller.unmarshal(src);
fail("Should fail since package not registered");
} catch(JAXBException e) {}
//now register(this is not JAXB compliant as of yet)
JAXBContextImpl ctxImpl = (JAXBContextImpl)ctx;
ctxImpl.registerPackages("org.apache.ws.jaxme.test.misc.address",
Address.class.getClassLoader());
reader = new StringReader(getXml());
src = new InputSource(reader);
Address addr = (Address)unmarshaller.unmarshal(src);
assertEquals("someID", addr.getId());
assertEquals("dean", addr.getName().getFirst());
assertEquals("hiller", addr.getName().getLast());
}
Jochen Wiedmann wrote:
Dean Hiller wrote:
So I found MarshallerTest and I added the following tests. (I am
having trouble with the marshaller test with whitespace
comparison...can you help me out here....how do you deal with this?).
Simple: Turn whitespace off. :-) (JAXB_FORMATTED, or whatever the
marshaller property is named.)
Jochen
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]