Move t/*/t into t/001_mouse
[gitmo/Mouse.git] / t / 001_mouse / 010-required.t
diff --git a/t/001_mouse/010-required.t b/t/001_mouse/010-required.t
new file mode 100644 (file)
index 0000000..e6a6990
--- /dev/null
@@ -0,0 +1,39 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More tests => 3;
+use Test::Exception;
+
+do {
+    package Class;
+    use Mouse;
+
+    has foo => (
+        is => 'bare',
+        required => 1,
+    );
+
+    has bar => (
+        is => 'bare',
+        required => 1,
+        default => 50,
+    );
+
+    has baz => (
+        is => 'bare',
+        required => 1,
+        default => sub { 10 },
+    );
+
+    has quux => (
+        is       => "rw",
+        required => 1,
+        lazy     => 1,
+        default  => sub { "yay" },
+    );
+};
+
+throws_ok { Class->new } qr/Attribute \(foo\) is required/, "required attribute is required";
+lives_ok { Class->new(foo => 5) } "foo is the only required but unfulfilled attribute";
+lives_ok { Class->new(foo => 1, bar => 1, baz => 1, quux => 1) } "all attributes specified";
+