#!/usr/bin/perl # Create a new database when opening a file that doesn't exist use strict; BEGIN { $| = 1; $^W = 1; } use Test::More tests => 13; use File::Spec::Functions ':ALL'; # Prepare to test my $test_dir = catdir( 't', 'data' ); my $test_create = catfile( $test_dir, 'create.sqlite' ); ok( -d $test_dir, 'Test directory exists' ); ok( -r $test_dir, 'Test directory read permissions ok' ); ok( -w $test_dir, 'Test directory write permissions ok' ); ok( -x $test_dir, 'Test directory enter permissions ok' ); ok( ! -f $test_create, 'Test database does not exist yet' ); END { unlink $test_create if -f $test_create; } # Do the whole thing in one hit... use_ok( 'Perl::Metrics', $test_create ); # Get the database handle to the database my $dbh = Perl::Metrics::CDBI->db_Main; isa_ok( $dbh, 'DBI::db' ); # Does the expected tables exist? my @tables = $dbh->tables('%', '%', '%'); ok( scalar(@tables), 'Got list of tables in the database' ); @tables = grep { ! /^sqlite_/ } @tables; ok( scalar(@tables), 'Found at least one non-internal table' ); is( scalar(grep{ /\bfiles\b/ } @tables), 1, 'Found files table' ); is( scalar(grep{ /\bmetrics\b/ } @tables), 1, 'Found metrics table' ); # Retrieving all files should return nothing, but not die my @objects = Perl::Metrics::File->retrieve_all; is_deeply( \@objects, [ ], "File->retrieve_all doesn't die" ); @objects = Perl::Metrics::Metric->retrieve_all; is_deeply( \@objects, [ ], "Metric->retrieve_all doesn't die" ); 1;