ACME-QuoteDB
view release on metacpan or search on metacpan
t/01-load_quotes.t view on Meta::CPAN
#!perl -T
use strict;
use warnings;
use Carp qw/croak/;
BEGIN {
eval "use DBD::SQLite";
$@ and croak 'DBD::SQLite is a required dependancy';
}
use ACME::QuoteDB;
use ACME::QuoteDB::LoadDB;
#use Test::More 'no_plan';
use Test::More tests => 29;
use File::Basename qw/dirname/;
use Data::Dumper qw/Dumper/;
use File::Spec;
# A. test dry run, show if parsing is succesful but don't load the database
{
my $q = File::Spec->catfile((dirname(__FILE__),'data'),
'simpsons_quotes.tsv.csv'
);
# only 2 supported formats: 'simple' text (which is the default) and 'tsv'
my $load_db = ACME::QuoteDB::LoadDB->new({
file => $q,
file_format => 'tsv', # the only supported format
delimiter => "\t",
# provide a category for all (if not in data)
category => 'Humor',
# provide a attr_source for all (if not in data)
attr_source => 'The Simpsons',
dry_run => 1, # don't write to the database
#verbose => 1, # show what is being done
create_db => 1, # need to create the database
});
isa_ok $load_db, 'ACME::QuoteDB::LoadDB';
$load_db->data_to_db;
#flag not set on dry_run
is $load_db->success, undef; # success only after a database write,
my $sq = ACME::QuoteDB->new;
isa_ok $sq, 'ACME::QuoteDB';
ok ! $sq->list_attr_names;
}
{
my $load_db = ACME::QuoteDB::LoadDB->new({
file =>
#dirname(__FILE__).'/data/simpsons_quotes.tsv.csv',
File::Spec->catfile(
(dirname(__FILE__),'data'),
'simpsons_quotes.tsv.csv'
),
file_format => 'tsv',
delimiter => "\t",
#verbose => 1,
create_db => 1, # first run, create the db
# provide a attr_source for all (if not in data)
attr_source => 'The Simpsons',
# provide a category for all (if not in data)
category => 'Humor',
# provide a rating for all
rating => 6,
});
isa_ok $load_db, 'ACME::QuoteDB::LoadDB';
$load_db->data_to_db;
ok $load_db->success;
is $load_db->success, 1;
my $sq = ACME::QuoteDB->new;
isa_ok $sq, 'ACME::QuoteDB';
( run in 1.318 second using v1.01-cache-2.11-cpan-39bf76dae61 )