From 36ea288cc78dedaadd1d3b38331489646be26626 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 14 Jun 2011 16:04:36 -0500 Subject: remove test numbers --- t/type-checks.t | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 t/type-checks.t (limited to 't/type-checks.t') diff --git a/t/type-checks.t b/t/type-checks.t new file mode 100644 index 0000000..0641d98 --- /dev/null +++ b/t/type-checks.t @@ -0,0 +1,46 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use Test::Fatal; +use Test::Moose; + +{ + package Foo; + use Moose; + use Bread::Board::Declare; + + has foo => ( + is => 'ro', + isa => 'Ref', + value => 'FOO', + ); + + has bar => ( + is => 'ro', + isa => 'Str', + block => sub { { foo => 'bar' } }, + ); + + has baz => ( + is => 'ro', + isa => 'HashRef', + block => sub { shift->param('bar') }, + dependencies => ['bar'], + ); +} + +with_immutable { + my $foo = Foo->new; + like(exception { $foo->foo }, + qr/^Attribute \(foo\) does not pass the type constraint because: Validation failed for 'Ref' with value .*FOO/, + "error when service returns invalid value"); + like(exception { $foo->bar }, + qr/^Attribute \(bar\) does not pass the type constraint because: Validation failed for 'Str' with value .*(?:HASH|foo.*bar)/, + "error when service returns invalid value"); + like(exception { $foo->baz }, + qr/^Attribute \(bar\) does not pass the type constraint because: Validation failed for 'Str' with value .*(?:HASH|foo.*bar)/, + "error when service returns invalid value, even as a dependency"); +} 'Foo'; + +done_testing; -- cgit v1.2.3