Ambrosia
view release on metacpan or search on metacpan
t/Ambrosia/DataProvider.t view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 14;
use Test::Exception;
use lib qw(lib t .);
use Carp;
use Data::Dumper;
BEGIN {
use_ok( 'Ambrosia::DataProvider' ); #test #1
}
my $confDS = do 'db.params';
instance Ambrosia::DataProvider(test => $confDS);
Ambrosia::DataProvider::assign 'test';
my $s1 = storage();
my $s2 = storage();
ok($s1->equal($s2,0,1) eq '1', 'self is identical self');
my $d = storage()->driver('DBI', 'Client');
ok ($d, 'get driver');
my $dbh = $d->handler();
ok ($dbh, 'get handler');
ok ($d->begin_transaction(), 'begin_transaction');
$dbh->do(q~DROP TABLE IF EXISTS `tClient`~);
$dbh->do(<<CREATE_TABLE);
CREATE TABLE `tClient` (
`ClientId` int(10) unsigned NOT NULL AUTO_INCREMENT,
`LastName` varchar(32) NOT NULL,
`FirstName` varchar(32) NOT NULL,
`MiddleName` varchar(32) NOT NULL,
`Age` tinyint(4) NOT NULL,
PRIMARY KEY (`ClientId`)
) ENGINE=InnoDB AUTO_INCREMENT=5001 DEFAULT CHARSET=utf8
CREATE_TABLE
ok ($d->save_transaction(), 'save_transaction');
my $NUM_ROWS = 20;
for ( 1 .. $NUM_ROWS )
{
$d->source('tClient')
->insert()
->what(qw/LastName FirstName MiddleName Age/)
->execute('LastName'.$_, 'FirstName'.$_, 'MiddleName'.$_, 20+$_);
}
$d->save_transaction();
ok($d->source('tClient')->count() == $NUM_ROWS, "insert $NUM_ROWS rows into table");
for ( 1 .. $NUM_ROWS )
{
$d->source('tClient')
->insert()
->what(qw/LastName FirstName MiddleName Age/)
->execute('LastName'.$_, 'FirstName'.$_, 'MiddleName'.$_, 20+$_);
}
ok ($d->cancel_transaction(), 'cancel_transaction');
( run in 0.811 second using v1.01-cache-2.11-cpan-ceb78f64989 )