1 package org.codehaus.xfire.java.types;
2
3 import org.codehaus.xfire.java.mapping.TypeMappingRegistry;
4 import org.codehaus.xfire.java.message.LiteralReader;
5 import org.codehaus.xfire.java.message.LiteralWriter;
6 import org.codehaus.xfire.java.test.SimpleBean;
7 import org.codehaus.xfire.java.type.ArrayType;
8 import org.codehaus.xfire.java.type.BeanType;
9 import org.codehaus.xfire.plexus.PlexusXFireTest;
10 import org.dom4j.Document;
11 import org.dom4j.DocumentHelper;
12 import org.dom4j.Element;
13 import org.dom4j.QName;
14
15 /***
16 * TypeTest
17 *
18 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
19 */
20 public class TypeTest
21 extends PlexusXFireTest
22 {
23 public void testBeanType() throws Exception
24 {
25 TypeMappingRegistry tmr = (TypeMappingRegistry) lookup( TypeMappingRegistry.ROLE );
26
27 SimpleBean bean = new SimpleBean();
28 bean.setBleh("bleh");
29 bean.setHowdy("howdy");
30
31 registerSimpleBeanType(tmr);
32
33 BeanType bt = (BeanType) tmr.getDefaultTypeMapping().getType( SimpleBean.class );
34
35 Document doc = DocumentHelper.createDocument();
36 Element root = doc.addElement("root");
37
38 bt.writeObject( bean, new LiteralWriter(root) );
39
40 SimpleBean readBean = (SimpleBean) bt.readObject( new LiteralReader(root) );
41 assertNotNull( readBean );
42 assertEquals( "bleh", readBean.getBleh() );
43 assertEquals( "howdy", readBean.getHowdy() );
44
45 System.out.println( doc.asXML() );
46
47 doc = DocumentHelper.createDocument();
48
49 root = doc.addElement("root");
50
51 bt.writeSchema( root );
52
53
54 }
55
56 /***
57 * @param tmr
58 * @return
59 */
60 private void registerSimpleBeanType(TypeMappingRegistry tmr)
61 {
62 tmr.getDefaultTypeMapping().register( SimpleBean.class,
63 QName.get( "SimpleBean", "urn:SimpleBean" ),
64 BeanType.class );
65 }
66
67 private void registerArrayType(TypeMappingRegistry tmr)
68 {
69 tmr.getDefaultTypeMapping().register( SimpleBean[].class,
70 QName.get( "ArrayOfSimpleBean", "urn:SomeBean" ),
71 ArrayType.class );
72 }
73
74 public void testArrayType() throws Exception
75 {
76 TypeMappingRegistry tmr = (TypeMappingRegistry) lookup( TypeMappingRegistry.ROLE );
77
78 registerSimpleBeanType(tmr);
79 registerArrayType( tmr );
80
81 SimpleBean bean = new SimpleBean();
82 bean.setBleh("bleh");
83 bean.setHowdy("howdy");
84
85 SimpleBean[] beanArray = new SimpleBean[] { bean, bean };
86
87 ArrayType at = (ArrayType) tmr.getDefaultTypeMapping().getType( SimpleBean[].class );
88
89
90 Document doc = DocumentHelper.createDocument();
91 Element root = doc.addElement("root");
92
93 at.writeObject( beanArray, new LiteralWriter( root ) );
94
95 Object out1 = at.readObject( new LiteralReader( root ) );
96
97 SimpleBean[] beans = (SimpleBean[]) out1;
98 assertNotNull( beans );
99 assertEquals( "bleh", beans[0].getBleh() );
100 assertEquals( "howdy", beans[0].getHowdy() );
101
102 System.out.println( doc.asXML() );
103
104 doc = DocumentHelper.createDocument();
105
106 root = doc.addElement("root");
107
108 at.writeSchema( root );
109
110
111 }
112 }