From 2458f11ac12dfc4a707c5e837670e9e0f337214c Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Thu, 25 Jun 2026 13:26:09 +0200 Subject: [PATCH] use Test2::Tools::Mock rather than Test::MockObject Test2 includes a class/object mocking library. Use it rather than adding an additional prereq. --- cpanfile | 2 -- t/clone.t | 70 ++++++++++++++++++++++++++++++++----------------------- 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/cpanfile b/cpanfile index 1400d04..c0d2532 100644 --- a/cpanfile +++ b/cpanfile @@ -42,13 +42,11 @@ requires "warnings" => "0"; on 'test' => sub { requires "Carp" => "0"; - requires "DDP" => "0"; requires "ExtUtils::MakeMaker" => "0"; requires "File::Spec" => "0"; requires "IO::Handle" => "0"; requires "IPC::Open3" => "0"; requires "Test2::V1" => "0"; - requires "Test::MockObject" => "0"; requires "Test::More" => "0"; }; diff --git a/t/clone.t b/t/clone.t index 714da80..715db4d 100644 --- a/t/clone.t +++ b/t/clone.t @@ -6,7 +6,6 @@ use Test2::V1 -Pip; use Git::CPAN::Patch::Command::Clone; use File::Temp qw/ tempdir /; use Git::Repository 'AUTOLOAD'; -use Test::MockObject; my $data = { name => 'Git-CPAN-Patch', @@ -16,37 +15,50 @@ my $data = { version => '0.4.4', }; -my $metacpan = Test::MockObject->new - ->set_false( 'module' ) - ->mock( 'release', sub { - return Test::MockObject->new->set_always( data => $data ) +my $metacpan = mock {} => ( + add => [ + module => sub { 0 }, + release => sub { + return mock { data => $data } if $_[1] eq 'Git-CPAN-Patch'; - return Test::MockObject->new->set_series( next => - Test::MockObject->new->set_always( data => { - 'status' => 'cpan', - 'distribution' => 'Git-CPAN-Patch', - author => 'YANICK', - date => '2011-03-06T01:02:03', - download_url => './t/corpus/Git-CPAN-Patch-0.4.5.tar.gz', - version => '0.4.4', - metadata => { - 'author' => [ - 'Yanick Champoux ' - ], + if (ref $_[1]) { + my @releases = ( + mock { + data => { + 'status' => 'cpan', + 'distribution' => 'Git-CPAN-Patch', + author => 'YANICK', + date => '2011-03-06T01:02:03', + download_url => './t/corpus/Git-CPAN-Patch-0.4.5.tar.gz', + version => '0.4.4', + metadata => { + 'author' => [ + 'Yanick Champoux ' + ], + }, + }, + meta => { + 'author' => [ + 'Yanick Champoux ' + ], + }, }, - })->set_always( meta => { - 'author' => [ - 'Yanick Champoux ' - ], }) - ) if ref $_[1]; - - use Carp; - use DDP; - warn p $_[1]; - confess; - } - ); + ); + return mock {} => ( + add => [ + next => sub { + return shift @releases; + }, + ], + ); + } + + require Carp; + Carp::confess "Unhandled release: $_[1]"; + }, + ], +); subtest $_ => sub { test_clone($_) } for qw[ Git-CPAN-Patch ./t/corpus/Git-CPAN-Patch-0.4.5.tar.gz ];