use strict;
use warnings;
use Test::More tests => 3;
use Test::Exception;
{
package MyClass;
use Moose;
use MooseX::Types::Email::Loose qw/EmailAddressLoose EmailAddress/;
use namespace::autoclean;
has email => ( isa => EmailAddress, is => 'rw' );
has email_loose => ( isa => EmailAddressLoose, is => 'rw' );
}
my $myclass = MyClass->new;
subtest 'valid_rfc822' => sub {
my $address = 'valid@example.com';
lives_ok { $myclass->email($address) };
lives_ok { $myclass->email_loose($address) };
};
subtest 'loose_rfc822' => sub {
my $address = 'loose..@example.com';
dies_ok { $myclass->email($address) };
lives_ok { $myclass->email_loose($address) };
};
subtest 'invalid_rfc822' => sub {
my $address = 'invalid';
dies_ok { $myclass->email($address) };
dies_ok { $myclass->email_loose($address) };
};