File: XSD.t

package info (click to toggle)
libsoap-wsdl-perl 3.004-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 2,600 kB
  • sloc: perl: 8,433; xml: 1,769; java: 19; makefile: 15
file content (50 lines) | stat: -rw-r--r-- 1,872 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package FOO;
use strict; use warnings;
use Class::Std::Fast;
sub serialize_qualified { 'FOO' };
sub get_xmlns { 'urn:foo' };
{
    my $name = 'Foo';
    sub __set_name { $name = $_[1]};
    sub __get_name{ $name };
    sub serialize { "<$name/>" };
}


package main;
use strict;
use warnings;
use Test::More tests => 10;

use_ok qw(SOAP::WSDL::Serializer::XSD);

my $serializer = SOAP::WSDL::Serializer::XSD->new();

like $serializer->serialize(), qr{<SOAP-ENV:Body></SOAP-ENV:Body>}, 'empty body';
like $serializer->serialize({ body => {} }), qr{<SOAP-ENV:Body></SOAP-ENV:Body>}, 'empty body';
like $serializer->serialize({ body => [] }), qr{<SOAP-ENV:Body></SOAP-ENV:Body>}, 'empty body';
like $serializer->serialize({ header => {}, body => [] }),
    qr{<SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Body></SOAP-ENV:Body>}, 'empty header and body';

like $serializer->serialize({
    header => {},
    body => [] ,
    options => {
    namespace => {
                'http://schemas.xmlsoap.org/soap/envelope/' => 'SOAP',
                'http://www.w3.org/2001/XMLSchema-instance' => 'xsi',
        }
    }})
    , qr{xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"}
    , 'namespace';

like $serializer->serialize({ header => {}, body => [ undef ] }),
    qr{<SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Body></SOAP-ENV:Body>}, 'empty header and body';
like $serializer->serialize({ header => {}, body => [ undef, FOO->new() ] }),
    qr{<SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Body>FOO</SOAP-ENV:Body>}, 'empty header and body';

like $serializer->serialize({ header => FOO->new(), body => FOO->new()}),
    qr{<SOAP-ENV:Body>FOO</SOAP-ENV:Body>}, 'prefixed body element';

like $serializer->serialize({ header => FOO->new(), body => FOO->new() , options => { prefix => 'foo'}}),
    qr{<SOAP-ENV:Body><foo:Foo/></SOAP-ENV:Body>}, 'prefixed body element';