blob: 448c134098c4727c32a682a0bd3bbf90c744a224 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.builder.xml;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.camel.ContextTestSupport;
/**
* @version
*/
public class DefaultNamespaceContextTest extends ContextTestSupport {
public void testDefaultNamespaceContextEmpty() throws Exception {
XPathBuilder builder = XPathBuilder.xpath("/foo");
DefaultNamespaceContext context = builder.getNamespaceContext();
assertNotNull(context);
String uri = context.getNamespaceURI("foo");
assertNull(uri);
String prefix = context.getPrefix("foo");
assertNull(prefix);
Iterator<String> it = context.getPrefixes("foo");
assertEquals(false, it.hasNext());
}
public void testDefaultNamespaceContextPre() throws Exception {
XPathBuilder builder = XPathBuilder.xpath("/foo").namespace("pre", "http://acme/cheese");
DefaultNamespaceContext context = builder.getNamespaceContext();
assertNotNull(context);
String uri = context.getNamespaceURI("pre");
assertEquals("http://acme/cheese", uri);
String prefix = context.getPrefix("http://acme/cheese");
assertEquals("pre", prefix);
Iterator<String> it = context.getPrefixes("http://acme/cheese");
assertEquals(true, it.hasNext());
assertEquals("pre", it.next());
}
public void testDefaultNamespaceContextDualNamespaces() throws Exception {
XPathBuilder builder = XPathBuilder.xpath("/foo").namespace("pre", "http://acme/cheese").namespace("bar", "http://acme/bar");
DefaultNamespaceContext context = builder.getNamespaceContext();
assertNotNull(context);
String uri = context.getNamespaceURI("pre");
assertEquals("http://acme/cheese", uri);
String uri2 = context.getNamespaceURI("bar");
assertEquals("http://acme/bar", uri2);
String prefix = context.getPrefix("http://acme/cheese");
assertEquals("pre", prefix);
String prefix2 = context.getPrefix("http://acme/bar");
assertEquals("bar", prefix2);
Iterator<String> it = context.getPrefixes("http://acme/cheese");
assertEquals(true, it.hasNext());
assertEquals("pre", it.next());
Iterator<String> it2 = context.getPrefixes("http://acme/bar");
assertEquals(true, it2.hasNext());
assertEquals("bar", it2.next());
}
public void testDefaultNamespaceContextParent() throws Exception {
XPathBuilder builder = XPathBuilder.xpath("/foo");
DefaultNamespaceContext context = builder.getNamespaceContext();
assertNotNull(context);
String uri = context.getNamespaceURI("in");
assertEquals(Namespaces.IN_NAMESPACE, uri);
String prefix = context.getPrefix(Namespaces.IN_NAMESPACE);
assertEquals("in", prefix);
Iterator<String> it = context.getPrefixes(Namespaces.IN_NAMESPACE);
assertEquals(true, it.hasNext());
assertEquals("in", it.next());
String uri2 = context.getNamespaceURI("out");
assertEquals(Namespaces.OUT_NAMESPACE, uri2);
String uri3 = context.getNamespaceURI("env");
assertEquals(Namespaces.ENVIRONMENT_VARIABLES, uri3);
String uri4 = context.getNamespaceURI("system");
assertEquals(Namespaces.SYSTEM_PROPERTIES_NAMESPACE, uri4);
}
public void testDefaultNamespaceContextCtr() throws Exception {
DefaultNamespaceContext context = new DefaultNamespaceContext();
// should not have any namespaces
String uri = context.getNamespaceURI("in");
assertEquals(null, uri);
}
public void testDefaultNamespaceContextAnotherCtr() throws Exception {
Map<String, String> map = new HashMap<String, String>();
map.put("foo", "http://acme/cheese");
DefaultNamespaceContext context = new DefaultNamespaceContext(null, map);
// should not have any default namespaces
String uri = context.getNamespaceURI("in");
assertEquals(null, uri);
String uri2 = context.getNamespaceURI("foo");
assertEquals("http://acme/cheese", uri2);
}
}