summaryrefslogtreecommitdiff
path: root/t/mro/dbic_dfs_utf8.t
blob: cd118159c4263ef366685a2d56d8cbd5b12c9a97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!./perl

use strict;
use warnings;
use utf8;
use open qw( :utf8 :std );

require q(./test.pl); plan(tests => 1);

=pod

This example is taken from the inheritance graph of DBIx::Class::Coレ in DBIx::Class v0.07002:
(No ASCII art this time, this graph is insane)

The xx:: prefixes are just to be sure these bogus declarations never stomp on real ones

=cut

{
    package Ẋẋ::ḐʙIX::Cl았::Coレ; use mro 'dfs';
    our @ISA = qw/
      Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ
      Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ
      Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ
      Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต
      Ẋẋ::ḐʙIX::Cl았::ᛕķ
      Ẋẋ::ḐʙIX::Cl았::ロẈ
      Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ
      Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ
    /;

    package Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ; use mro 'dfs';
    our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ロẈ /;

    package Ẋẋ::ḐʙIX::Cl았::ロẈ; use mro 'dfs';
    our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /;

    package Ẋẋ::ḐʙIX::Cl았; use mro 'dfs';
    our @ISA = qw/
      Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗
      xx::Cl았::닽Ӕ::앛쳇sᚖ
    /;

    package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ; use mro 'dfs';
    our @ISA = qw/
      Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS
      Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ
      Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ
      Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś
      Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え
      Ẋẋ::ḐʙIX::Cl았
    /;

    package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS; use mro 'dfs';
    our @ISA = qw/
      Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ
      Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn
      Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ
      Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ
    /;

    package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś; use mro 'dfs';
    our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /;

    package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え; use mro 'dfs';
    our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /;

    package Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต; use mro 'dfs';
    our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /;

    package Ẋẋ::ḐʙIX::Cl았::ᛕķ; use mro 'dfs';
    our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ロẈ /;

    package Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ; use mro 'dfs';
    our @ISA = qw/
      Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ
      Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy
    /;

    package Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy; use mro 'dfs';
    our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /;

    package xx::Cl았::닽Ӕ::앛쳇sᚖ; our @ISA = (); use mro 'dfs';
    package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ; our @ISA = (); use mro 'dfs';
    package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn; our @ISA = (); use mro 'dfs';
    package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ; our @ISA = (); use mro 'dfs';
    package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ; our @ISA = (); use mro 'dfs';
    package Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗; our @ISA = (); use mro 'dfs';
    package Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ; our @ISA = (); use mro 'dfs';
    package Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ; our @ISA = (); use mro 'dfs';
    package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ; our @ISA = (); use mro 'dfs';
    package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ; our @ISA = (); use mro 'dfs';
}

ok(eq_array(
    mro::get_linear_isa('Ẋẋ::ḐʙIX::Cl았::Coレ'),
    [qw/
        Ẋẋ::ḐʙIX::Cl았::Coレ
        Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ
        Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ
        Ẋẋ::ḐʙIX::Cl았::ロẈ
        Ẋẋ::ḐʙIX::Cl았
        Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗
        xx::Cl았::닽Ӕ::앛쳇sᚖ
        Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ
        Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS
        Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ
        Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn
        Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ
        Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ
        Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ
        Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ
        Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś
        Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え
        Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต
        Ẋẋ::ḐʙIX::Cl았::ᛕķ
        Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ
        Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ
        Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy
    /]
), '... got the right DFS merge order for Ẋẋ::ḐʙIX::Cl았::Coレ');