coverage testing changes
[migration-tools.git] / Equinox-Migration / t / 01-SimpleTagList.t
index 8a6bc7d..d8de315 100644 (file)
@@ -1,9 +1,14 @@
 #!perl -T
 
-use Test::More tests => 33;
+use Test::More tests => 45;
+#use Test::More qw(no_plan);
+
 use Equinox::Migration::SimpleTagList;
 
 # baseline object creation
+eval { my $stl = Equinox::Migration::SimpleTagList->new( file => "thefileisalie.txt" ) };
+is ($@ =~ /^Can't open tags file:/, 1, 'cannot open that');
+
 my $stl = Equinox::Migration::SimpleTagList->new();
 is(ref $stl, "Equinox::Migration::SimpleTagList", "self is self");
 
@@ -16,6 +21,17 @@ is ($stl->has(904), 1, 'can has tag');
 $stl->remove_tag(904);
 is ($stl->has(904), 0, 'can not has tag');
 
+eval { $stl->add_tag('q') };
+is ($@, "Values must be numeric\n");
+eval { $stl->add_tag(-37) };
+is ($@, "Values must be valid tags (0-999)\n");
+eval { $stl->add_tag(1027) };
+is ($@, "Values must be valid tags (0-999)\n");
+eval { $stl->add_tag(89) };
+is ($@, "Tag '89' specified twice\n");
+eval { $stl->remove_tag(11) };
+is ($@, "Tag '11' isn't in the list\n");
+
 # range addition, as_hashref, as_listref
 $stl->add_range("198..201");
 is_deeply ($stl->as_hashref, { 89 => 1, 198 => 1, 199 => 1, 200 => 1, 201 => 1 });
@@ -23,6 +39,18 @@ is_deeply ($stl->as_listref, [ 89, 198, 199, 200, 201 ]);
 $stl->add_range("008..011");
 is_deeply ($stl->as_listref, [ 8, 9, 10, 11, 89, 198, 199, 200, 201 ]);
 
+$stl->{conf}{except} = 1;
+eval { $stl->add_range("300..311") };
+is ($@, "Exception ranges must be within last addition range (300..311)\n");
+eval { $stl->add_range("10..311") };
+is ($@, "Exception ranges must be within last addition range (10..311)\n");
+eval { $stl->add_range("6..11") };
+is ($@, "Exception ranges must be within last addition range (6..11)\n");
+eval { $stl->add_range("17..16") };
+is ($@, "Ranges must be 'low..high' (17 is greater than 16)\n");
+
+
+
 # creation with file
 $stl = Equinox::Migration::SimpleTagList->new( file => "./t/corpus/stl-0.txt");
 is ($stl->has(11), 1);
@@ -52,3 +80,17 @@ is ($stl->has(286), 1);
 is ($stl->has(285), 0, 'exception');
 is ($stl->has(305), 1);
 is ($stl->has(304), 0, 'exception');
+
+# file with bad token
+$. = 0;
+$stl = Equinox::Migration::SimpleTagList->new;
+$stl->{conf}{file} = "./t/corpus/stl-2.txt";
+eval {$stl->generate};
+is ($@, "Unknown chunk fnord in tags file (line 1)\n");
+
+# file with except in wrong place
+$. = 0;
+$stl = Equinox::Migration::SimpleTagList->new;
+$stl->{conf}{file} = "./t/corpus/stl-3.txt";
+eval {$stl->generate};
+is ($@, "Keyword 'except' can only follow a range (line 1)\n");