The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More tests => 3;

my $qti = MyXSD->new( file => 't/data/imsqti_v2p1.xsd' );
can_ok($qti, 'element_map');
my $element_map = $qti->element_map;
is( scalar keys %{ $element_map }, 254, 'element_map keys mismatch');
is( $element_map->{'a'}, 'a.Type', 'element_map{a} type mismatch');

BEGIN {
    package MyXSD;
    use Moose;
    with 'XML::Rabbit::RootNode';

    has '+namespace_map' => (
        default => sub { {
            'xsd' => 'http://www.w3.org/2001/XMLSchema',
        } }
    );

    has 'element_map' => (
        isa         => 'HashRef[Str]',
        traits      => ['XPathValueMap'],
        xpath_query => '//xsd:element[@name]',
        xpath_key   => './@name',
        xpath_value => './@type',
    );

    no Moose;
    __PACKAGE__->meta->make_immutable();

}

1;