Commit | Line | Data |
0494e672 |
1 | #!/usr/bin/perl |
2 | # vim: set ft=perl: |
3 | # |
4 | # This tests that the same file can be passed in using a filename, |
5 | # a filehandle, and a string, and return identical results. There's |
6 | # a lot of setup here, because we have to emulate the various ways |
7 | # that $tr->translate might be called: with a string (filename), |
8 | # with a filehandle (IO::File, FileHandle, or \*FOO), and with a |
9 | # scalar reference (data in a string). |
10 | # |
11 | |
12 | use strict; |
13 | |
14 | use IO::File; |
15 | use SQL::Translator; |
16 | |
17 | # How many tests |
18 | BEGIN { print "1..3\n"; } |
19 | |
30df963a |
20 | $SQL::Translator::DEBUG = 0; |
21 | |
2df9c21c |
22 | # Our object; uses the default parser and producer |
23 | my $tr = SQL::Translator->new; |
0494e672 |
24 | |
25 | # The filename, holder for all the data, and the filehandle |
26 | my $datafile = "t/data/mysql/Apache-Session-MySQL.sql"; |
27 | my $data; |
28 | my $fh = IO::File->new($datafile); |
29 | |
30 | # Pass filename: simplest way |
31 | my $translated_datafile = $tr->translate($datafile); |
30df963a |
32 | #warn "Data from filename method is\n$translated_datafile\n\n\n"; |
0494e672 |
33 | |
34 | # Pass string reference |
35 | read($fh, $data, -s $datafile); |
36 | my $translated_data = $tr->translate(\$data); |
30df963a |
37 | #warn "Data from string is\n$translated_data\n\n\n"; |
0494e672 |
38 | |
d152043f |
39 | print "not " unless length $translated_datafile; |
40 | print "ok 1 # passing string (filename) works\n"; |
0494e672 |
41 | |
d152043f |
42 | print "not " unless length $translated_data; |
43 | print "ok 2 # passing string as SCALAR reference\n"; |
0494e672 |
44 | |
0494e672 |
45 | print "not " unless ($translated_datafile eq $translated_data); |
d152043f |
46 | print "ok 3 # from file == from string\n"; |