Add NoObjectIndex which turns the live object index off and removes all the
[dbsrgits/DBIx-Class.git] / t / cdbi-t / object_cache.t
CommitLineData
592cd0b1 1use strict;
2use Test::More;
3$| = 1;
4
5BEGIN {
6 eval "use DBIx::Class::CDBICompat;";
7 if ($@) {
8 plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
592cd0b1 9 }
f56e59cd 10
592cd0b1 11 eval "use DBD::SQLite";
f56e59cd 12 plan skip_all => 'needs DBD::SQLite for testing' if $@;
592cd0b1 13}
14
15INIT {
16 use lib 't/testlib';
17 use Film;
18}
19
f56e59cd 20plan skip_all => "Object cache is turned off"
21 if Film->isa("DBIx::Class::CDBICompat::NoObjectIndex");
22
23plan tests => 5;
24
25
592cd0b1 26ok +Film->create({
27 Title => 'This Is Spinal Tap',
28 Director => 'Rob Reiner',
29 Rating => 'R',
30});
31
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, "Marty DiBergi", 'retrieve returns the same object';
38
39 $film1->discard_changes;
40}
41
42{
43 Film->nocache(1);
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, "Rob Reiner",
50 'caching turned off';
51
52 $film1->discard_changes;
53}
54
55{
56 Film->nocache(0);
57
58 my $film1 = Film->retrieve( "This Is Spinal Tap" );
59 my $film2 = Film->retrieve( "This Is Spinal Tap" );
60
61 $film1->Director("Marty DiBergi");
62 is $film2->Director, "Marty DiBergi",
63 'caching back on';
64
65 $film1->discard_changes;
66}
67
68
69{
70 Film->nocache(1);
71
72 local $Class::DBI::Weaken_Is_Available = 0;
73
74 my $film1 = Film->retrieve( "This Is Spinal Tap" );
75 my $film2 = Film->retrieve( "This Is Spinal Tap" );
76
77 $film1->Director("Marty DiBergi");
78 is $film2->Director, "Rob Reiner",
79 'CDBI::Weaken_Is_Available turns off all caching';
80
81 $film1->discard_changes;
82}