#!/usr/bin/perl -w
use strict;

use Test::More tests => 14;
use Test::Exception;
use Test::Differences;

use Data::Dumper;


use lib "../lib";

use_ok("Devel::PerlySense");
use_ok("Devel::PerlySense::Class");
use_ok("Devel::PerlySense::Editor::Emacs");


BEGIN { -d "t" and chdir("t"); }



ok(my $oPerlySense = Devel::PerlySense->new(), "Created PerlySense object ok");
ok(
    my $oEditor = Devel::PerlySense::Editor::Emacs->new(
        oPerlySense => $oPerlySense,
        widthDisplay => undef,
    ),
    "Created Editor ok",
);


my $raItem;



$raItem = [qw/ a b /];
is(
    $oEditor->textTable($raItem, 1, sub { "($_[0])(@{$_[1]})" } ),
    "(a)(a b)\n(b)(a b)\n",
    "One item, with renderer",
);



$raItem = [];
is(
    $oEditor->textTable($raItem, 1),
    "",
    "No items, 1 col",
);
is(
    $oEditor->textTable($raItem, 10),
    "",
    "No items, 10 col",
);



$raItem = [qw/ a /];
is(
    $oEditor->textTable($raItem, 1),
    "a\n",
    "One item, single col",
);
is(
    $oEditor->textTable($raItem, 10),
    "a\n",
    "One item, very wide col",
);


$raItem = [qw/ a b /];
is(
    $oEditor->textTable($raItem, 1),
    "a\nb\n",
    "Two items, one col",
);
is(
    $oEditor->textTable($raItem, 10),
    "a b\n",
    "Two items, wide",
);

$raItem = [qw/ a b c d e f g h i j k /];
is(
    $oEditor->textTable($raItem, 5),
    "a e i
b f j
c g k
d h  \n",
    "12 Items, five cols",
);


$raItem = [qw/ abc b c d e f g h i j k /];
is(
    $oEditor->textTable($raItem, 7),
    "abc e i
b   f j
c   g k
d   h  \n",
    "12 Items with varied widths, five cols",
);



__END__