Switch CDBICompat and its tests to OptDeps
[dbsrgits/DBIx-Class-Historic.git] / t / cdbi / object_cache.t
1 use DBIx::Class::Optional::Dependencies -skip_all_without => 'cdbicompat';
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7 $| = 1;
8
9
10 use lib 't/cdbi/testlib';
11 use Film;
12
13 ok +Film->create({
14     Title       => 'This Is Spinal Tap',
15     Director    => 'Rob Reiner',
16     Rating      => 'R',
17 });
18
19 {
20     my $film1 = Film->retrieve( "This Is Spinal Tap" );
21     my $film2 = Film->retrieve( "This Is Spinal Tap" );
22
23     $film1->Director("Marty DiBergi");
24     is $film2->Director, "Marty DiBergi", 'retrieve returns the same object';
25
26     $film1->discard_changes;
27 }
28
29 {
30     Film->nocache(1);
31
32     my $film1 = Film->retrieve( "This Is Spinal Tap" );
33     my $film2 = Film->retrieve( "This Is Spinal Tap" );
34
35     $film1->Director("Marty DiBergi");
36     is $film2->Director, "Rob Reiner",
37        'caching turned off';
38
39     $film1->discard_changes;
40 }
41
42 {
43     Film->nocache(0);
44
45     my $film1 = Film->retrieve( "This Is Spinal Tap" );
46     my $film2 = Film->retrieve( "This Is Spinal Tap" );
47
48     $film1->Director("Marty DiBergi");
49     is $film2->Director, "Marty DiBergi",
50        'caching back on';
51
52     $film1->discard_changes;
53 }
54
55
56 {
57     Film->nocache(1);
58
59     local $Class::DBI::Weaken_Is_Available = 0;
60
61     my $film1 = Film->retrieve( "This Is Spinal Tap" );
62     my $film2 = Film->retrieve( "This Is Spinal Tap" );
63
64     $film1->Director("Marty DiBergi");
65     is $film2->Director, "Rob Reiner",
66        'CDBI::Weaken_Is_Available turns off all caching';
67
68     $film1->discard_changes;
69 }
70
71 done_testing;