Author: veithen
Date: Tue Sep 28 09:28:40 2010
New Revision: 1002071

URL: http://svn.apache.org/viewvc?rev=1002071&view=rev
Log:
Added dialect tests for the hasName and hasText methods.

Added:
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/BooleanPropertyTestCase.java
   (with props)
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/EventSpecificTestCase.java
   (with props)
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasNameTestCase.java
   (with props)
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasTextTestCase.java
   (with props)
Modified:
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java

Added: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/BooleanPropertyTestCase.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/BooleanPropertyTestCase.java?rev=1002071&view=auto
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/BooleanPropertyTestCase.java
 (added)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/BooleanPropertyTestCase.java
 Tue Sep 28 09:28:40 2010
@@ -0,0 +1,36 @@
+/*
+ * 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.axiom.util.stax.dialect;
+
+import javax.xml.stream.XMLStreamReader;
+
+public abstract class BooleanPropertyTestCase extends EventSpecificTestCase {
+    private final boolean expected;
+
+    public BooleanPropertyTestCase(int event, boolean expected) {
+        super(event);
+        this.expected = expected;
+    }
+
+    protected void runTest(XMLStreamReader reader) throws Throwable {
+        assertEquals(expected, invoke(reader));
+    }
+    
+    protected abstract boolean invoke(XMLStreamReader reader);
+}

Propchange: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/BooleanPropertyTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java?rev=1002071&r1=1002070&r2=1002071&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTest.java
 Tue Sep 28 09:28:40 2010
@@ -101,6 +101,32 @@ public class DialectTest extends TestSui
         addDialectTest(new GetPrefixWithNoPrefixTestCase());
         addDialectTest(new GetTextInPrologTestCase());
         addDialectTest(new GetVersionTestCase());
+        addDialectTest(new HasNameTestCase(XMLStreamConstants.START_ELEMENT, 
true));
+        addDialectTest(new HasNameTestCase(XMLStreamConstants.END_ELEMENT, 
true));
+        addDialectTest(new 
HasNameTestCase(XMLStreamConstants.PROCESSING_INSTRUCTION, false));
+        addDialectTest(new HasNameTestCase(XMLStreamConstants.CHARACTERS, 
false));
+        addDialectTest(new HasNameTestCase(XMLStreamConstants.COMMENT, false));
+        addDialectTest(new HasNameTestCase(XMLStreamConstants.SPACE, false));
+        addDialectTest(new HasNameTestCase(XMLStreamConstants.START_DOCUMENT, 
false));
+        addDialectTest(new HasNameTestCase(XMLStreamConstants.END_DOCUMENT, 
false));
+        addDialectTest(new 
HasNameTestCase(XMLStreamConstants.ENTITY_REFERENCE, false));
+        addDialectTest(new HasNameTestCase(XMLStreamConstants.DTD, false));
+        addDialectTest(new HasNameTestCase(XMLStreamConstants.CDATA, false));
+        addDialectTest(new HasTextTestCase(XMLStreamConstants.START_ELEMENT, 
false));
+        addDialectTest(new HasTextTestCase(XMLStreamConstants.END_ELEMENT, 
false));
+        addDialectTest(new 
HasTextTestCase(XMLStreamConstants.PROCESSING_INSTRUCTION, false));
+        addDialectTest(new HasTextTestCase(XMLStreamConstants.CHARACTERS, 
true));
+        addDialectTest(new HasTextTestCase(XMLStreamConstants.COMMENT, true));
+        addDialectTest(new HasTextTestCase(XMLStreamConstants.SPACE, true));
+        addDialectTest(new HasTextTestCase(XMLStreamConstants.START_DOCUMENT, 
false));
+        addDialectTest(new HasTextTestCase(XMLStreamConstants.END_DOCUMENT, 
false));
+        addDialectTest(new 
HasTextTestCase(XMLStreamConstants.ENTITY_REFERENCE, true));
+        addDialectTest(new HasTextTestCase(XMLStreamConstants.DTD, true));
+        // Note: CDATA events are actually not mentioned in the Javadoc of 
XMLStreamReader#hasText().
+        //       This is because reporting CDATA sections as CDATA events is 
an implementation
+        //       specific feature. Nevertheless, for obvious reasons, we 
expect hasText to
+        //       return true in this case.
+        addDialectTest(new HasTextTestCase(XMLStreamConstants.CDATA, true));
         addDialectTest(new IsCharactersOnCDATASectionTestCase());
         addDialectTest(new IsStandaloneTestCase());
         addDialectTest(new MaskedNamespaceTestCase());

Added: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/EventSpecificTestCase.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/EventSpecificTestCase.java?rev=1002071&view=auto
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/EventSpecificTestCase.java
 (added)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/EventSpecificTestCase.java
 Tue Sep 28 09:28:40 2010
@@ -0,0 +1,63 @@
+/*
+ * 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.axiom.util.stax.dialect;
+
+import java.io.InputStream;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axiom.util.stax.XMLEventUtils;
+
+/**
+ * Base class for test cases that test the behavior of a {...@link 
XMLStreamReader} method for specific
+ * event types. It is able to produce a reader that is positioned on an event 
with a predefined
+ * type.
+ */
+public abstract class EventSpecificTestCase extends DialectTestCase {
+    private final int event;
+    
+    public EventSpecificTestCase(int event) {
+        this.event = event;
+        setName(getClass().getName() + " [" + 
XMLEventUtils.getEventTypeString(event) + "]");
+    }
+
+    protected final void runTest() throws Throwable {
+        XMLInputFactory factory = 
getDialect().enableCDataReporting(newNormalizedXMLInputFactory());
+        factory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, 
Boolean.FALSE);
+        InputStream in = 
IllegalStateExceptionTestCase.class.getResourceAsStream("alleventtypes.xml");
+        try {
+            XMLStreamReader reader = factory.createXMLStreamReader(in);
+            while (true) {
+                if (reader.getEventType() == event) {
+                    break;
+                } else if (reader.hasNext()) {
+                    reader.next();
+                } else {
+                    fail("Internal error: didn't encounter event " + event);
+                }
+            }
+            runTest(reader);
+        } finally {
+            in.close();
+        }
+    }
+    
+    protected abstract void runTest(XMLStreamReader reader) throws Throwable;
+}

Propchange: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/EventSpecificTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasNameTestCase.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasNameTestCase.java?rev=1002071&view=auto
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasNameTestCase.java
 (added)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasNameTestCase.java
 Tue Sep 28 09:28:40 2010
@@ -0,0 +1,31 @@
+/*
+ * 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.axiom.util.stax.dialect;
+
+import javax.xml.stream.XMLStreamReader;
+
+public class HasNameTestCase extends BooleanPropertyTestCase {
+    public HasNameTestCase(int event, boolean expected) {
+        super(event, expected);
+    }
+
+    protected boolean invoke(XMLStreamReader reader) {
+        return reader.hasName();
+    }
+}

Propchange: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasNameTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasTextTestCase.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasTextTestCase.java?rev=1002071&view=auto
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasTextTestCase.java
 (added)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasTextTestCase.java
 Tue Sep 28 09:28:40 2010
@@ -0,0 +1,31 @@
+/*
+ * 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.axiom.util.stax.dialect;
+
+import javax.xml.stream.XMLStreamReader;
+
+public class HasTextTestCase extends BooleanPropertyTestCase {
+    public HasTextTestCase(int event, boolean expected) {
+        super(event, expected);
+    }
+
+    protected boolean invoke(XMLStreamReader reader) {
+        return reader.hasText();
+    }
+}

Propchange: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/HasTextTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java?rev=1002071&r1=1002070&r2=1002071&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/IllegalStateExceptionTestCase.java
 Tue Sep 28 09:28:40 2010
@@ -18,53 +18,29 @@
  */
 package org.apache.axiom.util.stax.dialect;
 
-import java.io.InputStream;
-
-import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
-import org.apache.axiom.util.stax.XMLEventUtils;
-
-public abstract class IllegalStateExceptionTestCase extends DialectTestCase {
-    private final int event;
+public abstract class IllegalStateExceptionTestCase extends 
EventSpecificTestCase {
     private final boolean expectException;
     
     public IllegalStateExceptionTestCase(int event, boolean expectException) {
-        this.event = event;
+        super(event);
         this.expectException = expectException;
-        setName(getClass().getName() + " [" + 
XMLEventUtils.getEventTypeString(event) + "]");
     }
 
-    protected final void runTest() throws Throwable {
-        XMLInputFactory factory = 
getDialect().enableCDataReporting(newNormalizedXMLInputFactory());
-        factory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, 
Boolean.FALSE);
-        InputStream in = 
IllegalStateExceptionTestCase.class.getResourceAsStream("alleventtypes.xml");
+    protected final void runTest(XMLStreamReader reader) throws Throwable {
+        boolean exception;
         try {
-            XMLStreamReader reader = factory.createXMLStreamReader(in);
-            while (true) {
-                if (reader.getEventType() == event) {
-                    break;
-                } else if (reader.hasNext()) {
-                    reader.next();
-                } else {
-                    fail("Internal error: didn't encounter event " + event);
-                }
-            }
-            boolean exception;
-            try {
-                invoke(reader);
-                exception = false;
-            } catch (IllegalStateException ex) {
-                exception = true;
-            }
-            if (exception && !expectException) {
-                fail("Didn't expect IllegalStateException");
-            } else if (!exception && expectException) {
-                fail("Expected IllegalStateException");
-            }
-        } finally {
-            in.close();
+            invoke(reader);
+            exception = false;
+        } catch (IllegalStateException ex) {
+            exception = true;
+        }
+        if (exception && !expectException) {
+            fail("Didn't expect IllegalStateException");
+        } else if (!exception && expectException) {
+            fail("Expected IllegalStateException");
         }
     }
     


Reply via email to