#!perl -T
use Test::More tests => 14;
use Games::Maze::SVG;
use strict;
use warnings;
# Default constructor.
my $maze = Games::Maze::SVG->new( 'Hex' );
isa_ok( $maze, 'Games::Maze::SVG', "Correct base type" );
isa_ok( $maze, 'Games::Maze::SVG::Hex', "Correct type" );
can_ok( $maze, qw/is_hex is_hex_shaped toString get_script/ );
ok( $maze->is_hex(), "Has hex cells" );
ok( $maze->is_hex_shaped(), "Is hex shaped" );
like( $maze->get_script(), qr/hexmaze\.es/, "Correct script name" );
is( $maze->{wallform}, 'straight', "wall form defaults correctly" );
is( $maze->{crumb}, 'dash', "crumb style defaults correctly" );
is( $maze->dx(), 10, "delta x defaults correctly" );
is( $maze->dy(), 10, "delta y defaults correctly" );
is( $maze->{dir}, 'scripts/', "directory defaults correctly" );
$maze = Games::Maze::SVG->new( 'Hex',
crumb => 'dot', dir => '/svg/'
);
is( $maze->{crumb}, 'dot', "crumb style set correctly" );
is( $maze->{dir}, '/svg/', "directory set correctly" );
eval { $maze = Games::Maze::SVG->new( 'Hex', wallform => "xyzzy" ); };
like( $@, qr/'xyzzy' is not a valid wall form/, "Bad wall form stopped." );