App-Rssfilter

 view release on metacpan or  search on metacpan

t/lib/App/Rssfilter/Group/Test/AddedRule.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Group::Test::AddedRule;

use Test::Routine;
use Test::More;
use namespace::autoclean;
use Method::Signatures;

requires 'group';
requires 'mock_rule';

test added_rule => method {
    my $pre_add_mock_rule_count =
        grep { $self->mock_rule eq $_ } @{ $self->group->rules };

    is(
        $self->group->add_rule( $self->mock_rule ),
        $self->group,
        'adding rule to group returns the group object (for chaining)'
    );

    my $mock_rule_count =
        grep { $self->mock_rule eq $_ } @{ $self->group->rules };
    is(
        $mock_rule_count - $pre_add_mock_rule_count,
        1,
        q{rule has been added to the group's list of rules}
    );
};

test created_and_added_rule => method {
    my $match  = sub {};
    my $filter = sub {};
    $self->group->add_rule( condition => $match, action => $filter );

    my $created_rule = $self->group->rules->[-1];
    is( $created_rule->condition, $match,  'add_rule passed options ...' );
    is( $created_rule->action,    $filter, '... to App::Rssfilter::Rule->new()' );

};

1;



( run in 0.582 second using v1.01-cache-2.11-cpan-39bf76dae61 )