Anonymous-Object

 view release on metacpan or  search on metacpan

t/06-coverage.t  view on Meta::CPAN

use Test::More;

use Anonymous::Object;


ok(my $ok = Anonymous::Object->new(
	build_object_name => sub { 'Not::Kaput' },
	build_type_map => sub {
		my ($self, $params) = @_;
		$params->{default} = 'Str';
		return $params;
	}
));

eval {
	my $not_ok = Anonymous::Object->new(
		build_type_map => sub {
			my ($self, $params) = @_;
			$params->{default} = 'Str';
			return undef;
		}
	);
};

like("$@", qr/type_map accessor is required/);

is($ok->object_name, 'Not::Kaput', 'Not::Kaput');

eval {
	$ok->object_name({ go => "kaput" });
};

like("$@", qr/Str: invalid value/);

eval {
	$ok->default("go kaput");
};

like("$@", qr/HashRef: invalid value/);

eval {
	$ok->types("go kaput");
};

like("$@", qr/HashRef: invalid value/);

eval {
	$ok->type_library({ go => "kaput" });
};

like("$@", qr/Str: invalid value/);

eval {
	$ok->types("go kaput");
};

like("$@", qr/HashRef: invalid value/);


eval {
	$ok->type_map("go kaput");
};

like("$@", qr/HashRef: invalid value/);

eval {
	$ok->hash_to_object(undef);
};

like("$@", qr/HashRef: invalid value undef/);

eval {
	$ok->hash_to_nested_object(undef);
};

like("$@", qr/HashRef: invalid value undef/);



( run in 0.602 second using v1.01-cache-2.11-cpan-e1769b4cff6 )