aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rwxr-xr-xgit-branch-list7
-rw-r--r--t/001-setup.t21
-rw-r--r--t/100-clear-clears-all-branches-from-list.t36
-rw-r--r--t/999-teardown.t14
5 files changed, 82 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..2cab678
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,4 @@
+.PHONY: test
+
+test:
+ prove -v
diff --git a/git-branch-list b/git-branch-list
index 1e8593c..1468bfe 100755
--- a/git-branch-list
+++ b/git-branch-list
@@ -64,6 +64,10 @@ function drop_branch () {
rm "${DATABASE}.bak"
}
+function clear_branches () {
+ : > "$DATABASE"
+}
+
function list_branches () {
nl "$DATABASE"
}
@@ -129,6 +133,9 @@ case "$command" in
drop)
drop_branch "$2"
;;
+ clear)
+ clear_branches
+ ;;
"")
list_branches
diff --git a/t/001-setup.t b/t/001-setup.t
new file mode 100644
index 0000000..0e591c4
--- /dev/null
+++ b/t/001-setup.t
@@ -0,0 +1,21 @@
+#!/usr/bin/env perl -w
+
+use strict;
+
+use Test::More;
+
+system('git init t-git-repo');
+ok !$?;
+
+chdir 't-git-repo' or die $!;
+
+system('echo tmp > tmp.txt');
+ok !$?;
+
+system('git add tmp.txt');
+ok !$?;
+
+system('git commit -m "Commit"');
+ok !$?;
+
+done_testing;
diff --git a/t/100-clear-clears-all-branches-from-list.t b/t/100-clear-clears-all-branches-from-list.t
new file mode 100644
index 0000000..952d68a
--- /dev/null
+++ b/t/100-clear-clears-all-branches-from-list.t
@@ -0,0 +1,36 @@
+#!/usr/bin/env perl -w
+
+use strict;
+
+use Test::More;
+
+use File::Spec;
+
+my $BIN = File::Spec->rel2abs('git-branch-list');
+
+chdir 't-git-repo' or die $!;
+
+system('git branch first');
+ok !$?;
+
+system("$BIN save first");
+ok !$?;
+
+system('git branch second');
+ok !$?;
+
+system("$BIN save second");
+ok !$?;
+
+system("$BIN clear");
+ok !$?;
+
+my $branch_list = qx($BIN);
+is $branch_list, '';
+
+
+# Teardown
+system('git branch -d first second');
+
+
+done_testing;
diff --git a/t/999-teardown.t b/t/999-teardown.t
new file mode 100644
index 0000000..e7e8ab2
--- /dev/null
+++ b/t/999-teardown.t
@@ -0,0 +1,14 @@
+#!/usr/bin/env perl -w
+
+use strict;
+
+use Test::More;
+
+if (!-d 't-git-repo') {
+ plan skip_all => 'Testing stage already cleaned.';
+}
+
+system('rm -rf t-git-repo');
+ok !$?;
+
+done_testing;