Compare commits

...
1 Commits
Author SHA1 Message Date
Martin KutterandMichael G. Schwern bfbf5e27e0 import SOAP-WSDL 1.23 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  1.23
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-1.23.tar.gz
2009-12-12 19:47:40 -08:00
8 changed files with 2048 additions and 1886 deletions
+20 -12
View File
@@ -1,12 +1,20 @@
use Module::Build; #!/usr/bin/perl -w
Module::Build->new( use Module::Build;
dist_abstract => 'WSDL support for SOAP::Lite',
module_name => 'SOAP::WSDL', Module::Build->new(
license => 'artistic', dist_abstract => 'WSDL support for SOAP::Lite',
requires => { module_name => 'SOAP::WSDL',
'SOAP::Lite' => 0., license => 'artistic',
'XML::XPath' => 0 requires => {
}, 'SOAP::Lite' => 0,
buildrequires => { 'Test::More' => 0 }, 'XML::XPath' => 0,
},
)->create_build_script; buildrequires => {
'Test::More' => 0,
'SOAP::Lite' => 0,
'XML::XPath' => 0,
'Time::HiRes' => 0,
'Cwd' => 0,
},
)->create_build_script;
+159 -153
View File
@@ -1,153 +1,159 @@
* v1.22 2007/05/30 - auto-discover service and port again * v1.23 2007/06/05 - bugfixes and optimizations
- re-introduces auto-detecting of servicename and portname - fixes #27426: missing prereq XML::XPath
- fixes #27325: Test fails with Test::Pod::Coverage v 1.06. - fixed build_requires
- Now build requires Test::More - some doc fixes
- documentation update - now performs some initializations on calling portname()
- cosmetics
* v1.22 2007/05/30 - auto-discover service and port again
2007/05/28 private methods made private and pod update - re-introduces auto-detecting of servicename and portname
- added pod tests - fixes #27325: Test fails with Test::Pod::Coverage v 1.06.
- made encodeComplexType and method generators private - Now build requires Test::More
- updated pod - documentation update
- fixed test scripts to work again from within/without t/ - cosmetics
- moved development repository to
https://svn.sourceforge.net/svnroot/soap-wsdl/ (finally !) 2007/05/28 private methods made private and pod update
- added pod tests
2007/05/21 updated base version to customized version from Giovanni S Fois - made encodeComplexType and method generators private
- merged in doc changes, so that they don't refer to "customized version" - updated pod
- changed build process to Build.PL - fixed test scripts to work again from within/without t/
- changed repository layout to support new build process - moved development repository to
https://svn.sourceforge.net/svnroot/soap-wsdl/ (finally !)
2006/11/06 only in the customized version
Added the support for default values in the wsdl file 2007/05/21 updated base version to customized version from Giovanni S Fois
- merged in doc changes, so that they don't refer to "customized version"
2006/11/04 only in the customized version - changed build process to Build.PL
Changed the calling interface. Now it's driven by the by the service - changed repository layout to support new build process
and port names.
2006/11/06 only in the customized version
2006/11/03 only in the customized version Added the support for default values in the wsdl file
Corrected the Check for the correct number of elements in complex types
2006/11/04 only in the customized version
If a complex type is marked optional in a WSDL file, but sub-parts are marked as Changed the calling interface. Now it's driven by the by the service
required, SOAP::WSDL used to die if the complex type was found in the data. and port names.
Now, if a complex type has not data associated and is not strictly required, it
will not be encoded. 2006/11/03 only in the customized version
Corrected the Check for the correct number of elements in complex types
A quick-and-dirty workaround is to turn off the check with
If a complex type is marked optional in a WSDL file, but sub-parts are marked as
$soap->wsdl_checkoccurs(0); required, SOAP::WSDL used to die if the complex type was found in the data.
Now, if a complex type has not data associated and is not strictly required, it
2006/11/02 only in the customized version will not be encoded.
- small changes for .Net compatibility when encoding complex types
- added some test cases to the test suite try perl t/3_varous.t for more details A quick-and-dirty workaround is to turn off the check with
$soap->wsdl_checkoccurs(0);
2006/10/28 only in the customized version
- added a small support for the complexType restrictions of Arrays 2006/11/02 only in the customized version
- small changes for .Net compatibility when encoding complex types
2006/10/02 only in the customized version - added some test cases to the test suite try perl t/3_varous.t for more details
(Thanks to Dan Horne for having spotted so many bugs in a row)
- the xml prefix was used as the default wsdl namespace when looking for the complextype restrictions
- the module crashed when the operation had no part declaration 2006/10/28 only in the customized version
- the port name stated in the service definition was used as the portType - added a small support for the complexType restrictions of Arrays
- the test suited failed when the module was unzipped in a t.* named directory
2006/10/02 only in the customized version
(Thanks to Dan Horne for having spotted so many bugs in a row)
- the xml prefix was used as the default wsdl namespace when looking for the complextype restrictions
2006/09/15 only in the customized version - the module crashed when the operation had no part declaration
(Thanks to Terje Kristensen for his support and twisted wsdl files :) - the port name stated in the service definition was used as the portType
- cleaned up the code for readability - the test suited failed when the module was unzipped in a t.* named directory
- cleaned up the code for "use warnings" and "use strict"
- added support for wsdl files with multiple schema declarations
- added supporto for some restriction on complexTypes
2006/09/15 only in the customized version
(Thanks to Terje Kristensen for his support and twisted wsdl files :)
- cleaned up the code for readability
- cleaned up the code for "use warnings" and "use strict"
2006/07/10 only in the customized version - added support for wsdl files with multiple schema declarations
- added the support for SOAP::header calls - added supporto for some restriction on complexTypes
2006/06/10 only in the customized version
- removed the overload based on the type of the call's parameters
2006/07/10 only in the customized version
- added an overloading support based on the unique name of the input message of the call. The input message must be provided by the calling script (sorry, the module has no mean to find this). - added the support for SOAP::header calls
- added a light support to the sympletypes. 2006/06/10 only in the customized version
- added a light support to the imported namespaces in the types section. - removed the overload based on the type of the call's parameters
- added the support for the multiple SOAP bindings. The correct binding must be provided by the calling script (sorry, the module has no mean to find this). - added an overloading support based on the unique name of the input message of the call. The input message must be provided by the calling script (sorry, the module has no mean to find this).
- the method will use his own soapAction if defined - added a light support to the sympletypes.
- the method will use his own namespace if defined - added a light support to the imported namespaces in the types section.
- some other code cleaning - added the support for the multiple SOAP bindings. The correct binding must be provided by the calling script (sorry, the module has no mean to find this).
2006/04/23 only in the customized version - the method will use his own soapAction if defined
- corrected a bug related to the presence of the same method name on multiple - the method will use his own namespace if defined
webservices
- some other code cleaning
- added an overloading support based on the type of the call's parameters
2006/04/23 only in the customized version
- multiple extensions support added: a complextype can be an extension of a complextype which is an extension and so on
- corrected a bug related to the presence of the same method name on multiple
webservices
Revision 1.7 2004/07/27 13:00:03 lsc - added an overloading support based on the type of the call's parameters
- added missing test file
- multiple extensions support added: a complextype can be an extension of a complextype which is an extension and so on
Revision 1.18 2004/07/16 07:43:05 lsc
fixed test scripts for windows
Revision 1.17 2004/07/05 08:19:49 lsc Revision 1.7 2004/07/27 13:00:03 lsc
- added wsdl_checkoccurs - added missing test file
Revision 1.16 2004/07/04 09:01:14 lsc Revision 1.18 2004/07/16 07:43:05 lsc
- change <definitions> element lookup from find('/definitions') and find('wsdl:definitions') to find('/*[1]') to process arbitrary default (wsdl) namespaces correctly fixed test scripts for windows
- fixed test output in test 06
Revision 1.17 2004/07/05 08:19:49 lsc
Revision 1.15 2004/07/02 12:28:31 lsc - added wsdl_checkoccurs
- documentation update
- cosmetics Revision 1.16 2004/07/04 09:01:14 lsc
- change <definitions> element lookup from find('/definitions') and find('wsdl:definitions') to find('/*[1]') to process arbitrary default (wsdl) namespaces correctly
Revision 1.14 2004/07/02 10:53:36 lsc - fixed test output in test 06
- API change:
- call now behaves (almost) like SOAP::Lite::call Revision 1.15 2004/07/02 12:28:31 lsc
- call() takes a list (hash) as second argument - documentation update
- call does no longer support the "dispatch" option - cosmetics
- dispatching calls can be suppressed by passing
"no_dispatch => 1" to new() Revision 1.14 2004/07/02 10:53:36 lsc
- dispatching calls can be suppressed by calling - API change:
$soap->no_dispatch(1); - call now behaves (almost) like SOAP::Lite::call
and re-enabled by calling - call() takes a list (hash) as second argument
$soap->no_dispatch(0); - call does no longer support the "dispatch" option
- Updated test skripts to reflect API change. - dispatching calls can be suppressed by passing
"no_dispatch => 1" to new()
Revision 1.13 2004/06/30 12:08:40 lsc - dispatching calls can be suppressed by calling
- added IServiceInstance (ecmed) to acceptance tests $soap->no_dispatch(1);
- refined documentation and re-enabled by calling
$soap->no_dispatch(0);
Revision 1.12 2004/06/26 14:13:29 lsc - Updated test skripts to reflect API change.
- refined file caching
- added descriptive output to test scripts Revision 1.13 2004/06/30 12:08:40 lsc
- added IServiceInstance (ecmed) to acceptance tests
Revision 1.11 2004/06/26 07:55:40 lsc - refined documentation
- fixed "freeze" caching bug
- improved test scripts to test file system caching (and show the difference) Revision 1.12 2004/06/26 14:13:29 lsc
- refined file caching
Revision 1.10 2004/06/26 06:30:33 lsc - added descriptive output to test scripts
- added filesystem caching using Cache::FileCache
Revision 1.11 2004/06/26 07:55:40 lsc
Revision 1.9 2004/06/24 12:27:23 lsc - fixed "freeze" caching bug
Cleanup - improved test scripts to test file system caching (and show the difference)
Revision 1.8 2004/06/11 19:49:15 lsc Revision 1.10 2004/06/26 06:30:33 lsc
- moved .t files to more self-describing names - added filesystem caching using Cache::FileCache
- changed WSDL.pm to accept AXIS wsdl files
- implemented XPath query result caching on all absolute queries Revision 1.9 2004/06/24 12:27:23 lsc
Cleanup
Revision 1.7 2004/06/07 13:01:16 lsc
added changelog to pod Revision 1.8 2004/06/11 19:49:15 lsc
- moved .t files to more self-describing names
- changed WSDL.pm to accept AXIS wsdl files
- implemented XPath query result caching on all absolute queries
Revision 1.7 2004/06/07 13:01:16 lsc
added changelog to pod
+16 -15
View File
@@ -1,15 +1,16 @@
Build.PL Build.PL
CHANGES CHANGES
HACKING HACKING
lib/SOAP/WSDL.pm lib/SOAP/WSDL.pm
MANIFEST This list of files MANIFEST This list of files
META.yml META.yml
README README
t/1_performance.t t/1_performance.t
t/2_helloworld.NET.t t/2_helloworld.NET.t
t/3_various.t t/3_various.t
t/97_pod.t t/4_auto_set_port.t
t/98_pod_coverage.t t/97_pod.t
t/acceptance/helloworld.asmx.xml t/98_pod_coverage.t
t/acceptance/helloworld.xml t/acceptance/helloworld.asmx.xml
t/acceptance/test.wsdl.xml t/acceptance/helloworld.xml
t/acceptance/test.wsdl.xml
+9 -9
View File
@@ -1,19 +1,19 @@
--- ---
name: SOAP-WSDL name: SOAP-WSDL
version: 1.22 version: 1.23
author: [] author:
abstract: WSDL support for SOAP::Lite abstract: WSDL support for SOAP::Lite
license: artistic license: artistic
resources:
license: http://opensource.org/licenses/artistic-license.php
requires: requires:
SOAP::Lite: 0 SOAP::Lite: 0
XML::XPath: 0 XML::XPath: 0
provides: generated_by: Module::Build version 0.2808
SOAP::WSDL:
file: lib/SOAP/WSDL.pm
version: 1.22
generated_by: Module::Build version 0.28
meta-spec: meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.2.html url: http://module-build.sourceforge.net/META-spec-v1.2.html
version: 1.2 version: 1.2
provides:
SOAP::WSDL:
file: lib/SOAP/WSDL.pm
version: 1.23
resources:
license: http://opensource.org/licenses/artistic-license.php
+1573 -1478
View File
File diff suppressed because it is too large Load Diff
+107 -107
View File
@@ -1,107 +1,107 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
use strict; use strict;
use Test; use Test;
plan tests=> 11; plan tests=> 11;
use Time::HiRes qw( gettimeofday tv_interval ); use Time::HiRes qw( gettimeofday tv_interval );
use lib '../lib'; use lib '../lib';
use Data::Dumper; use Data::Dumper;
use Cwd; use Cwd;
use SOAP::WSDL; use SOAP::WSDL;
ok 1; # if we made it this far, we're ok ok 1; # if we made it this far, we're ok
### test vars END ### test vars END
print "# Testing SOAP::WSDL ". $SOAP::WSDL::VERSION."\n"; print "# Testing SOAP::WSDL ". $SOAP::WSDL::VERSION."\n";
print "# Performance test with WSDL file\n"; print "# Performance test with WSDL file\n";
my $data = { name => 'Mein Name', my $data = { name => 'Mein Name',
givenName => 'Vorname' }; givenName => 'Vorname' };
my $dir = cwd; my $dir = cwd;
# chomp /t/ to allow running the script from t/ directory # chomp /t/ to allow running the script from t/ directory
$dir=~s|/t/?||; $dir=~s|/t/?||;
my $t0 = [gettimeofday]; my $t0 = [gettimeofday];
{ {
ok( my $soap=SOAP::WSDL->new( ok( my $soap=SOAP::WSDL->new(
wsdl => "file://$dir/t/acceptance/helloworld.asmx.xml", wsdl => "file://$dir/t/acceptance/helloworld.asmx.xml",
no_dispatch => 1 no_dispatch => 1
) ); ) );
print "# Test with NO caching\n"; print "# Test with NO caching\n";
print "# Create SOAP::WSDL object (".tv_interval ( $t0, [gettimeofday]) ."ms)\n" ; print "# Create SOAP::WSDL object (".tv_interval ( $t0, [gettimeofday]) ."ms)\n" ;
$t0 = [gettimeofday]; $t0 = [gettimeofday];
eval{ $soap->wsdlinit(caching => 0) }; eval{ $soap->wsdlinit(caching => 0) };
unless ($@) { unless ($@) {
ok(1); ok(1);
} else { } else {
ok 0; ok 0;
print STDERR $@; print STDERR $@;
} }
print "# wsdl file init (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;; print "# wsdl file init (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;;
$soap->readable(1); $soap->readable(1);
$soap->wsdl_cache_store(); $soap->wsdl_cache_store();
$soap->servicename("Service1"); $soap->servicename("Service1");
$soap->portname("Service1Soap"); $soap->portname("Service1Soap");
$t0 = [gettimeofday]; $t0 = [gettimeofday];
ok( $soap->call("sayHello" , %{ $data })); ok( $soap->call("sayHello" , %{ $data }));
print "# NO cache first call: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ; print "# NO cache first call: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;
$t0 = [gettimeofday]; $t0 = [gettimeofday];
ok($soap->call(sayHello => %{ $data }) ); ok($soap->call(sayHello => %{ $data }) );
print "# NO cache second call (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ; print "# NO cache second call (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;
$t0 = [gettimeofday]; $t0 = [gettimeofday];
for (my $i=1; $i<100; $i++) { for (1..10) {
$soap->call(sayHello => %{ $data }); $soap->call(sayHello => %{ $data });
} }
ok(1); ok(1);
print "# NO cache: 100 x call (".tv_interval ( $t0, [gettimeofday]) ."s)\n"; print "# NO cache: 10 x call (".tv_interval ( $t0, [gettimeofday]) ."s)\n";
} }
{ {
print "# Test with caching ENABLED\n"; print "# Test with caching ENABLED\n";
$t0 = [gettimeofday]; $t0 = [gettimeofday];
ok(my $soap=SOAP::WSDL->new( ok(my $soap=SOAP::WSDL->new(
wsdl => "file://$dir/t/acceptance/helloworld.asmx.xml", wsdl => "file://$dir/t/acceptance/helloworld.asmx.xml",
no_dispatch => 1 no_dispatch => 1
) ); ) );
print "# Create SOAP::WSDL object (".tv_interval ( $t0, [gettimeofday]) ."ms)\n" ; print "# Create SOAP::WSDL object (".tv_interval ( $t0, [gettimeofday]) ."ms)\n" ;
-e "$dir/t/cache" or mkdir "$dir/t/cache"; -e "$dir/t/cache" or mkdir "$dir/t/cache";
$t0 = [gettimeofday]; $t0 = [gettimeofday];
eval{ $soap->wsdlinit(caching => 1,cache_directory =>"$dir/t/cache") }; eval{ $soap->wsdlinit(caching => 1,cache_directory =>"$dir/t/cache") };
unless ($@) { unless ($@) {
ok(1); ok(1);
} else { } else {
ok 0; ok 0;
print STDERR $@; print STDERR $@;
} }
print "# wsdl file init (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;; print "# wsdl file init (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;;
$soap->readable(1); $soap->readable(1);
$soap->servicename("Service1"); $soap->servicename("Service1");
$soap->portname("Service1Soap"); $soap->portname("Service1Soap");
$t0 = [gettimeofday]; $t0 = [gettimeofday];
ok( $soap->call("sayHello" , %{ $data })); ok( $soap->call("sayHello" , %{ $data }));
print "# CACHE first call (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ; print "# CACHE first call (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;
$t0 = [gettimeofday]; $t0 = [gettimeofday];
ok($soap->call(sayHello => %{ $data }) ); ok($soap->call(sayHello => %{ $data }) );
print "# CACHE second call: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ; print "# CACHE second call: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;
$t0 = [gettimeofday]; $t0 = [gettimeofday];
for (my $i=1; $i<100; $i++) { for (1..10) {
$soap->call(sayHello => %{ $data }); $soap->call(sayHello => %{ $data });
} }
ok(1); ok(1);
print "# CACHE: 100 x call (".tv_interval ( $t0, [gettimeofday]) ."s)\n"; print "# CACHE: 10 x call (".tv_interval ( $t0, [gettimeofday]) ."s)\n";
} }
+109 -112
View File
@@ -1,112 +1,109 @@
#!/usr/bin/perl -w #!/usr/bin/perl -w
use strict; use strict;
use Test; use warnings;
plan tests=> 8; use diagnostics;
use Time::HiRes qw( gettimeofday tv_interval ); use Test::More tests=> 9;
use lib '../lib'; use Time::HiRes qw( gettimeofday tv_interval );
use Data::Dumper; use lib '../lib';
use Cwd; use Data::Dumper;
use SOAP::WSDL; use Cwd;
use_ok qw/SOAP::WSDL/;
ok 1; # if we made it this far, we're ok
### test vars END print "# Testing SOAP::WSDL ". $SOAP::WSDL::VERSION."\n";
print "# Various Features Test with WSDL file \n";
print "# Testing SOAP::WSDL ". $SOAP::WSDL::VERSION."\n";
print "# Various Features Test with WSDL file \n"; my $data = {name => 'Mein Name',
givenName => 'Vorname'};
my $data = {name => 'Mein Name',
givenName => 'Vorname'}; my $dir = cwd;
my $dir = cwd; # chomp /t/ to allow running the script from t/ directory
$dir=~s|/t/?||;
# chomp /t/ to allow running the script from t/ directory
$dir=~s|/t/?||; my $t0 = [gettimeofday];
ok( my $soap=SOAP::WSDL->new(wsdl => "file://$dir/t/acceptance/helloworld.asmx.xml",
my $t0 = [gettimeofday]; no_dispatch => 1
ok( my $soap=SOAP::WSDL->new(wsdl => "file://$dir/t/acceptance/helloworld.asmx.xml", ));
no_dispatch => 1
)); print "# Create SOAP::WSDL object (".tv_interval ( $t0, [gettimeofday]) ."ms)\n" ;
print "# Create SOAP::WSDL object (".tv_interval ( $t0, [gettimeofday]) ."ms)\n" ; $t0 = [gettimeofday];
eval{ $soap->wsdlinit(caching => 0) };
$t0 = [gettimeofday]; if ($@) {
eval{ $soap->wsdlinit(caching => 0) }; fail("wsdlinit");
unless ($@) { print STDERR $@;
ok(1); } else {
} else { pass("wsdlinit");
ok 0; }
print STDERR $@; print "# wsdl file init (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;;
}
print "# wsdl file init (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;; $soap->readable(1);
$soap->servicename("Service1");
$soap->readable(1); $soap->portname("Service1Soap");
$soap->servicename("Service1");
$soap->portname("Service1Soap"); $t0 = [gettimeofday];
ok( $soap->call("sayHello" , %{ $data }), "call sayHello");
$t0 = [gettimeofday]; print "# Normal Call: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;
ok( $soap->call("sayHello" , %{ $data })); $soap->servicename("Service2");
print "# Normal Call: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ; is( $soap->portname("Service2Soap"), 'Service2Soap' );
$soap->servicename("Service2"); $data = {name => 'Mein Name',
$soap->portname("Service2Soap"); givenName => 'Vorname'};
$data = {name => 'Mein Name', $t0 = [gettimeofday];
givenName => 'Vorname'}; ok($soap->call(sayGoodBye => %{ $data }), "Multiple Services/Port Call" );
print "# Multiple Services/Port Call: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;
$t0 = [gettimeofday];
ok($soap->call(sayGoodBye => %{ $data }) ); $soap->servicename("Service2");
print "# Multiple Services/Port Call: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ; $soap->portname("Service2Soap");
$data = {name => 'Mein Name',
$soap->servicename("Service2"); givenName => 'Vorname',
$soap->portname("Service2Soap"); wsdl_input_name => 'firstOverload'
$data = {name => 'Mein Name', };
givenName => 'Vorname',
wsdl_input_name => 'firstOverload' $t0 = [gettimeofday];
};
my $xml = $soap->serializer->method( $soap->call(sayGoodByeOverload => %{ $data }) );
$t0 = [gettimeofday]; like($xml , qr/<name/, 'serialized overloaded method');
my $xml = $soap->serializer->method( $soap->call(sayGoodByeOverload => %{ $data }) ); $data = {
$xml =~ /<name/ and ok(1); name => 'Mein Name',
givenName => 'Vorname',
$data = { wsdl_input_name => 'secondOverload'
name => 'Mein Name', };
givenName => 'Vorname',
wsdl_input_name => 'secondOverload' $t0 = [gettimeofday];
}; $xml = $soap->serializer->method( $soap->call(sayGoodByeOverload => %{ $data }) );
unlike($xml , qr/<name/ , 'Overloaded calls');
$t0 = [gettimeofday];
$xml = $soap->serializer->method( $soap->call(sayGoodByeOverload => %{ $data }) ); print "# Overloaded Calls: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;
$xml !~ /<name/ and ok(1);
$soap->servicename("Service2");
print "# Overloaded Calls: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ; $soap->portname("Service2Soap");
$data = { name => 'Mein Name',
$soap->servicename("Service2"); 'recipients' => [
$soap->portname("Service2Soap"); {user_name => 'Adam', last_name => "Eden"},
$data = { name => 'Mein Name', {user_name => 'Eve',last_name => 'Apple'},
'recipients' => [ ],
{user_name => 'Adam', last_name => "Eden"}, wsdl_input_name => 'thirdOverload'
{user_name => 'Eve',last_name => 'Apple'}, };
],
wsdl_input_name => 'thirdOverload' $t0 = [gettimeofday];
}; $xml = $soap->serializer->method( $soap->call(sayGoodByeOverload => %{ $data }) );
$t0 = [gettimeofday]; my $xpath = new XML::XPath->new(xml=>$xml);
$xml = $soap->serializer->method( $soap->call(sayGoodByeOverload => %{ $data }) );
my @recipients = $xpath->findnodes('//recipients');
my $xpath = new XML::XPath->new(xml=>$xml); if($recipients[0]->findvalue("user_name") eq "Adam" and
$recipients[0]->findvalue("last_name") eq "Eden" and
my @recipients = $xpath->findnodes('//recipients'); $recipients[1]->findvalue("user_name") eq "Eve" and
if($recipients[0]->findvalue("user_name") eq "Adam" and $recipients[1]->findvalue("last_name") eq "Apple"){
$recipients[0]->findvalue("last_name") eq "Eden" and ok(1);
$recipients[1]->findvalue("user_name") eq "Eve" and }else{
$recipients[1]->findvalue("last_name") eq "Apple"){ ok(0);
ok(1); }
}else{ print "# Restricted Arrays: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;
ok(0); print "#End\n";
}
print "# Restricted Arrays: (".tv_interval ( $t0, [gettimeofday]) ."s)\n" ;
print "#End\n";
+55
View File
@@ -0,0 +1,55 @@
#!/usr/bin/perl -w
#######################################################################################
#
# 2_helloworld.t
#
# Acceptance test for message encoding, based on .NET wsdl and example code.
# SOAP::WSDL's encoding doesn't I<exactly> match the .NET example, because
# .NET doesn't always specify types (SOAP::WSDL does), and the namespace
# prefixes chosen are different (maybe the encoding style, too ? this would be a bug !)
#
########################################################################################
use strict;
use diagnostics;
use Test::More tests => 6;
use Time::HiRes qw( gettimeofday tv_interval );
use lib '../lib';
use Cwd;
use_ok qw/SOAP::WSDL/;
### test vars END
print "# Testing SOAP::WSDL ". $SOAP::WSDL::VERSION."\n";
print "# Acceptance test against sample output with simple WSDL\n";
my $data = {
name => 'test',
givenName => 'GIVENNAME',
test => {
name => 'TESTNAME',
givenName => 'GIVENNAME',
},
};
my $dir= cwd;
$dir=~s/\/t\/?//;
# print $dir;
my $url = $dir . '/t/acceptance/test.wsdl.xml';
die "no wsdl found" if (not -e $url);
ok( my $soap=SOAP::WSDL->new( wsdl => 'file:///'. $url ), "Create SOAP::WSDL object");
$soap->no_dispatch( 1 );
eval{ $soap->wsdlinit() };
unless ($@) {
pass "wsdlinit";
} else {
fail "wsdlinit - $@";
}
ok( $soap->call(sayHello => %{ $data }) , "SOAP call");
is( $soap->servicename() , 'Service1', "Auto-detected servicename");
is( $soap->portname() , 'Service1Soap', "Auto-detected portname");