ActiveRecord-Simple
view release on metacpan or search on metacpan
t/15-sql-row.t view on Meta::CPAN
(1, 'Bronze'),
(2, 'Silver'),
(3, 'Gold');
};
Schema->dbh->do($_INIT_SQL_ACHIEVEMENTS);
Schema->dbh->do($_DATA_SQL_ACHEIVEMENTS);
my $_INIT_SQL_CA = q{
CREATE TABLE `customer_achievement` (
`customer_id` int NOT NULL references customers (id),
`achievement_id` int NOT NULL references achievements (id)
);
};
my $_DATA_SQL_CA = q{
INSERT INTO `customer_achievement` (`customer_id`, `achievement_id`)
VALUES
(1, 1),
(1, 2),
(2, 1),
(2, 3),
(3, 1),
(3, 2),
(3, 3);
};
Schema->dbh->do($_INIT_SQL_CA);
Schema->dbh->do($_DATA_SQL_CA);
}
package Customer;
#use parent 'Schema';
our @ISA = qw/Schema/;
__PACKAGE__->auto_load();
__PACKAGE__->has_many('orders' => 'Order');
__PACKAGE__->has_many('achievements' => 'Achievement', { via => 'customer_achievement' });
package Order;
our @ISA = qw/Schema/;
__PACKAGE__->auto_load();
__PACKAGE__->belongs_to(customer => 'Customer');
package Achievement;
our @ISA = qw/Schema/;
__PACKAGE__->auto_load();
__PACKAGE__->has_many(customers => 'Customer', { via => 'customer_achievement' });
package main;
ok my $one = Customer->objects->sql_fetch_all('select 1 as one, 2 as two');
is ref $one, 'ARRAY';
is scalar @$one, 1;
my $one1 = shift @$one;
isa_ok $one1, 'Customer';
ok $one1->one;
is $one1->one, 1;
ok $one1->two;
is $one1->two, 2;
eval { $one1->foo };
ok $@;
ok my $two = Customer->objects->sql_fetch_row('select 3 as three, 4 as four');
isa_ok $two, 'Customer';
ok $two->three;
is $two->three, 3;
eval { $two->five };
ok $@;
eval { $two->three(4) };
ok $@;
like $@, qr/read-only/;
#is $two->three, 3, 'still 3';
done_testing();
( run in 2.259 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )