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>