Robustify the tests a little.
[dbsrgits/SQL-Translator.git] / t / 02mysql-parser.t
index 30971e8..3aa829a 100644 (file)
@@ -4,11 +4,21 @@
 
 use strict;
 
-use Test::More tests => 180;
+use Test::More;
 use SQL::Translator;
-use SQL::Translator::Parser::MySQL qw(parse);
 use SQL::Translator::Schema::Constants;
 
+eval {
+    require SQL::Translator::Parser::MySQL;
+    SQL::Translator::Parser::MySQL->import('parse');
+};
+if ($@) {
+    plan skip_all => "$@";
+}
+else {
+    plan tests => 180;
+}
+
 {
     my $tr = SQL::Translator->new;
     my $data = q|create table sessions (
@@ -226,7 +236,7 @@ use SQL::Translator::Schema::Constants;
               KEY (billing_address_id),
               KEY (shipping_address_id),
               KEY (member_id, store_id),
-              FOREIGN KEY (status)              REFERENCES order_status(id),
+              FOREIGN KEY (status)              REFERENCES order_status(id) MATCH FULL ON DELETE CASCADE ON UPDATE CASCADE,
               FOREIGN KEY (billing_address_id)  REFERENCES address(address_id),
               FOREIGN KEY (shipping_address_id) REFERENCES address(address_id)
             ) TYPE=INNODB;
@@ -375,7 +385,8 @@ use SQL::Translator::Schema::Constants;
     is( $c5->type, FOREIGN_KEY, 'Constraint is a FK' );
     is( join(',', $c5->fields), 'store_id', 'Constraint is on "store_id"' );
     is( $c5->reference_table, 'store', 'To table "store"' );
-    is( join(',', $c5->reference_fields), '', 'No reference fields defined' );
+    is( join(',', map { $_ || '' } $c5->reference_fields), '', 
+        'No reference fields defined' );
 
     my $t2  = shift @tables;
     is( $t2->name, 'address', 'Found "address" table' );