import SOAP-WSDL 2.00_24 from CPAN

git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_24
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_24.tar.gz
This commit is contained in:
Martin Kutter authored and Michael G. Schwern committed 2009-12-12 19:48:10 -08:00
1 parent b955c5ad79
commit 84b53d9261
169 files changed
+3995 -3676

No files matched your search

+2 -1
View File
@@ -1,4 +1,4 @@
use Test::More tests => 18;
use Test::More tests => 19;
use strict;
use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin::boolean;
@@ -46,6 +46,7 @@ is "$bool", 'false', 'stringification';
ok $bool->isa('SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType'), 'inheritance';
is $bool->serialize({ name => 'test'}), '<test >false</test >';
is $bool->serialize(), 'false';
$bool->delete_value();
is "$bool", '', 'serialized undef to empty string';
+6
View File
@@ -53,6 +53,12 @@ my %localized_date_of = (
);
$obj = SOAP::WSDL::XSD::Typelib::Builtin::date->new();
$obj = SOAP::WSDL::XSD::Typelib::Builtin::date->new({});
$obj = SOAP::WSDL::XSD::Typelib::Builtin::date->new({
value => '2007-12-31'
});
while (my ($date, $converted) = each %localized_date_of ) {
$obj = SOAP::WSDL::XSD::Typelib::Builtin::date->new();
@@ -22,6 +22,10 @@ my %dates = (
'30 Aug 2007' => '2007-08-30T00:00:00',
);
$obj = SOAP::WSDL::XSD::Typelib::Builtin::dateTime->new();
$obj = SOAP::WSDL::XSD::Typelib::Builtin::dateTime->new({});
$obj = SOAP::WSDL::XSD::Typelib::Builtin::dateTime->new({ value => '2007-08-31T00:32:00' });
while (my ($date, $converted) = each %dates ) {
$obj = SOAP::WSDL::XSD::Typelib::Builtin::dateTime->new();
@@ -0,0 +1,12 @@
use Test::More tests => 5;
use strict;
use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin::language;
my $Name = SOAP::WSDL::XSD::Typelib::Builtin::language->new();
is $Name->get_value(), undef;
$Name = SOAP::WSDL::XSD::Typelib::Builtin::language->new({});
is $Name->get_value(), undef;
ok $Name = SOAP::WSDL::XSD::Typelib::Builtin::language->new({ value => 'DE' });
is "$Name", "DE", 'stringification';
ok $Name->isa('SOAP::WSDL::XSD::Typelib::Builtin::token'), 'inheritance';
+3
View File
@@ -17,8 +17,11 @@ my $timezone = timezone;
use_ok('SOAP::WSDL::XSD::Typelib::Builtin::time');
my $obj;
$obj = SOAP::WSDL::XSD::Typelib::Builtin::time->new({value => '12:23:33'});
$obj = SOAP::WSDL::XSD::Typelib::Builtin::time->new({});
$obj = SOAP::WSDL::XSD::Typelib::Builtin::time->new();
$obj->set_value( '12:23:03' );
is $obj->get_value() , "12:23:03$timezone", 'conversion';
+216
View File
@@ -0,0 +1,216 @@
use strict;
use warnings;
package MyType;
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
my %test_of :ATTR(:get<test>);
__PACKAGE__->_factory(
[ 'test' ],
{
test => \%test_of,
},
{
test => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
}
);
package MyType2;
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
my %test2_of :ATTR(:get<test>);
__PACKAGE__->_factory(
[ 'test' ],
{
test => \%test2_of,
},
{
test => 'MyType',
}
);
package main;
use Test::More tests => 90;
use Data::Dumper;
use Storable;
my $obj;
$obj = MyType->new({});
isa_ok $obj, 'MyType';
is $obj->get_test, undef, 'undefined element content';
$obj = MyType->new({ test => 'Test1'});
isa_ok $obj, 'MyType';
isa_ok $obj->get_test, 'SOAP::WSDL::XSD::Typelib::Builtin::string';
is $obj->get_test, 'Test1', 'element content';
$obj = MyType->new({
test => SOAP::WSDL::XSD::Typelib::Builtin::string->new({
value => 'Test2'
})
});
isa_ok $obj, 'MyType';
isa_ok $obj->get_test, 'SOAP::WSDL::XSD::Typelib::Builtin::string';
is $obj->get_test, 'Test2', 'element content';
$obj = MyType->new({
test => { value => 'Test2' } # just a trick - pass it unaltered to new...
});
isa_ok $obj, 'MyType';
isa_ok $obj->get_test, 'SOAP::WSDL::XSD::Typelib::Builtin::string';
is $obj->get_test, 'Test2', 'element content';
$obj = MyType->new({
test => [
SOAP::WSDL::XSD::Typelib::Builtin::string->new({
value => 'Test'
}),
SOAP::WSDL::XSD::Typelib::Builtin::string->new({
value => 'Test2'
})
],
});
isa_ok $obj, 'MyType';
isa_ok $obj->get_test, 'ARRAY';
is $obj->get_test()->[0], 'Test', 'element content';
is $obj->get_test()->[1], 'Test2', 'element content';
my $nested = MyType2->new({
test => $obj,
});
is $nested->get_test, $obj;
$nested = MyType2->new({
test => [$obj, $obj],
});
is $nested->get_test->[0], $obj;
$nested = MyType2->new({
test => {
test => [
SOAP::WSDL::XSD::Typelib::Builtin::string->new({
value => 'Test'
}),
SOAP::WSDL::XSD::Typelib::Builtin::string->new({
value => 'Test2'
})
],
},
});
is $nested->get_test->[0], $obj;
$obj = MyType->new();
isa_ok $obj, 'MyType';
is $obj->get_test, undef, 'undefined element content';
$obj->add_test(
SOAP::WSDL::XSD::Typelib::Builtin::string->new({ value => 'TestString0'})
);
is $obj->get_test, 'TestString0', 'added element content';
for my $count (1..5) {
$obj->add_test(
SOAP::WSDL::XSD::Typelib::Builtin::string->new({ value => "TestString$count" })
);
is ref $obj->get_test(), 'ARRAY', 'element content structure';
is @{ $obj->get_test() }, $count+1, "element list length: " . ($count + 1);
for my $index (0..$count-1) {
is $obj->get_test->[$index], "TestString$index", "element content [$index]";
}
}
# TODO - remove after *{ "$class\::$name"" } methods are gone
$obj = MyType->new();
isa_ok $obj, 'MyType';
is $obj->get_test, undef;
eval { my $foo = @{ $obj->get_test() } };
like $@ , qr{Can't \s use \s an \s undefined}x, 'get_ELEMENT still undef on ARRAYIFY';
$obj->test(
SOAP::WSDL::XSD::Typelib::Builtin::string->new({ value => 'TestString0'})
);
is $obj->get_test, 'TestString0';
eval { is @{ $obj->get_test() }, 1, 'ARRAYIFY get_ELEMENT' };
fail 'cannot ARRAYIFY get_ELEMENT' if ($@);
my @serialized = (
'<test >TestString0</test ><test >TestString1</test >',
'<test >TestString0</test ><test >TestString1</test ><test >TestString2</test >',
'<test >TestString0</test ><test >TestString1</test ><test >TestString2</test ><test >TestString3</test >',
'<test >TestString0</test ><test >TestString1</test ><test >TestString2</test ><test >TestString3</test ><test >TestString4</test >',
'<test >TestString0</test ><test >TestString1</test ><test >TestString2</test ><test >TestString3</test ><test >TestString4</test ><test >TestString5</test >',
);
for my $count (1..5) {
$obj->test(
SOAP::WSDL::XSD::Typelib::Builtin::string->new({ value => "TestString$count" })
);
is ref $obj->get_test(), 'ARRAY';
is @{ $obj->get_test() }, $count+1;
for my $index (0..$count-1) {
is $obj->get_test->[$index], "TestString$index";
}
is $obj->serialize(), $serialized[$count -1];
}
eval {
$obj = MyType->new({
test => [
SOAP::WSDL::XSD::Typelib::Builtin::string->new({
value => 'Test'
}),
\&CORE::die,
],
});
};
like $@, qr{cannot \s use \s CODE}xms;
eval {
$obj = MyType->new({
test => \&CORE::die,
});
};
like $@, qr{cannot \s use \s CODE}xms;
eval { $obj->set_FOO(42) };
like $@, qr{Can't \s locate \s object \s method}x;
eval { MyType->set_FOO(42) };
like $@, qr{Can't \s locate \s object \s method}x;
eval { MyType->new({ FOO => 42 }) };
like $@, qr{unknown \s field \s}xm;
my $clone = Storable::thaw( Storable::freeze( $obj ));
is $clone->get_test()->[0], 'TestString0';
eval { SOAP::WSDL::XSD::Typelib::ComplexType::AUTOMETHOD() };
like $@, qr{Cannot \s call}xm;
eval { SOAP::WSDL::XSD::Typelib::ComplexType->_factory([], { test => {} }, {}) };
like $@, qr{ No \s class \s given \s for \s }xms;
eval { SOAP::WSDL::XSD::Typelib::ComplexType->_factory([], { test => {} }, { test => 'HopeItDoesntExistOnYourSystem'}) };
like $@, qr{ Can't \s locate \s HopeItDoesntExistOnYourSystem.pm }xms;
+44
View File
@@ -0,0 +1,44 @@
use strict;
use warnings;
package MyElement;
use base qw(SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::Builtin::string
);
__PACKAGE__->__set_name('MyElement');
__PACKAGE__->__set_nillable(1);
package main;
use Test::More tests => 11;
my $obj;
# All constructor variants
$obj = MyElement->new();
$obj = MyElement->new({});
$obj = MyElement->new({ value => 'Test' });
is( MyElement->__get_nillable(), 1);
is $obj->__get_nillable, 1;
isa_ok $obj, 'MyElement';
is $obj->get_value(), 'Test';
$obj->set_value(undef);
is $obj, '<MyElement xsi:nil="true" xmlns="http://www.w3.org/2001/XMLSchema" />';
$obj->__set_nillable(0);
is $obj->__get_nillable(), 0;
eval { SOAP::WSDL::XSD::Typelib::Element::__get_nillable() };
like $@, qr{Cannot \s call}xms;
eval { SOAP::WSDL::XSD::Typelib::Element::__set_nillable() };
like $@, qr{Cannot \s call}xms;
is $obj->start_tag({empty => 1}), '<MyElement />';
is $obj->start_tag({nil => 1}), '', 'empty string with nil option and NILLABLE false';
$obj->set_value('Test');
eval { is @{ $obj }, 1, 'ARRAYIFY' };
fail 'ARRAYIFY' if ($@);