view release on metacpan or search on metacpan
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 );