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
This commit is contained in:
Martin Kutter
2009-12-12 19:48:44 -08:00
committed by Michael G. Schwern
parent e58a27e2ad
commit c3e3d1908e
80 changed files with 2351 additions and 802 deletions
+15 -14
View File
@@ -1,6 +1,6 @@
use strict;
use warnings;
use Test::More tests => 12;
use Test::More tests => 13;
use File::Spec;
use File::Basename qw(dirname);
use_ok qw(SOAP::WSDL);
@@ -30,7 +30,7 @@ like $@, qr{ unable \s to \s extract \s schema \s from \s WSDL }x, 'empty defini
$soap = SOAP::WSDL->new();
$soap->wsdl( "file://$path/WSDL_NO_MESSAGE.wsdl");
eval { $soap->wsdlinit() };
eval { $soap->call('NewOperation', 'value'); };
# eval { $soap->call('NewOperation', 'value'); };
like $@, qr{ Message \s \{http://www.example.org/WSDL_1/\}NewOperationRequest \s not \s found }x, 'empty definition';
$soap = SOAP::WSDL->new();
@@ -41,6 +41,9 @@ $soap->no_dispatch(1);
like $soap->call('NewOperation', NewOperation => { in => 'test' }), qr{ <in>test</in> }x;
like $soap->call('NewOperation', { NewOperation => { in => 'test' } }), qr{ <in>test</in> }x;
$soap->set_proxy('http://foo.de', timeout => 256);
is $soap->get_client->get_transport()->timeout(), 256, 'timeout';
$soap = SOAP::WSDL->new( wsdl => "file://$path/WSDL_1.wsdl",
servicename => 'NewService',
portname => 'NewPort',
@@ -52,22 +55,20 @@ like $soap->call('NewOperation', NewOperation => { in => 'test' }), qr{ <in>test
like $soap->call('NewOperation', { NewOperation => { in => 'test' } }), qr{ <in>test</in> }x;
$soap = SOAP::WSDL->new( wsdl => "file://$path/WSDL_NO_BINDING.wsdl",
servicename => 'NewService',
portname => 'NewPort',
no_dispatch => 1,
);
eval {
$soap->call('NewOperation', { NewOperation => { in => 'test' } });
$soap = SOAP::WSDL->new( wsdl => "file://$path/WSDL_NO_BINDING.wsdl",
servicename => 'NewService',
portname => 'NewPort',
no_dispatch => 1,
);
};
like $@, qr{ no \s binding }x, 'No binding error';
$soap = SOAP::WSDL->new( wsdl => "file://$path/WSDL_NO_PORTTYPE.wsdl",
servicename => 'NewService',
portname => 'NewPort',
no_dispatch => 1,
);
eval {
$soap->call('NewOperation', { NewOperation => { in => 'test' } });
$soap = SOAP::WSDL->new( wsdl => "file://$path/WSDL_NO_PORTTYPE.wsdl",
servicename => 'NewService',
portname => 'NewPort',
no_dispatch => 1,
);
};
like $@, qr{ cannot \s find \s portType }x, 'No porttype error';
+2 -2
View File
@@ -22,7 +22,7 @@ my $proxy = 'http://127.0.0.1/testPort';
ok( $soap = SOAP::WSDL->new(
wsdl => 'file://' . $url . '/../../acceptance/wsdl/02_port.wsdl'
) );
ok $soap->wsdlinit( url => $proxy );
ok $soap->servicename('testService');
ok $soap->portname('testPort');
ok $soap->wsdlinit( url => $proxy );
@@ -0,0 +1,36 @@
use Test::More tests => 3;
use File::Basename qw(dirname);
use File::Spec;
use File::Path;
use diagnostics;
my $path = File::Spec->rel2abs( dirname __FILE__ );
use_ok qw(SOAP::WSDL::Generator::Visitor::Typelib);
use_ok qw(SOAP::WSDL::Generator::Template::XSD);
use SOAP::WSDL::Expat::WSDLParser;
my $parser = SOAP::WSDL::Expat::WSDLParser->new();
my $definitions = $parser->parse_uri(
"file://$path/../../../../../acceptance/wsdl/WSDLParser-import.wsdl"
);
my $generator = SOAP::WSDL::Generator::Template::XSD->new({
definitions => $definitions,
type_prefix => 'Foo',
element_prefix => 'Foo',
typemap_prefix => 'Foo',
OUTPUT_PATH => "$path/testlib",
});
my $code = "";
$generator->set_output(\$code);
$generator->generate_typelib();
{
eval $code;
ok !$@;
print $@ if $@;
}
rmtree "$path/testlib";
+40 -7
View File
@@ -1,4 +1,4 @@
use Test::More tests => 61;
use Test::More tests => 68;
use File::Basename qw(dirname);
use File::Spec;
use File::Path;
@@ -12,12 +12,34 @@ use SOAP::WSDL::Expat::WSDLParser;
my $parser = SOAP::WSDL::Expat::WSDLParser->new();
my $definitions = $parser->parse_file(
"$path/../../../acceptance/wsdl/generator_test.wsdl"
);
#
# the next test is a bit odd: on parsing the WSDL, we test whether the
# parser can cope with unknown (anyAttribute) attributes.
# The default is to issue a warning.
#
# But if Test::Warn isn't there, we have to skip the test, but parse the
# file, too, so in this case we skip a zero-length block, set no warnings
# and parse the WSDL...
#
#my $type = $definitions->first_types()->find_type('urn:Test', 'elementRefComplexType');
#die $type->get_element()->[0]->_DUMP;
my $definitions;
if (eval "require Test::Warn; 1") {
Test::Warn::warning_is( sub {
$definitions = $parser->parse_file(
"$path/../../../acceptance/wsdl/generator_test.wsdl"
);
}, 'found unrecognised attribute {http://foo.bar}Action (ignored)'
, 'warning on unrecognized attribute');
}
else {
SKIP: {
skip "cannot test warnings without Test::Warn", 1
}
no warnings;
$definitions = $parser->parse_file(
"$path/../../../acceptance/wsdl/generator_test.wsdl"
);
}
my $generator = SOAP::WSDL::Generator::Template::XSD->new({
definitions => $definitions,
@@ -96,7 +118,6 @@ for (1..2) {
is $header->get_Test2(), 'Header2', 'Header content';
}
# complexType choice test
ok $message = $interface->testChoice( { Test1 => 'Test1' } ), 'call soap method (no_dispatch)';
ok $message = $interface->testChoice( { Test2 => 'Test2' } ), 'call soap method (no_dispatch)';
@@ -191,6 +212,18 @@ is $obj->serialize({ name => 'baz'}), q{<baz testAttr="bar">foo</baz>};
use_ok qw(MyAttributes::TestAttribute);
ok $obj = MyAttributes::TestAttribute->new({ value => 'foo' });
use_ok qw(MyElements::testRef);
ok $obj = MyElements::testRef->new({ testElementString => 'foo'});
is q{<testRef xmlns="urn:Test"><testElementString>foo</testElementString></testRef>}
, $obj->serialize_qualified()
, 'serialize element ref';
use_ok qw(MyElements::testAtomicRef);
ok $obj = MyElements::testAtomicRef->new({ in => 'foo'});
is q{<testAtomicRef xmlns="urn:Test"><in>foo</in></testAtomicRef>}
, $obj->serialize_qualified()
, 'serialize element with atomic complexType / all with element ref';
SKIP: {
eval { require Test::Pod::Content; }
+29 -6
View File
@@ -25,17 +25,39 @@ my %DIR_CONFIG_OF = (
);
# Ouch, testing mod_perl without mod_perl is pain in the arse.
#
# This is what we have to mock
#
#use Apache2::RequestIO (); # $r->read()
#use Apache2::RequestRec (); # $r->headers_in
#use Apache2::RequestUtil(); # $r->dir_config()
#use APR::Table (); # $r->headers_in->get()
#use Apache2::Log (); # $r->log
#use Apache2::Const -compile => qw(
# OK
# SERVER_ERROR
# HTTP_LENGTH_REQUIRED
# );
my $mock = Test::MockObject->new();
$mock->fake_module('APR::Table');
$mock->fake_module('Apache2::Log' =>
new => sub { return bless {}, 'Apache2::Log' },
error => sub { shift; push @ERROR_FROM, @_ },
warn => sub { shift; push @ERROR_FROM, @_ },
$mock->fake_module('Apache2::Const' =>
OK => sub { 1 },
SERVER_ERROR => sub { 500 },
HTTP_LENGTH_REQUIRED => sub { 411 },
import => sub {},
);
$mock->fake_module('Apache2::Headers' =>
new => sub { my $class = shift; return bless { @_ }, $class },
get => sub { return $_[0]->{ $_[1] } },
);
$mock->fake_module('Apache2::Log' =>
new => sub { return bless {}, 'Apache2::Log' },
error => sub { shift; push @ERROR_FROM, @_ },
warn => sub { shift; push @ERROR_FROM, @_ },
);
$mock->fake_module('Apache2::RequestIO');
$mock->fake_module('Apache2::RequestRec' =>
new => sub { return bless {}, 'Apache2::RequestRec' },
log => sub { return Apache2::Log->new() },
@@ -51,7 +73,8 @@ $mock->fake_module('Apache2::RequestRec' =>
content_type => sub {},
'print' => sub { shift; $RESPONSE .= join(q{}, @_) },
);
$mock->fake_module('Apache2::RequestUtil');
$mock->fake_module('APR::Table');
use_ok qw(SOAP::WSDL::Server::Mod_Perl2);
+2 -1
View File
@@ -1,6 +1,7 @@
use strict;
use warnings;
use Test::More tests => 1; #qw(no_plan);
use Test::More tests => 2; #qw(no_plan);
use_ok qw(SOAP::WSDL::XSD::AttributeGroup);
ok my $group = SOAP::WSDL::XSD::AttributeGroup->new();
@@ -1,104 +0,0 @@
use Test::More tests => 176;
use Scalar::Util qw(blessed);
# use SOAP::WSDL::XSD::Typelib::Builtin::anyType;
use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType;
use SOAP::WSDL::XSD::Typelib::Builtin::anyURI;
use SOAP::WSDL::XSD::Typelib::Builtin::base64Binary;
use SOAP::WSDL::XSD::Typelib::Builtin::boolean;
use SOAP::WSDL::XSD::Typelib::Builtin::byte;
use SOAP::WSDL::XSD::Typelib::Builtin::date;
use SOAP::WSDL::XSD::Typelib::Builtin::dateTime;
use SOAP::WSDL::XSD::Typelib::Builtin::decimal;
use SOAP::WSDL::XSD::Typelib::Builtin::double;
use SOAP::WSDL::XSD::Typelib::Builtin::duration;
use SOAP::WSDL::XSD::Typelib::Builtin::ENTITY;
use SOAP::WSDL::XSD::Typelib::Builtin::float;
use SOAP::WSDL::XSD::Typelib::Builtin::gDay;
use SOAP::WSDL::XSD::Typelib::Builtin::gMonth;
use SOAP::WSDL::XSD::Typelib::Builtin::gMonthDay;
use SOAP::WSDL::XSD::Typelib::Builtin::gYear;
use SOAP::WSDL::XSD::Typelib::Builtin::gYearMonth;
use SOAP::WSDL::XSD::Typelib::Builtin::hexBinary;
use SOAP::WSDL::XSD::Typelib::Builtin::ID;
use SOAP::WSDL::XSD::Typelib::Builtin::IDREF;
use SOAP::WSDL::XSD::Typelib::Builtin::IDREFS;
use SOAP::WSDL::XSD::Typelib::Builtin::int;
use SOAP::WSDL::XSD::Typelib::Builtin::integer;
use SOAP::WSDL::XSD::Typelib::Builtin::language;
use SOAP::WSDL::XSD::Typelib::Builtin::long;
use SOAP::WSDL::XSD::Typelib::Builtin::Name;
use SOAP::WSDL::XSD::Typelib::Builtin::NCName;
use SOAP::WSDL::XSD::Typelib::Builtin::NMTOKEN;
use SOAP::WSDL::XSD::Typelib::Builtin::NMTOKENS;
use SOAP::WSDL::XSD::Typelib::Builtin::negativeInteger;
use SOAP::WSDL::XSD::Typelib::Builtin::nonNegativeInteger;
use SOAP::WSDL::XSD::Typelib::Builtin::nonPositiveInteger;
use SOAP::WSDL::XSD::Typelib::Builtin::normalizedString;
use SOAP::WSDL::XSD::Typelib::Builtin::NOTATION;
use SOAP::WSDL::XSD::Typelib::Builtin::positiveInteger;
use SOAP::WSDL::XSD::Typelib::Builtin::QName;
use SOAP::WSDL::XSD::Typelib::Builtin::short;
use SOAP::WSDL::XSD::Typelib::Builtin::string;
use SOAP::WSDL::XSD::Typelib::Builtin::time;
use SOAP::WSDL::XSD::Typelib::Builtin::token;
use SOAP::WSDL::XSD::Typelib::Builtin::unsignedByte;
use SOAP::WSDL::XSD::Typelib::Builtin::unsignedInt;
use SOAP::WSDL::XSD::Typelib::Builtin::unsignedLong;
use SOAP::WSDL::XSD::Typelib::Builtin::unsignedShort;
for (
qw(
SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType
SOAP::WSDL::XSD::Typelib::Builtin::anyURI
SOAP::WSDL::XSD::Typelib::Builtin::base64Binary
SOAP::WSDL::XSD::Typelib::Builtin::boolean
SOAP::WSDL::XSD::Typelib::Builtin::byte
SOAP::WSDL::XSD::Typelib::Builtin::date
SOAP::WSDL::XSD::Typelib::Builtin::dateTime
SOAP::WSDL::XSD::Typelib::Builtin::decimal
SOAP::WSDL::XSD::Typelib::Builtin::double
SOAP::WSDL::XSD::Typelib::Builtin::duration
SOAP::WSDL::XSD::Typelib::Builtin::ENTITY
SOAP::WSDL::XSD::Typelib::Builtin::float
SOAP::WSDL::XSD::Typelib::Builtin::gDay
SOAP::WSDL::XSD::Typelib::Builtin::gMonth
SOAP::WSDL::XSD::Typelib::Builtin::gMonthDay
SOAP::WSDL::XSD::Typelib::Builtin::gYear
SOAP::WSDL::XSD::Typelib::Builtin::gYearMonth
SOAP::WSDL::XSD::Typelib::Builtin::hexBinary
SOAP::WSDL::XSD::Typelib::Builtin::ID
SOAP::WSDL::XSD::Typelib::Builtin::IDREF
SOAP::WSDL::XSD::Typelib::Builtin::IDREFS
SOAP::WSDL::XSD::Typelib::Builtin::int
SOAP::WSDL::XSD::Typelib::Builtin::integer
SOAP::WSDL::XSD::Typelib::Builtin::language
SOAP::WSDL::XSD::Typelib::Builtin::long
SOAP::WSDL::XSD::Typelib::Builtin::Name
SOAP::WSDL::XSD::Typelib::Builtin::NCName
SOAP::WSDL::XSD::Typelib::Builtin::negativeInteger
SOAP::WSDL::XSD::Typelib::Builtin::NMTOKEN
SOAP::WSDL::XSD::Typelib::Builtin::NMTOKENS
SOAP::WSDL::XSD::Typelib::Builtin::nonNegativeInteger
SOAP::WSDL::XSD::Typelib::Builtin::nonPositiveInteger
SOAP::WSDL::XSD::Typelib::Builtin::normalizedString
SOAP::WSDL::XSD::Typelib::Builtin::NOTATION
SOAP::WSDL::XSD::Typelib::Builtin::positiveInteger
SOAP::WSDL::XSD::Typelib::Builtin::QName
SOAP::WSDL::XSD::Typelib::Builtin::short
SOAP::WSDL::XSD::Typelib::Builtin::string
SOAP::WSDL::XSD::Typelib::Builtin::time
SOAP::WSDL::XSD::Typelib::Builtin::token
SOAP::WSDL::XSD::Typelib::Builtin::unsignedByte
SOAP::WSDL::XSD::Typelib::Builtin::unsignedInt
SOAP::WSDL::XSD::Typelib::Builtin::unsignedLong
SOAP::WSDL::XSD::Typelib::Builtin::unsignedShort
) ) {
my $obj = $_->new();
ok blessed $obj;
is $obj->get_value(), undef;
$obj = $_->new({});
ok blessed $obj;
is $obj->get_value(), undef;
}
+10
View File
@@ -0,0 +1,10 @@
use Test::More tests => 4;
use strict;
use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin::QName;
my $obj = SOAP::WSDL::XSD::Typelib::Builtin::QName->new();
ok defined $obj;
ok $obj->set_value('wsdl:foo');
ok $obj = SOAP::WSDL::XSD::Typelib::Builtin::QName->new({ value => 'wsdl:foo' });
ok $obj->isa('SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType'), 'inheritance';
@@ -1,7 +1,8 @@
use strict;
use warnings;
use Test::More tests => 24;
use Test::More tests => 26;
use Scalar::Util qw(blessed);
use Storable;
use lib '../../../../../../lib';
use_ok qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType);
@@ -11,8 +12,7 @@ my $id = ${ $obj };
undef $obj;
$obj = SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType->new();
is ${ $obj }, $id;
is ${ $obj }, $id, 'object cache';
ok blessed $obj, 'constructor returned blessed reference';
@@ -30,6 +30,12 @@ is $obj->end_tag({ name => 'test' }), '</test>', 'end_tag';
ok $obj->set_value('test'), 'set_value';
is $obj->get_value(), 'test', 'get_value';
is Storable::thaw(Storable::freeze($obj))->get_value, $obj->get_value(),
'frozen/thawed object keeps value';
is Storable::thaw(Storable::freeze($obj))->serialize, $obj->serialize(),
'frozen/thawed object serialize is same as original (overload works)';
ok ! $obj->attr(), 'attr';
is "$obj", q{test}, 'stringification overloading';
@@ -0,0 +1,12 @@
use Test::More tests => 5;
use strict;
use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin::duration;
my $obj = SOAP::WSDL::XSD::Typelib::Builtin::duration->new();
ok defined $obj;
ok $obj->set_value('27');
ok $obj = SOAP::WSDL::XSD::Typelib::Builtin::duration->new({ value => 'P1347Y'});
is "$obj", 'P1347Y', 'stringification';
ok $obj->isa('SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType'), 'inheritance';
+12
View File
@@ -0,0 +1,12 @@
use Test::More tests => 6;
use strict;
use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin::gDay;
my $obj = SOAP::WSDL::XSD::Typelib::Builtin::gDay->new();
ok defined $obj;
ok $obj->set_value('27');
ok $obj = SOAP::WSDL::XSD::Typelib::Builtin::gDay->new({ value => 27 });
is $obj * 1, 27, 'numerification';
is "$obj", "27", 'stringification';
ok $obj->isa('SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType'), 'inheritance';
+12
View File
@@ -0,0 +1,12 @@
use Test::More tests => 6;
use strict;
use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin::gMonth;
my $obj = SOAP::WSDL::XSD::Typelib::Builtin::gMonth->new();
ok defined $obj;
ok $obj->set_value('12');
ok $obj = SOAP::WSDL::XSD::Typelib::Builtin::gMonth->new({ value => 12 });
is $obj * 1, 12, 'numerification';
is "$obj", "12", 'stringification';
ok $obj->isa('SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType'), 'inheritance';
@@ -0,0 +1,11 @@
use Test::More tests => 5;
use strict;
use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin::gMonthDay;
my $gMonthDay = SOAP::WSDL::XSD::Typelib::Builtin::gMonthDay->new();
ok defined $gMonthDay;
ok $gMonthDay->set_value('12-27');
ok $gMonthDay = SOAP::WSDL::XSD::Typelib::Builtin::gMonthDay->new({ value => '12-27' });
is "$gMonthDay", "12-27", 'stringification';
ok $gMonthDay->isa('SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType'), 'inheritance';
+12
View File
@@ -0,0 +1,12 @@
use Test::More tests => 6;
use strict;
use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin::gYear;
my $obj = SOAP::WSDL::XSD::Typelib::Builtin::gYear->new();
ok defined $obj;
ok $obj->set_value('1271');
ok $obj = SOAP::WSDL::XSD::Typelib::Builtin::gYear->new({ value => 1271 });
is $obj * 1, 1271, 'numerification';
is "$obj", "1271", 'stringification';
ok $obj->isa('SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType'), 'inheritance';
@@ -0,0 +1,11 @@
use Test::More tests => 5;
use strict;
use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin::gYearMonth;
my $obj = SOAP::WSDL::XSD::Typelib::Builtin::gYearMonth->new();
ok defined $obj;
ok $obj->set_value('1271');
ok $obj = SOAP::WSDL::XSD::Typelib::Builtin::gYearMonth->new({ value => '1271-12' });
is "$obj", "1271-12", 'stringification';
ok $obj->isa('SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType'), 'inheritance';
+6 -2
View File
@@ -337,8 +337,12 @@ ok ! UNIVERSAL::can('MyType', 'set_FOO'), 'UNIVERSAL::can("MyTypes", "set_FOO")'
eval { MyType->new({ FOO => 42 }) };
like $@, qr{unknown \s field \s}xm, 'error passing unknown field to constructor';
eval { SOAP::WSDL::XSD::Typelib::ComplexType::AUTOMETHOD() };
like $@, qr{Cannot \s call}xm;
eval {
# catch warning -
local $SIG{__WARN__} = sub {};
SOAP::WSDL::XSD::Typelib::ComplexType::AUTOMETHOD()
};
like $@, qr{Cannot \s call}xm, 'error calling AUTOMETHOD as function';
eval { SOAP::WSDL::XSD::Typelib::ComplexType->_factory([], { test => {} }, {}) };
like $@, qr{ No \s class \s given \s for \s }xms;