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

BEGIN {
	    use_ok("Querylet::Query");
	require_ok("Querylet::Output");
}

eval { Querylet::Output->default_type };
like($@, qr/unimplemented/, "death on abstract base method");

eval { Querylet::Output->handler };
like($@, qr/unimplemented/, "death on abstract base method");

package QOBogus;
	our @ISA = qw(Querylet::Output);
	sub default_type { 'bogus' }
	sub handler      {
		our $handler_method_called++;
		sub { }
	}
package main;


is(QOBogus->default_type,        'bogus', 'default_type method');
is($QOBogus::handler_method_called, undef, 'handler unregistered');

QOBogus->import;
is($QOBogus::handler_method_called,     1, 'handler registered (default name)');

QOBogus->import('fake');
is($QOBogus::handler_method_called,     2, 'handler registered (new name)');