Acme-MetaSyntactic-daleks

 view release on metacpan or  search on metacpan

t/ams-23length.t  view on Meta::CPAN

use strict;
use Test::More;
use Acme::MetaSyntactic;

my @themes = grep { !/^(?:any|random)/ } Acme::MetaSyntactic->themes;
my @ams;

for my $theme (@themes) {
    eval "require Acme::MetaSyntactic::$theme;";
    my $ams = "Acme::MetaSyntactic::$theme"->new;
    if ( $ams->isa('Acme::MetaSyntactic::Locale') ) {
        for my $lang ( $ams->languages ) {
            my $a = "Acme::MetaSyntactic::$theme"->new( lang => $lang );
            push @ams, [ $a, sprintf "%s (%s)", $a->theme, $a->lang ];
        }
    }
    elsif ( $ams->isa('Acme::MetaSyntactic::MultiList') ) {
        # check everything at once
        my $a = "Acme::MetaSyntactic::$theme"->new( category => ':all' );
        push @ams, [ $a, sprintf "%s (%s)", $a->theme, $a->category ];
    }
    else {
        push @ams, [ $ams, $ams->theme ];
    }
}

plan tests => scalar @ams;

for my $t (@ams) {
    my ($ams, $theme) = @$t;
    my @items = $ams->name( 0 );
    my @failed;
    my $ok = 0;
    ( length($_) <= 251 && ++$ok ) || push @failed, $_ for @items;
    is( $ok, @items, "All names correct for $theme" );
    diag "Names too long: @failed" if @failed;
}



( run in 0.628 second using v1.01-cache-2.11-cpan-8dfa8b56332 )