use of org.apache.cxf.aegis.xml.stax.ElementReader in project cxf by apache.
the class BeanTest method testAttributeMap.
@Test
public void testAttributeMap() throws Exception {
defaultContext();
BeanTypeInfo info = new BeanTypeInfo(SimpleBean.class, "urn:Bean");
info.mapAttribute("howdy", new QName("urn:Bean", "howdy"));
info.mapAttribute("bleh", new QName("urn:Bean", "bleh"));
info.setTypeMapping(mapping);
BeanType type = new BeanType(info);
type.setTypeClass(SimpleBean.class);
type.setTypeMapping(mapping);
type.setSchemaType(new QName("urn:Bean", "bean"));
ElementReader reader = new ElementReader(getResourceAsStream("bean4.xml"));
SimpleBean bean = (SimpleBean) type.readObject(reader, getContext());
assertEquals("bleh", bean.getBleh());
assertEquals("howdy", bean.getHowdy());
reader.getXMLStreamReader().close();
// Test writing
Element element = writeObjectToElement(type, bean, getContext());
assertValid("/b:root[@b:bleh='bleh']", element);
assertValid("/b:root[@b:howdy='howdy']", element);
XmlSchema schema = newXmlSchema("urn:Bean");
type.writeSchema(schema);
XmlSchemaComplexType stype = (XmlSchemaComplexType) schema.getTypeByName("bean");
boolean howdy = false;
boolean bleh = false;
for (int x = 0; x < stype.getAttributes().size(); x++) {
XmlSchemaObject o = stype.getAttributes().get(x);
if (o instanceof XmlSchemaAttribute) {
XmlSchemaAttribute a = (XmlSchemaAttribute) o;
if ("howdy".equals(a.getName())) {
howdy = true;
}
if ("bleh".equals(a.getName())) {
bleh = true;
}
}
}
assertTrue(howdy);
assertTrue(bleh);
}
use of org.apache.cxf.aegis.xml.stax.ElementReader in project cxf by apache.
the class BeanTest method testUnmappedProperty.
@Test
public void testUnmappedProperty() throws Exception {
defaultContext();
String ns = "urn:Bean";
BeanTypeInfo info = new BeanTypeInfo(SimpleBean.class, ns, false);
QName name = new QName(ns, "howdycustom");
info.mapElement("howdy", name);
info.setTypeMapping(mapping);
assertEquals("howdy", info.getPropertyDescriptorFromMappedName(name).getName());
BeanType type = new BeanType(info);
type.setTypeClass(SimpleBean.class);
type.setTypeMapping(mapping);
type.setSchemaType(new QName("urn:Bean", "bean"));
ElementReader reader = new ElementReader(getResourceAsStream("bean3.xml"));
SimpleBean bean = (SimpleBean) type.readObject(reader, getContext());
assertEquals("howdy", bean.getHowdy());
assertNull(bean.getBleh());
reader.getXMLStreamReader().close();
Element element = writeObjectToElement(type, bean, getContext());
assertInvalid("/b:root/b:bleh", element);
assertValid("/b:root/b:howdycustom[text()='howdy']", element);
}
use of org.apache.cxf.aegis.xml.stax.ElementReader in project cxf by apache.
the class BeanTest method testAttributeMapDifferentNS.
@Test
public void testAttributeMapDifferentNS() throws Exception {
defaultContext();
BeanTypeInfo info = new BeanTypeInfo(SimpleBean.class, "urn:Bean");
info.mapAttribute("howdy", new QName("urn:Bean2", "howdy"));
info.mapAttribute("bleh", new QName("urn:Bean2", "bleh"));
info.setTypeMapping(mapping);
BeanType type = new BeanType(info);
type.setTypeClass(SimpleBean.class);
type.setTypeMapping(mapping);
type.setSchemaType(new QName("urn:Bean", "bean"));
ElementReader reader = new ElementReader(getResourceAsStream("bean8.xml"));
SimpleBean bean = (SimpleBean) type.readObject(reader, getContext());
assertEquals("bleh", bean.getBleh());
assertEquals("howdy", bean.getHowdy());
reader.getXMLStreamReader().close();
// Test writing
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ElementWriter writer = new ElementWriter(bos, "root", "urn:Bean");
type.writeObject(bean, writer, getContext());
writer.close();
writer.flush();
bos.close();
Document doc = StaxUtils.read(new ByteArrayInputStream(bos.toByteArray()));
Element element = doc.getDocumentElement();
addNamespace("b2", "urn:Bean2");
assertValid("/b:root[@b2:bleh='bleh']", element);
assertValid("/b:root[@b2:howdy='howdy']", element);
}
use of org.apache.cxf.aegis.xml.stax.ElementReader in project cxf by apache.
the class DynamicProxyTest method testDynamicProxyMissingAttribute.
@Test
public void testDynamicProxyMissingAttribute() throws Exception {
BeanType type = new BeanType();
type.setTypeClass(IMyInterface.class);
type.setTypeMapping(mapping);
type.setSchemaType(new QName("urn:MyInterface", "data"));
ElementReader reader = new ElementReader(getResourceAsStream("MyInterface.xml"));
IMyInterface data = (IMyInterface) type.readObject(reader, getContext());
assertEquals("junk", data.getName());
assertNull(data.getType());
}
use of org.apache.cxf.aegis.xml.stax.ElementReader in project cxf by apache.
the class DynamicProxyTest method testDynamicProxyNonStandardGetter.
@Test
public void testDynamicProxyNonStandardGetter() throws Exception {
BeanType type = new BeanType();
type.setTypeClass(IMyInterface.class);
type.setTypeMapping(mapping);
type.setSchemaType(new QName("urn:MyInterface", "data"));
ElementReader reader = new ElementReader(getResourceAsStream("MyInterface.xml"));
IMyInterface data = (IMyInterface) type.readObject(reader, getContext());
try {
data.getNameById(0);
fail(IllegalAccessError.class + " should be thrown.");
} catch (IllegalAccessError e) {
// do nothing
}
try {
data.get();
fail(IllegalAccessError.class + " should be thrown.");
} catch (IllegalAccessError e) {
// do nothing
}
}
Aggregations