aboutsummaryrefslogtreecommitdiffstats
path: root/t/lib/RTest/TestDB/Foo.pm
diff options
context:
space:
mode:
Diffstat (limited to 't/lib/RTest/TestDB/Foo.pm')
-rw-r--r--t/lib/RTest/TestDB/Foo.pm42
1 files changed, 42 insertions, 0 deletions
diff --git a/t/lib/RTest/TestDB/Foo.pm b/t/lib/RTest/TestDB/Foo.pm
new file mode 100644
index 0000000..5733054
--- /dev/null
+++ b/t/lib/RTest/TestDB/Foo.pm
@@ -0,0 +1,42 @@
+package # hide from PAUSE
+ RTest::TestDB::Foo;
+
+use DBIx::Class 0.07;
+
+use base qw/DBIx::Class Reaction::Object/;
+use Reaction::Class;
+
+has 'id' => (isa => 'Int', is => 'ro', required => 1);
+has 'first_name' => (isa => 'NonEmptySimpleStr', is => 'rw', required => 1);
+has 'last_name' => (isa => 'NonEmptySimpleStr', is => 'rw', required => 1);
+has 'baz_list' => (
+ isa => 'ArrayRef', is => 'rw', required => 1,
+ reader => 'get_baz_list', writer => 'set_baz_list'
+);
+
+__PACKAGE__->load_components(qw/InflateColumn::DateTime Core/);
+
+__PACKAGE__->table('foo');
+
+__PACKAGE__->add_columns(
+ id => { data_type => 'integer', size => 16, is_auto_increment => 1 },
+ first_name => { data_type => 'varchar', size => 255 },
+ last_name => { data_type => 'varchar', size => 255 },
+);
+
+sub display_name {
+ my $self = shift;
+ return join(' ', $self->first_name, $self->last_name);
+}
+
+__PACKAGE__->set_primary_key('id');
+
+__PACKAGE__->has_many('links_to_baz_list' => 'RTest::TestDB::FooBaz', 'foo');
+__PACKAGE__->many_to_many('baz_list' => 'links_to_baz_list' => 'baz');
+
+{
+ no warnings 'redefine';
+ *get_baz_list = sub { [ shift->baz_list->all ] };
+}
+
+1;