Release commit for 1.62
[dbsrgits/SQL-Translator.git] / t / 54-oracle-alter-field.t
1 #!/usr/bin/perl
2
3 use FindBin qw/$Bin/;
4 use Test::More;
5 use Test::SQL::Translator;
6 use Test::Exception;
7 use Data::Dumper;
8 use SQL::Translator;
9 use SQL::Translator::Diff;
10
11 BEGIN {
12     maybe_plan(3, 'SQL::Translator::Parser::YAML',
13                   'SQL::Translator::Producer::Oracle');
14 }
15
16 my $schema1 = $Bin.'/data/oracle/schema_diff_a.yaml';
17 my $schema2 = $Bin.'/data/oracle/schema_diff_b.yaml';
18
19 open my $io1, '<', $schema1 or die $!;
20 open my $io2, '<', $schema2 or die $!;
21
22 my ($yaml1, $yaml2);
23 {
24     local $/ = undef;
25     $yaml1 = <$io1>;
26     $yaml2 = <$io2>;
27 };
28
29 close $io1;
30 close $io2;
31
32 my $s = SQL::Translator->new(from => 'YAML');
33 $s->parser->($s,$yaml1);
34
35 my $t = SQL::Translator->new(from => 'YAML');
36 $t->parser->($t,$yaml2);
37
38 my $d = SQL::Translator::Diff->new
39   ({
40     output_db => 'Oracle',
41     target_db => 'Oracle',
42     source_schema => $s->schema,
43     target_schema => $t->schema,
44    });
45
46
47 my $diff = $d->compute_differences->produce_diff_sql || die $d->error;
48
49 ok($diff, 'Diff generated.');
50 like($diff, '/ALTER TABLE d_operator MODIFY \( name nvarchar2\(10\) \)/',
51      'Alter table generated.');
52 like($diff, '/ALTER TABLE d_operator MODIFY \( other nvarchar2\(10\) NOT NULL \)/',
53      'Alter table generated.');