The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More;

eval 'use DBD::SQLite 1.0 ()';
plan skip_all => "DBD::SQLite required to run test querylet" if $@;

plan tests => 8;

use Querylet;

database: dbi:SQLite:dbname=./t/wafers.db

query:
  SELECT wafer_id, material, diameter, failurecode
  FROM   grown_wafers
  WHERE  reactor_id = 105
    AND  product_type <> 'Calibration'
  ORDER BY material, diameter

delete rows where:
	$row->{material} !~ /^[a-z]+$/i

add column surface_area:
  $value = $row->{diameter} * 3.14;

delete column diameter

add column cost:
  $value = $row->{surface_area} * 100 if $row->{material} eq 'GaAs';
  $value = $row->{surface_area} * 200 if $row->{material} eq 'InP';

munge column failurecode:
  $value = 10 if $value == 3; # 3's have been reclassified

munge all values:
  $value = '(null)' unless defined $value;

no output

no Querylet;

ok(1, "made it here alive");

isa_ok($q, "Querylet::Query");
isa_ok($q->results, "ARRAY");
isa_ok($q->results->[0], "HASH");

cmp_ok(@{$q->results}, '==', 160, "correct number of results");

is($q->results->[0]->{material},     'GaAs', 'first material correct');
is($q->results->[0]->{surface_area},   6.28, 'first surfarea correct',);
is($q->results->[0]->{cost},            628, 'first cost correct',);