The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Test::More tests => 5;

use DateTime::Locale;

DateTime::Locale->add_aliases( foo => 'root' );
DateTime::Locale->add_aliases( bar => 'foo' );
DateTime::Locale->add_aliases( baz => 'bar' );
eval { DateTime::Locale->add_aliases( bar => 'baz' ) };

like( $@, qr/loop/, 'cannot add an alias that would cause a loop' );

my $l = DateTime::Locale->load('baz');
isa_ok( $l, 'DateTime::Locale::Base' );
is( $l->id, 'baz', 'id is baz' );

ok( DateTime::Locale->remove_alias('baz'),
    'remove_alias should return true' );

eval { DateTime::Locale->load('baz') };
like( $@, qr/invalid/i, 'removed alias should be gone' );