Unit Tests

- Upgraded to the new template.
This commit is contained in:
Paul Beckingham
2014-11-01 23:06:27 -04:00
parent 9bee3a6c92
commit 78625d00ec

View File

@@ -33,11 +33,15 @@ use Test::More tests => 16;
delete $ENV{'TASKDATA'}; delete $ENV{'TASKDATA'};
delete $ENV{'TASKRC'}; delete $ENV{'TASKRC'};
use File::Basename;
my $ut = basename ($0);
my $rc = $ut . '.rc';
my $source_dir = $0; my $source_dir = $0;
$source_dir =~ s{[^/]+$}{..}; $source_dir =~ s{[^/]+$}{..};
# Create the rc file. # Create the rc file.
if (open my $fh, '>', 'import.rc') if (open my $fh, '>', $rc)
{ {
print $fh "data.location=.\n", print $fh "data.location=.\n",
"dateformat=m/d/Y\n"; "dateformat=m/d/Y\n";
@@ -91,10 +95,10 @@ EOF
qx{$source_dir/scripts/add-ons/import-yaml.pl <import.txt >import.json 2>&1}; qx{$source_dir/scripts/add-ons/import-yaml.pl <import.txt >import.json 2>&1};
# Import the JSON. # Import the JSON.
my $output = qx{../src/task rc:import.rc import import.json 2>&1 >/dev/null}; my $output = qx{../src/task rc:$rc import import.json 2>&1 >/dev/null};
like ($output, qr/Imported 3 tasks\./, '3 tasks imported'); like ($output, qr/Imported 3 tasks\./, "$ut: 3 tasks imported");
$output = qx{../src/task rc:import.rc list 2>&1}; $output = qx{../src/task rc:$rc list 2>&1};
# ID Project Age Description # ID Project Age Description
# -- ------- ------- ----------- # -- ------- ------- -----------
# 1 A 1.5 yrs zero # 1 A 1.5 yrs zero
@@ -102,23 +106,23 @@ $output = qx{../src/task rc:import.rc list 2>&1};
# #
# 2 tasks # 2 tasks
like ($output, qr/1.+A.+zero/, 't1 present'); like ($output, qr/1.+A.+zero/, "$ut: t1 present");
like ($output, qr/2.+B.+one/, 't2 present'); like ($output, qr/2.+B.+one/, "$ut: t2 present");
unlike ($output, qr/3.+two/, 't3 missing'); unlike ($output, qr/3.+two/, "$ut: t3 missing");
$output = qx{../src/task rc:import.rc completed 2>&1}; $output = qx{../src/task rc:$rc completed 2>&1};
# Complete Age Description UUID # Complete Age Description UUID
# ---------- ---- ----------- ------------------------------------ # ---------- ---- ----------- ------------------------------------
# 9/4/2011 2.9y two 22222222-2222-2222-2222-222222222222 # 9/4/2011 2.9y two 22222222-2222-2222-2222-222222222222
# #
# 1 task # 1 task
unlike ($output, qr/A.+zero/, 't1 missing'); unlike ($output, qr/A.+zero/, "$ut: t1 missing");
unlike ($output, qr/B.+one/, 't2 missing'); unlike ($output, qr/B.+one/, "$ut: t2 missing");
like ($output, qr/9\/4\/2011.+two/, 't3 present'); like ($output, qr/9\/4\/2011.+two/, "$ut: t3 present");
# check tags and annotations # check tags and annotations
$output = qx{../src/task rc:import.rc +y 2>&1}; $output = qx{../src/task rc:$rc +y 2>&1};
# ID Proj Age Urg Description # ID Proj Age Urg Description
# -- ---- ---- ---- ----------------------- # -- ---- ---- ---- -----------------------
# 2 B 2.9y 4.9 one # 2 B 2.9y 4.9 one
@@ -126,15 +130,15 @@ $output = qx{../src/task rc:import.rc +y 2>&1};
# 7/6/2012 anno THREE # 7/6/2012 anno THREE
# 1 A 2.9y 4.8 zero # 1 A 2.9y 4.8 zero
# 7/6/2010 anno ONE # 7/6/2010 anno ONE
# #
# 2 tasks # 2 tasks
like ($output, qr/1.+A.+zero.*\n.+ONE/, 't1 selected by tag, has annotation'); like ($output, qr/1.+A.+zero.*\n.+ONE/, "$ut: t1 selected by tag, has annotation");
like ($output, qr/2.+B.+one.*\n.+TWO.*\n.+THREE/, 't2 selected by tag, has two annotations'); like ($output, qr/2.+B.+one.*\n.+TWO.*\n.+THREE/, "$ut: t2 selected by tag, has two annotations");
like ($output, qr/\n2 tasks\n/, 'tag selected two tasks'); like ($output, qr/\n2 tasks\n/, "$ut: tag selected two tasks");
# Make sure that a duplicate task cannot be imported. # Make sure that a duplicate task cannot be imported.
$output = qx{../src/task rc:import.rc import import.json 2>&1 >/dev/null}; $output = qx{../src/task rc:$rc import import.json 2>&1 >/dev/null};
like ($output, qr/Cannot add task because the uuid '.{36}' is not unique\./, 'error on duplicate uuid'); like ($output, qr/Cannot add task because the uuid '.{36}' is not unique\./, "$ut: error on duplicate uuid");
# Create import file. # Create import file.
if (open my $fh, '>', 'import.txt') if (open my $fh, '>', 'import.txt')
@@ -151,28 +155,28 @@ task:
EOF EOF
close $fh; close $fh;
ok (-r 'import.txt', 'Created second sample import data'); ok (-r "$ut: import.txt', 'Created second sample import data");
} }
# Convert YAML --> task JSON. # Convert YAML --> task JSON.
qx{$source_dir/scripts/add-ons/import-yaml.pl <import.txt >import.json 2>&1}; qx{$source_dir/scripts/add-ons/import-yaml.pl <import.txt >import.json 2>&1};
# Import the JSON. # Import the JSON.
$output = qx{../src/task rc:import.rc import import.json 2>&1 >/dev/null}; $output = qx{../src/task rc:$rc import import.json 2>&1 >/dev/null};
like ($output, qr/Imported 1 tasks\./, '1 task imported'); like ($output, qr/Imported 1 tasks\./, "$ut: 1 task imported");
# Verify. # Verify.
$output = qx{../src/task rc:import.rc list 2>&1}; $output = qx{../src/task rc:$rc list 2>&1};
# ID Project Pri Due Active Age Description # ID Project Pri Due Active Age Description
# -- ------- --- --- ------ ---- ----------- # -- ------- --- --- ------ ---- -----------
# 3 2.6y three # 3 2.6y three
# 1 A 3d zero # 1 A 3d zero
# 2 B 2d one # 2 B 2d one
like ($output, qr/1.+A.+zero/, 't1 present'); like ($output, qr/1.+A.+zero/, "$ut: t1 present");
like ($output, qr/2.+B.+one/, 't2 present'); like ($output, qr/2.+B.+one/, "$ut: t2 present");
like ($output, qr/3.+three/, 't3 present'); like ($output, qr/3.+three/, "$ut: t3 present");
# Cleanup. # Cleanup.
unlink qw(pending.data completed.data undo.data backlog.data import.rc import.txt import.json); unlink qw(pending.data completed.data undo.data backlog.data import.txt import.json), $rc;
exit 0; exit 0;