missed adding the test
[dbsrgits/DBIx-Class.git] / t / cdbi-t / 14-might_have.t
CommitLineData
e76caa30 1use strict;
2use Test::More;
3
4BEGIN {
289ba852 5 eval "use DBIx::Class::CDBICompat;";
6 if ($@) {
7 plan (skip_all => 'Class::Trigger and DBIx::ContextualFetch required');
8 next;
9 }
10 eval "use DBD::SQLite";
11 plan $@ ? (skip_all => 'needs DBD::SQLite for testing') : (tests => 18);
e76caa30 12}
13
14use lib 't/testlib';
15use Film;
16use Blurb;
17
18is(Blurb->primary_column, "title", "Primary key of Blurb = title");
19is_deeply [ Blurb->columns('Essential') ], [ Blurb->primary_column ], "Essential = Primary";
20
21eval { Blurb->retrieve(10) };
22is $@, "", "No problem retrieving non-existent Blurb";
23
24Film->might_have(info => Blurb => qw/blurb/);
25
26Film->create_test_film;
27
28{
29 ok my $bt = Film->retrieve('Bad Taste'), "Get Film";
30 isa_ok $bt, "Film";
31 is $bt->info, undef, "No blurb yet";
32 # bug where we couldn't write a class with a might_have that didn't_have
33 $bt->rating(16);
34 eval { $bt->update };
35 is $@, '', "No problems updating when don't have";
36 is $bt->rating, 16, "Updated OK";
37
38 is $bt->blurb, undef, "Bad taste has no blurb";
39 $bt->blurb("Wibble bar");
40 $bt->update;
41 is $bt->blurb, "Wibble bar", "And we can write the info";
42}
43
44{
45 my $bt = Film->retrieve('Bad Taste');
46 my $info = $bt->info;
47 isa_ok $info, 'Blurb';
48
49 is $bt->blurb, $info->blurb, "Blurb is the same as fetching the long way";
50 ok $bt->blurb("New blurb"), "We can set the blurb";
51 $bt->update;
52 is $bt->blurb, $info->blurb, "Blurb has been set";
53
54 $bt->rating(18);
55 eval { $bt->update };
56 is $@, '', "No problems updating when do have";
57 is $bt->rating, 18, "Updated OK";
58
59 # cascade delete?
60 {
61 my $blurb = Blurb->retrieve('Bad Taste');
62 isa_ok $blurb => "Blurb";
63 $bt->delete;
64 $blurb = Blurb->retrieve('Bad Taste');
65 is $blurb, undef, "Blurb has gone";
66 }
67
68}
69
70