1 package org.codehaus.xfire.aegis.type; 2 3 import java.util.Date; 4 import java.util.HashMap; 5 import java.util.Map; 6 7 import junit.framework.TestCase; 8 9 import org.dom4j.Document; 10 import org.dom4j.DocumentHelper; 11 import org.dom4j.Element; 12 import org.dom4j.Namespace; 13 import org.dom4j.QName; 14 import org.dom4j.io.SAXReader; 15 16 /*** 17 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a> 18 * @since Aug 19, 2004 19 */ 20 public class TypeTest 21 extends TestCase 22 { 23 public void testSimpleType() 24 throws Exception 25 { 26 SAXReader reader = new SAXReader(); 27 Document doc = DocumentHelper.createDocument(); 28 29 Namespace ns = DocumentHelper.createNamespace("test", "urn:test"); 30 QName qname = DocumentHelper.createQName("bleh", ns); 31 QName rootQname = DocumentHelper.createQName("root", ns); 32 33 Element root = doc.addElement(rootQname); 34 35 Map map = new HashMap(); 36 SimpleBean bean = new SimpleBean(); 37 map.put("bean", bean); 38 39 bean.setBleh("bleh"); 40 41 Type type = new SimpleType(); 42 type.setOgnl("#bean.bleh"); 43 type.setQName(qname); 44 45 type.write( root, map ); 46 47 Element typeEl = root.element( qname ); 48 assertNotNull(typeEl); 49 assertEquals("bleh", typeEl.getText()); 50 51 map = new HashMap(); 52 bean = new SimpleBean(); 53 map.put("bean", bean); 54 55 type.read( root, map ); 56 57 assertEquals( "bleh", bean.getBleh() ); 58 } 59 60 public void testDateType() 61 throws Exception 62 { 63 SAXReader reader = new SAXReader(); 64 Document doc = DocumentHelper.createDocument(); 65 66 Namespace ns = DocumentHelper.createNamespace("test", "urn:test"); 67 QName qname = DocumentHelper.createQName("bleh", ns); 68 QName rootQname = DocumentHelper.createQName("root", ns); 69 70 Element root = doc.addElement(rootQname); 71 72 Map map = new HashMap(); 73 SimpleBean bean = new SimpleBean(); 74 map.put("bean", bean); 75 76 bean.setDate( new Date() ); 77 78 Type type = new DateType(); 79 type.setOgnl("#bean.date"); 80 type.setQName(qname); 81 82 type.write( root, map ); 83 84 Element typeEl = root.element( qname ); 85 assertNotNull(typeEl); 86 assertNotNull(typeEl.getText()); 87 System.out.println(typeEl.getText()); 88 89 map = new HashMap(); 90 bean = new SimpleBean(); 91 map.put("bean", bean); 92 93 type.read( root, map ); 94 95 assertNotNull( bean.getDate() ); 96 } 97 98 public void testIntegerType() 99 throws Exception 100 { 101 SAXReader reader = new SAXReader(); 102 Document doc = DocumentHelper.createDocument(); 103 104 Namespace ns = DocumentHelper.createNamespace("test", "urn:test"); 105 QName qname = DocumentHelper.createQName("bleh", ns); 106 QName rootQname = DocumentHelper.createQName("root", ns); 107 108 Element root = doc.addElement(rootQname); 109 110 Map map = new HashMap(); 111 SimpleBean bean = new SimpleBean(); 112 map.put("bean", bean); 113 114 bean.setInteger(10); 115 116 Type type = new IntegerType(); 117 type.setOgnl("#bean.integer"); 118 type.setQName(qname); 119 120 type.write( root, map ); 121 122 Element typeEl = root.element( qname ); 123 assertNotNull(typeEl); 124 assertEquals("10", typeEl.getText()); 125 126 map = new HashMap(); 127 bean = new SimpleBean(); 128 map.put("bean", bean); 129 130 type.read( root, map ); 131 132 assertEquals( 10, bean.getInteger() ); 133 } 134 135 public void testBeanType() 136 throws Exception 137 { 138 SAXReader reader = new SAXReader(); 139 Document doc = DocumentHelper.createDocument(); 140 141 Namespace ns = DocumentHelper.createNamespace("test", "urn:test"); 142 QName beanQ = DocumentHelper.createQName("bean", ns); 143 QName blehQ = DocumentHelper.createQName("bleh", ns); 144 QName rootQ = DocumentHelper.createQName("root", ns); 145 146 Element root = doc.addElement(rootQ); 147 148 Map map = new HashMap(); 149 SimpleBean bean = new SimpleBean(); 150 map.put("bean", bean); 151 152 bean.setBleh("bleh"); 153 154 BeanType type = new BeanType(); 155 type.setQName(beanQ); 156 type.setOgnl("new org.codehaus.xfire.aegis.type.SimpleBean()"); 157 type.setKey("bean"); 158 159 SimpleType child = new SimpleType(); 160 child.setOgnl("#bean.bleh"); 161 child.setQName(blehQ); 162 type.addChild(child); 163 164 type.write( root, map ); 165 166 Element beanEl = root.element( beanQ ); 167 assertNotNull(beanEl); 168 assertEquals("", beanEl.getText()); 169 170 Element blehEl = beanEl.element( blehQ ); 171 assertNotNull(blehEl); 172 assertEquals("bleh", blehEl.getText()); 173 174 map = new HashMap(); 175 176 type.read( root, map ); 177 178 assertEquals( "bleh", bean.getBleh() ); 179 } 180 }