Compare commits

..
18 Commits
Author SHA1 Message Date
Martin KutterandMichael G. Schwern 2347a88353 import SOAP-WSDL 1.25 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  1.25
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-1.25.tar.gz
2009-12-12 19:47:57 -08:00
Martin KutterandMichael G. Schwern 9e85f63aa0 import SOAP-WSDL 1.24 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  1.24
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-1.24.tar.gz
2009-12-12 19:47:56 -08:00
Martin KutterandMichael G. Schwern 7ba2f93e44 import SOAP-WSDL 2.00_15 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_15
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_15.tar.gz
2009-12-12 19:47:55 -08:00
Martin KutterandMichael G. Schwern 099c83b6bc import SOAP-WSDL 2.00_14 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_14
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_14.tar.gz
2009-12-12 19:47:53 -08:00
Martin KutterandMichael G. Schwern f63138fc87 import SOAP-WSDL 2.00_13 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_13
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_13.tar.gz
2009-12-12 19:47:52 -08:00
Martin KutterandMichael G. Schwern fd0854e34a import SOAP-WSDL 2.00_12 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_12
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_12.tar.gz
2009-12-12 19:47:49 -08:00
Martin KutterandMichael G. Schwern c2da74b5ae import SOAP-WSDL 2.00_11 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_11
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_11.tar.gz
2009-12-12 19:47:49 -08:00
Martin KutterandMichael G. Schwern 7ba1959888 import SOAP-WSDL 2.00_10 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_10
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_10.tar.gz
2009-12-12 19:47:48 -08:00
Martin KutterandMichael G. Schwern a554e87f49 import SOAP-WSDL 2.00_09 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_09
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_09.tar.gz
2009-12-12 19:47:47 -08:00
Martin KutterandMichael G. Schwern 312f3d6bbd import SOAP-WSDL 2.00_08 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_08
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_08.tar.gz
2009-12-12 19:47:46 -08:00
Martin KutterandMichael G. Schwern 40e0e67e84 import SOAP-WSDL 2.00_07 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_07
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_07.tar.gz
2009-12-12 19:47:45 -08:00
Martin KutterandMichael G. Schwern 25548e6296 import SOAP-WSDL 2.00_06 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_06
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_06.tar.gz
2009-12-12 19:47:44 -08:00
Martin KutterandMichael G. Schwern a78d6d15b5 import SOAP-WSDL 2.00_05 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_05
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_05.tar.gz
2009-12-12 19:47:43 -08:00
Martin KutterandMichael G. Schwern 5c42b1d8f6 import SOAP-WSDL 2.00_04 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_04
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_04.tar.gz
2009-12-12 19:47:43 -08:00
Martin KutterandMichael G. Schwern 21b5330a8d import SOAP-WSDL 2.00_03 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_03
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_03.tar.gz
2009-12-12 19:47:42 -08:00
Martin KutterandMichael G. Schwern 7716d4349a import SOAP-WSDL 2.00_02 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_02
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_02.tar.gz
2009-12-12 19:47:41 -08:00
Martin KutterandMichael G. Schwern 6fe52c4370 import SOAP-WSDL 2.00_01 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_01
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_01.tar.gz
2009-12-12 19:47:41 -08:00
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
10 changed files with 2120 additions and 1896 deletions
+24 -12
View File
@@ -1,12 +1,24 @@
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', create_makefile_pl => 'passthrough',
requires => { dist_name => 'SOAP-WSDL',
'SOAP::Lite' => 0., dist_abstract => 'WSDL support for SOAP::Lite',
'XML::XPath' => 0 module_name => 'SOAP::WSDL',
}, license => 'artistic',
buildrequires => { 'Test::More' => 0 }, requires => {
'SOAP::Lite' => 0,
)->create_build_script; 'XML::XPath' => 0,
},
buildrequires => {
'Test::More' => 0,
'SOAP::Lite' => 0,
'XML::XPath' => 0,
'Time::HiRes' => 0,
'File::Spec' => 0,
'File::Basename' => 0,
'Cwd' => 0,
},
)->create_build_script;
+165 -153
View File
@@ -1,153 +1,165 @@
* v1.22 2007/05/30 - auto-discover service and port again * v1.25 2007/09/24 - maintenance
- re-introduces auto-detecting of servicename and portname - added Makefile.PL to ease installation
- fixes #27325: Test fails with Test::Pod::Coverage v 1.06.
- Now build requires Test::More * v1.24 2007/09/22 - bugfix
- documentation update - fixes issue reported by David Bussenschutt: wsdlinit always uses new SOAP::Schema instance.
- cosmetics
* v1.23 2007/06/05 - bugfixes and optimizations
2007/05/28 private methods made private and pod update - fixes #27426: missing prereq XML::XPath
- added pod tests - fixed build_requires
- made encodeComplexType and method generators private - some doc fixes
- updated pod - now performs some initializations on calling portname()
- fixed test scripts to work again from within/without t/
- moved development repository to * v1.22 2007/05/30 - auto-discover service and port again
https://svn.sourceforge.net/svnroot/soap-wsdl/ (finally !) - re-introduces auto-detecting of servicename and portname
- fixes #27325: Test fails with Test::Pod::Coverage v 1.06.
2007/05/21 updated base version to customized version from Giovanni S Fois - Now build requires Test::More
- merged in doc changes, so that they don't refer to "customized version" - documentation update
- changed build process to Build.PL - cosmetics
- changed repository layout to support new build process
2007/05/28 private methods made private and pod update
2006/11/06 only in the customized version - added pod tests
Added the support for default values in the wsdl file - made encodeComplexType and method generators private
- updated pod
2006/11/04 only in the customized version - fixed test scripts to work again from within/without t/
Changed the calling interface. Now it's driven by the by the service - moved development repository to
and port names. https://svn.sourceforge.net/svnroot/soap-wsdl/ (finally !)
2006/11/03 only in the customized version 2007/05/21 updated base version to customized version from Giovanni S Fois
Corrected the Check for the correct number of elements in complex types - merged in doc changes, so that they don't refer to "customized version"
- changed build process to Build.PL
If a complex type is marked optional in a WSDL file, but sub-parts are marked as - changed repository layout to support new build process
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/06 only in the customized version
will not be encoded. Added the support for default values in the wsdl file
A quick-and-dirty workaround is to turn off the check with 2006/11/04 only in the customized version
Changed the calling interface. Now it's driven by the by the service
$soap->wsdl_checkoccurs(0); and port names.
2006/11/02 only in the customized version 2006/11/03 only in the customized version
- small changes for .Net compatibility when encoding complex types Corrected the Check for the correct number of elements in complex types
- added some test cases to the test suite try perl t/3_varous.t for more details
If a complex type is marked optional in a WSDL file, but sub-parts are marked as
required, SOAP::WSDL used to die if the complex type was found in the data.
2006/10/28 only in the customized version Now, if a complex type has not data associated and is not strictly required, it
- added a small support for the complexType restrictions of Arrays will not be encoded.
2006/10/02 only in the customized version A quick-and-dirty workaround is to turn off the check with
(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 $soap->wsdl_checkoccurs(0);
- the module crashed when the operation had no part declaration
- the port name stated in the service definition was used as the portType 2006/11/02 only in the customized version
- the test suited failed when the module was unzipped in a t.* named directory - 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
2006/09/15 only in the customized version 2006/10/28 only in the customized version
(Thanks to Terje Kristensen for his support and twisted wsdl files :) - added a small support for the complexType restrictions of Arrays
- cleaned up the code for readability
- cleaned up the code for "use warnings" and "use strict" 2006/10/02 only in the customized version
- added support for wsdl files with multiple schema declarations (Thanks to Dan Horne for having spotted so many bugs in a row)
- added supporto for some restriction on complexTypes - 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
- the port name stated in the service definition was used as the portType
- the test suited failed when the module was unzipped in a t.* named directory
2006/07/10 only in the customized version
- added the support for SOAP::header calls
2006/09/15 only in the customized version
2006/06/10 only in the customized version (Thanks to Terje Kristensen for his support and twisted wsdl files :)
- cleaned up the code for readability
- removed the overload based on the type of the call's parameters - cleaned up the code for "use warnings" and "use strict"
- added support for wsdl files with multiple schema declarations
- 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 supporto for some restriction on complexTypes
- added a light support to the sympletypes.
- added a light support to the imported namespaces in the types section.
2006/07/10 only in the customized version
- 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 the support for SOAP::header calls
- the method will use his own soapAction if defined 2006/06/10 only in the customized version
- the method will use his own namespace if defined - removed the overload based on the type of the call's parameters
- some other code cleaning - 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).
2006/04/23 only in the customized version - added a light support to the sympletypes.
- corrected a bug related to the presence of the same method name on multiple - added a light support to the imported namespaces in the types section.
webservices
- 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 type of the call's parameters
- the method will use his own soapAction if defined
- multiple extensions support added: a complextype can be an extension of a complextype which is an extension and so on
- the method will use his own namespace if defined
- some other code cleaning
Revision 1.7 2004/07/27 13:00:03 lsc
- added missing test file 2006/04/23 only in the customized version
Revision 1.18 2004/07/16 07:43:05 lsc - corrected a bug related to the presence of the same method name on multiple
fixed test scripts for windows webservices
Revision 1.17 2004/07/05 08:19:49 lsc - added an overloading support based on the type of the call's parameters
- added wsdl_checkoccurs
- multiple extensions support added: a complextype can be an extension of a complextype which is an extension and so on
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
- fixed test output in test 06
Revision 1.7 2004/07/27 13:00:03 lsc
Revision 1.15 2004/07/02 12:28:31 lsc - added missing test file
- documentation update
- cosmetics Revision 1.18 2004/07/16 07:43:05 lsc
fixed test scripts for windows
Revision 1.14 2004/07/02 10:53:36 lsc
- API change: Revision 1.17 2004/07/05 08:19:49 lsc
- call now behaves (almost) like SOAP::Lite::call - added wsdl_checkoccurs
- call() takes a list (hash) as second argument
- call does no longer support the "dispatch" option Revision 1.16 2004/07/04 09:01:14 lsc
- dispatching calls can be suppressed by passing - change <definitions> element lookup from find('/definitions') and find('wsdl:definitions') to find('/*[1]') to process arbitrary default (wsdl) namespaces correctly
"no_dispatch => 1" to new() - fixed test output in test 06
- dispatching calls can be suppressed by calling
$soap->no_dispatch(1); Revision 1.15 2004/07/02 12:28:31 lsc
and re-enabled by calling - documentation update
$soap->no_dispatch(0); - cosmetics
- Updated test skripts to reflect API change.
Revision 1.14 2004/07/02 10:53:36 lsc
Revision 1.13 2004/06/30 12:08:40 lsc - API change:
- added IServiceInstance (ecmed) to acceptance tests - call now behaves (almost) like SOAP::Lite::call
- refined documentation - call() takes a list (hash) as second argument
- call does no longer support the "dispatch" option
Revision 1.12 2004/06/26 14:13:29 lsc - dispatching calls can be suppressed by passing
- refined file caching "no_dispatch => 1" to new()
- added descriptive output to test scripts - dispatching calls can be suppressed by calling
$soap->no_dispatch(1);
Revision 1.11 2004/06/26 07:55:40 lsc and re-enabled by calling
- fixed "freeze" caching bug $soap->no_dispatch(0);
- improved test scripts to test file system caching (and show the difference) - Updated test skripts to reflect API change.
Revision 1.10 2004/06/26 06:30:33 lsc Revision 1.13 2004/06/30 12:08:40 lsc
- added filesystem caching using Cache::FileCache - added IServiceInstance (ecmed) to acceptance tests
- refined documentation
Revision 1.9 2004/06/24 12:27:23 lsc
Cleanup Revision 1.12 2004/06/26 14:13:29 lsc
- refined file caching
Revision 1.8 2004/06/11 19:49:15 lsc - added descriptive output to test scripts
- moved .t files to more self-describing names
- changed WSDL.pm to accept AXIS wsdl files Revision 1.11 2004/06/26 07:55:40 lsc
- implemented XPath query result caching on all absolute queries - fixed "freeze" caching bug
- improved test scripts to test file system caching (and show the difference)
Revision 1.7 2004/06/07 13:01:16 lsc
added changelog to pod Revision 1.10 2004/06/26 06:30:33 lsc
- added filesystem caching using Cache::FileCache
Revision 1.9 2004/06/24 12:27:23 lsc
Cleanup
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
+18 -15
View File
@@ -1,15 +1,18 @@
Build.PL Build.PL
CHANGES CHANGES
HACKING HACKING
lib/SOAP/WSDL.pm lib/SOAP/WSDL.pm
MANIFEST This list of files Makefile.PL
META.yml MANIFEST This list of files
README META.yml
t/1_performance.t README
t/2_helloworld.NET.t t/1_performance.t
t/3_various.t t/2_helloworld.NET.t
t/97_pod.t t/3_various.t
t/98_pod_coverage.t t/4_auto_set_port.t
t/acceptance/helloworld.asmx.xml t/5_same_transport.t
t/acceptance/helloworld.xml t/97_pod.t
t/acceptance/test.wsdl.xml t/98_pod_coverage.t
t/acceptance/helloworld.asmx.xml
t/acceptance/helloworld.xml
t/acceptance/test.wsdl.xml
+19 -19
View File
@@ -1,19 +1,19 @@
--- ---
name: SOAP-WSDL name: SOAP-WSDL
version: 1.22 version: 1.25
author: [] author: []
abstract: WSDL support for SOAP::Lite abstract: WSDL support for SOAP::Lite
license: artistic license: artistic
resources: resources:
license: http://opensource.org/licenses/artistic-license.php license: http://opensource.org/licenses/artistic-license.php
requires: requires:
SOAP::Lite: 0 SOAP::Lite: 0
XML::XPath: 0 XML::XPath: 0
provides: provides:
SOAP::WSDL: SOAP::WSDL:
file: lib/SOAP/WSDL.pm file: lib/SOAP/WSDL.pm
version: 1.22 version: 1.25
generated_by: Module::Build version 0.28 generated_by: Module::Build version 0.2808
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
+31
View File
@@ -0,0 +1,31 @@
# Note: this file was auto-generated by Module::Build::Compat version 0.03
unless (eval "use Module::Build::Compat 0.02; 1" ) {
print "This module requires Module::Build to install itself.\n";
require ExtUtils::MakeMaker;
my $yn = ExtUtils::MakeMaker::prompt
(' Install Module::Build now from CPAN?', 'y');
unless ($yn =~ /^y/i) {
die " *** Cannot install without Module::Build. Exiting ...\n";
}
require Cwd;
require File::Spec;
require CPAN;
# Save this 'cause CPAN will chdir all over the place.
my $cwd = Cwd::cwd();
CPAN::Shell->install('Module::Build::Compat');
CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
or die "Couldn't install Module::Build, giving up.\n";
chdir $cwd or die "Cannot chdir() back to $cwd: $!";
}
eval "use Module::Build::Compat 0.02; 1" or die $@;
Module::Build::Compat->run_build_pl(args => \@ARGV);
require Module::Build;
Module::Build::Compat->write_makefile(build_class => 'Module::Build');
+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");
+19
View File
@@ -0,0 +1,19 @@
# Addresses issue reported by David Bussenschutt
use Test::More tests => 1;
use lib '../lib';
use SOAP::Lite;
use SOAP::WSDL;
use File::Spec;
use File::Basename qw(dirname);
my $path = File::Spec->rel2abs( dirname __FILE__);
my $soap = SOAP::WSDL->new(
wsdl => "file://$path/acceptance/helloworld.asmx.xml"
);
my $transport = $soap->schema()->useragent()->protocols_forbidden(['file']);
# If it dies with 500 Access to 'file'..., wsdlinit uses the same UA...
eval { $soap->wsdlinit()};
ok index( $@, q{500 Access to 'file}) > 0;