[rt.cpan.org 36863]
[dbsrgits/DBIx-Class.git] / t / cdbi-t / mk_group_accessors.t
CommitLineData
7da06023 1#!/usr/bin/perl -w
2
3use strict;
4use Test::More;
5
6BEGIN {
7 eval "use DBIx::Class::CDBICompat;";
8 plan skip_all => 'Class::Trigger and DBIx::ContextualFetch required' if $@;
9
10 eval "use DBD::SQLite";
11 plan skip_all => 'needs DBD::SQLite for testing' if $@;
12
13 plan 'no_plan';
14}
15
16INIT {
17 use lib 't/testlib';
18 require Film;
19}
20
21sub Film::get_test {
22 my $self = shift;
23 my $key = shift;
24 $self->{get_test}++;
25 return $self->{$key};
26}
27
28sub Film::set_test {
29 my($self, $key, $val) = @_;
30 $self->{set_test}++;
31 return $self->{$key} = $val;
32}
33
34
35my $film = Film->create({ Title => "No Wolf McQuade" });
36
37# Test mk_group_accessors() with a list of fields.
38{
39 Film->mk_group_accessors(test => qw(foo bar));
40 $film->foo(42);
41 is $film->foo, 42;
42
43 $film->bar(23);
44 is $film->bar, 23;
45}
46
47
48# An explicit accessor passed to mk_group_accessors should
49# ignore accessor/mutator_name_for.
50sub Film::accessor_name_for {
51 my($class, $col) = @_;
52 return "hlaglagh" if $col eq "wibble";
53 return $col;
54}
55
56sub Film::mutator_name_for {
57 my($class, $col) = @_;
58 return "hlaglagh" if $col eq "wibble";
59 return $col;
60}
61
62
63# Test with a mix of fields and field specs
64{
65 Film->mk_group_accessors(test => ("baz", [wibble_thing => "wibble"]));
66 $film->baz(42);
67 is $film->baz, 42;
68
69 $film->wibble_thing(23);
70 is $film->wibble_thing, 23;
71}