moving tlc init file
[migration-tools.git] / Equinox-Migration / t / 01-SimpleTagList.t
index e6be8e7..0d4c9a4 100644 (file)
@@ -1,13 +1,13 @@
 #!perl -T
 
-#use Test::More tests => 34;
-use Test::More qw(no_plan);
+use Test::More tests => 51;
+#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');
+is ($@ =~ /^Can't open tags file 'thefileisalie\.txt':/, 1, 'cannot open that');
 
 my $stl = Equinox::Migration::SimpleTagList->new();
 is(ref $stl, "Equinox::Migration::SimpleTagList", "self is self");
@@ -27,6 +27,10 @@ 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");
@@ -42,6 +46,8 @@ 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");
 
 
 
@@ -53,17 +59,23 @@ is ($stl->has(12), 1);
 is ($stl->has('012'), 1);
 is ($stl->has(241), 1);
 is ($stl->has(359), 1);
+is ($stl->has(400), 1);
+is ($stl->has(416), 1);
 is ($stl->has(652), 1);
 is ($stl->has(654), 1);
 is ($stl->has(656), 1);
 is ($stl->has(658), 1);
+is ($stl->has(797), 1, 'exception is inline commented out');
 is ($stl->has(872), 1);
 is ($stl->has(900), 1);
 is ($stl->has(999), 1);
 is ($stl->has(988), 1);
+is ($stl->has(411), 0, 'exception');
+is ($stl->has(500), 0, 'inclusion commented out');
 is ($stl->has(655), 0, 'exception');
+is ($stl->has(915), 0, 'exception');
 is ($stl->has(987), 0, 'exception');
-is ($stl->has(400), 0, 'not in input set');
+is ($stl->has(500), 0, 'not in input set');
 
 $stl = Equinox::Migration::SimpleTagList->new( file => "./t/corpus/stl-1.txt");
 is ($stl->has(258), 1);
@@ -74,3 +86,15 @@ 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;
+eval {$stl->generate("./t/corpus/stl-2.txt")};
+is ($@, "Unknown chunk fnord in tags file (line 1)\n");
+
+# file with except in wrong place
+$. = 0;
+$stl = Equinox::Migration::SimpleTagList->new;
+eval {$stl->generate("./t/corpus/stl-3.txt")};
+is ($@, "Keyword 'except' can only follow a range (line 1)\n");