Add test for non-alphanumeric attr names (with inlining)
Dave Rolsky [Sun, 17 Jan 2010 16:37:05 +0000 (10:37 -0600)]
t/025_attribute_non_alpha_name.t [new file with mode: 0644]

diff --git a/t/025_attribute_non_alpha_name.t b/t/025_attribute_non_alpha_name.t
new file mode 100644 (file)
index 0000000..98e411e
--- /dev/null
@@ -0,0 +1,34 @@
+use strict;
+use warnings;
+
+use Class::MOP;
+
+use Test::More;
+
+{
+    package Foo;
+    use metaclass;
+
+    Foo->meta->add_attribute( '@foo', accessor => 'foo' );
+    Foo->meta->add_attribute( '!bar', reader => 'bar' );
+    Foo->meta->add_attribute( '%baz', reader => 'baz' );
+}
+
+{
+    my $meta = Foo->meta;
+
+    for my $name ( '@foo', '!bar', '%baz' ) {
+        ok(
+            $meta->has_attribute($name),
+            "Foo has $name attribute"
+        );
+
+        my $meth = substr $name, 1;
+        ok( $meta->has_method($meth), 'Foo has $meth method' );
+    }
+
+    $meta->make_immutable, redo
+        unless $meta->is_immutable;
+}
+
+done_testing;