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