X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=dbsrgits%2FSQL-Translator.git;a=blobdiff_plain;f=t%2F16xml-parser.t;h=165d11fb25a8162b0591adec0f2d204472e02120;hp=19c61113b51dcbfde800e4898a6e78cf7cd92903;hb=c0ec0e22d3f0e3852c00daac5ef5763010b410c3;hpb=1f4dd26c5d9896fe8715e4a868efbbee2fa142e8 diff --git a/t/16xml-parser.t b/t/16xml-parser.t index 19c6111..165d11f 100644 --- a/t/16xml-parser.t +++ b/t/16xml-parser.t @@ -1,4 +1,4 @@ -#!/usr/bin/perl -w +#!/usr/bin/perl -w # vim:filetype=perl # Before `make install' is performed this script should be runnable with @@ -27,7 +27,7 @@ use constant DEBUG => (exists $opt{d} ? 1 : 0); #============================================================================= BEGIN { - maybe_plan(204, 'SQL::Translator::Parser::XML::SQLFairy'); + maybe_plan(undef, 'SQL::Translator::Parser::XML::SQLFairy'); } my $testschema = "$Bin/data/xml/schema.xml"; @@ -39,12 +39,21 @@ $sqlt = SQL::Translator->new( add_drop_table => 1, ); die "Can't find test schema $testschema" unless -e $testschema; -my $sql = $sqlt->translate( + +my $sql; +{ + my @w; + local $SIG{__WARN__} = sub { push @w, $_[0] if $_[0] =~ /The database_event tag is deprecated - please use database_events/ }; + + $sql = $sqlt->translate( from => 'XML-SQLFairy', to => 'MySQL', filename => $testschema, -) or die $sqlt->error; -print $sql if DEBUG; + ) or die $sqlt->error; + print $sql if DEBUG; + + ok (@w, 'database_event deprecation warning issued'); +} # Test the schema objs generted from the XML # @@ -80,6 +89,7 @@ schema_ok( $scma, { is_nullable => 0, default_value => "hello", size => 100, + is_unique => 1, }, { name => "description", @@ -90,7 +100,7 @@ schema_ok( $scma, { { name => "email", data_type => "varchar", - size => 255, + size => 500, is_unique => 1, default_value => undef, is_nullable => 1, @@ -153,6 +163,11 @@ schema_ok( $scma, { fields => ["email"], }, { + name => 'very_long_index_name_on_title_field_which_should_be_truncated_for_various_rdbms', + type => UNIQUE, + fields => ["title"], + }, + { type => FOREIGN_KEY, fields => ["another_id"], reference_table => "Another", @@ -190,6 +205,12 @@ schema_ok( $scma, { is_primary_key => 1, is_auto_increment => 1, }, + { + name => "num", + data_type => "numeric", + default_value => undef, + size => '10,2', + }, ], }, # end table Another ], # end tables @@ -197,7 +218,7 @@ schema_ok( $scma, { views => [ { name => 'email_list', - sql => "SELECT email FROM Basic WHERE email IS NOT NULL", + sql => "SELECT email FROM Basic WHERE (email IS NOT NULL)", fields => ['email'], extra => { foo => "bar", @@ -214,12 +235,24 @@ schema_ok( $scma, { database_events => 'insert', on_table => 'Basic', action => 'update modified=timestamp();', + scope => 'row', extra => { foo => "bar", hello => "world", bar => "baz", }, }, + { + name => 'bar_trigger', + perform_action_when => 'before', + database_events => 'insert,update', + on_table => 'Basic', + action => 'update modified2=timestamp();', + scope => 'row', + extra => { + hello => "aliens", + }, + }, ], procedures => [ @@ -238,3 +271,5 @@ schema_ok( $scma, { ], }); # end schema + +done_testing;