TestDuplicateAttributes.java
package stax2.stream;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import stax2.BaseStax2Test;
/**
* This unit test exposes a bug in Woodstox's duplicate attribute detection logic.
*/
public class TestDuplicateAttributes
extends BaseStax2Test
{
/**
* This test shows a scenario where Woodstox correctly complains about duplicate attributes.
*/
public void testDupAttrsMinimal() throws XMLStreamException {
final XMLStreamReader reader = constructNsStreamReader("<x a='a' a='b'/>", false);
try {
reader.next();
fail("Should have caught duplicate attributes");
} catch (XMLStreamException e) {
verifyException(e, "duplicate attribute");
}
reader.close();
}
/**
* This test shows a scenario where Woodstox fails to complain about duplicate attributes.
*/
public void testDupAttrsMultiple() throws XMLStreamException {
final XMLStreamReader reader = constructNsStreamReader(
"<a id='test' type='test' c123456789='1' c123456789='2'/>", false);
try {
reader.next();
fail("Should have caught duplicate attributes");
} catch (XMLStreamException e) {
verifyException(e, "duplicate attribute");
}
reader.close();
}
}