Author: markt
Date: Wed Oct 28 11:49:48 2009
New Revision: 830508

URL: http://svn.apache.org/viewvc?rev=830508&view=rev
Log:
Add some test cases for ordering.

Added:
    tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java

Added: tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java?rev=830508&view=auto
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java (added)
+++ tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java Wed 
Oct 28 11:49:48 2009
@@ -0,0 +1,147 @@
+package org.apache.catalina.startup;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+/**
+ * Test case for {...@link ContextConfig}.
+ */
+public class TestContextConfig extends TestCase {
+    private WebXml app;
+    private WebXml f1;
+    private WebXml f2;
+    private WebXml f3;
+    private WebXml f4;
+    private WebXml f5;
+    private Map<String,WebXml> fragments;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        app = new WebXml();
+        f1 = new WebXml();
+        f1.setName("f1");
+        f2 = new WebXml();
+        f2.setName("f2");
+        f3 = new WebXml();
+        f3.setName("f3");
+        f4 = new WebXml();
+        f4.setName("f4");
+        f5 = new WebXml();
+        f5.setName("f5");
+        fragments = new HashMap<String,WebXml>();
+        fragments.put("f1",f1);
+        fragments.put("f2",f2);
+        fragments.put("f3",f3);
+        fragments.put("f4",f4);
+        fragments.put("f5",f5);
+    }
+
+
+    public void testOrderWebFragmentsAbsolute() {
+        app.addAbsoluteOrdering("f3");
+        app.addAbsoluteOrdering("f1");
+        app.addAbsoluteOrdering("f2");
+        app.addAbsoluteOrdering("f5");
+        app.addAbsoluteOrdering("f4");
+        
+        Set<WebXml> ordered = ContextConfig.orderWebFragments(app, fragments);
+        
+        Iterator<WebXml> iter = ordered.iterator();
+        assertEquals(f3,iter.next());
+        assertEquals(f1,iter.next());
+        assertEquals(f2,iter.next());
+        assertEquals(f5,iter.next());
+        assertEquals(f4,iter.next());
+        assertFalse(iter.hasNext());
+    }
+
+    public void testOrderWebFragmentsAbsolutePartial() {
+        app.addAbsoluteOrdering("f3");
+        app.addAbsoluteOrdering("f1");
+        
+        Set<WebXml> ordered = ContextConfig.orderWebFragments(app, fragments);
+        
+        Iterator<WebXml> iter = ordered.iterator();
+        assertEquals(f3,iter.next());
+        assertEquals(f1,iter.next());
+        assertFalse(iter.hasNext());
+    }
+
+    public void testOrderWebFragmentsAbsoluteOthersStart() {
+        app.addAbsoluteOrdering(WebXml.ORDER_OTHERS);
+        app.addAbsoluteOrdering("f2");
+        app.addAbsoluteOrdering("f4");
+        
+        Set<WebXml> others = new HashSet<WebXml>();
+        others.add(f1);
+        others.add(f3);
+        others.add(f5);
+        
+        Set<WebXml> ordered = ContextConfig.orderWebFragments(app, fragments);
+        
+        Iterator<WebXml> iter = ordered.iterator();
+        while (others.size() > 0) {
+            WebXml f = iter.next();
+            assertTrue(others.contains(f));
+            others.remove(f);
+        }
+        assertEquals(f2,iter.next());
+        assertEquals(f4,iter.next());
+        assertFalse(iter.hasNext());
+    }
+
+    public void testOrderWebFragmentsAbsoluteOthersMiddle() {
+        app.addAbsoluteOrdering("f2");
+        app.addAbsoluteOrdering(WebXml.ORDER_OTHERS);
+        app.addAbsoluteOrdering("f4");
+        
+        Set<WebXml> others = new HashSet<WebXml>();
+        others.add(f1);
+        others.add(f3);
+        others.add(f5);
+        
+        Set<WebXml> ordered = ContextConfig.orderWebFragments(app, fragments);
+
+        Iterator<WebXml> iter = ordered.iterator();
+        assertEquals(f2,iter.next());
+
+        while (others.size() > 0) {
+            WebXml f = iter.next();
+            assertTrue(others.contains(f));
+            others.remove(f);
+        }
+        assertEquals(f4,iter.next());
+        assertFalse(iter.hasNext());
+    }
+
+    public void testOrderWebFragmentsAbsoluteOthersEnd() {
+        app.addAbsoluteOrdering("f2");
+        app.addAbsoluteOrdering("f4");
+        app.addAbsoluteOrdering(WebXml.ORDER_OTHERS);
+        
+        Set<WebXml> others = new HashSet<WebXml>();
+        others.add(f1);
+        others.add(f3);
+        others.add(f5);
+        
+        Set<WebXml> ordered = ContextConfig.orderWebFragments(app, fragments);
+
+        Iterator<WebXml> iter = ordered.iterator();
+        assertEquals(f2,iter.next());
+        assertEquals(f4,iter.next());
+
+        while (others.size() > 0) {
+            WebXml f = iter.next();
+            assertTrue(others.contains(f));
+            others.remove(f);
+        }
+        assertFalse(iter.hasNext());
+    }
+
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to