KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > dna > impl > SAXConfigurationSerializerTestCase


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