Fix an error message to compatible with Moose
[gitmo/Mouse.git] / t / 001_mouse / 060-threads.t
index 06748db..1fb4c62 100644 (file)
@@ -1,11 +1,19 @@
 #!perl
 use strict;
 use warnings;
-use constant HAS_THREADS => eval{ require threads };
+use constant HAS_THREADS => eval{ require threads && require threads::shared };
+use Test::More;
+
+use if !HAS_THREADS, 'Test::More',
+    (skip_all => "This is a test for threads ($@)");
+use if $Test::More::VERSION == 2.00_01, 'Test::More',
+    (skip_all => "Test::Builder2 2.00_01 has bugs about threads");
 
-use Test::More HAS_THREADS ? (tests => 6) : (skip_all => "This is a test for threads ($@)");
 
 {
+    package MyTraits;
+    use Mouse::Role;
+
     package MyClass;
     use Mouse;
 
@@ -19,6 +27,9 @@ use Test::More HAS_THREADS ? (tests => 6) : (skip_all => "This is a test for thr
 
     has value => (
         is => 'rw',
+        isa => 'Int',
+
+        traits => [qw(MyTraits)],
     );
 }
 
@@ -42,5 +53,12 @@ threads->create(sub{
 })->join();
 
 is $o->foo->value, 42;
+
+$o = MyClass->new(foo => Foo->new(value => 43));
+is $o->foo->value, 43;
+
 ok !$o->meta->is_immutable;
 
+pass "done";
+
+done_testing;