Merge extends.t and auto-subclass.t into subclass.t
[gitmo/Mouse.git] / t / 001_mouse / 002-subclass.t
diff --git a/t/001_mouse/002-subclass.t b/t/001_mouse/002-subclass.t
new file mode 100644 (file)
index 0000000..9dc7973
--- /dev/null
@@ -0,0 +1,54 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+use lib 't/lib';
+
+# auto-subclass
+do {
+    package Class;
+    use Mouse;
+};
+
+can_ok(Class => 'new');
+
+my $object = Class->new;
+
+isa_ok($object => 'Class');
+isa_ok($object => 'Mouse::Object');
+
+# extends()
+do {
+    package ParentClass;
+    use Mouse;
+
+    package Child;
+    use Mouse;
+    extends 'ParentClass';
+
+    package Mouse::TestClass;
+    use Mouse;
+    extends 'Unsweetened'; # in t/lib
+
+    sub mouse { 1 }
+};
+
+can_ok(Child => 'new');
+
+my $child = Child->new;
+
+isa_ok($child => 'Child');
+isa_ok($child => 'ParentClass');
+isa_ok($child => 'Mouse::Object');
+
+can_ok('Mouse::TestClass' => qw(mouse unsweetened));
+
+eval q{
+    package Child;
+    use Mouse;
+};
+
+isa_ok($child => 'ParentClass');
+isa_ok($child => 'Mouse::Object');
+
+done_testing;