The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More tests => 10;
use strict;

use lib qw(lib);

BEGIN { use_ok( 'Net::Sieve::Script::Action' ); }

my $command = ' fileinto "INBOX.spam" ';

my $action = Net::Sieve::Script::Action->new($command);

is ( $action->command, 'fileinto', "command fileinto");
is ( $action->param, '"INBOX.spam"', "param INBOX.spam");

$action = Net::Sieve::Script::Action->new('stop');
is ( $action->command, 'stop', "command stop");

$action = Net::Sieve::Script::Action->new('redirect "bart@example.edu"');
is ( $action->command, 'redirect', "command redirect");
is ( $action->param, '"bart@example.edu"', 'param bart@example.edu');

$action = Net::Sieve::Script::Action->new('nimp "bart@example.edu"');
is ( $action->command, undef, "undef for command nimp");

$action = Net::Sieve::Script::Action->new('vacation "I am away this week.";');
is ( $action->command, 'vacation' , "vacation command");
is ( $action->param, '"I am away this week."' , "vacation param");

my $multi_line_param = 'text: some text 
on multi-line 
.';

my $command2 = ' reject '.$multi_line_param; 
my $action2 = Net::Sieve::Script::Action->new($command2);
is ( $action2->param, $multi_line_param , "match mult-line param");