added role_type on Mouse::TypeRegistry
[gitmo/Mouse.git] / t / 800_shikabased / 006-role_type.t
similarity index 58%
rename from t/800_shikabased/004-class_type.t
rename to t/800_shikabased/006-role_type.t
index b47077c..24165c1 100644 (file)
@@ -1,19 +1,37 @@
 use strict;
 use warnings;
-use Test::More tests => 4;
+use Test::More tests => 5;
 
 {
-    package Response::Headers;
+    package Request::Headers::Role;
+    use Mouse::Role;
+    has 'foo' => ( is => 'rw' );
+}
+
+{
+    package Request::Headers;
     use Mouse;
+    with 'Request::Headers::Role';
+}
+
+{
+    package Response::Headers::Role;
+    use Mouse::Role;
     has 'foo' => ( is => 'rw' );
 }
 
 {
+    package Response::Headers;
+    use Mouse;
+    with 'Response::Headers::Role';
+}
+
+{
     package Response;
     use Mouse;
     use Mouse::TypeRegistry;
 
-    class_type Headers => { class => 'Response::Headers' };
+    role_type Headers => { role => 'Response::Headers::Role' };
     coerce 'Headers' => +{
         HashRef => sub {
             Response::Headers->new(%{ $_ });
@@ -33,3 +51,8 @@ is($res->headers->foo, 'bar');
 $res->headers({foo => 'yay'});
 isa_ok($res->headers, 'Response::Headers');
 is($res->headers->foo, 'yay');
+
+eval {
+    $res->headers( Request::Headers->new( foo => 'baz' ) );
+};
+ok $@;