001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one
003: * or more contributor license agreements. See the NOTICE file
004: * distributed with this work for additional information
005: * regarding copyright ownership. The ASF licenses this file
006: * to you under the Apache License, Version 2.0 (the
007: * "License"); you may not use this file except in compliance
008: * with the License. You may obtain a copy of the License at
009: *
010: * http://www.apache.org/licenses/LICENSE-2.0
011: *
012: * Unless required by applicable law or agreed to in writing,
013: * software distributed under the License is distributed on an
014: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015: * KIND, either express or implied. See the License for the
016: * specific language governing permissions and limitations
017: * under the License.
018: */
019: package org.apache.axis2.deployment;
020:
021: import junit.framework.TestCase;
022: import org.apache.axis2.AxisFault;
023: import org.apache.axis2.AbstractTestCase;
024: import org.apache.axis2.context.ConfigurationContextFactory;
025: import org.apache.axis2.description.AxisModule;
026: import org.apache.axis2.description.AxisOperation;
027: import org.apache.axis2.description.AxisService;
028: import org.apache.axis2.description.InOutAxisOperation;
029: import org.apache.axis2.engine.AxisConfiguration;
030: import org.apache.axis2.engine.Phase;
031:
032: import javax.xml.namespace.QName;
033: import java.util.ArrayList;
034:
035: public class ModuleDisengagementTest extends TestCase {
036: AxisConfiguration config;
037: String serviceName = "testService";
038: QName opName = new QName("testOperation");
039:
040: protected void setUp() throws Exception {
041: String filename = AbstractTestCase.basedir
042: + "/test-resources/deployment/moduleDisEngegeRepo";
043: config = ConfigurationContextFactory
044: .createConfigurationContextFromFileSystem(filename,
045: null).getAxisConfiguration();
046: AxisService testService = new AxisService();
047: testService.setName(serviceName);
048: AxisOperation testOperation = new InOutAxisOperation();
049: testOperation.setName(opName);
050: testService.addOperation(testOperation);
051:
052: testOperation = new InOutAxisOperation();
053: testOperation.setName(new QName("oper2"));
054: testService.addOperation(testOperation);
055:
056: config.addService(testService);
057: }
058:
059: public void testGlobalDisengagement() throws AxisFault {
060: AxisModule module = config.getModule("testModule");
061: assertNotNull(module);
062: Phase phase;
063: Phase userPhase;
064: ArrayList globalinflow = config.getInFlowPhases();
065: assertNotNull(globalinflow);
066: phase = (Phase) globalinflow.get(3);
067: assertNotNull(phase);
068: assertEquals(phase.getHandlerCount(), 0);
069: AxisService service = config.getService(serviceName);
070: assertNotNull(service);
071: AxisOperation operation = service.getOperation(opName);
072: assertNotNull(operation);
073: userPhase = (Phase) operation.getRemainingPhasesInFlow().get(1);
074: assertNotNull(userPhase);
075: assertEquals(0, userPhase.getHandlerCount());
076:
077: config.engageModule(module.getName());
078: assertEquals(2, phase.getHandlerCount());
079: assertEquals(1, userPhase.getHandlerCount());
080:
081: config.disengageModule(module);
082: assertEquals(0, phase.getHandlerCount());
083: assertEquals(0, userPhase.getHandlerCount());
084: }
085:
086: public void testServiceDisengagement() throws AxisFault {
087: AxisModule module = config.getModule("testModule");
088: assertNotNull(module);
089: Phase phase;
090: Phase userPhase;
091: ArrayList globalinflow = config.getInFlowPhases();
092: assertNotNull(globalinflow);
093: phase = (Phase) globalinflow.get(3);
094: assertNotNull(phase);
095: assertEquals(0, phase.getHandlerCount());
096: AxisService service = config.getService(serviceName);
097: assertNotNull(service);
098: AxisOperation operation = service.getOperation(opName);
099: assertNotNull(operation);
100:
101: userPhase = (Phase) operation.getRemainingPhasesInFlow().get(1);
102: assertNotNull(userPhase);
103: assertEquals(0, userPhase.getHandlerCount());
104:
105: config.engageModule(module.getName());
106: assertEquals(2, phase.getHandlerCount());
107: assertEquals(1, userPhase.getHandlerCount());
108:
109: service.disengageModule(module);
110: assertEquals(2, phase.getHandlerCount());
111: assertEquals(0, userPhase.getHandlerCount());
112: }
113:
114: public void testGlobalCheck() throws AxisFault {
115: AxisModule module = config.getModule("testModule");
116: assertNotNull(module);
117: config.engageModule(module.getName());
118: config.disengageModule(module);
119: config.engageModule(module.getName());
120: }
121:
122: public void testOperationDisengagement() throws AxisFault {
123: AxisModule module = config.getModule("testModule");
124: assertNotNull(module);
125: Phase phase;
126: Phase userPhase;
127: ArrayList globalinflow = config.getInFlowPhases();
128: assertNotNull(globalinflow);
129: phase = (Phase) globalinflow.get(3);
130: assertNotNull(phase);
131: assertEquals(phase.getHandlerCount(), 0);
132: AxisService service = config.getService(serviceName);
133: assertNotNull(service);
134: AxisOperation operation = service.getOperation(opName);
135: assertNotNull(operation);
136: userPhase = (Phase) operation.getRemainingPhasesInFlow().get(1);
137: assertNotNull(userPhase);
138: assertEquals(0, userPhase.getHandlerCount());
139:
140: config.engageModule(module.getName());
141: assertEquals(2, phase.getHandlerCount());
142: assertEquals(1, userPhase.getHandlerCount());
143:
144: operation.disengageModule(module);
145: assertEquals(2, phase.getHandlerCount());
146: assertEquals(0, userPhase.getHandlerCount());
147: }
148:
149: public void testServiceEngageServiceDisengage() throws AxisFault {
150: AxisModule module = config.getModule("testModule");
151: assertNotNull(module);
152: Phase predisptah;
153: Phase userPhase;
154: ArrayList globalinflow = config.getInFlowPhases();
155: assertNotNull(globalinflow);
156: predisptah = (Phase) globalinflow.get(3);
157: assertNotNull(predisptah);
158: assertEquals(predisptah.getHandlerCount(), 0);
159: AxisService service = config.getService(serviceName);
160: assertNotNull(service);
161: AxisOperation operation = service.getOperation(opName);
162: assertNotNull(operation);
163: userPhase = (Phase) operation.getRemainingPhasesInFlow().get(1);
164: assertNotNull(userPhase);
165: assertEquals(0, userPhase.getHandlerCount());
166:
167: service.engageModule(module);
168: assertEquals(2, predisptah.getHandlerCount());
169: assertEquals(1, userPhase.getHandlerCount());
170:
171: service.disengageModule(module);
172: assertEquals(0, predisptah.getHandlerCount());
173: assertEquals(0, userPhase.getHandlerCount());
174: }
175:
176: public void testServiceEngageOperationDisengage() throws AxisFault {
177: AxisModule module = config.getModule("testModule");
178: assertNotNull(module);
179: Phase phase;
180: Phase userPhase;
181: ArrayList globalinflow = config.getInFlowPhases();
182: assertNotNull(globalinflow);
183: phase = (Phase) globalinflow.get(3);
184: assertNotNull(phase);
185: assertEquals(phase.getHandlerCount(), 0);
186: AxisService service = config.getService(serviceName);
187: assertNotNull(service);
188: AxisOperation operation = service.getOperation(opName);
189: assertNotNull(operation);
190: userPhase = (Phase) operation.getRemainingPhasesInFlow().get(1);
191: assertNotNull(userPhase);
192: assertEquals(0, userPhase.getHandlerCount());
193:
194: service.engageModule(module);
195: assertEquals(2, phase.getHandlerCount());
196: assertEquals(1, userPhase.getHandlerCount());
197:
198: operation.disengageModule(module);
199: assertEquals(2, phase.getHandlerCount());
200: assertEquals(0, userPhase.getHandlerCount());
201: }
202:
203: public void testOperationEngageOperationDisengage()
204: throws AxisFault {
205: AxisModule module = config.getModule("testModule");
206: assertNotNull(module);
207: Phase phase;
208: Phase userPhase;
209: ArrayList globalinflow = config.getInFlowPhases();
210: assertNotNull(globalinflow);
211: phase = (Phase) globalinflow.get(3);
212: assertNotNull(phase);
213: assertEquals(phase.getHandlerCount(), 0);
214: AxisService service = config.getService(serviceName);
215: assertNotNull(service);
216: AxisOperation operation = service.getOperation(opName);
217: assertNotNull(operation);
218: userPhase = (Phase) operation.getRemainingPhasesInFlow().get(1);
219: assertNotNull(userPhase);
220: assertEquals(0, userPhase.getHandlerCount());
221: operation.engageModule(module);
222: assertEquals(2, phase.getHandlerCount());
223: assertEquals(1, userPhase.getHandlerCount());
224: operation.disengageModule(module);
225: assertEquals(0, phase.getHandlerCount());
226: assertEquals(0, userPhase.getHandlerCount());
227: }
228:
229: }
|