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

use Test::More tests => 15;
use Test::Exception;

use File::Basename;
use File::Spec::Functions;

use lib "../lib";

use_ok("Devel::PerlySense::Document");


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


ok(my $oDocument = Devel::PerlySense::Document->new(oPerlySense => Devel::PerlySense->new()), "new ok");
is($oDocument->file, "", " file is ok");
is($oDocument->oDocument, undef, " oDocument is ok");

throws_ok( sub { $oDocument->parse() }, qr/Missing argument \(file\)/, "Parse died ok on missing param");

dies_ok( sub { $oDocument->parse(file => "sldkfjsd/missing/sldkfjs.pm") }, "Parse died ok on missing file");
is($oDocument->file, "", " file is ok");
is($oDocument->oDocument, undef, " oDocument is ok");



my $dirData = "data/simple-lib";
my $fileOrigin = "$dirData/lib/Win32/Word/Writer/Table.pm";

ok($oDocument->parse(file => $fileOrigin), "Parsed file ok");
is($oDocument->file, $fileOrigin, " file set ok");
isnt($oDocument->oDocument, undef, " oDocument is ok");

is($oDocument->packageAt(row => 1), "main", "Correct package main ok");

is($oDocument->packageAt(row => 143), "Win32::Word::Writer::Table", "Correct package Table ok");

throws_ok(sub { $oDocument->packageAt(row => 0) }, qr/row/, "Dies ok when outside document");
throws_ok(sub { $oDocument->packageAt(row => -1) }, qr/row/, "Dies ok when outside document");





__END__