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