BEGIN { require_ok (
'ASNMTAP::Asnmtap::Plugins::SOAP'
) };
BEGIN { use_ok (
'ASNMTAP::Asnmtap::Plugins::SOAP'
) };
BEGIN { use_ok (
'ASNMTAP::Asnmtap::Plugins::SOAP'
,
qw(:ALL)
) };
BEGIN { use_ok (
'ASNMTAP::Asnmtap::Plugins::SOAP'
,
qw(&get_soap_request)
) };
my
$objectPlugins
= ASNMTAP::Asnmtap::Plugins->new (
_programName
=>
'SOAP.t '
,
_programDescription
=>
"Testing ASNMTAP::Asnmtap::Plugins::SOAP"
,
_programVersion
=>
'3.000.016'
,
_programGetOptions
=> [
'proxy:s'
,
'trendline|T:i'
],
_timeout
=> 30,
_debug
=> 0);
isa_ok(
$objectPlugins
,
'ASNMTAP::Asnmtap::Plugins'
);
can_ok(
$objectPlugins
,
qw(programName programDescription programVersion getOptionsArgv getOptionsValue debug dumpData printRevision printRevision printUsage printHelp)
);
can_ok(
$objectPlugins
,
qw(appendPerformanceData browseragent SSLversion clientCertificate pluginValue pluginValues proxy timeout setEndTime_and_getResponsTime write_debugfile call_system exit)
);
my
$methodName
=
'hi'
;
my
$method
= SOAP::Data->name(
$methodName
)->attr( {
xmlns
=>
$namespace
} );
my
%soapService_Register_NS
= (
);
my
$xmlContent
;
my
$params
;
my
(
$returnCode
,
$xml
,
$errorStatus
);
SKIP: {
my
$ASNMTAP_PROXY
= (
exists
$ENV
{ASNMTAP_PROXY} ?
$ENV
{ASNMTAP_PROXY} :
undef
);
skip
'Missing ASNMTAP_PROXY'
, 8
if
(
defined
$ASNMTAP_PROXY
and (
$ASNMTAP_PROXY
eq
'0.0.0.0'
or
$ASNMTAP_PROXY
eq
''
) );
if
(
defined
$ASNMTAP_PROXY
) {
no
warnings
'deprecated'
;
$objectPlugins
->{_getOptionsArgv}->{proxy} =
$ASNMTAP_PROXY
;
}
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
);
ok (
$returnCode
== 0,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): normal'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
custom
=> \
&actionOnSoapResponse
,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
);
$errorStatus
= (
$returnCode
== 0 && !
defined
$objectPlugins
->pluginValue (
'result'
));
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): with custom'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
custom
=> \
&actionOnSoapResponse
,
customArguments
=> 1,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
);
$errorStatus
= (
$returnCode
== 0 &&
$objectPlugins
->pluginValue (
'result'
) eq
'SCALAR'
);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): with custom and customArguments, scalar'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
custom
=> \
&actionOnSoapResponse
,
customArguments
=> [1, 2, 3],
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
);
$errorStatus
= (
$returnCode
== 0 &&
$objectPlugins
->pluginValue (
'result'
) eq
'ARRAY'
);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): with custom and customArguments, array'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
custom
=> \
&actionOnSoapResponse
,
customArguments
=> {
a
=>1,
b
=>2,
c
=>3},
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
);
$errorStatus
= (
$returnCode
== 0 &&
$objectPlugins
->pluginValue (
'result'
) eq
'HASH'
);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): with custom and customArguments, hash'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
custom
=> \
&actionOnSoapResponse
,
customArguments
=> \1,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
);
$errorStatus
= (
$returnCode
== 0 &&
$objectPlugins
->pluginValue (
'result'
) eq
'REF SCALAR'
);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): with custom and customArguments, ref scalar'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
custom
=> \
&actionOnSoapResponse
,
customArguments
=> \[1, 2, 3],
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
);
$errorStatus
= (
$returnCode
== 0 &&
$objectPlugins
->pluginValue (
'result'
) eq
'REF ARRAY'
);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): with custom and customArguments, ref array'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
custom
=> \
&actionOnSoapResponse
,
customArguments
=> \{
a
=>1,
b
=>2,
c
=>3},
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
);
$errorStatus
= (
$returnCode
== 0 &&
$objectPlugins
->pluginValue (
'result'
) eq
'REF HASH'
);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): with custom and customArguments, ref hash'
);
};
TODO: {
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
);
$errorStatus
= (
$returnCode
== 3 &&
$objectPlugins
->pluginValue (
'error'
) =~ /\QMissing SOAP parameter proxy\E/);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): Missing SOAP parameter proxy'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
proxy
=>
$proxy
);
$errorStatus
= (
$returnCode
== 3 &&
$objectPlugins
->pluginValue (
'error'
) =~ /\QMissing SOAP parameter namespace\E/);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): Missing SOAP parameter namespace'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
proxy
=>
$proxy
,
namespace
=>
$namespace
);
$errorStatus
= (
$returnCode
== 3 &&
$objectPlugins
->pluginValue (
'error'
) =~ /\QMissing SOAP parameter method\E/);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): Missing SOAP parameter method'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=>
'%soapService_Register_NS'
);
$errorStatus
= (
$returnCode
== 3 &&
$objectPlugins
->pluginValue (
'error'
) =~ /\QMissing SOAP parameter registerNamespace\E/);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): Missing SOAP parameter registerNamespace'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
readable
=> 2
);
$errorStatus
= (
$returnCode
== 3 &&
$objectPlugins
->pluginValue (
'error'
) =~ /\QSOAP parameter readable must be 0 or 1\E/);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): SOAP parameter readable must be 0 or 1'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
readline
=> 1,
cookies
=> 2
);
$errorStatus
= (
$returnCode
== 3 &&
$objectPlugins
->pluginValue (
'error'
) =~ /\QSOAP parameter cookies must be 0 or 1\E/);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): SOAP parameter cookies must be 0 or 1'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
cookies
=> 1
);
$errorStatus
= (
$returnCode
== 3 &&
$objectPlugins
->pluginValue (
'error'
) =~ /\QMissing SOAP parameter perfdataLabel\E/);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): Missing SOAP parameter perfdataLabel'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
,
PATCH_HTTP_KEEPALIVE
=> 2
);
$errorStatus
= (
$returnCode
== 3 &&
$objectPlugins
->pluginValue (
'error'
) =~ /\QSOAP parameter PATCH_HTTP_KEEPALIVE must be 0 or 1\E/);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): SOAP parameter PATCH_HTTP_KEEPALIVE must be 0 or 1'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
,
WSRF
=> 2
);
$errorStatus
= (
$returnCode
== 3 &&
$objectPlugins
->pluginValue (
'error'
) =~ /\QSOAP parameter WSRF must be 0 or 1\E/);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): SOAP parameter WSRF must be 0 or 1'
);
(
$returnCode
,
$xml
) = get_soap_request (
asnmtapInherited
=> \
$objectPlugins
,
proxy
=>
$proxy
,
namespace
=>
$namespace
,
registerNamespace
=> \
%soapService_Register_NS
,
method
=>
$method
,
xmlContent
=>
$xmlContent
,
params
=>
$params
,
cookies
=> 1,
perfdataLabel
=>
'SOAP.t'
,
TYPE_ERROR_RETURN
=>
'UNKNOWN'
);
$errorStatus
= (
$returnCode
== 3 &&
$objectPlugins
->pluginValue (
'error'
) =~ /\QSOAP parameter TYPE_ERROR_RETURN must be [REPLACE|APPEND|INSERT|COMMA_APPEND|COMMA_INSERT]\E/);
ok (
$errorStatus
,
'ASNMTAP::Asnmtap::Plugins::SOAP::get_soap_request(): SOAP parameter TYPE_ERROR_RETURN must be [REPLACE|APPEND|INSERT|COMMA_APPEND|COMMA_INSERT]'
);
}
sub
actionOnSoapResponse {
my
(
$asnmtapInherited
,
$som
,
$arguments
) =
@_
;
my
$result
;
if
(
defined
$arguments
) {
for
(
ref
$arguments
) {
/^REF$/ &&
do
{
for
(
ref
$$arguments
) {
/^ARRAY$/ &&
do
{
$result
=
'REF ARRAY'
;
last
; };
/^HASH$/ &&
do
{
$result
=
'REF HASH'
;
last
; };
}
last
;
};
/^ARRAY$/ &&
do
{
$result
=
'ARRAY'
;
last
; };
/^HASH$/ &&
do
{
$result
=
'HASH'
;
last
; };
/^SCALAR$/ &&
do
{
$result
=
'REF SCALAR'
;
last
; };
$result
=
'SCALAR'
;
}
}
my
$returnCode
=
$ERRORS
{OK};
$asnmtapInherited
->pluginValues ( {
stateValue
=>
$returnCode
,
result
=>
$result
},
$TYPE
{APPEND} );
return
(
$returnCode
);
}