The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

use strict;
use Test::More tests => 14;

my $warning ="";

BEGIN {
        chdir 't' if -d 't';
        use lib '../blib/lib', 'lib/', '..';

}


my $mod = "Parse::DebControl";

use_ok($mod);
my $writer;

ok($writer = new Parse::DebControl);
ok(!$writer->write_mem(), "write_mem should fail without data");
ok(!$writer->write_file(), "write_file should fail without a filename or handle");
ok(!$writer->write_file('/fake/file'), "write_file should fail without data");

ok($writer->write_mem({'foo' => 'bar'}) eq "foo: bar\n", "write_* should translate simple items correctly");

ok($writer->write_mem({'foo' => ''}) eq "foo:\n", "write_* should accept (begrudgingly) blank hashkeys");

ok($writer->write_mem({'foo' => undef}) eq "foo:\n", "write_* should correctly handle undef items");




SKIP: 	{
		eval { require Tie::IxHash };
		skip "Tie::IxHash is not installed", 3 if($@);

		my $test1 = "Test: Item1\nTest2: Item2\nTest3: Item3\n";
		my $test2 = "Test: Items\n Hello\n There\n .\n World\nAnother-item: world\n";
		my $i = 1;

		foreach($test1, $test2, "$test1\n$test2"){
			ok($writer->write_mem($writer->parse_mem($_, {'useTieIxHash' => 1})) eq $_, "...Fidelity test $i");
			$i++;
		}
	}

my $warnings = "";

local $SIG{__WARN__} = sub { $warnings = $_};

my $mem = $writer->write_mem([{}]);
ok($warnings eq "", "Writing blank hashrefs doesn't throw warnings"); #Version 1.6 fix

$mem = $writer->write_mem([]);
ok($warnings eq "", "Writing blank arrayrefs doesn't throw warnings"); #Version 1.9 fix

$mem = $writer->write_mem();
ok($warnings eq "", "Writing blank arrayrefs doesn't throw warnings"); #Version 1.9 fix