Refactor
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 3 Feb 2010 17:55:20 +0000 (17:55 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 3 Feb 2010 17:55:20 +0000 (17:55 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@906153 13f79535-47bb-0310-9956-ffa450edef68

test/org/apache/catalina/deploy/TestWebXml.java [deleted file]
test/org/apache/catalina/deploy/TestWebXmlOrdering.java [new file with mode: 0644]

diff --git a/test/org/apache/catalina/deploy/TestWebXml.java b/test/org/apache/catalina/deploy/TestWebXml.java
deleted file mode 100644 (file)
index 3174dda..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- *  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.catalina.deploy;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.catalina.deploy.WebXml;
-import org.apache.catalina.startup.ContextConfig;
-
-import junit.framework.TestCase;
-
-/**
- * Test case for {@link ContextConfig}.
- */
-public class TestWebXml extends TestCase {
-    private WebXml app;
-    private WebXml a;
-    private WebXml b;
-    private WebXml c;
-    private WebXml d;
-    private WebXml e;
-    private WebXml f;
-    private Map<String,WebXml> fragments;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        app = new WebXml();
-        a = new WebXml();
-        a.setName("a");
-        b = new WebXml();
-        b.setName("b");
-        c = new WebXml();
-        c.setName("c");
-        d = new WebXml();
-        d.setName("d");
-        e = new WebXml();
-        e.setName("e");
-        f = new WebXml();
-        f.setName("f");
-        fragments = new HashMap<String,WebXml>();
-        fragments.put("a",a);
-        fragments.put("b",b);
-        fragments.put("c",c);
-        fragments.put("d",d);
-        fragments.put("e",e);
-        fragments.put("f",f);
-    }
-
-    public void testOrderWebFragmentsAbsolute() {
-        app.addAbsoluteOrdering("c");
-        app.addAbsoluteOrdering("a");
-        app.addAbsoluteOrdering("b");
-        app.addAbsoluteOrdering("e");
-        app.addAbsoluteOrdering("d");
-        
-        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
-        
-        Iterator<WebXml> iter = ordered.iterator();
-        assertEquals(c,iter.next());
-        assertEquals(a,iter.next());
-        assertEquals(b,iter.next());
-        assertEquals(e,iter.next());
-        assertEquals(d,iter.next());
-        assertFalse(iter.hasNext());
-    }
-
-    public void testOrderWebFragmentsAbsolutePartial() {
-        app.addAbsoluteOrdering("c");
-        app.addAbsoluteOrdering("a");
-        
-        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
-        
-        Iterator<WebXml> iter = ordered.iterator();
-        assertEquals(c,iter.next());
-        assertEquals(a,iter.next());
-        assertFalse(iter.hasNext());
-    }
-
-    public void testOrderWebFragmentsAbsoluteOthersStart() {
-        app.addAbsoluteOrdering(WebXml.ORDER_OTHERS);
-        app.addAbsoluteOrdering("b");
-        app.addAbsoluteOrdering("d");
-        
-        Set<WebXml> others = new HashSet<WebXml>();
-        others.add(a);
-        others.add(c);
-        others.add(e);
-        others.add(f);
-        
-        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
-        
-        Iterator<WebXml> iter = ordered.iterator();
-        while (others.size() > 0) {
-            WebXml o = iter.next();
-            assertTrue(others.contains(o));
-            others.remove(o);
-        }
-        assertEquals(b,iter.next());
-        assertEquals(d,iter.next());
-        assertFalse(iter.hasNext());
-    }
-
-    public void testOrderWebFragmentsAbsoluteOthersMiddle() {
-        app.addAbsoluteOrdering("b");
-        app.addAbsoluteOrdering(WebXml.ORDER_OTHERS);
-        app.addAbsoluteOrdering("d");
-        
-        Set<WebXml> others = new HashSet<WebXml>();
-        others.add(a);
-        others.add(c);
-        others.add(e);
-        others.add(f);
-        
-        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
-
-        Iterator<WebXml> iter = ordered.iterator();
-        assertEquals(b,iter.next());
-
-        while (others.size() > 0) {
-            WebXml o = iter.next();
-            assertTrue(others.contains(o));
-            others.remove(o);
-        }
-        assertEquals(d,iter.next());
-        assertFalse(iter.hasNext());
-    }
-
-    public void testOrderWebFragmentsAbsoluteOthersEnd() {
-        app.addAbsoluteOrdering("b");
-        app.addAbsoluteOrdering("d");
-        app.addAbsoluteOrdering(WebXml.ORDER_OTHERS);
-        
-        Set<WebXml> others = new HashSet<WebXml>();
-        others.add(a);
-        others.add(c);
-        others.add(e);
-        others.add(f);
-        
-        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
-
-        Iterator<WebXml> iter = ordered.iterator();
-        assertEquals(b,iter.next());
-        assertEquals(d,iter.next());
-
-        while (others.size() > 0) {
-            WebXml o = iter.next();
-            assertTrue(others.contains(o));
-            others.remove(o);
-        }
-        assertFalse(iter.hasNext());
-    }
-
-    public void testOrderWebFragmentsRelative1() {
-        // First example from servlet spec
-        a.addAfterOrderOthers();
-        a.addAfterOrder("c");
-        b.addBeforeOrderOthers();
-        c.addAfterOrderOthers();
-        f.addBeforeOrderOthers();
-        f.addBeforeOrder("b");
-        
-        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
-        
-        Iterator<WebXml> iter = ordered.iterator();
-        assertEquals(f,iter.next());
-        assertEquals(b,iter.next());
-        assertEquals(d,iter.next());
-        assertEquals(e,iter.next());
-        assertEquals(c,iter.next());
-        assertEquals(a,iter.next());
-    }
-    
-    public void testOrderWebFragmentsRelative2() {
-        // Second example - use fragment a for no-id fragment
-        a.addAfterOrderOthers();
-        a.addBeforeOrder("c");
-        b.addBeforeOrderOthers();
-        d.addAfterOrderOthers();
-        e.addBeforeOrderOthers();
-        
-        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
-        
-        Iterator<WebXml> iter = ordered.iterator();
-        // A number of orders are possible but the algorithm is deterministic
-        // and this order is valid. If this fails after a change to the
-        // algorithm, then check to see if the new order is also valid.
-        assertEquals(b,iter.next());
-        assertEquals(e,iter.next());
-        assertEquals(f,iter.next());
-        assertEquals(a,iter.next());
-        assertEquals(c,iter.next());
-        assertEquals(d,iter.next());
-    }
-    
-    public void testOrderWebFragmentsRelative3() {
-        // Third example from spec
-        a.addAfterOrder("b");
-        c.addBeforeOrderOthers();
-        fragments.remove("e");
-        fragments.remove("f");
-
-        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
-        
-        Iterator<WebXml> iter = ordered.iterator();
-        // A number of orders are possible but the algorithm is deterministic
-        // and this order is valid. If this fails after a change to the
-        // algorithm, then check to see if the new order is also valid.
-        assertEquals(c,iter.next());
-        assertEquals(d,iter.next());
-        assertEquals(b,iter.next());
-        assertEquals(a,iter.next());
-    }
-    
-    public void testOrderWebFragmentsrelativeCircular() {
-        a.addBeforeOrder("b");
-        b.addBeforeOrder("a");
-
-        Exception exception = null;
-        
-        try {
-            WebXml.orderWebFragments(app, fragments);
-        } catch (Exception e1) {
-            exception = e1;
-        }
-        
-        assertTrue(exception instanceof IllegalArgumentException);
-    }
-}
diff --git a/test/org/apache/catalina/deploy/TestWebXmlOrdering.java b/test/org/apache/catalina/deploy/TestWebXmlOrdering.java
new file mode 100644 (file)
index 0000000..45358f8
--- /dev/null
@@ -0,0 +1,247 @@
+/*
+ *  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.catalina.deploy;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.catalina.deploy.WebXml;
+
+import junit.framework.TestCase;
+
+/**
+ * Test case for {@link WebXml} fragment ordering.
+ */
+public class TestWebXmlOrdering extends TestCase {
+    private WebXml app;
+    private WebXml a;
+    private WebXml b;
+    private WebXml c;
+    private WebXml d;
+    private WebXml e;
+    private WebXml f;
+    private Map<String,WebXml> fragments;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        app = new WebXml();
+        a = new WebXml();
+        a.setName("a");
+        b = new WebXml();
+        b.setName("b");
+        c = new WebXml();
+        c.setName("c");
+        d = new WebXml();
+        d.setName("d");
+        e = new WebXml();
+        e.setName("e");
+        f = new WebXml();
+        f.setName("f");
+        fragments = new HashMap<String,WebXml>();
+        fragments.put("a",a);
+        fragments.put("b",b);
+        fragments.put("c",c);
+        fragments.put("d",d);
+        fragments.put("e",e);
+        fragments.put("f",f);
+    }
+
+    public void testOrderWebFragmentsAbsolute() {
+        app.addAbsoluteOrdering("c");
+        app.addAbsoluteOrdering("a");
+        app.addAbsoluteOrdering("b");
+        app.addAbsoluteOrdering("e");
+        app.addAbsoluteOrdering("d");
+        
+        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
+        
+        Iterator<WebXml> iter = ordered.iterator();
+        assertEquals(c,iter.next());
+        assertEquals(a,iter.next());
+        assertEquals(b,iter.next());
+        assertEquals(e,iter.next());
+        assertEquals(d,iter.next());
+        assertFalse(iter.hasNext());
+    }
+
+    public void testOrderWebFragmentsAbsolutePartial() {
+        app.addAbsoluteOrdering("c");
+        app.addAbsoluteOrdering("a");
+        
+        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
+        
+        Iterator<WebXml> iter = ordered.iterator();
+        assertEquals(c,iter.next());
+        assertEquals(a,iter.next());
+        assertFalse(iter.hasNext());
+    }
+
+    public void testOrderWebFragmentsAbsoluteOthersStart() {
+        app.addAbsoluteOrdering(WebXml.ORDER_OTHERS);
+        app.addAbsoluteOrdering("b");
+        app.addAbsoluteOrdering("d");
+        
+        Set<WebXml> others = new HashSet<WebXml>();
+        others.add(a);
+        others.add(c);
+        others.add(e);
+        others.add(f);
+        
+        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
+        
+        Iterator<WebXml> iter = ordered.iterator();
+        while (others.size() > 0) {
+            WebXml o = iter.next();
+            assertTrue(others.contains(o));
+            others.remove(o);
+        }
+        assertEquals(b,iter.next());
+        assertEquals(d,iter.next());
+        assertFalse(iter.hasNext());
+    }
+
+    public void testOrderWebFragmentsAbsoluteOthersMiddle() {
+        app.addAbsoluteOrdering("b");
+        app.addAbsoluteOrdering(WebXml.ORDER_OTHERS);
+        app.addAbsoluteOrdering("d");
+        
+        Set<WebXml> others = new HashSet<WebXml>();
+        others.add(a);
+        others.add(c);
+        others.add(e);
+        others.add(f);
+        
+        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
+
+        Iterator<WebXml> iter = ordered.iterator();
+        assertEquals(b,iter.next());
+
+        while (others.size() > 0) {
+            WebXml o = iter.next();
+            assertTrue(others.contains(o));
+            others.remove(o);
+        }
+        assertEquals(d,iter.next());
+        assertFalse(iter.hasNext());
+    }
+
+    public void testOrderWebFragmentsAbsoluteOthersEnd() {
+        app.addAbsoluteOrdering("b");
+        app.addAbsoluteOrdering("d");
+        app.addAbsoluteOrdering(WebXml.ORDER_OTHERS);
+        
+        Set<WebXml> others = new HashSet<WebXml>();
+        others.add(a);
+        others.add(c);
+        others.add(e);
+        others.add(f);
+        
+        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
+
+        Iterator<WebXml> iter = ordered.iterator();
+        assertEquals(b,iter.next());
+        assertEquals(d,iter.next());
+
+        while (others.size() > 0) {
+            WebXml o = iter.next();
+            assertTrue(others.contains(o));
+            others.remove(o);
+        }
+        assertFalse(iter.hasNext());
+    }
+
+    public void testOrderWebFragmentsRelative1() {
+        // First example from servlet spec
+        a.addAfterOrderOthers();
+        a.addAfterOrder("c");
+        b.addBeforeOrderOthers();
+        c.addAfterOrderOthers();
+        f.addBeforeOrderOthers();
+        f.addBeforeOrder("b");
+        
+        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
+        
+        Iterator<WebXml> iter = ordered.iterator();
+        assertEquals(f,iter.next());
+        assertEquals(b,iter.next());
+        assertEquals(d,iter.next());
+        assertEquals(e,iter.next());
+        assertEquals(c,iter.next());
+        assertEquals(a,iter.next());
+    }
+    
+    public void testOrderWebFragmentsRelative2() {
+        // Second example - use fragment a for no-id fragment
+        a.addAfterOrderOthers();
+        a.addBeforeOrder("c");
+        b.addBeforeOrderOthers();
+        d.addAfterOrderOthers();
+        e.addBeforeOrderOthers();
+        
+        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
+        
+        Iterator<WebXml> iter = ordered.iterator();
+        // A number of orders are possible but the algorithm is deterministic
+        // and this order is valid. If this fails after a change to the
+        // algorithm, then check to see if the new order is also valid.
+        assertEquals(b,iter.next());
+        assertEquals(e,iter.next());
+        assertEquals(f,iter.next());
+        assertEquals(a,iter.next());
+        assertEquals(c,iter.next());
+        assertEquals(d,iter.next());
+    }
+    
+    public void testOrderWebFragmentsRelative3() {
+        // Third example from spec
+        a.addAfterOrder("b");
+        c.addBeforeOrderOthers();
+        fragments.remove("e");
+        fragments.remove("f");
+
+        Set<WebXml> ordered = WebXml.orderWebFragments(app, fragments);
+        
+        Iterator<WebXml> iter = ordered.iterator();
+        // A number of orders are possible but the algorithm is deterministic
+        // and this order is valid. If this fails after a change to the
+        // algorithm, then check to see if the new order is also valid.
+        assertEquals(c,iter.next());
+        assertEquals(d,iter.next());
+        assertEquals(b,iter.next());
+        assertEquals(a,iter.next());
+    }
+    
+    public void testOrderWebFragmentsrelativeCircular() {
+        a.addBeforeOrder("b");
+        b.addBeforeOrder("a");
+
+        Exception exception = null;
+        
+        try {
+            WebXml.orderWebFragments(app, fragments);
+        } catch (Exception e1) {
+            exception = e1;
+        }
+        
+        assertTrue(exception instanceof IllegalArgumentException);
+    }
+}