remove extraneous garbage from tests
[gitmo/Class-C3.git] / t / 24_more_overload.t
CommitLineData
bfcddb67 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
ef29cd70 6use Test::More tests => 3;
bfcddb67 7
8{
9 package BaseTest;
10 use Class::C3;
11 sub new { bless {} => shift }
12
13 package OverloadingTest;
14 use Class::C3;
15 use base 'BaseTest';
16 use overload '+' => sub { die "called plus operator in OT" },
17 fallback => 0;
18
19 package InheritingFromOverloadedTest;
20 use base 'OverloadingTest';
21 use Class::C3;
22 use overload '+' => sub { die "called plus operator in IFOT" },
23 fallback => 1;
24
25 package IFOTX;
26 use Class::C3;
27 use base 'OverloadingTest';
28
29 package IFIFOT;
30 use Class::C3;
31 use base 'InheritingFromOverloadedTest';
32
33 package Foo;
34 use Class::C3;
35 use base 'BaseTest';
36 use overload '+' => sub { die "called plus operator in Foo" },
37 fallback => 1;
38
39 package Bar;
40 use Class::C3;
41 use base 'Foo';
42 use overload '+' => sub { die "called plus operator in Bar" },
43 fallback => 0;
44
45 package Baz;
46 use Class::C3;
47 use base 'Bar';
48}
49
50Class::C3::initialize();
51
52my $x = IFOTX->new();
53eval { $x += 1 };
54like($@, qr/no method found,/);
55
56my $y = IFIFOT->new();
57eval { $y += 1 };
58like($@, qr/called plus operator in IFOT/);
59
60my $z = Baz->new();
61eval { $z += 1 };
62like($@, qr/no method found,/);
63