rwaldhoff 2002/10/22 09:03:05
Modified: jelly/src/java/org/apache/commons/jelly/tags/core
DefaultTag.java
jelly/src/test/org/apache/commons/jelly/core
TestSwitchTag.java testSwitchTag.jelly
Log:
add additional tests for the switch family of tags
Revision Changes Path
1.2 +7 -6
jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/DefaultTag.java
Index: DefaultTag.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/DefaultTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultTag.java 22 Oct 2002 15:13:43 -0000 1.1
+++ DefaultTag.java 22 Oct 2002 16:03:05 -0000 1.2
@@ -95,10 +95,11 @@
SwitchTag tag = (SwitchTag)findAncestorWithClass(SwitchTag.class);
if(null == tag) {
throw new JellyException("This tag must be enclosed inside a <switch>
tag" );
- }
+ }
if(tag.hasDefaultBeenEncountered()) {
throw new JellyException("Only one <default> tag is allowed per
<switch>.");
}
+ tag.defaultEncountered();
if(tag.isFallingThru() || (!tag.hasSomeCaseMatched())) {
tag.caseMatched();
tag.setFallingThru(fallThru);
1.2 +55 -8
jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/core/TestSwitchTag.java
Index: TestSwitchTag.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/core/TestSwitchTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestSwitchTag.java 22 Oct 2002 15:13:43 -0000 1.1
+++ TestSwitchTag.java 22 Oct 2002 16:03:05 -0000 1.2
@@ -61,17 +61,16 @@
*/
package org.apache.commons.jelly.core;
-import java.io.File;
import java.net.URL;
import junit.framework.TestCase;
import junit.framework.TestSuite;
-import junit.textui.TestRunner;
import org.apache.commons.jelly.Jelly;
import org.apache.commons.jelly.JellyContext;
+import org.apache.commons.jelly.JellyException;
+import org.apache.commons.jelly.MissingAttributeException;
import org.apache.commons.jelly.Script;
-import org.apache.commons.jelly.TagLibrary;
import org.apache.commons.jelly.XMLOutput;
/**
@@ -180,6 +179,54 @@
context.getVariable("a.default"));
}
+ public void testCaseWithoutSwitch() throws Exception {
+ setUpScript("testSwitchTag.jelly");
+ Script script = jelly.compileScript();
+ context.setVariable("case.without.switch",new Boolean(true));
+ try {
+ script.run(context,xmlOutput);
+ fail("Expected JellyException");
+ } catch(JellyException e) {
+ // expected
+ }
+ }
+
+ public void testDefaultWithoutSwitch() throws Exception {
+ setUpScript("testSwitchTag.jelly");
+ Script script = jelly.compileScript();
+ context.setVariable("default.without.switch",new Boolean(true));
+ try {
+ script.run(context,xmlOutput);
+ fail("Expected JellyException");
+ } catch(JellyException e) {
+ // expected
+ }
+ }
+
+ public void testCaseWithoutValue() throws Exception {
+ setUpScript("testSwitchTag.jelly");
+ Script script = jelly.compileScript();
+ context.setVariable("case.without.value",new Boolean(true));
+ try {
+ script.run(context,xmlOutput);
+ fail("Expected MissingAttributeException");
+ } catch(MissingAttributeException e) {
+ // expected
+ }
+ }
+
+ public void testMultipleDefaults() throws Exception {
+ setUpScript("testSwitchTag.jelly");
+ Script script = jelly.compileScript();
+ context.setVariable("multiple.defaults",new Boolean(true));
+ try {
+ script.run(context,xmlOutput);
+ fail("Expected JellyException");
+ } catch(JellyException e) {
+ // expected
+ }
+ }
+
private Jelly jelly = null;
private JellyContext context = null;
private XMLOutput xmlOutput = null;
1.2 +30 -0
jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/core/testSwitchTag.jelly
Index: testSwitchTag.jelly
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/core/testSwitchTag.jelly,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- testSwitchTag.jelly 22 Oct 2002 15:13:43 -0000 1.1
+++ testSwitchTag.jelly 22 Oct 2002 16:03:05 -0000 1.2
@@ -16,4 +16,34 @@
<j:set var="a.default" value="true"/>
</j:default>
</j:switch>
+
+ <j:if test="${case.without.switch}">
+ <j:case value="this tag should cause an exception"/>
+ </j:if>
+
+ <j:if test="${default.without.switch}">
+ <j:default/>
+ </j:if>
+
+ <j:if test="${case.without.value}">
+ <j:switch on="foo">
+ <j:case>
+ <!-- this should cause an exception (or even better, fail on
validation) -->
+ </j:case>
+ </j:switch>
+ </j:if>
+
+ <j:if test="${multiple.defaults}">
+ <j:switch on="foo">
+ <j:case value="bar">
+ </j:case>
+ <j:default>
+ </j:default>
+ <j:default>
+ <!-- this one should cause an exception (or even better, fail on
validation) -->
+ </j:default>
+ </j:switch>
+ </j:if>
+
+
</j:jelly>
--
To unsubscribe, e-mail: <mailto:commons-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>