#!use/local/bin/perl
use Test::More qw (no_plan);
use Data::Dumper;
use DIR::DBTeams;
use constant DB => "dbi::Mock:";
use constant DB_USER => "mock";
use constant DB_PWD => "mock";
my $db;
my $query;
my $columns;
my @boundparams;
my @results;
my $test_teams;
$query = q(select decode(substr(te.TEAM_ID,1,2),'MU','Manchester United',
'RM', 'Real Madrid')) from Teams t inner join TEAMS_EUROPE.TEAM_REF te on t.TEAM_REF = te.TEAM_REF
and t.TEAM_REF=:ref);
$boundparams=('123'); #123 is reference for MU
$columns=('TEAM_ID');
@results=('Manchester United');
$db = &connectDB(DB,DB_USER,DB_PWD);
my $session = DBD::Mock::Session->new('my_sesion' => (
{
statement => $query,
bound_params = [@boundparams],
results => [[$columns],[@results]]
}
)
);
$db->{mock_session}=$session;
$test_teams = new DBTeams($db, $boundparams[0]);
is($test_teams, "Manchester United", "Test Teams");
sub connectDB($$$)
{
my $dbh = DBI->connect($_[0],$_[1],$_[2]);
return $dbh;
}
####
package DIR::DBTeams;
use DBI;
sub new
{
my $class = shift;
my $self = {};
my ($dbh,$ref) = @_;
$self->{dbh} = $dbh;
&getTeam($ref);
}
sub getTeam
{
my $me = shift;
my $ref = shift;
my $ret;
my $cur = $me->{dbh}->prepare(
q(select decode(substr(te.TEAM_ID,1,2),'MU','Manchester United',
'RM', 'Real Madrid')) from Teams t inner join TEAMS_EUROPE.TEAM_REF te on t.TEAM_REF = te.TEAM_REF
and t.TEAM_REF=:ref));
$cur->bind_param(':ref',$ref);
$cur->execute() or croak $cur->errstr;
$ret = $cur->fetchrow_array();
$cur->finish;
return $ret;
}
####
...
($ret) = $cur->fetchrow_array();
...