Skip tests on smokers with a broken DBIC trial
[dbsrgits/SQL-Abstract.git] / t / dbic / no-repeats.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5
6 BEGIN {
7   # ask for a recent DBIC version to skip the 5.6 tests as well
8   plan skip_all => 'Test temporarily requires DBIx::Class'
9     unless eval { require DBIx::Class::Storage::Statistics; DBIx::Class->VERSION('0.08124') };
10
11   plan skip_all => 'Test does not properly work with the pre-0.082800 DBIC trials'
12     if DBIx::Class->VERSION =~ /^0.082700\d\d/;
13 }
14
15 use DBIx::Class::Storage::Debug::PrettyPrint;
16
17 my $cap;
18 open my $fh, '>', \$cap;
19
20 my $pp = DBIx::Class::Storage::Debug::PrettyPrint->new({
21    profile => 'none',
22    squash_repeats => 1,
23    fill_in_placeholders => 1,
24    placeholder_surround => ['', ''],
25    show_progress => 0,
26 });
27
28 $pp->debugfh($fh);
29
30 $pp->query_start('SELECT * FROM frew WHERE id = ?', q('1'));
31 is(
32    $cap,
33    qq(SELECT * FROM frew WHERE id = '1'\n),
34    'SQL Logged'
35 );
36
37 open $fh, '>', \$cap;
38 $pp->query_start('SELECT * FROM frew WHERE id = ?', q('2'));
39 is(
40    $cap,
41    qq(... : '2'\n),
42    'Repeated SQL ellided'
43 );
44
45 open $fh, '>', \$cap;
46 $pp->query_start('SELECT * FROM frew WHERE id = ?', q('3'));
47 is(
48    $cap,
49    qq(... : '3'\n),
50    'Repeated SQL ellided'
51 );
52
53 open $fh, '>', \$cap;
54 $pp->query_start('SELECT * FROM frew WHERE id = ?', q('4'));
55 is(
56    $cap,
57    qq(... : '4'\n),
58    'Repeated SQL ellided'
59 );
60
61 open $fh, '>', \$cap;
62 $pp->query_start('SELECT * FROM bar WHERE id = ?', q('4'));
63 is(
64    $cap,
65    qq(SELECT * FROM bar WHERE id = '4'\n),
66    'New SQL Logged'
67 );
68
69 open $fh, '>', \$cap;
70 $pp->query_start('SELECT * FROM frew WHERE id = ?', q('1'));
71 is(
72    $cap,
73    qq(SELECT * FROM frew WHERE id = '1'\n),
74    'New SQL Logged'
75 );
76
77 done_testing;