The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl
use Test::More;
use lib './t/lib' ;
use ObjTest ;

my %defaults = (
	'array'		=> [],	
	'hash'		=> {},	
	'notdef'	=> undef,
	'string'	=> 'test string',
) ;
my %set = (
	'array'		=> [qw/one two three four/],	
	'hash'		=> {
		'a'		=> 'value1',
		'b'		=> 'value2',
		'c'		=> 'value3',
		'd'		=> 'value4',
	},	
	'notdef'	=> 1234,
	'string'	=> 'a different string',
) ;

	plan tests => 1 
		+ scalar(keys %defaults)
		+ scalar(keys %set)
		+ scalar(keys %defaults)
		+ scalar(keys %set)
	;		
	
	my $obj = ObjTest->new() ;
	ok($obj, "Created object") ;
$obj->prt_data("New object=", $obj) ;
	
	foreach my $key (keys %defaults)
	{
		my $val = $obj->$key ;
		is_deeply($val, $defaults{$key}, "Default for $key") ;
	}
	
	$obj->set(%set) ;
	foreach my $key (keys %set)
	{
		my $val = $obj->$key ;
		is_deeply($val, $set{$key}, "Set for $key") ;
	}
	
	$obj->set(%defaults) ;
	foreach my $key (keys %defaults)
	{
		my $val = $obj->$key ;
		is_deeply($val, $defaults{$key}, "Default for $key") ;
	}
	
	foreach my $key (keys %set)
	{
		$obj->$key($set{$key}) ;
		my $val = $obj->$key ;
		is_deeply($val, $set{$key}, "Set for $key") ;
	}