1use strict; 2use Test::More; 3 4BEGIN { 5 eval "use DBD::SQLite"; 6 plan $@ 7 ? (skip_all => 'needs DBD::SQLite for testing') 8 : (tests => 6); 9} 10 11INIT { 12 local $SIG{__WARN__} = sub { 13 like $_[0], qr/clashes with built-in method/, $_[0]; 14 }; 15 use lib 't/testlib'; 16 require Film; 17} 18 19sub Film::accessor_name_for { 20 my ($class, $col) = @_; 21 return "sheep" if lc $col eq "numexplodingsheep"; 22 return $col; 23} 24 25my $data = { 26 Title => 'Bad Taste', 27 Director => 'Peter Jackson', 28 Rating => 'R', 29}; 30 31my $bt; 32eval { 33 my $data = $data; 34 $data->{sheep} = 1; 35 ok $bt = Film->insert($data), "Modified accessor - with 36accessor"; 37 isa_ok $bt, "Film"; 38}; 39is $@, '', "No errors"; 40 41eval { 42 ok $bt->sheep(2), 'Modified accessor, set'; 43 ok $bt->update, 'Update'; 44}; 45is $@, '', "No errors"; 46 47