use of org.apache.cxf.aegis.services.SimpleBean 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.services.SimpleBean in project cxf by apache.
the class BeanTest method testNullProperties.
@Test
public void testNullProperties() throws Exception {
defaultContext();
BeanTypeInfo info = new BeanTypeInfo(SimpleBean.class, "urn:Bean");
info.setTypeMapping(mapping);
info.mapAttribute("howdy", new QName("urn:Bean", "howdy"));
info.mapElement("bleh", new QName("urn:Bean", "bleh"));
BeanType type = new BeanType(info);
type.setTypeClass(SimpleBean.class);
type.setTypeMapping(mapping);
type.setSchemaType(new QName("urn:Bean", "bean"));
SimpleBean bean = new SimpleBean();
// Test writing
Element element = writeObjectToElement(type, bean, getContext());
assertInvalid("/b:root[@b:howdy]", element);
assertValid("/b:root/b:bleh[@xsi:nil='true']", element);
XmlSchema schema = newXmlSchema("urn:Bean");
type.writeSchema(schema);
XmlSchemaComplexType stype = (XmlSchemaComplexType) schema.getTypeByName("bean");
XmlSchemaSequence seq = (XmlSchemaSequence) stype.getParticle();
boolean howdy = false;
boolean bleh = false;
for (int x = 0; x < seq.getItems().size(); x++) {
XmlSchemaSequenceMember o = seq.getItems().get(x);
if (o instanceof XmlSchemaElement) {
XmlSchemaElement a = (XmlSchemaElement) o;
if ("bleh".equals(a.getName())) {
bleh = true;
}
}
}
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;
}
}
}
assertTrue(howdy);
assertTrue(bleh);
}
use of org.apache.cxf.aegis.services.SimpleBean in project cxf by apache.
the class StandaloneWriteTest method testBean.
@Test
public void testBean() throws Exception {
context = new AegisContext();
Set<java.lang.reflect.Type> rootClasses = new HashSet<java.lang.reflect.Type>();
rootClasses.add(SimpleBean.class);
context.setRootClasses(rootClasses);
context.initialize();
SimpleBean sb = new SimpleBean();
sb.setCharacter('\u4000');
sb.setHowdy("doody");
AegisType sbType = context.getTypeMapping().getType(sb.getClass());
AegisWriter<XMLStreamWriter> writer = context.createXMLStreamWriter();
StringWriter stringWriter = new StringWriter();
XMLStreamWriter xmlWriter = xmlOutputFactory.createXMLStreamWriter(stringWriter);
writer.write(sb, new QName("urn:meow", "catnip"), false, xmlWriter, sbType);
xmlWriter.close();
String xml = stringWriter.toString();
assertTrue(xml.contains("doody"));
}
use of org.apache.cxf.aegis.services.SimpleBean in project cxf by apache.
the class BeanTest method testBean.
@Test
public void testBean() throws Exception {
defaultContext();
BeanType type = new BeanType();
type.setTypeClass(SimpleBean.class);
type.setTypeMapping(mapping);
type.setSchemaType(new QName("urn:Bean", "bean"));
// Test reading
ElementReader reader = new ElementReader(getResourceAsStream("bean1.xml"));
SimpleBean bean = (SimpleBean) type.readObject(reader, getContext());
assertEquals("bleh", bean.getBleh());
assertEquals("howdy", bean.getHowdy());
reader.getXMLStreamReader().close();
// Test reading with extra elements
reader = new ElementReader(getResourceAsStream("bean2.xml"));
bean = (SimpleBean) type.readObject(reader, getContext());
assertEquals("bleh", bean.getBleh());
assertEquals("howdy", bean.getHowdy());
reader.getXMLStreamReader().close();
// test <bleh/> element
reader = new ElementReader(getResourceAsStream("bean7.xml"));
bean = (SimpleBean) type.readObject(reader, getContext());
assertEquals("", bean.getBleh());
assertEquals("howdy", bean.getHowdy());
reader.getXMLStreamReader().close();
bean.setBleh("bleh");
// Test writing
Element element = writeObjectToElement(type, bean, getContext());
assertValid("/b:root/b:bleh[text()='bleh']", element);
assertValid("/b:root/b:howdy[text()='howdy']", element);
}
use of org.apache.cxf.aegis.services.SimpleBean in project cxf by apache.
the class BeanTest method testCharMappings.
@Test
public void testCharMappings() throws Exception {
defaultContext();
BeanType type = (BeanType) mapping.getTypeCreator().createType(SimpleBean.class);
type.setTypeClass(SimpleBean.class);
type.setTypeMapping(mapping);
XmlSchema schema = newXmlSchema("urn:Bean");
type.writeSchema(schema);
XmlSchemaComplexType btype = (XmlSchemaComplexType) schema.getTypeByName("SimpleBean");
XmlSchemaSequence seq = (XmlSchemaSequence) btype.getParticle();
boolean charok = false;
for (int x = 0; x < seq.getItems().size(); x++) {
XmlSchemaSequenceMember o = seq.getItems().get(x);
if (o instanceof XmlSchemaElement) {
XmlSchemaElement oe = (XmlSchemaElement) o;
if ("character".equals(oe.getName())) {
charok = true;
assertNotNull(oe.getSchemaTypeName());
assertTrue(oe.isNillable());
assertEquals(CharacterAsStringType.CHARACTER_AS_STRING_TYPE_QNAME, oe.getSchemaTypeName());
}
}
}
assertTrue(charok);
}
Aggregations