From 354a705b92727013a0fc0be23290f50000ea2809 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 9 Feb 2010 14:58:42 -0600 Subject: add TODO test for inlined constructors --- t/100-buggy-constructor-inlining.t | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 t/100-buggy-constructor-inlining.t (limited to 't') diff --git a/t/100-buggy-constructor-inlining.t b/t/100-buggy-constructor-inlining.t new file mode 100644 index 0000000..591fae0 --- /dev/null +++ b/t/100-buggy-constructor-inlining.t @@ -0,0 +1,45 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More tests => 6; + +my ($Foo, $Bar, $Baz) = (0, 0, 0); +{ + package Foo; + sub new { $Foo++; bless {}, shift } +} + +{ + package Bar; + use Moose; + use MooseX::NonMoose; + extends 'Foo'; + sub BUILD { $Bar++ } + __PACKAGE__->meta->make_immutable; +} + +{ + package Baz; + use Moose; + extends 'Bar'; + sub BUILD { $Baz++ } +} + +Baz->new; +{ local $TODO = "need to call custom constructor for other classes, not Moose::Object->new"; +is($Foo, 1, "Foo->new is called"); +} +{ local $TODO = "need to call non-Moose constructor, not superclass constructor"; +is($Bar, 0, "Bar->new is not called"); +} +is($Baz, 1, "Baz->new is called"); + +Baz->meta->make_immutable; +($Foo, $Bar, $Baz) = (0, 0, 0); + +Baz->new; +is($Foo, 1, "Foo->new is called"); +{ local $TODO = "need to call non-Moose constructor, not superclass constructor"; +is($Bar, 0, "Bar->new is not called"); +} +is($Baz, 1, "Baz->new is called"); -- cgit v1.2.3