Merge the relationship resolution rework
[dbsrgits/DBIx-Class.git] / t / cdbi / 15-accessor.t
index 72f2c54..5b34966 100644 (file)
@@ -1,30 +1,28 @@
+BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
+use DBIx::Class::Optional::Dependencies -skip_all_without => 'cdbicompat';
+
 use strict;
-use Test::More;
+use warnings;
 
-BEGIN {
-    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 => 75);
-}
+use Test::More;
 
+use lib 't/cdbi/testlib';
 INIT {
-    #local $SIG{__WARN__} =
-        #sub { like $_[0], qr/clashes with built-in method/, $_[0] };
-    use lib 't/cdbi/testlib';
-    require Film;
-    require Actor;
-    require Director;
+  require Film;
+  require Actor;
+  require Director;
 
-    Actor->has_a(film => 'Film');
-    Film->has_a(director => 'Director');
+  Actor->has_a(film => 'Film');
+  Film->has_a(director => 'Director');
 
-    sub Class::DBI::sheep { ok 0; }
+  sub Class::DBI::sheep { ok 0; }
 }
 
+# Install the deprecation warning intercept here for the rest of the 08 dev cycle
+local $SIG{__WARN__} = sub {
+  warn @_ unless (DBIx::Class->VERSION < 0.09 and $_[0] =~ /Query returned more than one row/);
+};
+
 sub Film::mutator_name {
     my ($class, $col) = @_;
     return "set_sheep" if lc $col eq "numexplodingsheep";
@@ -78,7 +76,7 @@ eval {
     my $data = { %$data };
     $data->{NumExplodingSheep} = 1;
     ok my $bt = Film->find_or_create($data),
-               "find_or_create Modified accessor - find with column name";
+    "find_or_create Modified accessor - find with column name";
     isa_ok $bt, "Film";
     is $bt->sheep, 1, 'sheep bursting violently';
 };
@@ -88,19 +86,20 @@ eval {
     my $data = { %$data };
     $data->{sheep} = 1;
     ok my $bt = Film->find_or_create($data),
-               "find_or_create Modified accessor - find with accessor";
+    "find_or_create Modified accessor - find with accessor";
     isa_ok $bt, "Film";
     is $bt->sheep, 1, 'sheep bursting violently';
 };
 is $@, '', "No errors";
 
-TODO: { local $TODO = 'TODOifying failing tests, waiting for Schwern'; ok (1, 'remove me');
 eval {
     my $data = { %$data };
     $data->{NumExplodingSheep} = 3;
     ok my $bt = Film->find_or_create($data),
-               "find_or_create Modified accessor - create with column name";
+    "find_or_create Modified accessor - create with column name";
     isa_ok $bt, "Film";
+
+    local $TODO = 'TODOifying failing tests, waiting for Schwern';
     is $bt->sheep, 3, 'sheep bursting violently';
 };
 is $@, '', "No errors";
@@ -109,8 +108,10 @@ eval {
     my $data = { %$data };
     $data->{sheep} = 4;
     ok my $bt = Film->find_or_create($data),
-               "find_or_create Modified accessor - create with accessor";
+    "find_or_create Modified accessor - create with accessor";
     isa_ok $bt, "Film";
+
+    local $TODO = 'TODOifying failing tests, waiting for Schwern';
     is $bt->sheep, 4, 'sheep bursting violently';
 };
 is $@, '', "No errors";
@@ -119,8 +120,9 @@ eval {
     my @film = Film->search({ sheep => 1 });
     is @film, 2, "Can search with modified accessor";
 };
-is $@, '', "No errors";
-
+{
+  local $TODO = 'TODOifying failing tests, waiting for Schwern';
+  is $@, '', "No errors";
 }
 
 {
@@ -160,9 +162,6 @@ is $@, '', "No errors";
     like $@, qr/film/, "no hasa film";
 
     eval {
-        local $SIG{__WARN__} = sub {
-            warn @_ unless $_[0] =~ /Query returned more than one row/;
-        };
         ok my $f = $ac->movie, "hasa movie";
         isa_ok $f, "Film";
         is $f->id, $bt->id, " - Bad Taste";
@@ -264,5 +263,7 @@ is $@, '', "No errors";
     my $abigail = eval { Film->create({ title => "Abigail's Party" }) };
     like $@, qr/read only/, "Or create new films";
 
-    $sandl->discard_changes;
+    $_->discard_changes for ($naked, $sandl);
 }
+
+done_testing;