[libclass-virtual-perl] 08/11: Convert to Test::More
dom at earth.li
dom at earth.li
Wed Aug 23 14:00:17 UTC 2017
This is an automated email from the git hooks/post-receive script.
dom pushed a commit to tag v0.06
in repository libclass-virtual-perl.
commit 40a58c06497c03b9639dc603473ec90f93a6a82a
Author: Michael G. Schwern <schwern at pobox.com>
Date: Fri Dec 31 06:34:09 2004 +0000
Convert to Test::More
git-svn-id: file:///Users/schwern/tmp/svn/CPAN/Class-Virtual/trunk@2287 8151f2b9-fde8-0310-94fd-f048d12aab9e
---
t/Virtual.t | 117 +++++++++++++++++++-----------------------------------------
1 file changed, 37 insertions(+), 80 deletions(-)
diff --git a/t/Virtual.t b/t/Virtual.t
index bead3bf..3a7d22f 100644
--- a/t/Virtual.t
+++ b/t/Virtual.t
@@ -1,57 +1,10 @@
-# Before `make install' is performed this script should be runnable with
-# `make test'. After `make install' it should work as `perl test.pl'
+#!/usr/bin/perl -w
-######################### We start with some black magic to print on failure.
-
-# Change 1..1 below to 1..last_test_to_print .
-# (It may become useful if the test is moved to ./t subdirectory.)
use strict;
+use Test::More tests => 15;
-use vars qw($Total_tests);
-
-my $loaded;
-my $test_num = 1;
-BEGIN { $| = 1; $^W = 1; }
-END {print "not ok $test_num\n" unless $loaded;}
-print "1..$Total_tests\n";
-use Class::Virtual;
-$loaded = 1;
-ok(1, 'compile');
-######################### End of black magic.
-
-# Utility testing functions.
-sub ok {
- my($test, $name) = @_;
- print "not " unless $test;
- print "ok $test_num";
- print " - $name" if defined $name;
- print "\n";
- $test_num++;
-}
-
-sub eqarray {
- my($a1, $a2) = @_;
- return 0 unless @$a1 == @$a2;
- my $ok = 1;
- for (0..$#{$a1}) {
- my($e1,$e2) = ($a1->[$_], $a2->[$_]);
- unless($e1 eq $e2) {
- if( UNIVERSAL::isa($e1, 'ARRAY') and
- UNIVERSAL::isa($e2, 'ARRAY') )
- {
- $ok = eqarray($e1, $e2);
- }
- else {
- $ok = 0;
- }
- last unless $ok;
- }
- }
- return $ok;
-}
+BEGIN { use_ok 'Class::Virtual'; }
-# Change this to your # of ok() calls + 1
-BEGIN { $Total_tests = 14 }
my @vmeths = qw(new foo bar this that);
my $ok;
@@ -60,22 +13,22 @@ package Test::Virtual;
use base qw(Class::Virtual);
__PACKAGE__->virtual_methods(@vmeths);
-::ok( ::eqarray([sort __PACKAGE__->virtual_methods], [sort @vmeths]),
+::is_deeply([sort __PACKAGE__->virtual_methods], [sort @vmeths],
'Declaring virtual methods' );
eval {
__PACKAGE__->virtual_methods(qw(this wont work));
};
-$ok = $@ =~ /^Attempt to reset virtual methods/;
-::ok( $ok, "Disallow reseting by virtual class" );
+::like($@, qr/^Attempt to reset virtual methods/,
+ "Disallow reseting by virtual class" );
package Test::This;
use base qw(Test::Virtual);
-::ok( ::eqarray([sort __PACKAGE__->virtual_methods], [sort @vmeths]),
+::is_deeply([sort __PACKAGE__->virtual_methods], [sort @vmeths],
'Subclass listing virtual methods');
-::ok( ::eqarray([sort __PACKAGE__->missing_methods], [sort @vmeths]),
+::is_deeply([sort __PACKAGE__->missing_methods], [sort @vmeths],
'Subclass listing missing methods');
*foo = sub { 42 };
@@ -83,14 +36,14 @@ use base qw(Test::Virtual);
::ok( defined &foo && defined &bar );
-::ok( ::eqarray([sort __PACKAGE__->missing_methods], [sort qw(new this that)]),
+::is_deeply([sort __PACKAGE__->missing_methods], [sort qw(new this that)],
'Subclass handling some methods');
eval {
__PACKAGE__->virtual_methods(qw(this wont work));
};
-$ok = $@ =~ /^Attempt to reset virtual methods/;
-::ok( $ok, "Disallow reseting by subclass" );
+::like($@, qr/^Attempt to reset virtual methods/,
+ "Disallow reseting by subclass" );
package Test::Virtual::Again;
@@ -99,45 +52,49 @@ __PACKAGE__->virtual_methods('bing');
package Test::Again;
use base qw(Test::Virtual::Again);
-::ok( ::eqarray([sort __PACKAGE__->virtual_methods], [sort qw(bing)] ),
+::is_deeply([sort __PACKAGE__->virtual_methods], [sort qw(bing)],
'Virtual classes not interfering' );
-::ok( ::eqarray([sort __PACKAGE__->missing_methods], [sort qw(bing)] ),
+::is_deeply([sort __PACKAGE__->missing_methods], [sort qw(bing)],
'Missing methods not interfering' );
-::ok( ::eqarray([sort Test::This->virtual_methods], [sort @vmeths]),
+::is_deeply([sort Test::This->virtual_methods], [sort @vmeths],
'Not overwriting virtual methods');
-::ok( ::eqarray([sort Test::This->missing_methods], [sort qw(new this that)]),
+::is_deeply([sort Test::This->missing_methods], [sort qw(new this that)],
'Not overwriting missing methods');
eval {
Test::This->new;
};
-::ok( $@ =~ /^Test::This forgot to implement new\(\) at/,
+::like( $@, qr/^Test::This forgot to implement new\(\) at/,
'virtual method unimplemented, ok');
eval {
Test::This->bing;
};
-::ok( $@ =~ /^Can't locate object method "bing" via package "Test::This" at/,
+::like( $@, qr/^Can't locate object method "bing" via package "Test::This" at/,
'virtual methods not leaking');
### This test doesn't work and probably never will.
###
-# package Test::That;
-# use base qw(Test::Virtual);
-
-# # Let's see how things work with an autoloader.
-# use vars qw($AUTOLOAD);
-# sub AUTOLOAD {
-# if( $AUTOLOAD =~ /(foo|bar)/ ) {
-# return "Yay!";
-# }
-# else {
-# die "ARrrrrrrrrrrgh!\n";
-# }
-# }
-
-# ::ok( ::eqarray([sort __PACKAGE__->missing_methods], [sort qw(new this that)]),
-# 'Autoloaded methods recognized' );
+package Test::That;
+use Test::More import => [qw($TODO)];
+use base qw(Test::Virtual);
+
+# Let's see how things work with an autoloader.
+use vars qw($AUTOLOAD);
+sub AUTOLOAD {
+ if( $AUTOLOAD =~ /(foo|bar)/ ) {
+ return "Yay!";
+ }
+ else {
+ die "ARrrrrrrrrrrgh!\n";
+ }
+}
+
+{
+ local $TODO = 'autoloaded methods';
+ ::is_deeply([sort __PACKAGE__->missing_methods], [sort qw(new this that)],
+ 'Autoloaded methods recognized' );
+}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libclass-virtual-perl.git
More information about the Pkg-perl-cvs-commits
mailing list