jaliya 2005/02/20 22:42:16
Added: sandesha/test/org/apache/sandesha AbstractTestCase.java
sandesha/test/org/apache/sandesha/server
TCMessageValidator.java
Log:
Added the test directory and the one test class. All the test cases will use
AbstractTestCase to locate the paths
Revision Changes Path
1.1
ws-fx/sandesha/test/org/apache/sandesha/AbstractTestCase.java
Index: AbstractTestCase.java
===================================================================
/*
* Copyright 2001-2004 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.
*/
package org.apache.sandesha;
import junit.framework.TestCase;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
import org.apache.axis.message.SOAPEnvelope;
import java.io.File;
import java.io.FileInputStream;
/**
* Abstract base class for test cases.
*/
public abstract class AbstractTestCase
extends TestCase {
protected String testDir = "test";
//protected String sampleDir = "src/samples/";
//protected String outDir = "target/generated/samples/";
//protected String tempDir = "target/generated/temp";
protected String testResourceDir = "test-resources";
/**
* Basedir for all file I/O. Important when running tests from
* the reactor.
*/
public String basedir = System.getProperty("basedir");
/**
* Constructor.
*/
public AbstractTestCase(String testName) {
super(testName);
if (basedir == null) {
basedir = new File(".").getAbsolutePath();
}
testDir = new File(basedir, testDir).getAbsolutePath();
//sampleDir = new File(basedir,sampleDir).getAbsolutePath();
//outDir = new File(basedir,outDir).getAbsolutePath();
//tempDir = new File(basedir,tempDir).getAbsolutePath();
testResourceDir = new File(basedir,
testResourceDir).getAbsolutePath();
}
public File getTestResourceFile(String relativePath) {
return new File(testResourceDir, relativePath);
}
public RMMessageContext getRMMessageContext(String relativePath) throws
Exception {
FileInputStream fin = new
FileInputStream(getTestResourceFile(relativePath));
SOAPEnvelope sEnv = new SOAPEnvelope(fin);
MessageContext msgCtx = new MessageContext(null);
msgCtx.setRequestMessage(new Message(sEnv));
RMMessageContext rmMsgCtx = new RMMessageContext();
rmMsgCtx.setMsgContext(msgCtx);
return rmMsgCtx;
}
}
1.1
ws-fx/sandesha/test/org/apache/sandesha/server/TCMessageValidator.java
Index: TCMessageValidator.java
===================================================================
/*
* Copyright 1999-2004 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.
*
*/
package org.apache.sandesha.test;
import org.apache.axis.AxisFault;
import org.apache.axis.Message;
import org.apache.axis.MessageContext;
import org.apache.axis.message.SOAPEnvelope;
import org.apache.axis.message.SOAPFault;
import org.apache.axis.message.addressing.AddressingHeaders;
import org.apache.sandesha.AbstractTestCase;
import org.apache.sandesha.Constants;
import org.apache.sandesha.RMMessageContext;
import org.apache.sandesha.server.MessageValidator;
import org.apache.sandesha.ws.rm.RMHeaders;
import org.apache.sandesha.ws.rm.providers.RMProvider;
import org.apache.sandesha.ws.utility.Identifier;
public class TCMessageValidator extends AbstractTestCase {
/**
* Constructor.
*/
public TCMessageValidator(String testName) {
super(testName);
}
protected void setUp() throws Exception {
}
public void testValidateNoAddressingHeaders() throws Exception {
RMMessageContext rmMsgCtx =
getRMMessageContext("server/validation/NoAddrHeadersMsg.xml");
try {
MessageValidator.validate(rmMsgCtx, false);
} catch (AxisFault af) {
assertEquals(af.getFaultString(),
Constants.FaultMessages.NO_ADDRESSING_HEADERS);
}
}
public void testValidateNoMessageID() throws Exception {
RMMessageContext rmMsgCtx =
getRMMessageContext("server/validation/NoMessageIDMsg.xml");
MessageContext msgCtx = rmMsgCtx.getMsgContext();
AddressingHeaders addrHeaders = new
AddressingHeaders(rmMsgCtx.getMsgContext().getRequestMessage().getSOAPEnvelope());
msgCtx.setProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_REQUEST_HEADERS,
addrHeaders);
rmMsgCtx.setMsgContext(msgCtx);
try {
MessageValidator.validate(rmMsgCtx, false);
} catch (AxisFault af) {
assertEquals(af.getFaultString(),
Constants.FaultMessages.NO_MESSAGE_ID);
}
}
public void testValidateNoRMHeaders() throws Exception {
RMMessageContext rmMsgCtx =
getRMMessageContext("server/validation/NoRMHeadersMsg.xml");
MessageContext msgCtx = rmMsgCtx.getMsgContext();
AddressingHeaders addrHeaders = new
AddressingHeaders(rmMsgCtx.getMsgContext().getRequestMessage().getSOAPEnvelope());
msgCtx.setProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_REQUEST_HEADERS,
addrHeaders);
rmMsgCtx.setMsgContext(msgCtx);
try {
MessageValidator.validate(rmMsgCtx, false);
} catch (AxisFault af) {
SOAPFault sf = new SOAPFault(af);
assertEquals(af.getFaultString(),
Constants.FaultMessages.NO_RM_HEADES);
}
}
public void testValidateMsgNoRollOver() throws Exception {
RMMessageContext rmMsgCtx =
getRMMessageContext("server/validation/MsgNoRollOver.xml");
MessageContext msgCtx = rmMsgCtx.getMsgContext();
AddressingHeaders addrHeaders = new
AddressingHeaders(rmMsgCtx.getMsgContext().getRequestMessage().getSOAPEnvelope());
msgCtx.setProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_REQUEST_HEADERS,
addrHeaders);
rmMsgCtx.setMsgContext(msgCtx);
try {
MessageValidator.validate(rmMsgCtx, false);
} catch (AxisFault af) {
SOAPFault sf = new SOAPFault(af);
//System.out.println(sf.toString());
assertEquals(af.getFaultString(),
Constants.FaultMessages.MSG_NO_ROLLOVER);
}
}
public void testValidateUnknownSequence() throws Exception {
RMMessageContext rmMsgCtx =
getRMMessageContext("server/validation/UnknownSequenceMsg.xml");
MessageContext msgCtx = rmMsgCtx.getMsgContext();
AddressingHeaders addrHeaders = new
AddressingHeaders(rmMsgCtx.getMsgContext().getRequestMessage().getSOAPEnvelope());
msgCtx.setProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_REQUEST_HEADERS,
addrHeaders);
rmMsgCtx.setMsgContext(msgCtx);
try {
MessageValidator.validate(rmMsgCtx, false);
} catch (AxisFault af) {
SOAPFault sf = new SOAPFault(af);
//System.out.println(sf.toString());
assertEquals(af.getFaultString(),
Constants.FaultMessages.UNKNOWN_SEQUENCE);
}
}
public void testValidateKnonwSequence() throws Exception {
RMMessageContext rmMsgCtx1 =
getRMMessageContext("server/validation/CreateSeqRequest.xml");
MessageContext msgCtx1 = rmMsgCtx1.getMsgContext();
AddressingHeaders addrHeaders = new
AddressingHeaders(rmMsgCtx1.getMsgContext().getRequestMessage().getSOAPEnvelope());
msgCtx1.setProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_REQUEST_HEADERS,
addrHeaders);
rmMsgCtx1.setMsgContext(msgCtx1);
RMMessageContext rmMsgCtx2 =
getRMMessageContext("server/validation/MsgNo1Correct.xml");
MessageContext msgCtx2 = rmMsgCtx2.getMsgContext();
addrHeaders = new
AddressingHeaders(rmMsgCtx2.getMsgContext().getRequestMessage().getSOAPEnvelope());
msgCtx2.setProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_REQUEST_HEADERS,
addrHeaders);
rmMsgCtx2.setMsgContext(msgCtx2);
try {
RMProvider rmProvider = new RMProvider();
rmProvider.processMessage(msgCtx1, null, null, null);
SOAPEnvelope soapEnv =
msgCtx1.getResponseMessage().getSOAPEnvelope();
RMHeaders rmHeaders = new RMHeaders();
rmHeaders.fromSOAPEnvelope(soapEnv);
String seqID =
rmHeaders.getCreateSequenceResponse().getIdentifier().getIdentifier();
RMHeaders rmH = new RMHeaders();
SOAPEnvelope soapEnv2 =
msgCtx2.getRequestMessage().getSOAPEnvelope();
rmH.fromSOAPEnvelope(soapEnv2);
Identifier seqIdentifier = rmH.getSequence().getIdentifier();
seqIdentifier.setIdentifier(seqID);
rmH.toSoapEnvelop(soapEnv2);
msgCtx2.setRequestMessage(new Message(soapEnv2));
System.out.println(seqID);
System.out.println(msgCtx2.getRequestMessage().getSOAPEnvelope());
//TODO NEED TO FIX THIS
//rmProvider.processMessage(msgCtx2,null,null,null);
//System.out.println(msgCtx2.getResponseMessage().getSOAPEnvelope());
} catch (AxisFault af) {
SOAPFault sf = new SOAPFault(af);
System.out.println(sf.toString());
assertEquals(af.getFaultString(),
Constants.FaultMessages.UNKNOWN_SEQUENCE);
}
}
}