When emulating $obj->{column} do not call any custom column method, just
[dbsrgits/DBIx-Class.git] / t / cdbi-t / columns_as_hashes.t
index 5a5811f..1280f6f 100644 (file)
@@ -7,7 +7,7 @@ use Test::Warn;
 BEGIN {
   eval "use DBIx::Class::CDBICompat;";
   plan $@ ? (skip_all => "Class::Trigger and DBIx::ContextualFetch required: $@")
-          : (tests=> 8);
+          : (tests=> 10);
 }
 
 use lib 't/testlib';
@@ -19,6 +19,8 @@ my $waves = Film->insert({
     Rating    => 'R'
 });
 
+local $ENV{DBIC_CDBICOMPAT_HASH_WARN} = 1;
+
 warnings_like {
     my $rating = $waves->{rating};
     $waves->Rating("PG");
@@ -43,3 +45,24 @@ warnings_like {
 $waves->update;
 my @films = Film->search( Rating => "PG", Title => "Breaking the Waves" );
 is @films, 1, "column updated as hash was saved";
+
+
+warning_is {
+    local $ENV{DBIC_CDBICOMPAT_HASH_WARN} = 0;
+    $waves->{rating}
+} '', 'DBIC_CDBICOMPAT_HASH_WARN controls warnings';
+
+
+{
+    local $ENV{DBIC_CDBICOMPAT_HASH_WARN} = 0;
+    
+    $waves->rating("R");
+    $waves->update;
+    
+    no warnings 'redefine';
+    local *Film::rating = sub {
+        return "wibble";
+    };
+    
+    is $waves->{rating}, "R";
+}