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