X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fcdbi%2F06-hasa.t;h=255383be63b6a48a0794aac6d9208ba7363c4bfc;hb=4a233f3019d2baa4bf2abee0c873c74d5cdf3a11;hp=cd27ab67c6de17ad60b6a6e1e8826cf3025c9219;hpb=50891152d0b24649bfd67bdba97feec86b11c064;p=dbsrgits%2FDBIx-Class.git diff --git a/t/cdbi/06-hasa.t b/t/cdbi/06-hasa.t index cd27ab6..255383b 100644 --- a/t/cdbi/06-hasa.t +++ b/t/cdbi/06-hasa.t @@ -1,24 +1,15 @@ use strict; +use warnings; use Test::More; -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 => 24); -} - @YA::Film::ISA = 'Film'; #local $SIG{__WARN__} = sub { }; INIT { - use lib 't/cdbi/testlib'; - use Film; - use Director; + use lib 't/cdbi/testlib'; + use Film; + use Director; } Film->create_test_film; @@ -28,14 +19,14 @@ ok(!ref($pj), ' ... which is not an object'); ok(Film->has_a('Director' => 'Director'), "Link Director table"); ok( - Director->create( - { - Name => 'Peter Jackson', - Birthday => -300000000, - IsInsane => 1 - } - ), - 'create Director' + Director->create( + { + Name => 'Peter Jackson', + Birthday => -300000000, + IsInsane => 1 + } + ), + 'create Director' ); $btaste = Film->retrieve('Bad Taste'); @@ -46,11 +37,11 @@ is($pj->id, 'Peter Jackson', ' ... and is the correct director'); # Oh no! Its Peter Jacksons even twin, Skippy! Born one minute after him. my $sj = Director->create( - { - Name => 'Skippy Jackson', - Birthday => (-300000000 + 60), - IsInsane => 1, - } + { + Name => 'Skippy Jackson', + Birthday => (-300000000 + 60), + IsInsane => 1, + } ); is($sj->id, 'Skippy Jackson', 'We have a new director'); @@ -61,71 +52,71 @@ $btaste->CoDirector($sj); $btaste->update; is($btaste->CoDirector->Name, 'Skippy Jackson', 'He co-directed'); is( - $btaste->Director->Name, - 'Peter Jackson', - "Didnt interfere with each other" + $btaste->Director->Name, + 'Peter Jackson', + "Didnt interfere with each other" ); { # Ensure search can take an object - my @films = Film->search(Director => $pj); - is @films, 1, "1 Film directed by $pj"; - is $films[0]->id, "Bad Taste", "Bad Taste"; + my @films = Film->search(Director => $pj); + is @films, 1, "1 Film directed by $pj"; + is $films[0]->id, "Bad Taste", "Bad Taste"; } inheriting_hasa(); { - # Skippy directs a film and Peter helps! - $sj = Director->retrieve('Skippy Jackson'); - $pj = Director->retrieve('Peter Jackson'); + # Skippy directs a film and Peter helps! + $sj = Director->retrieve('Skippy Jackson'); + $pj = Director->retrieve('Peter Jackson'); - fail_with_bad_object($sj, $btaste); - taste_bad($sj, $pj); + fail_with_bad_object($sj, $btaste); + taste_bad($sj, $pj); } sub inheriting_hasa { - my $btaste = YA::Film->retrieve('Bad Taste'); - is(ref($btaste->Director), 'Director', 'inheriting has_a()'); - is(ref($btaste->CoDirector), 'Director', 'inheriting has_a()'); - is($btaste->CoDirector->Name, 'Skippy Jackson', ' ... correctly'); + my $btaste = YA::Film->retrieve('Bad Taste'); + is(ref($btaste->Director), 'Director', 'inheriting has_a()'); + is(ref($btaste->CoDirector), 'Director', 'inheriting has_a()'); + is($btaste->CoDirector->Name, 'Skippy Jackson', ' ... correctly'); } sub taste_bad { - my ($dir, $codir) = @_; - my $tastes_bad = YA::Film->create( - { - Title => 'Tastes Bad', - Director => $dir, - CoDirector => $codir, - Rating => 'R', - NumExplodingSheep => 23 - } - ); - is($tastes_bad->_Director_accessor, 'Skippy Jackson', 'Director_accessor'); - is($tastes_bad->Director->Name, 'Skippy Jackson', 'Director'); - is($tastes_bad->CoDirector->Name, 'Peter Jackson', 'CoDirector'); - is( - $tastes_bad->_CoDirector_accessor, - 'Peter Jackson', - 'CoDirector_accessor' - ); + my ($dir, $codir) = @_; + my $tastes_bad = YA::Film->create( + { + Title => 'Tastes Bad', + Director => $dir, + CoDirector => $codir, + Rating => 'R', + NumExplodingSheep => 23 + } + ); + is($tastes_bad->_Director_accessor, 'Skippy Jackson', 'Director_accessor'); + is($tastes_bad->Director->Name, 'Skippy Jackson', 'Director'); + is($tastes_bad->CoDirector->Name, 'Peter Jackson', 'CoDirector'); + is( + $tastes_bad->_CoDirector_accessor, + 'Peter Jackson', + 'CoDirector_accessor' + ); } sub fail_with_bad_object { - my ($dir, $codir) = @_; - eval { - YA::Film->create( - { - Title => 'Tastes Bad', - Director => $dir, - CoDirector => $codir, - Rating => 'R', - NumExplodingSheep => 23 - } - ); - }; - ok $@, $@; + my ($dir, $codir) = @_; + eval { + YA::Film->create( + { + Title => 'Tastes Bad', + Director => $dir, + CoDirector => $codir, + Rating => 'R', + NumExplodingSheep => 23 + } + ); + }; + ok $@, $@; } package Foo; @@ -135,8 +126,8 @@ __PACKAGE__->columns('All' => qw/ id fav /); # fav is a film __PACKAGE__->db_Main->do( qq{ CREATE TABLE foo ( - id INTEGER, - fav VARCHAR(255) + id INTEGER, + fav VARCHAR(255) ) }); @@ -148,8 +139,8 @@ __PACKAGE__->columns('All' => qw/ id fav /); # fav is a foo __PACKAGE__->db_Main->do( qq{ CREATE TABLE bar ( - id INTEGER, - fav INTEGER + id INTEGER, + fav INTEGER ) }); @@ -161,10 +152,11 @@ my $bar = Bar->create({ id => 2, fav => 6 }); isa_ok($bar->fav, "Foo"); isa_ok($foo->fav, "Film"); -{ - my $foo; - Foo->add_trigger(after_create => sub { $foo = shift->fav }); - my $gwh = Foo->create({ id => 93, fav => 'Good Will Hunting' }); - isa_ok $foo, "Film", "Object in after_create trigger"; +{ + my $foo; + Foo->add_trigger(after_create => sub { $foo = shift->fav }); + my $gwh = Foo->create({ id => 93, fav => 'Good Will Hunting' }); + isa_ok $foo, "Film", "Object in after_create trigger"; } +done_testing;