git-cpan-module: SOAP-WSDL git-cpan-version: 2.00_31 git-cpan-authorid: MKUTTER git-cpan-file: authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_31.tar.gz
164 lines
4.2 KiB
Perl
164 lines
4.2 KiB
Perl
package MyPart;
|
|
use Class::Std::Fast;
|
|
|
|
package main;
|
|
use strict;
|
|
use warnings;
|
|
use Test::More tests => 21;
|
|
use_ok qw(SOAP::WSDL::Client::Base);
|
|
|
|
{
|
|
no warnings qw(redefine once);
|
|
*SOAP::WSDL::Client::call = sub { is $_[1]->{ operation }, 'sayHello', 'Called method';
|
|
return $_[2], $_[3];
|
|
};
|
|
}
|
|
|
|
my $client = SOAP::WSDL::Client::Base->new();
|
|
|
|
my @result = $client->call({
|
|
operation => 'sayHello',
|
|
soap_action => 'urn:HelloWorld#sayHello',
|
|
style => 'document',
|
|
body => {
|
|
|
|
'use' => 'literal',
|
|
namespace => '',
|
|
encodingStyle => '',
|
|
parts => [qw( SOAP::WSDL::XSD::Typelib::Builtin::string
|
|
SOAP::WSDL::XSD::Typelib::Builtin::string
|
|
)],
|
|
},
|
|
header => {
|
|
parts => [qw( SOAP::WSDL::XSD::Typelib::Builtin::string
|
|
|
|
)],
|
|
},
|
|
headerfault => {
|
|
|
|
}
|
|
}, { value => 'Body' }, { value => 'Header' });
|
|
|
|
is $result[0]->[0], 'Body';
|
|
is $result[1], 'Header';
|
|
isa_ok $result[0]->[0], 'SOAP::WSDL::XSD::Typelib::Builtin::string';
|
|
|
|
@result = $client->call({
|
|
operation => 'sayHello',
|
|
soap_action => 'urn:HelloWorld#sayHello',
|
|
style => 'document',
|
|
body => {
|
|
|
|
'use' => 'literal',
|
|
namespace => '',
|
|
encodingStyle => '',
|
|
parts => [qw( SOAP::WSDL::XSD::Typelib::Builtin::string )],
|
|
},
|
|
header => {
|
|
parts => [qw( SOAP::WSDL::XSD::Typelib::Builtin::string )],
|
|
},
|
|
headerfault => {
|
|
|
|
}
|
|
}, SOAP::WSDL::XSD::Typelib::Builtin::string->new({ value => 'Body2' }),
|
|
SOAP::WSDL::XSD::Typelib::Builtin::string->new({ value => 'Header2' })
|
|
);
|
|
|
|
is $result[0], 'Body2';
|
|
is $result[1], 'Header2';
|
|
isa_ok $result[1], 'SOAP::WSDL::XSD::Typelib::Builtin::string';
|
|
|
|
# Call with more body parts than parameters. Body parts are empty
|
|
@result = $client->call({
|
|
operation => 'sayHello',
|
|
soap_action => 'urn:HelloWorld#sayHello',
|
|
style => 'document',
|
|
body => {
|
|
|
|
'use' => 'literal',
|
|
namespace => '',
|
|
encodingStyle => '',
|
|
parts => [qw( SOAP::WSDL::XSD::Typelib::Builtin::string )],
|
|
},
|
|
header => {
|
|
parts => [qw( SOAP::WSDL::XSD::Typelib::Builtin::string )],
|
|
},
|
|
headerfault => {
|
|
|
|
}
|
|
}, [],
|
|
SOAP::WSDL::XSD::Typelib::Builtin::string->new({ value => 'Header2' })
|
|
);
|
|
|
|
isa_ok $result[0], 'SOAP::WSDL::XSD::Typelib::Builtin::string';
|
|
is $result[0], undef;
|
|
is $result[1], 'Header2';
|
|
isa_ok $result[1], 'SOAP::WSDL::XSD::Typelib::Builtin::string';
|
|
|
|
# Call with more body parts than parameters. Body parts are empty
|
|
# No header
|
|
@result = $client->call({
|
|
operation => 'sayHello',
|
|
soap_action => 'urn:HelloWorld#sayHello',
|
|
style => 'document',
|
|
body => {
|
|
|
|
'use' => 'literal',
|
|
namespace => '',
|
|
encodingStyle => '',
|
|
parts => [qw( SOAP::WSDL::XSD::Typelib::Builtin::string )],
|
|
},
|
|
header => {
|
|
},
|
|
headerfault => {
|
|
|
|
}
|
|
});
|
|
|
|
isa_ok $result[0], 'SOAP::WSDL::XSD::Typelib::Builtin::string';
|
|
is $result[0], undef;
|
|
|
|
eval { $client->call({
|
|
operation => 'sayHello',
|
|
soap_action => 'urn:HelloWorld#sayHello',
|
|
style => 'document',
|
|
body => {
|
|
|
|
'use' => 'literal',
|
|
namespace => '',
|
|
encodingStyle => '',
|
|
parts => [qw( SomeStupidClassYouProbablyDontHaveOnYourSystem )],
|
|
},
|
|
header => {
|
|
},
|
|
headerfault => {
|
|
|
|
}
|
|
})
|
|
};
|
|
like $@, qr{ Can't \s locate }xms;
|
|
|
|
isa_ok $result[0], 'SOAP::WSDL::XSD::Typelib::Builtin::string';
|
|
is $result[0], undef;
|
|
|
|
eval { $client->call({
|
|
operation => 'sayHello',
|
|
soap_action => 'urn:HelloWorld#sayHello',
|
|
style => 'document',
|
|
body => {
|
|
|
|
'use' => 'literal',
|
|
namespace => '',
|
|
encodingStyle => '',
|
|
parts => [qw( SOAP::WSDL::XSD::Typelib::Builtin::string )],
|
|
},
|
|
header => {
|
|
parts => [qw( SomeOtherStupidClassYouProbablyDontHaveOnYourSystem )],
|
|
},
|
|
headerfault => {
|
|
|
|
}
|
|
})
|
|
};
|
|
# die $@;
|
|
like $@, qr{ Can't \s locate }xms; |