From: markt Date: Wed, 3 Feb 2010 17:55:20 +0000 (+0000) Subject: Refactor X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=0ad0f322636c84ddaaa336419ef7dcca8ff63574;p=tomcat7.0 Refactor git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@906153 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/test/org/apache/catalina/deploy/TestWebXml.java b/test/org/apache/catalina/deploy/TestWebXml.java deleted file mode 100644 index 3174ddaa4..000000000 --- a/test/org/apache/catalina/deploy/TestWebXml.java +++ /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 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(); - 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 ordered = WebXml.orderWebFragments(app, fragments); - - Iterator 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 ordered = WebXml.orderWebFragments(app, fragments); - - Iterator 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 others = new HashSet(); - others.add(a); - others.add(c); - others.add(e); - others.add(f); - - Set ordered = WebXml.orderWebFragments(app, fragments); - - Iterator 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 others = new HashSet(); - others.add(a); - others.add(c); - others.add(e); - others.add(f); - - Set ordered = WebXml.orderWebFragments(app, fragments); - - Iterator 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 others = new HashSet(); - others.add(a); - others.add(c); - others.add(e); - others.add(f); - - Set ordered = WebXml.orderWebFragments(app, fragments); - - Iterator 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 ordered = WebXml.orderWebFragments(app, fragments); - - Iterator 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 ordered = WebXml.orderWebFragments(app, fragments); - - Iterator 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 ordered = WebXml.orderWebFragments(app, fragments); - - Iterator 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 index 000000000..45358f82e --- /dev/null +++ b/test/org/apache/catalina/deploy/TestWebXmlOrdering.java @@ -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 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(); + 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 ordered = WebXml.orderWebFragments(app, fragments); + + Iterator 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 ordered = WebXml.orderWebFragments(app, fragments); + + Iterator 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 others = new HashSet(); + others.add(a); + others.add(c); + others.add(e); + others.add(f); + + Set ordered = WebXml.orderWebFragments(app, fragments); + + Iterator 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 others = new HashSet(); + others.add(a); + others.add(c); + others.add(e); + others.add(f); + + Set ordered = WebXml.orderWebFragments(app, fragments); + + Iterator 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 others = new HashSet(); + others.add(a); + others.add(c); + others.add(e); + others.add(f); + + Set ordered = WebXml.orderWebFragments(app, fragments); + + Iterator 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 ordered = WebXml.orderWebFragments(app, fragments); + + Iterator 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 ordered = WebXml.orderWebFragments(app, fragments); + + Iterator 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 ordered = WebXml.orderWebFragments(app, fragments); + + Iterator 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); + } +}