use Test;
use strict;
$^W = 1; # play nice with old perl

BEGIN { plan tests=> 46 }

use FileHandle;

require XML::Mini::Document;
use strict;

my $sample = './t/sample/vocpboxes.xml';
my $numBoxes = 20;

{
	my $miniXML =  XML::Mini::Document->new();

	my $numchildren = $miniXML->fromFile($sample);

	ok($numchildren, 2);

	my $vocpBoxList = $miniXML->getElementByPath('VOCPBoxConfig/boxList') || ok(0);
	ok(1);
	

	$numchildren = $vocpBoxList->numChildren();

	ok($numchildren, $numBoxes);


	my $childList = $vocpBoxList->getAllChildren();

	ok($childList);

	ok(scalar @{$childList}, $numBoxes);

	foreach my $child (@{$childList})
	{

		my $childName = $child->name();
		ok($childName, '/^box$/', "boxList child with invalid name (should be 'box')");

		my $boxnum = $child->attribute('number');

		ok($boxnum, '/\d+$/', "box with invalid number (should be all digits)");
		
	}


	my $inputFileHandle = FileHandle->new();
	unless ($inputFileHandle->open("<$sample"))
	{
		ok(0);
	}

	my $sampleFile = join('', $inputFileHandle->getlines());
	$inputFileHandle->close();

	my $xmlOut = $miniXML->toString();

	ok($sampleFile, $xmlOut);

}

