[dw-free] move bin/test/* files into t/*
[commit: http://hg.dwscoalition.org/dw-free/rev/a884cd53e958]
http://bugs.dwscoalition.org/show_bug.cgi?id=2227
More cleanup: standardize testing framework (paid time)
Patch by
kareila.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=2227
More cleanup: standardize testing framework (paid time)
Patch by
Files modified:
- bin/test/test-pay
- t/paid-time.t
--------------------------------------------------------------------------------
diff -r 099e36e57f4f -r a884cd53e958 bin/test/test-pay
--- a/bin/test/test-pay Fri Apr 23 22:40:12 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-#!/usr/bin/perl
-# yes, there are so many better testing modules than just doing this in a crappy
-# half-ass way. this is even quarter-ass!
-
-use strict;
-use lib "$ENV{LJHOME}/cgi-bin";
-require 'ljlib.pl';
-use DW::Pay;
-
-use Data::Dumper;
-
-# much time passes ...
-my $u1 = LJ::load_user( 'tester0394' ) or die 'no tester0394';
-my $u2 = LJ::load_user( 'tester0395' ) or die 'no tester0395';
-my $uc = LJ::load_user( 'testcomm' ) or die 'no testcomm';
-$uc->is_community or die 'testcomm not a community :(';
-
-my @tests;
-print "Beginning tests...\n";
-print " u1 = " . $u1->user . '(' . $u1->id . ")\n";
-print " u2 = " . $u2->user . '(' . $u2->id . ")\n";
-print " uc = " . $uc->user . '(' . $uc->id . ")\n\n";
-
-my $dbh = LJ::get_db_writer();
-
-# reset, delete, etc
-sub rst {
- $dbh->do( 'DELETE FROM dw_paidstatus WHERE userid = ?', undef, $_ )
- foreach ( $u1->id, $u2->id, $uc->id );
-}
-
-sub assert {
- my ( $u, $type, $secs ) = @_;
- my ($typeid) = grep { $LJ::CAP{$_}->{_account_type} eq $type } keys %LJ::CAP;
- die 'Invalid class'
- unless $typeid;
-
- my $ps = DW::Pay::get_paid_status( $u );
- die 'Failed getting paid status'
- unless $ps;
- die "Typeid $ps->{typeid} expected $typeid\n"
- unless $ps->{typeid} == $typeid;
- die "Expiresin $ps->{expiresin} expected $secs\n"
- unless $ps->{expiresin} == $secs;
-
- return 1;
-}
-
-################################################################################
-push @tests, [ 'free->paid 1 month', sub
-{
- rst();
-
- DW::Pay::add_paid_time( $u1, 'paid', 1 )
- or die DW::Pay::error_text();
- assert( $u1, 'paid', 30*86400 );
-} ];
-
-
-################################################################################
-push @tests, [ 'paid +1 month', sub
-{
- DW::Pay::add_paid_time( $u1, 'paid', 1 )
- or die DW::Pay::error_text();
- assert( $u1, 'paid', 60*86400 );
-} ];
-
-
-################################################################################
-push @tests, [ 'premium +1 month', sub
-{
- DW::Pay::add_paid_time( $u1, 'premium', 1 )
- or die DW::Pay::error_text();
-
- # should be 72 days... they bought 1 month of premium time (30 days)
- # and they had 60 days of paid. 60 days of paid converts to 42 days
- # of premium, 42+30 = 72 days premium.
- assert( $u1, 'premium', 72*86400 );
-} ];
-
-
-################################################################################
-push @tests, [ 'premium +1 month', sub
-{
- DW::Pay::add_paid_time( $u1, 'premium', 1 )
- or die DW::Pay::error_text();
- assert( $u1, 'premium', 102*86400 );
-} ];
-
-
-################################################################################
-push @tests, [ 'paid +1 month', sub
-{
- DW::Pay::add_paid_time( $u1, 'paid', 1 )
- or die DW::Pay::error_text();
- assert( $u1, 'premium', 123*86400 );
-} ];
-
-
-################################################################################
-push @tests, [ '+seed', sub
-{
- DW::Pay::add_paid_time( $u1, 'seed', 99 )
- or die DW::Pay::error_text();
- assert( $u1, 'seed', 0 );
-} ];
-
-
-################################################################################
-push @tests, [ 'paid +1 month fails', sub
-{
- DW::Pay::add_paid_time( $u1, 'paid', 1 )
- and die "Shouldn't have succeeded.\n";
- assert( $u1, 'seed', 0 );
-} ];
-
-
-################################################################################
-$| = 1;
-my $id = 1;
-foreach my $test ( @tests ) {
- print "Test #$id: $test->[0]: ";
- my $rv = 0;
- eval {
- $rv = $test->[1]->();
- };
- if ( $@ || $rv == 0 ) {
- print "failure!\n\n\$@ = $@\n\$! = $!\nrv = $rv\n\n";
- die;
- } else {
- print "success\n";
- }
- $id++;
-}
diff -r 099e36e57f4f -r a884cd53e958 t/paid-time.t
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/t/paid-time.t Fri Apr 23 22:44:27 2010 -0700
@@ -0,0 +1,81 @@
+#!/usr/bin/perl
+
+use strict;
+use Test::More;
+use lib "$ENV{LJHOME}/cgi-bin";
+require 'ljlib.pl';
+use DW::Pay;
+use LJ::Test qw (temp_user);
+
+plan tests => 29;
+
+my $u1 = temp_user();
+
+my $dbh = LJ::get_db_writer();
+
+# reset, delete, etc
+sub rst {
+ $dbh->do( 'DELETE FROM dw_paidstatus WHERE userid = ?', undef, $_ )
+ foreach ( $u1->id );
+}
+
+sub assert {
+ my ( $u, $type, $secs ) = @_;
+ my ($typeid) = grep { $LJ::CAP{$_}->{_account_type} eq $type } keys %LJ::CAP;
+ ok( $typeid, 'valid class' );
+
+ my $ps = DW::Pay::get_paid_status( $u );
+ ok( $ps, 'got paid status' );
+ ok( $ps->{typeid} == $typeid, 'typeids match' );
+ ok( $ps->{expiresin} == $secs, 'secs match' );
+}
+
+################################################################################
+rst();
+
+# free->paid 1 month
+DW::Pay::add_paid_time( $u1, 'paid', 1 )
+ or die DW::Pay::error_text();
+
+assert( $u1, 'paid', 30*86400 );
+
+# paid +1 month
+DW::Pay::add_paid_time( $u1, 'paid', 1 )
+ or die DW::Pay::error_text();
+
+assert( $u1, 'paid', 60*86400 );
+
+# premium +1 month
+DW::Pay::add_paid_time( $u1, 'premium', 1 )
+ or die DW::Pay::error_text();
+
+# should be 72 days... they bought 1 month of premium time (30 days)
+# and they had 60 days of paid. 60 days of paid converts to 42 days
+# of premium, 42+30 = 72 days premium.
+assert( $u1, 'premium', 72*86400 );
+
+# premium +1 month
+DW::Pay::add_paid_time( $u1, 'premium', 1 )
+ or die DW::Pay::error_text();
+
+assert( $u1, 'premium', 102*86400 );
+
+# paid +1 month == premium +21 days
+DW::Pay::add_paid_time( $u1, 'paid', 1 )
+ or die DW::Pay::error_text();
+
+assert( $u1, 'premium', 123*86400 );
+
+################################################################################
+
+# seed account
+DW::Pay::add_paid_time( $u1, 'seed', 99 )
+ or die DW::Pay::error_text();
+
+assert( $u1, 'seed', 0 );
+
+ok( ! DW::Pay::add_paid_time( $u1, 'paid', 1 ), 'adding paid time fails' );
+
+assert( $u1, 'seed', 0 );
+
+################################################################################
--------------------------------------------------------------------------------
