From c88dfa5f25d195f8959b7194aa4072509a44aefd Mon Sep 17 00:00:00 2001 From: markt Date: Wed, 28 Oct 2009 11:49:48 +0000 Subject: [PATCH] Add some test cases for ordering. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@830508 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/catalina/startup/TestContextConfig.java | 147 +++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 test/org/apache/catalina/startup/TestContextConfig.java diff --git a/test/org/apache/catalina/startup/TestContextConfig.java b/test/org/apache/catalina/startup/TestContextConfig.java new file mode 100644 index 000000000..a7d85f24c --- /dev/null +++ b/test/org/apache/catalina/startup/TestContextConfig.java @@ -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 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(); + 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 ordered = ContextConfig.orderWebFragments(app, fragments); + + Iterator 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 ordered = ContextConfig.orderWebFragments(app, fragments); + + Iterator 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 others = new HashSet(); + others.add(f1); + others.add(f3); + others.add(f5); + + Set ordered = ContextConfig.orderWebFragments(app, fragments); + + Iterator 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 others = new HashSet(); + others.add(f1); + others.add(f3); + others.add(f5); + + Set ordered = ContextConfig.orderWebFragments(app, fragments); + + Iterator 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 others = new HashSet(); + others.add(f1); + others.add(f3); + others.add(f5); + + Set ordered = ContextConfig.orderWebFragments(app, fragments); + + Iterator 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()); + } + +} -- 2.11.0