Annotation of embedaddon/php/ext/soap/tests/any.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: SOAP handling of <any>
3: --SKIPIF--
4: <?php require_once('skipif.inc'); ?>
5: --INI--
6: precision=14
7: soap.wsdl_cache_enabled=0
8: --FILE--
9: <?php
10: class SOAPComplexType {
11: function SOAPComplexType($s, $i, $f) {
12: $this->varString = $s;
13: $this->varInt = $i;
14: $this->varFloat = $f;
15: }
16: }
17: $struct = new SOAPComplexType('arg',34,325.325);
18:
19: function echoAnyElement($x) {
20: global $g;
21:
22: $g = $x;
23: $struct = $x->inputAny->any["SOAPComplexType"];
24: if ($struct instanceof SOAPComplexType) {
25: return array("return" => array("any" => array("SOAPComplexType"=>new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPComplexType", "http://soapinterop.org/xsd", "SOAPComplexType", "http://soapinterop.org/"))));
26: } else {
27: return "?";
28: }
29: }
30:
31: class TestSoapClient extends SoapClient {
32: function __construct($wsdl, $options) {
33: parent::__construct($wsdl, $options);
34: $this->server = new SoapServer($wsdl, $options);
35: $this->server->addFunction('echoAnyElement');
36: }
37:
38: function __doRequest($request, $location, $action, $version, $one_way = 0) {
39: ob_start();
40: $this->server->handle($request);
41: $response = ob_get_contents();
42: ob_end_clean();
43: return $response;
44: }
45: }
46:
47: $client = new TestSoapClient(dirname(__FILE__)."/interop/Round4/GroupI/round4_groupI_xsd.wsdl",
48: array("trace"=>1,"exceptions"=>0,
49: 'classmap' => array('SOAPComplexType'=>'SOAPComplexType')));
50: $ret = $client->echoAnyElement(
51: array(
52: "inputAny"=>array(
53: "any"=>new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPComplexType", "http://soapinterop.org/xsd", "SOAPComplexType", "http://soapinterop.org/")
54: )));
55: var_dump($g);
56: var_dump($ret);
57: ?>
58: --EXPECT--
59: object(stdClass)#5 (1) {
60: ["inputAny"]=>
61: object(stdClass)#6 (1) {
62: ["any"]=>
63: array(1) {
64: ["SOAPComplexType"]=>
65: object(SOAPComplexType)#7 (3) {
66: ["varInt"]=>
67: int(34)
68: ["varString"]=>
69: string(3) "arg"
70: ["varFloat"]=>
71: float(325.325)
72: }
73: }
74: }
75: }
76: object(stdClass)#8 (1) {
77: ["return"]=>
78: object(stdClass)#9 (1) {
79: ["any"]=>
80: array(1) {
81: ["SOAPComplexType"]=>
82: object(SOAPComplexType)#10 (3) {
83: ["varInt"]=>
84: int(34)
85: ["varString"]=>
86: string(3) "arg"
87: ["varFloat"]=>
88: float(325.325)
89: }
90: }
91: }
92: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>