Annotation of embedaddon/php/ext/reflection/tests/ReflectionClass_getInterfaces_001.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: ReflectionClass::getInterfaces()
                      3: --CREDITS--
                      4: Robin Fernandes <robinf@php.net>
                      5: Steve Seear <stevseea@php.net>
                      6: --FILE--
                      7: <?php
                      8: class A0 {}
                      9: class B0 extends A0 {}
                     10: abstract class A1 {}
                     11: class B1 extends A1 {}
                     12: 
                     13: interface I0 {}
                     14: interface I1 {}
                     15: interface I2 {}
                     16: interface I3 {}
                     17: interface I4 extends I3 {}
                     18: interface I5 extends I4 {}
                     19: interface I6 extends I5, I1, I2 {}
                     20: interface I7 extends I6 {}
                     21: 
                     22: class C0 implements I0 {}
                     23: class C1 implements I1, I3 {}
                     24: class C2 extends C1 {}
                     25: class C3 extends C2 implements I1 {}
                     26: class C4 extends C3 implements I2 {}
                     27: class C5 extends C4 implements I7 {}
                     28: class C6 implements I1, I2, I3, I4, I5, I6, I7 {}
                     29: 
                     30: 
                     31: $classes = array(      'A0', 'A1', 'B0', 'B1', 
                     32:                                        'I0', 'I1', 'I2', 'I3', 'I4', 'I5', 'I6', 'I7',
                     33:                                        'C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6'        );
                     34: 
                     35: foreach ($classes as $class) {
                     36:        echo "---( Interfaces implemented by $class )---\n ";
                     37:        $rc = new ReflectionClass($class);
                     38:        $interfaces = $rc->getInterfaces();
                     39:        // Sort interfaces so that tests do not fail because of wrong order.
                     40:        ksort($interfaces);
                     41:        print_r($interfaces);
                     42: }
                     43: 
                     44: ?>
                     45: --EXPECTF--
                     46: ---( Interfaces implemented by A0 )---
                     47:  Array
                     48: (
                     49: )
                     50: ---( Interfaces implemented by A1 )---
                     51:  Array
                     52: (
                     53: )
                     54: ---( Interfaces implemented by B0 )---
                     55:  Array
                     56: (
                     57: )
                     58: ---( Interfaces implemented by B1 )---
                     59:  Array
                     60: (
                     61: )
                     62: ---( Interfaces implemented by I0 )---
                     63:  Array
                     64: (
                     65: )
                     66: ---( Interfaces implemented by I1 )---
                     67:  Array
                     68: (
                     69: )
                     70: ---( Interfaces implemented by I2 )---
                     71:  Array
                     72: (
                     73: )
                     74: ---( Interfaces implemented by I3 )---
                     75:  Array
                     76: (
                     77: )
                     78: ---( Interfaces implemented by I4 )---
                     79:  Array
                     80: (
                     81:     [I3] => ReflectionClass Object
                     82:         (
                     83:             [name] => I3
                     84:         )
                     85: 
                     86: )
                     87: ---( Interfaces implemented by I5 )---
                     88:  Array
                     89: (
                     90:     [I3] => ReflectionClass Object
                     91:         (
                     92:             [name] => I3
                     93:         )
                     94: 
                     95:     [I4] => ReflectionClass Object
                     96:         (
                     97:             [name] => I4
                     98:         )
                     99: 
                    100: )
                    101: ---( Interfaces implemented by I6 )---
                    102:  Array
                    103: (
                    104:     [I1] => ReflectionClass Object
                    105:         (
                    106:             [name] => I1
                    107:         )
                    108: 
                    109:     [I2] => ReflectionClass Object
                    110:         (
                    111:             [name] => I2
                    112:         )
                    113: 
                    114:     [I3] => ReflectionClass Object
                    115:         (
                    116:             [name] => I3
                    117:         )
                    118: 
                    119:     [I4] => ReflectionClass Object
                    120:         (
                    121:             [name] => I4
                    122:         )
                    123: 
                    124:     [I5] => ReflectionClass Object
                    125:         (
                    126:             [name] => I5
                    127:         )
                    128: 
                    129: )
                    130: ---( Interfaces implemented by I7 )---
                    131:  Array
                    132: (
                    133:     [I1] => ReflectionClass Object
                    134:         (
                    135:             [name] => I1
                    136:         )
                    137: 
                    138:     [I2] => ReflectionClass Object
                    139:         (
                    140:             [name] => I2
                    141:         )
                    142: 
                    143:     [I3] => ReflectionClass Object
                    144:         (
                    145:             [name] => I3
                    146:         )
                    147: 
                    148:     [I4] => ReflectionClass Object
                    149:         (
                    150:             [name] => I4
                    151:         )
                    152: 
                    153:     [I5] => ReflectionClass Object
                    154:         (
                    155:             [name] => I5
                    156:         )
                    157: 
                    158:     [I6] => ReflectionClass Object
                    159:         (
                    160:             [name] => I6
                    161:         )
                    162: 
                    163: )
                    164: ---( Interfaces implemented by C0 )---
                    165:  Array
                    166: (
                    167:     [I0] => ReflectionClass Object
                    168:         (
                    169:             [name] => I0
                    170:         )
                    171: 
                    172: )
                    173: ---( Interfaces implemented by C1 )---
                    174:  Array
                    175: (
                    176:     [I1] => ReflectionClass Object
                    177:         (
                    178:             [name] => I1
                    179:         )
                    180: 
                    181:     [I3] => ReflectionClass Object
                    182:         (
                    183:             [name] => I3
                    184:         )
                    185: 
                    186: )
                    187: ---( Interfaces implemented by C2 )---
                    188:  Array
                    189: (
                    190:     [I1] => ReflectionClass Object
                    191:         (
                    192:             [name] => I1
                    193:         )
                    194: 
                    195:     [I3] => ReflectionClass Object
                    196:         (
                    197:             [name] => I3
                    198:         )
                    199: 
                    200: )
                    201: ---( Interfaces implemented by C3 )---
                    202:  Array
                    203: (
                    204:     [I1] => ReflectionClass Object
                    205:         (
                    206:             [name] => I1
                    207:         )
                    208: 
                    209:     [I3] => ReflectionClass Object
                    210:         (
                    211:             [name] => I3
                    212:         )
                    213: 
                    214: )
                    215: ---( Interfaces implemented by C4 )---
                    216:  Array
                    217: (
                    218:     [I1] => ReflectionClass Object
                    219:         (
                    220:             [name] => I1
                    221:         )
                    222: 
                    223:     [I2] => ReflectionClass Object
                    224:         (
                    225:             [name] => I2
                    226:         )
                    227: 
                    228:     [I3] => ReflectionClass Object
                    229:         (
                    230:             [name] => I3
                    231:         )
                    232: 
                    233: )
                    234: ---( Interfaces implemented by C5 )---
                    235:  Array
                    236: (
                    237:     [I1] => ReflectionClass Object
                    238:         (
                    239:             [name] => I1
                    240:         )
                    241: 
                    242:     [I2] => ReflectionClass Object
                    243:         (
                    244:             [name] => I2
                    245:         )
                    246: 
                    247:     [I3] => ReflectionClass Object
                    248:         (
                    249:             [name] => I3
                    250:         )
                    251: 
                    252:     [I4] => ReflectionClass Object
                    253:         (
                    254:             [name] => I4
                    255:         )
                    256: 
                    257:     [I5] => ReflectionClass Object
                    258:         (
                    259:             [name] => I5
                    260:         )
                    261: 
                    262:     [I6] => ReflectionClass Object
                    263:         (
                    264:             [name] => I6
                    265:         )
                    266: 
                    267:     [I7] => ReflectionClass Object
                    268:         (
                    269:             [name] => I7
                    270:         )
                    271: 
                    272: )
                    273: ---( Interfaces implemented by C6 )---
                    274:  Array
                    275: (
                    276:     [I1] => ReflectionClass Object
                    277:         (
                    278:             [name] => I1
                    279:         )
                    280: 
                    281:     [I2] => ReflectionClass Object
                    282:         (
                    283:             [name] => I2
                    284:         )
                    285: 
                    286:     [I3] => ReflectionClass Object
                    287:         (
                    288:             [name] => I3
                    289:         )
                    290: 
                    291:     [I4] => ReflectionClass Object
                    292:         (
                    293:             [name] => I4
                    294:         )
                    295: 
                    296:     [I5] => ReflectionClass Object
                    297:         (
                    298:             [name] => I5
                    299:         )
                    300: 
                    301:     [I6] => ReflectionClass Object
                    302:         (
                    303:             [name] => I6
                    304:         )
                    305: 
                    306:     [I7] => ReflectionClass Object
                    307:         (
                    308:             [name] => I7
                    309:         )
                    310: 
                    311: )

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>