1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More tests => 10;
7
8use aliased 'XML::Toolkit::Config::Container' => 'XMLTK::App';
9
10my $xml1 = '<root xmlns="abc">test1</root>';
11my $xml2 = '<my:root xmlns:my="abc">test2</my:root>';
12
13my $args = { namespace_map => { 'abc' => 'ABC' } };
14
15{
16    my $builder = XMLTK::App->new($args)->builder;
17    $builder->parse_string($xml1);
18    my $code = $builder->render();
19    eval $code;
20    my $root = ABC::Root->new();
21    isa_ok( $root, 'ABC::Root' );
22};
23
24{
25    my $loader = XMLTK::App->new($args)->loader;
26    $loader->parse_string($xml1);
27    my $root = $loader->root_object;
28    isa_ok( $root, 'ABC::Root' );
29    is( $root->text, 'test1', 'root node text was loaded correctly' );
30};
31
32{
33    my $loader = XMLTK::App->new($args)->loader;
34    $loader->parse_string($xml2);
35    my $root = $loader->root_object;
36    isa_ok( $root, 'ABC::Root' );
37    is( $root->text, 'test2', 'root node text was loaded correctly' );
38};
39
40$args = { namespace_map => { 'abc' => 'XYZ' } };
41
42{
43
44    my $builder = XMLTK::App->new($args)->builder;
45    $builder->parse_string($xml2);
46    my $code = $builder->render();
47    eval $code;
48    my $root = XYZ::Root->new();
49    isa_ok( $root, 'XYZ::Root' );
50};
51
52{
53    my $loader = XMLTK::App->new($args)->loader;
54    $loader->parse_string($xml1);
55    my $root = $loader->root_object;
56    isa_ok( $root, 'XYZ::Root' );
57    ok( $root->text eq 'test1', 'root node text was not loaded correctly' );
58};
59
60{
61    my $loader = XMLTK::App->new($args)->loader;
62    $loader->parse_string($xml2);
63    my $root = $loader->root_object;
64    isa_ok( $root, 'XYZ::Root' );
65    ok( $root->text eq 'test2', 'root node text was not loaded correctly' );
66};
67