removed version.pm dependancy
[dbsrgits/DBIx-Class.git] / t / cdbi-t / 02-Film.t
index 3a27e78..f55d8cd 100644 (file)
@@ -3,8 +3,13 @@ use Test::More;
 $| = 1;
 
 BEGIN {
-       eval "use DBD::SQLite";
-       plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 93);
+  eval "use DBIx::Class::CDBICompat;";
+  if ($@) {
+    plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
+    next;
+  }
+  eval "use DBD::SQLite";
+  plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 96);
 }
 
 INIT {
@@ -80,6 +85,9 @@ $gone->update;
        cmp_ok(@films, '==', 2, "We have 2 films in total");
 }
 
+# EXTRA TEST: added by mst to check a bug found by Numa
+cmp_ok(Film->count_all, '==', 2, "count_all confirms 2 films");
+
 my $gone_copy = Film->retrieve('Gone With The Wind');
 ok($gone->NumExplodingSheep == 5, 'update()');
 ok($gone->Rating eq 'NC-17', 'update() again');
@@ -159,6 +167,8 @@ eval {
                Film->create({ Title => 'Mikey and Nicky', Director => 'Elaine May' });
        my $new_leaf =
                Film->create({ Title => 'A New Leaf', Director => 'Elaine May' });
+
+#use Data::Dumper; die Dumper(Film->search( Director => 'Elaine May' ));
        cmp_ok(Film->search(Director => 'Elaine May'), '==', 3,
                "3 Films by Elaine May");
        ok(Film->retrieve('Ishtar')->delete,
@@ -226,7 +236,7 @@ is($btaste->Director, $orig_director, 'discard_changes()');
        my $btaste2 = Film->retrieve($btaste->id);
        $btaste->NumExplodingSheep(18);
        my @warnings;
-       local $SIG{__WARN__} = sub { push @warnings, @_; };
+       local $SIG{__WARN__} = sub { push(@warnings, @_); };
        {
 
                # unhook from live object cache, so next one is not from cache
@@ -349,7 +359,7 @@ if (0) {
 }
 
 SKIP: {
-        skip "DBIx::Class doesn't yet have a live objects index", 3;
+        #skip "DBIx::Class doesn't yet have a live objects index", 3;
        #skip "Scalar::Util::weaken not available", 3
                #if !$Class::DBI::Weaken_Is_Available;
 
@@ -359,6 +369,10 @@ SKIP: {
        is Scalar::Util::refaddr($btaste), Scalar::Util::refaddr($btaste2),
                "Retrieving twice gives ref to same object";
 
+       my ($btaste5) = Film->search(title=>'Bad Taste');
+       is Scalar::Util::refaddr($btaste), Scalar::Util::refaddr($btaste5),
+               "Searching also gives ref to same object";
+
        $btaste2->remove_from_object_index;
        my $btaste3 = Film->retrieve('Bad Taste');
        isnt Scalar::Util::refaddr($btaste2), Scalar::Util::refaddr($btaste3),
@@ -368,4 +382,15 @@ SKIP: {
        my $btaste4 = Film->retrieve('Bad Taste');
        isnt Scalar::Util::refaddr($btaste2), Scalar::Util::refaddr($btaste4),
                "Clearing cache and retrieving again gives new object";
+  $btaste=Film->create({
+               Title             => 'Bad Taste 2',
+               Director          => 'Peter Jackson',
+               Rating            => 'R',
+               NumExplodingSheep => 2,
+       });
+       $btaste2 = Film->retrieve('Bad Taste 2');
+       is Scalar::Util::refaddr($btaste), Scalar::Util::refaddr($btaste2),
+               "Creating and retrieving gives ref to same object";
 }