~ubuntu-branches/ubuntu/saucy/commons-configuration/saucy

« back to all changes in this revision

Viewing changes to src/test/org/apache/commons/configuration/TestHierarchicalConfigurationXMLReader.java

  • Committer: Package Import Robot
  • Author(s): Emmanuel Bourg
  • Date: 2013-07-01 16:29:44 UTC
  • mfrom: (1.1.4)
  • Revision ID: package-import@ubuntu.com-20130701162944-98waq5gogha5gpn1
Tags: 1.9-1
* New upstream release
* debian/control:
  - Updated Standards-Version to 3.9.4 (no changes)
  - Use canonical URLs for the Vcs-* fields
  - Added new build dependencies (libjavacc-maven-plugin-java, junit4)
  - Upgraded the dependency on the Servlet API (2.5 -> 3.0)
  - Removed the dependency on the Activation Framework (glassfish-activation)
  - Replaced the dependency on glassfish-mail with libgnumail-java
  - Removed the unused dependencies:
    liblog4j1.2-java-doc, libmaven-assembly-plugin-java
  - Replaced the dependency on libcommons-jexl-java by libcommons-jexl2-java
* debian/watch: Changed to point the official Apache distribution server
* Removed the obsolete file debian/ant.properties
* Installed the upstream changelog in the binary packages
* Added the report plugins to maven.ignoreRules
* Added the classpath attribute to the jar manifest

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 
 * contributor license agreements.  See the NOTICE file distributed with
4
 
 * this work for additional information regarding copyright ownership.
5
 
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 
 * (the "License"); you may not use this file except in compliance with
7
 
 * the License.  You may obtain a copy of the License at
8
 
 *
9
 
 *     http://www.apache.org/licenses/LICENSE-2.0
10
 
 *
11
 
 * Unless required by applicable law or agreed to in writing, software
12
 
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 
 * See the License for the specific language governing permissions and
15
 
 * limitations under the License.
16
 
 */
17
 
 
18
 
package org.apache.commons.configuration;
19
 
 
20
 
import javax.xml.transform.Transformer;
21
 
import javax.xml.transform.TransformerFactory;
22
 
import javax.xml.transform.dom.DOMResult;
23
 
import javax.xml.transform.sax.SAXSource;
24
 
 
25
 
import org.apache.commons.jxpath.JXPathContext;
26
 
import org.w3c.dom.Document;
27
 
import org.w3c.dom.Node;
28
 
import org.xml.sax.InputSource;
29
 
 
30
 
import junit.framework.TestCase;
31
 
 
32
 
/**
33
 
 * Test class for HierarchicalConfigurationXMLReader.
34
 
 *
35
 
 * @version $Id: TestHierarchicalConfigurationXMLReader.java 640458 2008-03-24 16:30:44Z oheger $
36
 
 */
37
 
public class TestHierarchicalConfigurationXMLReader extends TestCase
38
 
{
39
 
    private static final String TEST_FILE = "conf/testHierarchicalXMLConfiguration.xml";
40
 
 
41
 
    private HierarchicalConfigurationXMLReader parser;
42
 
 
43
 
    protected void setUp() throws Exception
44
 
    {
45
 
        XMLConfiguration config =
46
 
        new XMLConfiguration();
47
 
        config.setFileName(TEST_FILE);
48
 
        config.load();
49
 
        parser = new HierarchicalConfigurationXMLReader(config);
50
 
    }
51
 
 
52
 
    public void testParse() throws Exception
53
 
    {
54
 
        SAXSource source = new SAXSource(parser, new InputSource());
55
 
        DOMResult result = new DOMResult();
56
 
        Transformer trans = TransformerFactory.newInstance().newTransformer();
57
 
        try
58
 
        {
59
 
            //When executed on a JDK 1.3 this line throws a NoSuchMethodError
60
 
            //somewhere deep in Xalan. We simply ignore this.
61
 
            trans.transform(source, result);
62
 
        }
63
 
        catch(NoSuchMethodError ex)
64
 
        {
65
 
            return;
66
 
        }
67
 
        Node root = ((Document) result.getNode()).getDocumentElement();
68
 
        JXPathContext ctx = JXPathContext.newContext(root);
69
 
 
70
 
        assertEquals("Wrong name of root element", "database", root.getNodeName());
71
 
        assertEquals("Wrong number of children of root", 1, ctx.selectNodes(
72
 
                "/*").size());
73
 
        assertEquals("Wrong number of tables", 2, ctx.selectNodes(
74
 
                "/tables/table").size());
75
 
        assertEquals("Wrong name of first table", "users", ctx
76
 
                .getValue("/tables/table[1]/name"));
77
 
        assertEquals("Wrong number of fields in first table", 5, ctx
78
 
                .selectNodes("/tables/table[1]/fields/field").size());
79
 
        assertEquals("Wrong attribute value", "system", ctx
80
 
                .getValue("/tables/table[1]/@tableType"));
81
 
    }
82
 
}