Unit Tests

- Added template.t as an example for all new unit tests.
This commit is contained in:
Paul Beckingham
2013-01-19 15:46:24 -05:00
parent e180dce1bc
commit c6c99c2e38
2 changed files with 67 additions and 0 deletions

View File

@@ -168,6 +168,8 @@ Unit Tests Needed
* Note that running the unit tests requires the Perl JSON module to be * Note that running the unit tests requires the Perl JSON module to be
installed. installed.
Note that all new unit tests should follow the test/template.t standard.
Work in Progress Work in Progress
Things that are currently in flux, which is another way of saying leave it Things that are currently in flux, which is another way of saying leave it
alone while it is being worked on. alone while it is being worked on.

65
test/template.t Executable file
View File

@@ -0,0 +1,65 @@
#! /usr/bin/env perl
################################################################################
## taskwarrior - a command line task list manager.
##
## Copyright 2006-2012, Paul Beckingham, Federico Hernandez.
##
## Permission is hereby granted, free of charge, to any person obtaining a copy
## of this software and associated documentation files (the "Software"), to deal
## in the Software without restriction, including without limitation the rights
## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
## copies of the Software, and to permit persons to whom the Software is
## furnished to do so, subject to the following conditions:
##
## The above copyright notice and this permission notice shall be included
## in all copies or substantial portions of the Software.
##
## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
## OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
## SOFTWARE.
##
## http://www.opensource.org/licenses/mit-license.php
##
################################################################################
use strict;
use warnings;
use Test::More tests => 4;
use File::Basename;
my $ut = basename ($0);
my $rc = $ut . '.rc';
# Create the rc file.
if (open my $fh, '>', $rc)
{
print $fh "data.location=.\n",
"confirmation=off\n";
close $fh;
ok (-r $rc, "$ut: Created $rc");
}
# Note: all commands checked for $? == 0
# Note: all commands redirect 2>&1
# Bug <id> - <description>
qx{../src/task rc:$rc add sample 2>&1};
ok ($? == 0, "$ut: add sample");
my $output = qx{../src/task rc:$rc ls 2>&1};
like ($output, qr/sample/ms, "$ut: sample task found");
## Cleanup.
unlink qw(pending.data completed.data undo.data backlog.data synch.key), $rc;
ok (! -r 'pending.data' &&
! -r 'completed.data' &&
! -r 'undo.data' &&
! -r 'backlog.data' &&
! -r 'synch.key' &&
! -r $rc, "$ut: Cleanup");
exit 0;