1 /* 2 * Copyright (C) The JContainer Group. All rights reserved. 3 * 4 * This software is published under the terms of the JContainer 5 * Software License version 1.1, a copy of which has been included 6 * with this distribution in the LICENSE.txt file. 7 */ 8 package org.jcontainer.dna.impl; 9 10 import java.lang.reflect.Proxy; 11 import junit.framework.TestCase; 12 import org.xml.sax.ContentHandler; 13 import org.xml.sax.helpers.AttributesImpl; 14 15 public class SAXConfigurationSerializerTestCase 16 extends TestCase 17 { 18 public void testSerializeZeroLengthAttributes() 19 throws Exception 20 { 21 final DefaultConfiguration configuration = new DefaultConfiguration( "element", "", "" ); 22 final SAXConfigurationSerializer serializer = new SAXConfigurationSerializer(); 23 final AttributesImpl attributes = serializer.serializeAttributes( configuration ); 24 assertEquals( "attributes.getLength()", 0, attributes.getLength() ); 25 } 26 27 public void testSerializeAttributes() 28 throws Exception 29 { 30 final DefaultConfiguration configuration = new DefaultConfiguration( "element", "", "" ); 31 final String name = "key"; 32 final String value = "value"; 33 configuration.setAttribute( name, value ); 34 final SAXConfigurationSerializer serializer = new SAXConfigurationSerializer(); 35 final AttributesImpl attributes = serializer.serializeAttributes( configuration ); 36 assertEquals( "attributes.getLength()", 1, attributes.getLength() ); 37 assertEquals( "attributes.getLocalName(0)", name, attributes.getLocalName( 0 ) ); 38 assertEquals( "attributes.getQName(0)", name, attributes.getQName( 0 ) ); 39 assertEquals( "attributes.getURI(0)", "", attributes.getURI( 0 ) ); 40 assertEquals( "attributes.getType(0)", "CDATA", attributes.getType( 0 ) ); 41 assertEquals( "attributes.getType(0)", value, attributes.getValue( 0 ) ); 42 } 43 44 public void testSerializeElementWithNoContentOrChildren() 45 throws Exception 46 { 47 final String name = "element"; 48 final DefaultConfiguration configuration = new DefaultConfiguration( name, "", "" ); 49 final SAXConfigurationSerializer serializer = new MockSAXConfigurationSerializer(); 50 51 final MockInvocationRecorder recorder = new MockInvocationRecorder(); 52 recorder.addInvocation( SAXMethods.START_ELEMENT, 53 new Object[]{"", name, name, 54 MockSAXConfigurationSerializer.ATTRIBUTES}, 55 null ); 56 recorder.addInvocation( SAXMethods.END_ELEMENT, 57 new Object[]{"", name, name}, 58 null ); 59 60 final ContentHandler handler = (ContentHandler) 61 Proxy.newProxyInstance( getClass().getClassLoader(), 62 new Class[]{ContentHandler.class}, 63 recorder ); 64 65 serializer.serializeElement( configuration, handler ); 66 } 67 68 public void testSerializeElementWithValue() 69 throws Exception 70 { 71 final String name = "element"; 72 final String value = "value"; 73 final DefaultConfiguration configuration = new DefaultConfiguration( name, "", "" ); 74 configuration.setValue( value ); 75 final SAXConfigurationSerializer serializer = new MockSAXConfigurationSerializer(); 76 77 final MockInvocationRecorder recorder = new MockInvocationRecorder(); 78 recorder.addInvocation( SAXMethods.START_ELEMENT, 79 new Object[]{"", name, name, 80 MockSAXConfigurationSerializer.ATTRIBUTES}, 81 null ); 82 recorder.addInvocation( SAXMethods.CHARACTERS, 83 new Object[]{value.toCharArray(), new Integer( 0 ), new Integer( 0 )}, 84 null ); 85 recorder.addInvocation( SAXMethods.END_ELEMENT, 86 new Object[]{"", name, name}, 87 null ); 88 89 final ContentHandler handler = (ContentHandler) 90 Proxy.newProxyInstance( getClass().getClassLoader(), 91 new Class[]{ContentHandler.class}, 92 recorder ); 93 94 serializer.serializeElement( configuration, handler ); 95 } 96 97 public void testSerializeElementWithChild() 98 throws Exception 99 { 100 final String name = "element"; 101 final String childName = "child"; 102 final DefaultConfiguration configuration = new DefaultConfiguration( name, "", "" ); 103 final DefaultConfiguration child = new DefaultConfiguration( childName, "", "" ); 104 configuration.addChild( child ); 105 final SAXConfigurationSerializer serializer = new MockSAXConfigurationSerializer(); 106 107 final MockInvocationRecorder recorder = new MockInvocationRecorder(); 108 recorder.addInvocation( SAXMethods.START_ELEMENT, 109 new Object[]{"", name, name, 110 MockSAXConfigurationSerializer.ATTRIBUTES}, 111 null ); 112 recorder.addInvocation( SAXMethods.START_ELEMENT, 113 new Object[]{"", childName, childName, 114 MockSAXConfigurationSerializer.ATTRIBUTES}, 115 null ); 116 recorder.addInvocation( SAXMethods.END_ELEMENT, 117 new Object[]{"", childName, childName}, 118 null ); 119 recorder.addInvocation( SAXMethods.END_ELEMENT, 120 new Object[]{"", name, name}, 121 null ); 122 123 final ContentHandler handler = (ContentHandler) 124 Proxy.newProxyInstance( getClass().getClassLoader(), 125 new Class[]{ContentHandler.class}, 126 recorder ); 127 128 serializer.serializeElement( configuration, handler ); 129 } 130 131 public void testSerializeElementWithChildAndContent() 132 throws Exception 133 { 134 final String name = "element"; 135 final String childName = "child"; 136 final String value = "text"; 137 final DefaultConfiguration configuration = new DefaultConfiguration( name, "", "" ); 138 final DefaultConfiguration child = new DefaultConfiguration( childName, "", "" ); 139 configuration.addChild( child ); 140 child.setValue( value ); 141 final SAXConfigurationSerializer serializer = new MockSAXConfigurationSerializer(); 142 143 final MockInvocationRecorder recorder = new MockInvocationRecorder(); 144 recorder.addInvocation( SAXMethods.START_ELEMENT, 145 new Object[]{"", name, name, 146 MockSAXConfigurationSerializer.ATTRIBUTES}, 147 null ); 148 recorder.addInvocation( SAXMethods.START_ELEMENT, 149 new Object[]{"", childName, childName, 150 MockSAXConfigurationSerializer.ATTRIBUTES}, 151 null ); 152 recorder.addInvocation( SAXMethods.CHARACTERS, 153 new Object[]{value.toCharArray(), new Integer( 0 ), new Integer( 0 )}, 154 null ); 155 recorder.addInvocation( SAXMethods.END_ELEMENT, 156 new Object[]{"", childName, childName}, 157 null ); 158 recorder.addInvocation( SAXMethods.END_ELEMENT, 159 new Object[]{"", name, name}, 160 null ); 161 162 final ContentHandler handler = (ContentHandler) 163 Proxy.newProxyInstance( getClass().getClassLoader(), 164 new Class[]{ContentHandler.class}, 165 recorder ); 166 167 serializer.serializeElement( configuration, handler ); 168 } 169 170 public void testSerializeElementAsPartOfDocument() 171 throws Exception 172 { 173 final String name = "element"; 174 final DefaultConfiguration configuration = new DefaultConfiguration( name, "", "" ); 175 final SAXConfigurationSerializer serializer = new MockSAXConfigurationSerializer(); 176 177 final MockInvocationRecorder recorder = new MockInvocationRecorder(); 178 recorder.addInvocation( SAXMethods.START_DOCUMENT, 179 new Object[ 0 ], 180 null ); 181 recorder.addInvocation( SAXMethods.START_ELEMENT, 182 new Object[]{"", name, name, 183 MockSAXConfigurationSerializer.ATTRIBUTES}, 184 null ); 185 recorder.addInvocation( SAXMethods.END_ELEMENT, 186 new Object[]{"", name, name}, 187 null ); 188 recorder.addInvocation( SAXMethods.END_DOCUMENT, 189 new Object[ 0 ], 190 null ); 191 192 final ContentHandler handler = (ContentHandler) 193 Proxy.newProxyInstance( getClass().getClassLoader(), 194 new Class[]{ContentHandler.class}, 195 recorder ); 196 197 serializer.serialize( configuration, handler ); 198 } 199 }

This page was automatically generated by Maven