package org.simpleframework.xml.stream;
import java.io.StringReader;
import org.simpleframework.xml.ValidationTestCase;
public class NamespaceScopeTest extends ValidationTestCase {
private static final String EMPTY_OVERRIDE =
"<root xmlns='http://www.default.com/'>\n"+ // http://www.default.com/
"<entry xmlns=''>\n"+
"<p:book xmlns:p='http://www.example.com/book'>\n"+ // http://www.example.com/book
"<author>saurabh</author>\n"+ // empty
"<p:title>simple xml</p:title>\n"+ // http://www.example.com/book
"<p:isbn>ISB-16728-10</p:isbn>\n"+ // http://www.example.com/book
"</p:book>\n"+
"</entry>\n"+
"</root>";
private static final String DEFAULT_FIRST =
"<root xmlns='http://www.default.com/'>\n"+ // http://www.default.com/
"<p:book xmlns:p='http://www.example.com/book'>\n"+ // http://www.example.com/book
"<author>saurabh</author>\n"+ // http://www.default.com/
"<title>simple xml</title>\n"+ // http://www.default.com/
"<isbn>ISB-16728-10</isbn>\n"+ // http://www.default.com/
"</p:book>\n"+
"</root>";
public void testEmptyOverride() throws Exception {
InputNode node = NodeBuilder.read(new StringReader(EMPTY_OVERRIDE));
String reference = node.getReference();
String prefix = node.getPrefix();
assertTrue(isEmpty(prefix));
assertEquals(reference, "http://www.default.com/");
node = node.getNext("entry");
reference = node.getReference();
prefix = node.getPrefix();
assertTrue(isEmpty(prefix));
assertTrue(isEmpty(reference));
node = node.getNext("book");
reference = node.getReference();
prefix = node.getPrefix();
assertEquals(prefix, "p");
assertEquals(reference, "http://www.example.com/book");
InputNode author = node.getNext("author");
reference = author.getReference();
prefix = author.getPrefix();
assertTrue(isEmpty(prefix));
assertTrue(isEmpty(reference));
InputNode title = node.getNext("title");
reference = title.getReference();
prefix = title.getPrefix();
assertEquals(prefix, "p");
assertEquals(reference, "http://www.example.com/book");
InputNode isbn = node.getNext("isbn");
reference = isbn.getReference();
prefix = isbn.getPrefix();
assertEquals(prefix, "p");
assertEquals(reference, "http://www.example.com/book");
}
public void testDefaultFirst() throws Exception {
InputNode node = NodeBuilder.read(new StringReader(DEFAULT_FIRST));
String reference = node.getReference();
String prefix = node.getPrefix();
assertTrue(isEmpty(prefix));
assertEquals(reference, "http://www.default.com/");
node = node.getNext("book");
reference = node.getReference();
prefix = node.getPrefix();
assertEquals(prefix, "p");
assertEquals(reference, "http://www.example.com/book");
InputNode author = node.getNext("author");
reference = author.getReference();
prefix = author.getPrefix();
assertTrue(isEmpty(prefix));
assertEquals(reference, "http://www.default.com/");
InputNode title = node.getNext("title");
reference = title.getReference();
prefix = title.getPrefix();
assertTrue(isEmpty(prefix));
assertEquals(reference, "http://www.default.com/");
InputNode isbn = node.getNext("isbn");
reference = isbn.getReference();
prefix = isbn.getPrefix();
assertTrue(isEmpty(prefix));
assertEquals(reference, "http://www.default.com/");
}
private boolean isEmpty(String name) {
return name == null || name.equals("");
}
}