Add failing test
[dbsrgits/DBIx-Class-Fixtures.git] / t / lib / DBICTest / Schema3.pm
1 package Schema3::Result::Person;
2
3 use strict;
4 use warnings;
5
6 use base 'DBIx::Class::Core';
7
8 __PACKAGE__->table('person');
9
10 __PACKAGE__->add_columns(
11   id => {
12         data_type => 'integer',
13         is_auto_increment => 1,
14   },
15   name => {
16     data_type => 'varchar',
17     size => 255,
18   },
19   weight => {
20     datatype => 'float',
21   },
22   height => {
23     datatype => 'float',
24   },
25 );
26
27 __PACKAGE__->set_primary_key('id');
28
29 # Add virtual column
30 __PACKAGE__->resultset_attributes({
31   '+select' => [ \'weight/height' ],
32   '+as'     => [ 'weight_to_height_ratio' ],
33 });
34
35 package Schema3;
36
37 use strict;
38 use warnings;
39
40 use base 'DBIx::Class::Schema';
41
42 __PACKAGE__->register_class(Person => 'Schema3::Result::Person');
43
44 sub load_sql {
45   local $/ = undef;
46   my $sql = <DATA>;
47 }
48
49 sub init_schema {
50   my $sql = (my $schema = shift)
51     ->load_sql;
52
53   ($schema->storage->dbh->do($_) ||
54    die "Error on SQL: $_\n")
55     for split(/;\n/, $sql);
56 }
57
58 1;
59
60 __DATA__
61 CREATE TABLE person (
62   id INTEGER PRIMARY KEY NOT NULL,
63   name varchar(255) NOT NULL,
64   weight FLOAT NOT NULL,
65   height FLOAT NOT NULL
66 );
67
68 INSERT INTO person (name, weight, height)
69 VALUES
70 ('Fred Flintstone', 220, 5.2),
71 ('Barney Rubble', 190, 4.8)