TestBeanDeserpublic class TestBeanDeser extends TestCase Test deserialization of SOAP responses |
Fields Summary |
---|
private String | header | private String | footer | private org.apache.axis.server.AxisServer | server |
Constructors Summary |
---|
public TestBeanDeser(String name)
this(name, Constants.URI_DEFAULT_SCHEMA_XSI,
Constants.URI_DEFAULT_SCHEMA_XSD);
| public TestBeanDeser(String name, String NS_XSI, String NS_XSD)
super(name);
header =
"<?xml version=\"1.0\"?>\n" +
"<SOAP-ENV:Envelope\n" +
"xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"\n" +
"xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\"\n" +
"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n" +
"xmlns:xsd-cr=\"http://www.w3.org/2000/10/XMLSchema\"\n" +
"xmlns:xsd-lc=\"http://www.w3.org/1999/XMLSchema\"\n" +
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
"SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">\n"+
"<SOAP-ENV:Body>\n";
footer =
"</SOAP-ENV:Body>\n"+
"</SOAP-ENV:Envelope>\n";
TypeMappingRegistry tmr = server.getTypeMappingRegistry();
TypeMapping tm = (TypeMapping) tmr.createTypeMapping();
tm.setSupportedEncodings(new String[]{Constants.URI_DEFAULT_SOAP_ENC});
tmr.register(Constants.URI_DEFAULT_SOAP_ENC, tm);
tm.register(test.encoding.RETURN.class,
new QName("urn:test.encoding", "RETURN"),
new org.apache.axis.encoding.ser.BeanSerializerFactory(
test.encoding.RETURN.class,
new QName("urn:test.encoding", "RETURN")),
new org.apache.axis.encoding.ser.BeanDeserializerFactory(
test.encoding.RETURN.class,
new QName("urn:test.encoding", "RETURN")));
|
Methods Summary |
---|
protected void | deserialize(java.lang.String data, java.lang.Object expected)Verify that a given XML deserialized produces the expected result
deserialize(data, expected, false);
| protected void | deserialize(java.lang.String data, java.lang.Object expected, boolean tryConvert)
Message message = new Message(header + data + footer);
message.setMessageContext(new MessageContext(server));
SOAPEnvelope envelope = (SOAPEnvelope) message.getSOAPEnvelope();
assertNotNull("SOAP envelope should not be null", envelope);
RPCElement body = (RPCElement) envelope.getFirstBody();
assertNotNull("SOAP body should not be null", body);
Vector arglist = body.getParams();
assertNotNull("arglist", arglist);
assertTrue("param.size()<=0 {Should be > 0}", arglist.size() > 0);
RPCParam param = (RPCParam) arglist.get(0);
assertNotNull("SOAP param should not be null", param);
Object result = param.getObjectValue();
if (!equals(result, expected)) {
// Try to convert to the expected class
if (tryConvert) {
Object result2 = JavaUtils.convert(result, expected.getClass());
if (!equals(result2, expected)) {
assertEquals("The result is not what is expected.", expected, result);
}
} else {
assertEquals("The result is not what is expected.", expected, result);
}
}
| private static boolean | equals(java.lang.Object obj1, java.lang.Object obj2)Verify that two objects have the same value, handling arrays...
if ((obj1 == null) || (obj2 == null)) return (obj1 == obj2);
if (obj1.equals(obj2)) return true;
return false;
| public static void | main(java.lang.String[] args)
TestBeanDeser tester = new TestBeanDeser("test");
tester.testReturn();
| public void | testReturn()
test.encoding.RETURN ret = new test.encoding.RETURN();
ret.setTYPE("000");
ret.setID("001");
ret.setNUMBER("002");
ret.setMESSAGE("003");
ret.setLOGNO("004");
ret.setLOGMSGNO("005");
ret.setMESSAGEV1("006");
ret.setMESSAGEV2("007");
ret.setMESSAGEV3("008");
ret.setMESSAGEV4("009");
String response =
"<ser-root:SrvResponse xmlns:ser-root=\"urn:test.encoding\">\n"+
" <ser-root:RETURN xsi:type=\"ser-root:RETURN\">\n"+
" <TYPE xsi:type=\"xsd:string\">000</TYPE>\n"+
" <ID xsi:type=\"xsd:string\">001</ID>\n"+
" <NUMBER xsi:type=\"xsd:string\">002</NUMBER>\n"+
" <MESSAGE xsi:type=\"xsd:string\">003</MESSAGE>\n"+
" <LOG_NO xsi:type=\"xsd:string\">004</LOG_NO>\n"+
" <LOG_MSG_NO xsi:type=\"xsd:string\">005</LOG_MSG_NO>\n"+
" <MESSAGE_V1 xsi:type=\"xsd:string\">006</MESSAGE_V1>\n"+
" <MESSAGE_V2 xsi:type=\"xsd:string\">007</MESSAGE_V2>\n"+
" <MESSAGE_V3 xsi:type=\"xsd:string\">008</MESSAGE_V3>\n"+
" <MESSAGE_V4 xsi:type=\"xsd:string\">009</MESSAGE_V4>\n"+
" </ser-root:RETURN>\n"+
"</ser-root:SrvResponse>";
deserialize(response,ret,true);
|
|