App-Rssfilter

 view release on metacpan or  search on metacpan

META.yml  view on Meta::CPAN

  Mojo::Message::Response: 0
  Mojo::Transaction: 0
  Moose: 0
  Test::Exception: 0
  Test::MockObject: 0
  Test::More: 0
  Test::Most: 0
  Test::Routine: 0
  Test::Routine::Util: 0
  lib: 0
  namespace::autoclean: 0
configure_requires:
  ExtUtils::MakeMaker: 6.30
dynamic_config: 1
generated_by: 'Dist::Zilla version 5.006, CPAN::Meta::Converter version 2.133380'
license: perl
meta-spec:
  url: http://module-build.sourceforge.net/META-spec-v1.4.html
  version: 1.4
name: App-Rssfilter
requires:

Makefile.PL  view on Meta::CPAN

    "Mojo::Message::Response" => 0,
    "Mojo::Transaction" => 0,
    "Moose" => 0,
    "Test::Exception" => 0,
    "Test::MockObject" => 0,
    "Test::More" => 0,
    "Test::Most" => 0,
    "Test::Routine" => 0,
    "Test::Routine::Util" => 0,
    "lib" => 0,
    "namespace::autoclean" => 0
  },
  "VERSION" => "0.07",
  "test" => {
    "TESTS" => "t/*.t t/app/rssfilter/*.t t/app/rssfilter/feed/*.t t/app/rssfilter/filter/*.t t/app/rssfilter/group/*.t t/app/rssfilter/match/*.t"
  }
);


my %FallbackPrereqs = (
  "App::Cmd::Setup" => 0,

Makefile.PL  view on Meta::CPAN

  "Test::More" => 0,
  "Test::Most" => 0,
  "Test::Routine" => 0,
  "Test::Routine::Util" => 0,
  "Try::Tiny" => 0,
  "YAML::XS" => 0,
  "constant" => 0,
  "experimental" => "0.005",
  "feature" => 0,
  "lib" => 0,
  "namespace::autoclean" => 0,
  "strict" => 0,
  "warnings" => 0
);


unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
  delete $WriteMakefileArgs{TEST_REQUIRES};
  delete $WriteMakefileArgs{BUILD_REQUIRES};
  $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}

t/lib/App/Rssfilter/Feed/Storage/Test/FetchersBehaveSensibleWhenUnderlyingFileNotPresent.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Storage::Test::FetchersBehaveSensibleWhenUnderlyingFileNotPresent;

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

requires 'feed_storage';
requires 'tempfile';
requires 'tempdir';

test fetchers_behave_sensible_when_underlying_file_not_present => method {
    $self->tempfile->remove;

    is(

t/lib/App/Rssfilter/Feed/Storage/Test/LastModifiedComesFromFile.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Storage::Test::LastModifiedComesFromFile;

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

requires 'feed_storage';
requires 'tempfile';

test last_modified_comes_from_file => method {

    use HTTP::Date;
    is(
        $self->feed_storage->last_modified,

t/lib/App/Rssfilter/Feed/Storage/Test/LoadExistingTakesContentFromFile.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Storage::Test::LoadExistingTakesContentFromFile;

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

requires 'feed_storage';
requires 'tempfile';

test load_existing_takes_content_from_file => method {
    $self->tempfile->spew('<surprise>your favourite bean</surprise>');

    is(
        $self->feed_storage->load_existing,

t/lib/App/Rssfilter/Feed/Storage/Test/PathPush.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Storage::Test::PathPush;

use Test::Routine;
use Test::More;
use namespace::autoclean;
use Method::Signatures;
use Path::Class::Dir;

requires 'feed_storage';

test path_push => method {
    my $path_pushed = $self->feed_storage->path_push( 'cool crocodile' );
    is(
        $path_pushed->path->relative( $self->feed_storage->path ),
        'cool crocodile',

t/lib/App/Rssfilter/Feed/Storage/Test/SaveFeedPutsContentToFile.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Storage::Test::SaveFeedPutsContentToFile;

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

requires 'feed_storage';
requires 'tempfile';

test save_feed_puts_content_to_file => method {

    $self->feed_storage->save_feed( Mojo::DOM->new( '<well>I guess this is it</well>' ) );
    is(
        $self->tempfile->slurp,

t/lib/App/Rssfilter/Feed/Storage/Test/SetName.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Storage::Test::SetName;

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

requires 'feed_storage';
requires 'feed_name';

test set_name => method {
    my $name_set = $self->feed_storage->set_name( 'reef knot' );
    is(
        $name_set->name,
        'reef knot',

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

use strict;
use warnings;

package App::Rssfilter::Feed::Test::AddedRule;

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

requires 'mock_rule';
requires 'feed';

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

    is(

t/lib/App/Rssfilter/Feed/Test/AttemptsToFetchNewFeed.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Test::AttemptsToFetchNewFeed;

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

requires 'feed';
requires 'feed_url';
requires 'mock_ua';
requires 'last_modified';
requires 'mock_storage';
requires 'feed_name';

test attempts_to_fetch_new_feed => method {

t/lib/App/Rssfilter/Feed/Test/ChecksOldFeed.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Test::ChecksOldFeed;

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

requires 'mock_storage';

test checks_old_feed => method {
    my ( $name, $args );

    ( $name, $args ) = $self->mock_storage->next_call;
    is( $name, 'load_existing', 'loaded old feed' );

t/lib/App/Rssfilter/Feed/Test/CreateRuleAndUpdateWithRule.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Test::CreateRuleAndUpdateWithRule;

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

requires 'feed';

has new_mock_rule => (
    is => 'ro',
    default => sub {
        my $new_mock_rule = Test::MockObject->new;
        $new_mock_rule->set_always( 'constrain', 1 );
        $new_mock_rule->set_isa( 'App::Rssfilter::Rule' );

t/lib/App/Rssfilter/Feed/Test/ExistingFeedNotReplaced.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Test::ExistingFeedNotReplaced;

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

requires 'mock_storage';

test existing_feed_not_replaced => method {
    ok(
        !$self->mock_storage->called( 'save_feed' ),
        'did not attempt to save a new feed over the existing feed'
    );
};

t/lib/App/Rssfilter/Feed/Test/RulesNotRun.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Test::RulesNotRun;

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

requires 'mock_rule';

test rules_not_run => method {
    ok(
        ! $self->mock_rule->called( 'constain' ),
        'rules not run'
    );
};

t/lib/App/Rssfilter/Feed/Test/RulesRanOverNewFeed.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Test::RulesRanOverNewFeed;

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

requires 'feed';
requires 'new_feed';

test rules_ran_over_new_feed => method {
    for my $rule ( @{ $self->feed->rules } ) {
        next if ! $rule->can( 'next_call' ); # mocks only
        my ( $name, $args ) = $rule->next_call;
        is( $name, 'constrain',          'rule was called ... ' );

t/lib/App/Rssfilter/Feed/Test/RulesRanOverOldFeed.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Test::RulesRanOverOldFeed;

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

requires 'feed';
requires 'old_feed';

test rules_ran_over_old_feed => method {
    for my $rule ( @{ $self->feed->rules } ) {
        next if ! $rule->can( 'next_call' ); # mocks only
        my ( $name, $args ) = $rule->next_call;
        is( $name, 'constrain',          'rule was called ... ' );

t/lib/App/Rssfilter/Feed/Test/SavesNewFeed.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Test::SavesNewFeed;

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

requires 'mock_storage';
requires 'new_feed';

test saves_new_feed => method {
    my ( $name, $args ) = $self->mock_storage->next_call;
    is( $name, 'save_feed',          'attempted to save ...' );
    is( $args->[1], $self->new_feed, '... the new feed' );
};

t/lib/App/Rssfilter/Feed/Test/UpdateWithRule.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::Feed::Test::UpdateWithRule;

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

requires 'feed';
requires 'mock_rule';

test update_with_rule => method {
    lives_ok(
        sub { $self->feed->update( rules => [ $self->mock_rule ] ); },
        'passed rules as parameter to update'
    );

t/lib/App/Rssfilter/FromHash/Test/CreateGroup.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::FromHash::Test::CreateGroup;

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

requires 'from_hash';

has mock_rule => (
    is => 'ro',
    default => method {
        $self->_make_mock( 'App::Rssfilter::Rule' );
    },
);

t/lib/App/Rssfilter/FromHash/Test/SplitForCtor.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::FromHash::Test::SplitForCtor;

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

requires 'split_for_ctor';
requires 'results_of_split_for_ctor';

test call_split_for_ctor => method {
    lives_ok(
        sub {
            my @results = $self->split_for_ctor;
            push @{ $self->results_of_split_for_ctor }, @results;

t/lib/App/Rssfilter/FromHash/Test/SplitForCtorWithHashRef.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::FromHash::Test::SplitForCtorWithHashRef;

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

requires 'split_for_ctor';
requires 'fake_class';
requires 'results_of_split_for_ctor';

around 'split_for_ctor' => func( $orig, $self, @args ) {
    $orig->( $self, { castor => 'pollux', ajax => 'achilles' }, @args );
};

t/lib/App/Rssfilter/FromHash/Test/SplitForCtorWithObject.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::FromHash::Test::SplitForCtorWithObject;

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

requires 'split_for_ctor';
requires 'fake_class';
requires 'fake_class_name';
requires 'results_of_split_for_ctor';

has mock_object => (
    is => 'ro',
    lazy => 1,

t/lib/App/Rssfilter/FromHash/Test/SplitForCtorWithTwoScalars.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::FromHash::Test::SplitForCtorWithTwoScalars;

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

requires 'split_for_ctor';
requires 'results_of_split_for_ctor';

around 'split_for_ctor' => func( $orig, $self, @args ) {
    $orig->( $self, lol => 'wut', @args );
};

t/lib/App/Rssfilter/FromYaml/Test/DelegatesToFromHash.pm  view on Meta::CPAN

use strict;
use warnings;

package App::Rssfilter::FromYaml::Test::DelegatesToFromHash;

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

requires 'fake_from_hash';

test delegates_to_from_hash => method {
    $self->from_yaml(<<"end");
    hi: hello
    asd:
    - a
    - s

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

use strict;
use warnings;

package App::Rssfilter::Group::Test::AddedFeed;

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

requires 'group';
requires 'mock_feed';

has 'feed_id' => (
    is => 'rw',
    default => sub { 0 },
);

method advance_feed_id() {

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

use strict;
use warnings;

package App::Rssfilter::Group::Test::AddedGroup;

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

requires 'group';
requires 'mock_group';

method count_matches( $needle, ArrayRef $haystack ) {
    return grep { $needle eq $_ } @{ $haystack };
}

method count_mock_group_matches() {
    return $self->count_matches( $self->mock_group, $self->group->groups );

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(

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

use strict;
use warnings;

package App::Rssfilter::Group::Test::FetchedFeedByName;

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

requires 'group';

test fetched_feed_by_name => method {
    my $feed_name = 'needle';
    my $feed = App::Rssfilter::Feed->new( $feed_name => 'http://example.org/' );
    $self->group->add_feed( $feed->name => 'http://example.net/' );
    $self->group->add_feed( $feed );
    is(
        $self->group->feed( $feed->name ),

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

use strict;
use warnings;

package App::Rssfilter::Group::Test::FetchedSubgroupByName;

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

requires 'group';

test fetched_subgroup_by_name => method {
    my $subgroup_name = 'needle';
    my $subgroup = App::Rssfilter::Group->new( $subgroup_name );
    $self->group->add_group( $subgroup->name );
    $self->group->add_group( $subgroup );
    is(
        $self->group->group( $subgroup->name ),

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

use strict;
use warnings;

package App::Rssfilter::Group::Test::Update;

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

requires 'group';
requires 'group_name';
requires 'mock_storage';
requires 'rules_for_update';

method do_update( $group ) {
    $self->mock_storage->set_always( path_push => $self->path_pushed_storage );
    $group->update( rules => $self->rules_for_update );



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