Massive cleanup of DateTime test dependencies, other interim
[dbsrgits/DBIx-Class.git] / t / cdbi / object_cache.t
1 use strict;
2 use Test::More;
3 $| = 1;
4
5 BEGIN {
6   eval "use DBIx::Class::CDBICompat;";
7   if ($@) {
8     plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
9   }
10 }
11
12 INIT {
13     use lib 't/cdbi/testlib';
14     use Film;
15 }
16
17 plan skip_all => "Object cache is turned off"
18     if Film->isa("DBIx::Class::CDBICompat::NoObjectIndex");
19
20 plan tests => 5;
21
22
23 ok +Film->create({
24     Title       => 'This Is Spinal Tap',
25     Director    => 'Rob Reiner',
26     Rating      => 'R',
27 });
28
29 {
30     my $film1 = Film->retrieve( "This Is Spinal Tap" );
31     my $film2 = Film->retrieve( "This Is Spinal Tap" );
32
33     $film1->Director("Marty DiBergi");
34     is $film2->Director, "Marty DiBergi", 'retrieve returns the same object';
35
36     $film1->discard_changes;
37 }
38
39 {
40     Film->nocache(1);
41     
42     my $film1 = Film->retrieve( "This Is Spinal Tap" );
43     my $film2 = Film->retrieve( "This Is Spinal Tap" );
44
45     $film1->Director("Marty DiBergi");
46     is $film2->Director, "Rob Reiner",
47        'caching turned off';
48     
49     $film1->discard_changes;
50 }
51
52 {
53     Film->nocache(0);
54
55     my $film1 = Film->retrieve( "This Is Spinal Tap" );
56     my $film2 = Film->retrieve( "This Is Spinal Tap" );
57
58     $film1->Director("Marty DiBergi");
59     is $film2->Director, "Marty DiBergi",
60        'caching back on';
61
62     $film1->discard_changes;
63 }
64
65
66 {
67     Film->nocache(1);
68
69     local $Class::DBI::Weaken_Is_Available = 0;
70
71     my $film1 = Film->retrieve( "This Is Spinal Tap" );
72     my $film2 = Film->retrieve( "This Is Spinal Tap" );
73
74     $film1->Director("Marty DiBergi");
75     is $film2->Director, "Rob Reiner",
76        'CDBI::Weaken_Is_Available turns off all caching';
77
78     $film1->discard_changes;
79 }