complete attributeshortcuts support
[gitmo/Moo.git] / t / accessor-trigger.t
index dcda49f..762b290 100644 (file)
@@ -30,7 +30,7 @@ sub run_for {
 {
   package Foo;
 
-  use Class::Tiny;
+  use Moo;
 
   has one => (is => 'rw', trigger => sub { push @::tr, $_[1] });
 }
@@ -41,7 +41,7 @@ run_for 'Foo';
   package Bar;
 
   use Sub::Quote;
-  use Class::Tiny;
+  use Moo;
 
   has one => (is => 'rw', trigger => quote_sub q{ push @::tr, $_[1] });
 }
@@ -52,7 +52,7 @@ run_for 'Bar';
   package Baz;
 
   use Sub::Quote;
-  use Class::Tiny;
+  use Moo;
 
   has one => (
     is => 'rw',
@@ -62,4 +62,47 @@ run_for 'Bar';
 
 run_for 'Baz';
 
+{
+  package Default;
+
+  use Sub::Quote;
+  use Moo;
+
+  has one => (
+    is => 'rw',
+    trigger => quote_sub(q{ push @{$tr}, $_[1] }, { '$tr' => \\@::tr }),
+    default => sub { 0 }
+  );
+}
+
+run_for 'Default';
+
+{
+  package LazyDefault;
+
+  use Sub::Quote;
+  use Moo;
+
+  has one => (
+    is => 'rw',
+    trigger => quote_sub(q{ push @{$tr}, $_[1] }, { '$tr' => \\@::tr }),
+    default => sub { 0 },
+    lazy => 1
+  );
+}
+
+run_for 'LazyDefault';
+
+{
+  package Shaz;
+
+  use Moo;
+
+  has one => (is => 'rw', trigger => 1 );
+
+  sub _trigger_one { push @::tr, $_[1] }
+}
+
+run_for 'Shaz';
+
 done_testing;