use Test::More (qw/no_plan/);
use Data::FormValidator;

my $profile = {
    required => [qw( test1 )],
    constraint_regexp_map => {
        qr/^test/ => 'email',
    },
};

my $data = {
    test1 => 'not an email',
};

my $results1 = Data::FormValidator->check($data, $profile);
my $c1 = {%{ $profile->{constraints} }};
my $results2 = Data::FormValidator->check($data, $profile);
my $c2 = {%{ $profile->{constraints} }};

is_deeply($results1->{profile},$results2->{profile}, "constraints aren't duped when profile with constraint_regexp_map is reused");
is_deeply($c1,$c2, "constraints aren't duped when profile with constraint_regexp_map is reused");

{
    my $profile = {
        required => [qw( test1 )],
        field_filter_regexp_map => {
            qr/^test/ => 'trim',
        },
    };

    my $data = {
        test1 => ' not an email ',
    };

    my $results1 = Data::FormValidator->check($data, $profile);
    my $c1 = {%{ $profile->{constraints} }};
    my $results2 = Data::FormValidator->check($data, $profile);
    my $c2 = {%{ $profile->{constraints} }};
    is_deeply($results1->{profile},$results2->{profile}, "field_filters aren't duped when profile with field_filter_regexp_map is reused");
    is_deeply($c1,$c2, "field_filters aren't duped when profile with field_filter_regexp_map is reused");

}

