DBIx-TableLoader

 view release on metacpan or  search on metacpan

t/sql.t  view on Meta::CPAN

],
  qr/^INSERT INTO "data"\s*\(\s*"a"\s*\)\s*VALUES\s*\(\s*\?\s*\)$/,
  $default_drop,
);

test_all(constraint_suffix =>
  new_ok($mod, [{%def_args, create_suffix => 'CONSTRAINT primary key a)'}]),
[
  qr/CREATE\s+TABLE\s+"data"\s+\(/,
  qr/\s*"a"\s+foo\s*/,
  qr/CONSTRAINT primary key a\)/,
],
  qr/^INSERT INTO "data"\s*\(\s*"a"\s*\)\s*VALUES\s*\(\s*\?\s*\)$/,
  $default_drop,
);

test_all(create_prefix_suffix =>
  new_ok($mod, [{%def_args, create_prefix => 'CREATE A TABLE FOR ME', create_suffix => ') NOT!'}]),
[
  qr/CREATE A TABLE FOR ME/,
  qr/\s*"a"\s+foo\s*/,
  qr/\) NOT!/,
],
  qr/^INSERT INTO "data"\s*\(\s*"a"\s*\)\s*VALUES\s*\(\s*\?\s*\)$/,
  $default_drop,
);

test_all(multiple_columns =>
  new_ok($mod, [{%def_args, columns => [[a => 'bar'], ['b'], 'c']}]),
[
  qr/CREATE\s+TABLE\s+"data"\s+\(/,
  qr/\s*"a"\s+bar,\s+"b"\s+foo,\s+"c"\s+foo\s*/,
  qr/\)/,
],
  qr/^INSERT INTO "data"\s*\(\s*"a", "b", "c"\s*\)\s*VALUES\s*\(\s*\?, \?, \?\s*\)$/,
  $default_drop,
);

test_all(multi_word_name_type =>
  new_ok($mod, [{%def_args, columns => [[a => 'bar foo'], ['b b', 'gri zz ly'], 'c']}]),
[
  qr/CREATE\s+TABLE\s+"data"\s+\(/,
  qr/\s*"a"\s+bar foo,\s+"b b"\s+gri zz ly,\s+"c"\s+foo\s*/,
  qr/\)/,
],
  qr/^INSERT INTO "data"\s*\(\s*"a", "b b", "c"\s*\)\s*VALUES\s*\(\s*\?, \?, \?\s*\)$/,
  $default_drop,
);

test_all(table_type =>
  new_ok($mod, [{%def_args, table_type => 'TEMP'}]),
[
  qr/CREATE\s+TEMP\s+TABLE\s+"data"\s+\(/,
  qr/\s*"a"\s+foo\s*/,
  qr/\)/,
],
  undef,
  $default_drop
);

test_drop(cascade =>
  new_ok($mod, [{%def_args, drop_suffix => 'CASCADE'}]),
  qr/DROP\s+TABLE/,
  qr/"data"/,
  qr/CASCADE/,
);

test_drop(prefix_suffix_drop =>
  new_ok($mod, [{%def_args, drop_prefix => 'DROP TABLE IF EXISTS', drop_suffix => 'CASCADE'}]),
  qr/DROP TABLE IF EXISTS/,
  qr/"data"/,
  qr/CASCADE/,
);

# insert_all

foreach my $test (
  [ [qw(a)], [1] ],
  [ [qw(a b)], [1, 2], [3, 4] ],
  [ [[a => 'A'], 'b'], ['a a', 'b b'], [3, 4] ],
){
  my $data = $test;
  my $rows = @$data - 1;
  $dbh->reset;
  $loader = new_ok($mod, [{%def_args, columns => undef, data => $data}]);
  is($loader->insert_all, $rows, 'inserted all records');
  is($dbh->{prepared}, 1, 'prepare called 1 time');
  shift @$data; # remove columns from the top for comparison
  is_deeply($dbh->{sth}->{execute}, $data, 'expectation executed')
    or diag explain $data;
}

done_testing;



( run in 1.721 second using v1.01-cache-2.11-cpan-d06a3f9ecfd )