You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by de...@apache.org on 2005/05/20 11:28:56 UTC

svn commit: r171087 - /webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule

Author: deepal
Date: Fri May 20 02:28:54 2005
New Revision: 171087

URL: http://svn.apache.org/viewcvs?rev=171087&view=rev
Log:
adding new test cases for PhaseRule testing

Added:
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeAfterTest.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeTest.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeWithNoFirstHandlerTest.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseFirstRulesTest.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseFirstTest.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseLastRuleTest.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaselastTest.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseFirstTest.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseLastTest.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/SingleHandlerPhaseTest.java
Modified:
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseRuleTest.java
    webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseRuleHandlers.java

Added: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeAfterTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeAfterTest.java?rev=171087&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeAfterTest.java (added)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeAfterTest.java Fri May 20 02:28:54 2005
@@ -0,0 +1,137 @@
+package org.apache.axis.phaserule;
+
+import junit.framework.TestCase;
+import org.apache.axis.addressing.MessageInformationHeadersCollection;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.PhaseRule;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.Phase;
+import org.apache.axis.phaseresolver.PhaseHolder;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+
+/*
+* Copyright 2004,2005 The Apache Software Foundation.
+*
+* Licensed 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.
+*
+*
+*/
+
+/**
+ * Author : Deepal Jayasinghe
+ * Date: May 20, 2005
+ * Time: 3:05:50 PM
+ */
+public class BeforeAfterTest extends TestCase {
+
+    public void testBeforeAfter() {
+        try {
+            ArrayList phases = new ArrayList();
+            Phase p1 = new Phase("PhaseA");
+            phases.add(p1);
+            Phase p2 = new Phase("PhaseB");
+            phases.add(p2);
+
+            MessageContext msg = new MessageContext(new ConfigurationContext(new AxisConfigurationImpl()),
+                    new MessageInformationHeadersCollection());
+
+            PhaseHolder ph = new PhaseHolder(phases);
+            HandlerDescription hm = new HandlerDescription();
+            hm.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+            Handler h1 = new PhaseRuleHandlers();
+            h1.init(hm);
+            ((PhaseRuleHandlers) h1).setName(new QName("First"));
+            hm.setHandler(h1);
+            hm.setName(new QName("H1"));
+            PhaseRule rule = new PhaseRule();
+            rule.setPhaseName("PhaseA");
+            hm.setRules(rule);
+            ph.addHandler(hm);
+
+            HandlerDescription hm1 = new HandlerDescription();
+            hm1.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+            Handler h2 = new PhaseRuleHandlers();
+            ((PhaseRuleHandlers) h2).setName(new QName("Forth"));
+            h2.init(hm1);
+            hm1.setHandler(h2);
+            hm1.setName(new QName("H2"));
+            PhaseRule rule1 = new PhaseRule();
+            rule1.setPhaseName("PhaseA");
+            hm1.setRules(rule1);
+            ph.addHandler(hm1);
+
+
+            HandlerDescription hm3 = new HandlerDescription();
+            hm3.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+            Handler h3 = new PhaseRuleHandlers();
+            ((PhaseRuleHandlers) h3).setName(new QName("Second"));
+            h3.init(hm3);
+            hm3.setHandler(h3);
+            hm3.setName(new QName("H3"));
+            PhaseRule rule3 = new PhaseRule();
+            rule3.setPhaseName("PhaseA");
+            rule3.setAfter("H1");
+            hm3.setRules(rule3);
+            ph.addHandler(hm3);
+
+            HandlerDescription hm4 = new HandlerDescription();
+            hm4.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+            Handler h4 = new PhaseRuleHandlers();
+            ((PhaseRuleHandlers) h4).setName(new QName("Third"));
+            h4.init(hm4);
+            hm4.setHandler(h4);
+            hm4.setName(new QName("H4"));
+            PhaseRule rule4 = new PhaseRule();
+            rule4.setPhaseName("PhaseA");
+            rule4.setAfter("H1");
+            rule4.setBefore("H2");
+            hm4.setRules(rule4);
+            ph.addHandler(hm4);
+
+            ArrayList handlers = p1.getHandlers();
+
+            for (int i = 0; i < handlers.size(); i++) {
+                Handler handler = (Handler) handlers.get(i);
+                System.out.println("handler = " + handler.getName());
+            }
+
+            Handler handler = (Handler) handlers.get(0);
+            if(!handler.getName().equals(new QName("First"))){
+                fail("Computed Hnadler order is wrong ");
+            }
+            handler = (Handler) handlers.get(1);
+            if(!handler.getName().equals(new QName("Third"))){
+                fail("Computed Hnadler order is wrong ");
+            }
+            handler = (Handler) handlers.get(2);
+            if(!handler.getName().equals(new QName("Second"))){
+                fail("Computed Hnadler order is wrong ");
+            }
+
+            handler = (Handler) handlers.get(3);
+            if(!handler.getName().equals(new QName("Forth"))){
+                fail("Computed Hnadler order is wrong ");
+            }
+
+        } catch (AxisFault axisFault) {
+            return;
+        }
+
+    }
+}

Added: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeTest.java?rev=171087&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeTest.java (added)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeTest.java Fri May 20 02:28:54 2005
@@ -0,0 +1,91 @@
+package org.apache.axis.phaserule;
+
+import junit.framework.TestCase;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Phase;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.addressing.MessageInformationHeadersCollection;
+import org.apache.axis.phaseresolver.PhaseHolder;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.PhaseRule;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * 
+ */
+
+/**
+ * Author : Deepal Jayasinghe
+ * Date: May 20, 2005
+ * Time: 3:00:54 PM
+ */
+public class BeforeTest extends TestCase{
+
+     public void testBefore() throws AxisFault {
+        ArrayList phases = new ArrayList();
+        Phase p1 = new Phase("PhaseA");
+        phases.add(p1);
+        Phase p2 = new Phase("PhaseB");
+        phases.add(p2);
+
+        MessageContext msg = new MessageContext(new ConfigurationContext(new AxisConfigurationImpl()),
+                new MessageInformationHeadersCollection());
+
+        PhaseHolder ph = new PhaseHolder(phases);
+        HandlerDescription hm = new HandlerDescription();
+        hm.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+        Handler h1 = new PhaseRuleHandlers();
+        h1.init(hm);
+        ((PhaseRuleHandlers) h1).setName(new QName("First"));
+        hm.setHandler(h1);
+        hm.setName(new QName("H1"));
+        PhaseRule rule = new PhaseRule();
+        rule.setPhaseName("PhaseA");
+        hm.setRules(rule);
+        ph.addHandler(hm);
+
+        HandlerDescription hm1 = new HandlerDescription();
+        hm1.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+        Handler h2 = new PhaseRuleHandlers();
+        ((PhaseRuleHandlers) h2).setName(new QName("Second"));
+        h2.init(hm1);
+        hm1.setHandler(h2);
+        hm1.setName(new QName("H2"));
+        PhaseRule rule1 = new PhaseRule();
+        rule1.setPhaseName("PhaseA");
+        rule1.setBefore("H1");
+        hm1.setRules(rule1);
+        ph.addHandler(hm1);
+
+        ArrayList handlers = p1.getHandlers();
+        Handler handler = (Handler) handlers.get(0);
+        if(!handler.getName().equals(new QName("Second"))){
+            fail("Computed Hnadler order is wrong ");
+        }
+        handler = (Handler) handlers.get(1);
+        if(!handler.getName().equals(new QName("First"))){
+            fail("Computed Hnadler order is wrong ");
+        }
+        p1.invoke(msg);
+    }
+
+}

Added: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeWithNoFirstHandlerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeWithNoFirstHandlerTest.java?rev=171087&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeWithNoFirstHandlerTest.java (added)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/BeforeWithNoFirstHandlerTest.java Fri May 20 02:28:54 2005
@@ -0,0 +1,91 @@
+package org.apache.axis.phaserule;
+
+import junit.framework.TestCase;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Phase;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.addressing.MessageInformationHeadersCollection;
+import org.apache.axis.phaseresolver.PhaseHolder;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.PhaseRule;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * 
+ */
+
+/**
+ * Author : Deepal Jayasinghe
+ * Date: May 20, 2005
+ * Time: 3:04:42 PM
+ */
+public class BeforeWithNoFirstHandlerTest extends TestCase{
+    public void testBeforewithNoFirst() throws AxisFault {
+        ArrayList phases = new ArrayList();
+        Phase p1 = new Phase("PhaseA");
+        phases.add(p1);
+        Phase p2 = new Phase("PhaseB");
+        phases.add(p2);
+
+        MessageContext msg = new MessageContext(new ConfigurationContext(new AxisConfigurationImpl()),
+                new MessageInformationHeadersCollection());
+
+        PhaseHolder ph = new PhaseHolder(phases);
+
+
+        HandlerDescription hm1 = new HandlerDescription();
+        hm1.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+        Handler h2 = new PhaseRuleHandlers();
+        ((PhaseRuleHandlers) h2).setName(new QName("Second"));
+        h2.init(hm1);
+        hm1.setHandler(h2);
+        hm1.setName(new QName("H2"));
+        PhaseRule rule1 = new PhaseRule();
+        rule1.setPhaseName("PhaseA");
+        rule1.setBefore("H1");
+        hm1.setRules(rule1);
+        ph.addHandler(hm1);
+
+        HandlerDescription hm = new HandlerDescription();
+        hm.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+        Handler h1 = new PhaseRuleHandlers();
+        h1.init(hm);
+        ((PhaseRuleHandlers) h1).setName(new QName("First"));
+        hm.setHandler(h1);
+        hm.setName(new QName("H1"));
+        PhaseRule rule = new PhaseRule();
+        rule.setPhaseName("PhaseA");
+        hm.setRules(rule);
+        ph.addHandler(hm);
+
+        ArrayList handlers = p1.getHandlers();
+        Handler handler = (Handler) handlers.get(0);
+        if(!handler.getName().equals(new QName("Second"))){
+            fail("Computed Hnadler order is wrong ");
+        }
+        handler = (Handler) handlers.get(1);
+        if(!handler.getName().equals(new QName("First"))){
+            fail("Computed Hnadler order is wrong ");
+        }
+        p1.invoke(msg);
+    }
+}

Added: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseFirstRulesTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseFirstRulesTest.java?rev=171087&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseFirstRulesTest.java (added)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseFirstRulesTest.java Fri May 20 02:28:54 2005
@@ -0,0 +1,86 @@
+package org.apache.axis.phaserule;
+
+import junit.framework.TestCase;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Phase;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.addressing.MessageInformationHeadersCollection;
+import org.apache.axis.phaseresolver.PhaseHolder;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.PhaseRule;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * 
+ */
+
+/**
+ * Author : Deepal Jayasinghe
+ * Date: May 20, 2005
+ * Time: 2:43:27 PM
+ */
+public class InvalidPhaseFirstRulesTest extends TestCase{
+
+     public void testInvalidPhaseFirst1() {
+         try {
+             ArrayList phases = new ArrayList();
+             Phase p1 = new Phase("PhaseA");
+             phases.add(p1);
+             Phase p2 = new Phase("PhaseB");
+             phases.add(p2);
+
+             MessageContext msg = new MessageContext(new ConfigurationContext(new AxisConfigurationImpl()),
+                     new MessageInformationHeadersCollection());
+
+             PhaseHolder ph = new PhaseHolder(phases);
+             HandlerDescription hm = new HandlerDescription();
+             hm.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+             Handler h1 = new PhaseRuleHandlers();
+             h1.init(hm);
+             ((PhaseRuleHandlers) h1).setName(new QName("PhaseFirstHnadler"));
+             hm.setHandler(h1);
+             hm.setName(new QName("H1"));
+             PhaseRule rule = new PhaseRule();
+             rule.setPhaseName("PhaseA");
+             rule.setPhaseFirst(true);
+             rule.setBefore("H2");
+             hm.setRules(rule);
+             ph.addHandler(hm);
+
+             HandlerDescription hm1 = new HandlerDescription();
+             hm1.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+             Handler h2 = new PhaseRuleHandlers();
+             ((PhaseRuleHandlers) h2).setName(new QName("Second Handler"));
+             h2.init(hm1);
+             hm1.setHandler(h2);
+             hm1.setName(new QName("H2"));
+             PhaseRule rule1 = new PhaseRule();
+             rule1.setPhaseName("PhaseA");
+             hm1.setRules(rule1);
+             ph.addHandler(hm1);
+             fail("Handler with PhaseFirst can not have any before or after proprty error in ");
+         } catch (AxisFault axisFault) {
+             return;
+         }
+
+     }
+}

Added: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseFirstTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseFirstTest.java?rev=171087&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseFirstTest.java (added)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseFirstTest.java Fri May 20 02:28:54 2005
@@ -0,0 +1,88 @@
+package org.apache.axis.phaserule;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Phase;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.addressing.MessageInformationHeadersCollection;
+import org.apache.axis.phaseresolver.PhaseHolder;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.PhaseRule;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+
+import junit.framework.TestCase;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * 
+ */
+
+/**
+ * Author : Deepal Jayasinghe
+ * Date: May 20, 2005
+ * Time: 2:40:30 PM
+ */
+public class InvalidPhaseFirstTest extends TestCase{
+
+     public void testInvalidPhaseFirst1()  {
+         try {
+             ArrayList phases = new ArrayList();
+             Phase p1 = new Phase("PhaseA");
+             phases.add(p1);
+             Phase p2 = new Phase("PhaseB");
+             phases.add(p2);
+
+             MessageContext msg = new MessageContext(new ConfigurationContext(new AxisConfigurationImpl()),
+                     new MessageInformationHeadersCollection());
+
+             PhaseHolder ph = new PhaseHolder(phases);
+             HandlerDescription hm = new HandlerDescription();
+             hm.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+             Handler h1 = new PhaseRuleHandlers();
+             h1.init(hm);
+             ((PhaseRuleHandlers) h1).setName(new QName("PhaseFirstHnadler"));
+             hm.setHandler(h1);
+             hm.setName(new QName("H1"));
+             PhaseRule rule = new PhaseRule();
+             rule.setPhaseName("PhaseA");
+             rule.setPhaseFirst(true);
+             hm.setRules(rule);
+             ph.addHandler(hm);
+
+             HandlerDescription hm1 = new HandlerDescription();
+             hm1.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+             Handler h2 = new PhaseRuleHandlers();
+             ((PhaseRuleHandlers) h2).setName(new QName("Second Handler"));
+             h2.init(hm1);
+             hm1.setHandler(h2);
+             hm1.setName(new QName("H2"));
+             PhaseRule rule1 = new PhaseRule();
+             rule1.setPhaseName("PhaseA");
+             rule1.setPhaseFirst(true);
+             hm1.setRules(rule1);
+             ph.addHandler(hm1);
+             fail("This should be faild with PhaseFirst alredy has been set, cannot have two " +
+                     "phaseFirst Handler for same phase ");
+         } catch (AxisFault axisFault) {
+             return;
+         }
+
+     }
+}

Added: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseLastRuleTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseLastRuleTest.java?rev=171087&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseLastRuleTest.java (added)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseLastRuleTest.java Fri May 20 02:28:54 2005
@@ -0,0 +1,88 @@
+package org.apache.axis.phaserule;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+
+import org.apache.axis.engine.Phase;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.addressing.MessageInformationHeadersCollection;
+import org.apache.axis.phaseresolver.PhaseHolder;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.PhaseRule;
+
+import javax.xml.namespace.QName;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * 
+ */
+
+/**
+ * Author : Deepal Jayasinghe
+ * Date: May 20, 2005
+ * Time: 2:54:50 PM
+ */
+public class InvalidPhaseLastRuleTest extends TestCase{
+
+     public void testInvalidPhaseLast() {
+         try {
+             ArrayList phases = new ArrayList();
+             Phase p1 = new Phase("PhaseA");
+             phases.add(p1);
+             Phase p2 = new Phase("PhaseB");
+             phases.add(p2);
+
+             MessageContext msg = new MessageContext(new ConfigurationContext(new AxisConfigurationImpl()),
+                     new MessageInformationHeadersCollection());
+
+             PhaseHolder ph = new PhaseHolder(phases);
+             HandlerDescription hm = new HandlerDescription();
+             hm.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+             Handler h1 = new PhaseRuleHandlers();
+             h1.init(hm);
+             ((PhaseRuleHandlers) h1).setName(new QName("PhaseFirstHnadler"));
+             hm.setHandler(h1);
+             hm.setName(new QName("H1"));
+             PhaseRule rule = new PhaseRule();
+             rule.setPhaseName("PhaseA");
+             rule.setPhaseLast(true);
+             rule.setBefore("H2");
+             hm.setRules(rule);
+             ph.addHandler(hm);
+
+             HandlerDescription hm1 = new HandlerDescription();
+             hm1.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+             Handler h2 = new PhaseRuleHandlers();
+             ((PhaseRuleHandlers) h2).setName(new QName("Second Handler"));
+             h2.init(hm1);
+             hm1.setHandler(h2);
+             hm1.setName(new QName("H2"));
+             PhaseRule rule1 = new PhaseRule();
+             rule1.setPhaseName("PhaseA");
+             hm1.setRules(rule1);
+             ph.addHandler(hm1);
+             fail("Handler with PhaseFirst can not have any before or after proprty error in ");
+         } catch (AxisFault axisFault) {
+             return;
+         }
+
+     }
+}

Modified: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseRuleTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseRuleTest.java?rev=171087&r1=171086&r2=171087&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseRuleTest.java (original)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaseRuleTest.java Fri May 20 02:28:54 2005
@@ -82,13 +82,6 @@
             rule3.setPhaseName("Logging");
             hm3.setRules(rule3);
             ph.addHandler(hm3);
-
-
-           /* ArrayList oh = ph.getOrderHandler();
-            for (int i = 0; i < oh.size(); i++) {
-                HandlerDescription metadata = (HandlerDescription) oh.get(i);
-                System.out.println("Name:" + metadata.getName().getLocalPart());
-            }*/
             fail("this must failed gracefully with PhaseException ");
         } catch (Exception e) {
             e.printStackTrace();
@@ -99,7 +92,7 @@
     public void testInvalidPhaseRule2() {
         try {
             super.setUp();
-            //TODO Fix me
+
             phaserul = new InvalidPhaseRuleTest("");
             axisSytem = new AxisConfigurationImpl();
             ArrayList inPhase = axisSytem.getInPhasesUptoAndIncludingPostDispatch();
@@ -135,11 +128,6 @@
             hm1.setRules(rule1);
             ph.addHandler(hm1);
 
-           /* ArrayList oh = ph.getOrderHandler();
-            for (int i = 0; i < oh.size(); i++) {
-                HandlerDescription metadata = (HandlerDescription) oh.get(i);
-                System.out.println("Name:" + metadata.getName().getLocalPart());
-            }*/
             fail("this must failed gracefully with PhaseException ");
         } catch (Exception e) {
             e.printStackTrace();

Added: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaselastTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaselastTest.java?rev=171087&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaselastTest.java (added)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/InvalidPhaselastTest.java Fri May 20 02:28:54 2005
@@ -0,0 +1,89 @@
+package org.apache.axis.phaserule;
+
+import junit.framework.TestCase;
+
+import java.util.ArrayList;
+
+import org.apache.axis.engine.Phase;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.addressing.MessageInformationHeadersCollection;
+import org.apache.axis.phaseresolver.PhaseHolder;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.PhaseRule;
+
+import javax.xml.namespace.QName;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * 
+ */
+
+/**
+ * Author : Deepal Jayasinghe
+ * Date: May 20, 2005
+ * Time: 2:53:05 PM
+ */
+public class InvalidPhaselastTest extends TestCase{
+
+     public void testInvalidPhaseLast()  {
+         try {
+             ArrayList phases = new ArrayList();
+             Phase p1 = new Phase("PhaseA");
+             phases.add(p1);
+             Phase p2 = new Phase("PhaseB");
+             phases.add(p2);
+
+             MessageContext msg = new MessageContext(new ConfigurationContext(new AxisConfigurationImpl()),
+                     new MessageInformationHeadersCollection());
+
+             PhaseHolder ph = new PhaseHolder(phases);
+             HandlerDescription hm = new HandlerDescription();
+             hm.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+             Handler h1 = new PhaseRuleHandlers();
+             h1.init(hm);
+             ((PhaseRuleHandlers) h1).setName(new QName("PhaseLast"));
+             hm.setHandler(h1);
+             hm.setName(new QName("H1"));
+             PhaseRule rule = new PhaseRule();
+             rule.setPhaseName("PhaseA");
+             rule.setPhaseLast(true);
+             hm.setRules(rule);
+             ph.addHandler(hm);
+
+             HandlerDescription hm1 = new HandlerDescription();
+             hm1.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+             Handler h2 = new PhaseRuleHandlers();
+             ((PhaseRuleHandlers) h2).setName(new QName("Second Handler"));
+             h2.init(hm1);
+             hm1.setHandler(h2);
+             hm1.setName(new QName("H2"));
+             PhaseRule rule1 = new PhaseRule();
+             rule1.setPhaseName("PhaseA");
+             rule1.setPhaseLast(true);
+             hm1.setRules(rule1);
+             ph.addHandler(hm1);
+             fail("This should be faild with Phaselast alredy has been set, cannot have two " +
+                     "phaseFirst Handler for same phase ");
+         } catch (AxisFault axisFault) {
+             return;
+         }
+
+     }
+}

Added: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseFirstTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseFirstTest.java?rev=171087&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseFirstTest.java (added)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseFirstTest.java Fri May 20 02:28:54 2005
@@ -0,0 +1,92 @@
+package org.apache.axis.phaserule;
+
+import junit.framework.TestCase;
+import org.apache.axis.addressing.MessageInformationHeadersCollection;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.PhaseRule;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.Phase;
+import org.apache.axis.phaseresolver.PhaseHolder;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * 
+ */
+
+/**
+ * Author : Deepal Jayasinghe
+ * Date: May 20, 2005
+ * Time: 1:57:35 PM
+ */
+public class PhaseFirstTest extends TestCase {
+
+    public void testPhaseFirst() throws AxisFault {
+        ArrayList phases = new ArrayList();
+        Phase p1 = new Phase("PhaseA");
+        phases.add(p1);
+        Phase p2 = new Phase("PhaseB");
+        phases.add(p2);
+
+        MessageContext msg = new MessageContext(new ConfigurationContext(new AxisConfigurationImpl()),
+                new MessageInformationHeadersCollection());
+
+        PhaseHolder ph = new PhaseHolder(phases);
+        HandlerDescription hm = new HandlerDescription();
+        hm.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+        Handler h1 = new PhaseRuleHandlers();
+        h1.init(hm);
+        ((PhaseRuleHandlers) h1).setName(new QName("PhaseFirstHnadler"));
+        hm.setHandler(h1);
+        hm.setName(new QName("H1"));
+        PhaseRule rule = new PhaseRule();
+        rule.setPhaseName("PhaseA");
+        rule.setPhaseFirst(true);
+        hm.setRules(rule);
+        ph.addHandler(hm);
+
+        HandlerDescription hm1 = new HandlerDescription();
+        hm1.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+        Handler h2 = new PhaseRuleHandlers();
+        ((PhaseRuleHandlers) h2).setName(new QName("Second Handler"));
+        h2.init(hm1);
+        hm1.setHandler(h2);
+        hm1.setName(new QName("H2"));
+        PhaseRule rule1 = new PhaseRule();
+        rule1.setPhaseName("PhaseA");
+        rule1.setAfter("H1");
+        hm1.setRules(rule1);
+        ph.addHandler(hm1);
+
+        ArrayList handlers = p1.getHandlers();
+        Handler handler = (Handler) handlers.get(0);
+        if(!handler.getName().equals(new QName("PhaseFirstHnadler"))){
+            fail("Computed Hnadler order is wrong ");
+        }
+        handler = (Handler) handlers.get(1);
+        if(!handler.getName().equals(new QName("Second Handler"))){
+            fail("Computed Hnadler order is wrong ");
+        }
+        p1.invoke(msg);
+    }
+
+}

Added: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseLastTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseLastTest.java?rev=171087&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseLastTest.java (added)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseLastTest.java Fri May 20 02:28:54 2005
@@ -0,0 +1,92 @@
+package org.apache.axis.phaserule;
+
+import junit.framework.TestCase;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Phase;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.addressing.MessageInformationHeadersCollection;
+import org.apache.axis.phaseresolver.PhaseHolder;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.PhaseRule;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * 
+ */
+
+/**
+ * Author : Deepal Jayasinghe
+ * Date: May 20, 2005
+ * Time: 2:50:44 PM
+ */
+public class PhaseLastTest extends TestCase{
+
+     public void testPhaseLast() throws AxisFault {
+        ArrayList phases = new ArrayList();
+        Phase p1 = new Phase("PhaseA");
+        phases.add(p1);
+        Phase p2 = new Phase("PhaseB");
+        phases.add(p2);
+
+        MessageContext msg = new MessageContext(new ConfigurationContext(new AxisConfigurationImpl()),
+                new MessageInformationHeadersCollection());
+
+        PhaseHolder ph = new PhaseHolder(phases);
+        HandlerDescription hm = new HandlerDescription();
+        hm.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+        Handler h1 = new PhaseRuleHandlers();
+        h1.init(hm);
+        ((PhaseRuleHandlers) h1).setName(new QName("PhaseLast"));
+        hm.setHandler(h1);
+        hm.setName(new QName("H1"));
+        PhaseRule rule = new PhaseRule();
+        rule.setPhaseName("PhaseA");
+        rule.setPhaseLast(true);
+        hm.setRules(rule);
+        ph.addHandler(hm);
+
+        HandlerDescription hm1 = new HandlerDescription();
+        hm1.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+        Handler h2 = new PhaseRuleHandlers();
+        ((PhaseRuleHandlers) h2).setName(new QName("Second Handler"));
+        h2.init(hm1);
+        hm1.setHandler(h2);
+        hm1.setName(new QName("H2"));
+        PhaseRule rule1 = new PhaseRule();
+        rule1.setPhaseName("PhaseA");
+        rule1.setAfter("H1");
+        hm1.setRules(rule1);
+        ph.addHandler(hm1);
+
+        ArrayList handlers = p1.getHandlers();
+        Handler handler = (Handler) handlers.get(0);
+        if(!handler.getName().equals(new QName("Second Handler"))){
+            fail("Computed Hnadler order is wrong ");
+        }
+        handler = (Handler) handlers.get(1);
+        if(!handler.getName().equals(new QName("PhaseLast"))){
+            fail("Computed Hnadler order is wrong ");
+        }
+
+        p1.invoke(msg);
+    }
+}

Modified: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseRuleHandlers.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseRuleHandlers.java?rev=171087&r1=171086&r2=171087&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseRuleHandlers.java (original)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/PhaseRuleHandlers.java Fri May 20 02:28:54 2005
@@ -47,11 +47,12 @@
     }
 
     public void invoke(MessageContext msgContext) throws AxisFault {
-        log.info("I am " + message + " Handler Running :)");
+        System.out.println("I am " + name + " Handler Running :)");
+        log.info("I am " + name + " Handler Running :)");
     }
 
     public void revoke(MessageContext msgContext) {
-        log.info("I am " + message + " Handler Running :)");
+        log.info("I am " + name + " Handler Running :)");
     }
 
     public void setName(QName name) {

Added: webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/SingleHandlerPhaseTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/SingleHandlerPhaseTest.java?rev=171087&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/SingleHandlerPhaseTest.java (added)
+++ webservices/axis/trunk/java/modules/core/test/org/apache/axis/phaserule/SingleHandlerPhaseTest.java Fri May 20 02:28:54 2005
@@ -0,0 +1,88 @@
+package org.apache.axis.phaserule;
+
+import junit.framework.TestCase;
+import org.apache.axis.addressing.MessageInformationHeadersCollection;
+import org.apache.axis.context.ConfigurationContext;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.HandlerDescription;
+import org.apache.axis.description.PhaseRule;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.Phase;
+import org.apache.axis.phaseresolver.PhaseHolder;
+
+import javax.xml.namespace.QName;
+import java.util.ArrayList;
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * 
+ */
+
+/**
+ * Author : Deepal Jayasinghe
+ * Date: May 20, 2005
+ * Time: 2:57:21 PM
+ */
+public class SingleHandlerPhaseTest extends TestCase {
+
+    public void testSingleHandler() {
+        try {
+            ArrayList phases = new ArrayList();
+            Phase p1 = new Phase("PhaseA");
+            phases.add(p1);
+            Phase p2 = new Phase("PhaseB");
+            phases.add(p2);
+
+            MessageContext msg = new MessageContext(new ConfigurationContext(new AxisConfigurationImpl()),
+                    new MessageInformationHeadersCollection());
+
+            PhaseHolder ph = new PhaseHolder(phases);
+            HandlerDescription hm = new HandlerDescription();
+            hm.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+            Handler h1 = new PhaseRuleHandlers();
+            h1.init(hm);
+            ((PhaseRuleHandlers) h1).setName(new QName("PhaseFirstHnadler"));
+            hm.setHandler(h1);
+            hm.setName(new QName("H1"));
+            PhaseRule rule = new PhaseRule();
+            rule.setPhaseName("PhaseA");
+            rule.setPhaseFirst(true);
+            rule.setPhaseLast(true);
+            hm.setRules(rule);
+            ph.addHandler(hm);
+
+            HandlerDescription hm1 = new HandlerDescription();
+            hm1.setClassName("org.apache.axis.phaserule.PhaseRuleHandlers");
+            Handler h2 = new PhaseRuleHandlers();
+            ((PhaseRuleHandlers) h2).setName(new QName("Second Handler"));
+            h2.init(hm1);
+            hm1.setHandler(h2);
+            hm1.setName(new QName("H2"));
+            PhaseRule rule1 = new PhaseRule();
+            rule1.setPhaseName("PhaseA");
+            rule1.setAfter("H1");
+            hm1.setRules(rule1);
+            ph.addHandler(hm1);
+            p1.invoke(msg);
+            fail("This should fail with : can only have one handler, since there is a " +
+                       "handler with both phaseFirst and PhaseLast true ");
+        } catch (AxisFault axisFault) {
+            return;
+        }
+    }
+}