Switch CDBICompat and its tests to OptDeps
[dbsrgits/DBIx-Class-Historic.git] / t / cdbi / mk_group_accessors.t
1 use DBIx::Class::Optional::Dependencies -skip_all_without => 'cdbicompat';
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7
8 use lib 't/cdbi/testlib';
9 INIT { require Film }
10
11 sub Film::get_test {
12     my $self = shift;
13     my $key = shift;
14     $self->{get_test}++;
15     return $self->{$key};
16 }
17
18 sub Film::set_test {
19     my($self, $key, $val) = @_;
20     $self->{set_test}++;
21     return $self->{$key} = $val;
22 }
23
24
25 my $film = Film->create({ Title => "No Wolf McQuade" });
26
27 # Test mk_group_accessors() with a list of fields.
28 {
29     Film->mk_group_accessors(test => qw(foo bar));
30     $film->foo(42);
31     is $film->foo, 42;
32
33     $film->bar(23);
34     is $film->bar, 23;
35 }
36
37
38 # An explicit accessor passed to mk_group_accessors should
39 # ignore accessor/mutator_name_for.
40 sub Film::accessor_name_for {
41     my($class, $col) = @_;
42     return "hlaglagh" if $col eq "wibble";
43     return $col;
44 }
45
46 sub Film::mutator_name_for {
47     my($class, $col) = @_;
48     return "hlaglagh" if $col eq "wibble";
49     return $col;
50 }
51
52
53 # Test with a mix of fields and field specs
54 {
55     Film->mk_group_accessors(test => ("baz", [wibble_thing => "wibble"]));
56     $film->baz(42);
57     is $film->baz, 42;
58
59     $film->wibble_thing(23);
60     is $film->wibble_thing, 23;
61 }
62
63 done_testing;