#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 2;
my $CLASS = "Local::Test::Dialect";
# Test making a dialect
{
package Local::Test::Dialect;
use SQL::Dialects::Role;
sub get_config
{
# There's some deliberate whitespace abuse in here
return <<END;
[THINGS]
elephants
FEELINGS
stuff
[RESERVED WORDS]
FOO
BAR
BAZ
END
}
}
is_deeply(
$CLASS->get_config_as_hash(),
{
things => {
ELEPHANTS => 1,
FEELINGS => 1,
STUFF => 1,
},
reserved_words => {
FOO => 1,
BAR => 1,
BAZ => 1
}
}
);
# Test role injection
{
{
package SQL::Dialects::Test::NoRole;
sub get_config
{
return <<DONE;
[FOO]
bar
baz
DONE
}
}
use SQL::Parser;
my $parser = SQL::Parser->new();
ok eval { $parser->dialect("Test::NoRole"); 1; } or diag($@);
}