1   /***
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3   */
4   package test.net.sourceforge.pmd.jaxen;
5   
6   import junit.framework.TestCase;
7   import net.sourceforge.pmd.ast.SimpleNode;
8   import net.sourceforge.pmd.jaxen.Attribute;
9   import net.sourceforge.pmd.jaxen.AttributeAxisIterator;
10  
11  import java.util.HashSet;
12  import java.util.Set;
13  
14  public class AttributeAxisIteratorTest extends TestCase {
15  
16      public void testBasicAttributes() {
17          Set names = new HashSet();
18          names.add("BeginLine");
19          names.add("EndLine");
20          names.add("BeginColumn");
21          names.add("EndColumn");
22          names.add("Discardable");
23          SimpleNode n = new SimpleNode(0);
24          n.testingOnly__setBeginColumn(1);
25          n.testingOnly__setBeginLine(1);
26          AttributeAxisIterator iter = new AttributeAxisIterator(n);
27          try {
28              Attribute a = (Attribute)iter.next();
29              assertTrue(names.contains(a.getName()));
30              a = (Attribute)iter.next();
31              assertTrue(names.contains(a.getName()));
32              a = (Attribute)iter.next();
33              assertTrue(names.contains(a.getName()));
34              a = (Attribute)iter.next();
35              assertTrue(names.contains(a.getName()));
36          } catch (UnsupportedOperationException e) {
37              // cool
38          }
39      }
40  
41      public void testRemove() {
42          SimpleNode n = new SimpleNode(0);
43          n.testingOnly__setBeginColumn(1);
44          n.testingOnly__setBeginLine(1);
45          AttributeAxisIterator iter = new AttributeAxisIterator(n);
46          try {
47              iter.remove();
48              fail("Should have thrown an exception!");
49          } catch (UnsupportedOperationException e) {
50              // cool
51          }
52      }
53  
54  }