use Test::More;
use lib qw(t/lib);
-# inject IC::File into the result baseclass for testing
-BEGIN {
- $ENV{DBIC_IC_FILE_NOWARN} = 1;
- require DBICTest::BaseResult;
- DBICTest::BaseResult->load_components (qw/InflateColumn::File/);
-}
-
use DBICTest;
+use DBICTest::Schema;
use File::Compare;
use Path::Class qw/file/;
+{
+ local $ENV{DBIC_IC_FILE_NOWARN} = 1;
+
+ package DBICTest::Schema::FileColumn;
+
+ use strict;
+ use warnings;
+ use base qw/DBICTest::BaseResult/;
+
+ use File::Temp qw/tempdir/;
+
+ __PACKAGE__->load_components (qw/InflateColumn::File/);
+ __PACKAGE__->table('file_columns');
+
+ __PACKAGE__->add_columns(
+ id => { data_type => 'integer', is_auto_increment => 1 },
+ file => {
+ data_type => 'varchar',
+ is_file_column => 1,
+ file_column_path => tempdir(CLEANUP => 1),
+ size => 255
+ }
+ );
+
+ __PACKAGE__->set_primary_key('id');
+}
+DBICTest::Schema->load_classes('FileColumn');
+
my $schema = DBICTest->init_schema;
plan tests => 10;
+if (not $ENV{DBICTEST_SQLT_DEPLOY}) {
+ $schema->storage->dbh->do(<<'EOF');
+ CREATE TABLE file_columns (
+ id INTEGER PRIMARY KEY,
+ file VARCHAR(255)
+ )
+EOF
+}
+
my $rs = $schema->resultset('FileColumn');
my $source_file = file(__FILE__);
my $fname = $source_file->basename;
$fc->file({ handle => $fh, filename => $new_fname });
$fc->update;
-TODO: {
+{
local $TODO = 'design change required';
ok ( ! -e $storage, 'old storage does not exist' );
};
is ( $fc->file->{filename}, $new_fname, 'new filname matches' );
ok ( compare($new_storage, $new_source_file) == 0, 'new content matches' );
-if ($^O =~ /win32|cygwin/i) {
- close $fc->file->{handle}; # can't delete open files on Windows
+if ($^O eq 'MSWin32') {
+ close $fc->file->{handle}; # can't delete open files on Win32
}
$fc->delete;
$fc->file->{filename},
);
-TODO: {
+{
local $TODO = 'need resultset delete override to delete_all';
$rs->delete;
ok ( ! -e $storage, 'storage does not exist after $rs->delete' );
-};
+}