From ee39f29cf48e873e015c0da8b1257097c4fb966e Mon Sep 17 00:00:00 2001 From: einhverfr Date: Mon, 17 Nov 2008 17:30:44 +0000 Subject: More test cases and framework stuff. t/62-api.t is currently not working. git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@2403 4979c152-3d1c-0410-bac9-87ea11338e46 --- t/62-api.t | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 t/62-api.t (limited to 't/62-api.t') diff --git a/t/62-api.t b/t/62-api.t new file mode 100644 index 00000000..0e897f35 --- /dev/null +++ b/t/62-api.t @@ -0,0 +1,76 @@ +BEGIN { + use LedgerSMB; + use Test::More; + use LedgerSMB::Template; + use LedgerSMB::DBTest; +} + +our $test_case_defs = { +}; + +if (defined $ENV{LSMB_TEST_DB}){ + if (defined $ENV{LSMB_NEW_DB}){ + $ENV{PGDATABASE} = $ENV{LSMB_NEW_DB}; + } + if (!defined $ENV{PGDATABASE}){ + die "Oops... LSMB_TEST_DB set but no db selected!"; + } + plan 'no_plan'; +} else { + plan skip_all => 'Skipping, LSMB_TEST_DB environment variable not set.'; +} + +do 't/data/62-request-data'; # Import test case hashes + +for (qw( admin.pl drafts.pl login.pl payment.pl + report.pl employee.pl menu.pl vendor.pl + customer.pl inventory.pl migration.pl recon.pl + vouchers.pl)){ + + do "$_"; +} # Import new code namespaces + +my $dbh = LedgerSMB::DBTest->connect("dbi:Pg:dbname=$ENV{PGDATABASE}", undef, undef); + +print scalar @$test_request_data ." test case scenarios defined"; + +for my $test (@$test_request_data){ + if (lc $test->{_codebase} eq 'old'){ + old_code_test::_load_script($test->{module}); + $old_code_test::form = new Form(); + for (keys (%$test)){ + $form->{$_} = $test->{$_}; + } + ok(eval ("old_code_test::$test->{action}()"), + "$test->{_test_id}: Action Successful"); + } else { + my $request = LedgerSMB->new(); + $request->merge($test); + my $script = $test->{module}; + $script =~ s/\.pl$//; + ok(eval "LedgerSMB::Scripts::$script::$request->{action}(\$request)"); + } + for (@{$test_case_defs->{"$test->{_test_id}"}}){ + &$_; + } + ok($dbh->rollback, "$test->{_test_id}: rollback"); +} + +package LedgerSMB::Template; + +# Don't render templates. Just return so we can run tests on data structures. +sub render { + return 1; +} + +package old_code_test; +# Keeps old code isolated in a different namespace, and provides for reasonable +# reload facilities. +our $form; + +sub _load_script { + do "bin/arapprn.pl"; + do "bin/arap.pl"; + do "bin/io.pl"; + do "bin/$1[0]"; +} -- cgit v1.2.3