Annotation of embedaddon/php/ext/reflection/tests/ReflectionClass_implementsInterface_001.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: ReflectionClass::implementsInterface()
        !             3: --CREDITS--
        !             4: Robin Fernandes <robinf@php.net>
        !             5: Steve Seear <stevseea@php.net>
        !             6: --FILE--
        !             7: <?php
        !             8: interface I1 {}
        !             9: class A implements I1 {}
        !            10: class B extends A {}
        !            11: 
        !            12: interface I2 extends I1 {}
        !            13: class C implements I2 {}
        !            14: 
        !            15: $classNames = array('A', 'B', 'C', 'I1', 'I2'); 
        !            16: 
        !            17: foreach ($classNames as $className) {
        !            18:        $rcs[$className] = new ReflectionClass($className);
        !            19: }
        !            20: 
        !            21: foreach ($rcs as $childName => $child) {
        !            22:        foreach ($rcs as $parentName => $parent) {
        !            23:                echo "Does " . $childName . " implement " . $parentName . "? \n";
        !            24:                echo "   - Using object argument: ";
        !            25:                try {
        !            26:                        var_dump($child->implementsInterface($parent));
        !            27:                } catch (Exception $e) {
        !            28:                        echo $e->getMessage() . "\n";
        !            29:                }               
        !            30:                echo "   - Using string argument: ";
        !            31:                try {
        !            32:                        var_dump($child->implementsInterface($parentName));
        !            33:                } catch (Exception $e) {
        !            34:                        echo $e->getMessage() . "\n";
        !            35:                }
        !            36:        }
        !            37: }
        !            38: 
        !            39: 
        !            40: 
        !            41: echo "\n\nTest bad arguments:\n";
        !            42: try {
        !            43:        var_dump($rcs['A']->implementsInterface());
        !            44: } catch (Exception $e) {
        !            45:        echo $e->getMessage() . "\n";
        !            46: }
        !            47: try {
        !            48:        var_dump($rcs['A']->implementsInterface('C', 'C'));
        !            49: } catch (Exception $e) {
        !            50:        echo $e->getMessage() . "\n";
        !            51: }
        !            52: try {
        !            53:        var_dump($rcs['A']->implementsInterface(null));
        !            54: } catch (Exception $e) {
        !            55:        echo $e->getMessage() . "\n";
        !            56: }
        !            57: try {
        !            58:        var_dump($rcs['A']->implementsInterface('ThisClassDoesNotExist'));
        !            59: } catch (Exception $e) {
        !            60:        echo $e->getMessage() . "\n";
        !            61: }
        !            62: try {
        !            63:        var_dump($rcs['A']->implementsInterface(2));
        !            64: } catch (Exception $e) {
        !            65:        echo $e->getMessage() . "\n";
        !            66: }
        !            67: ?>
        !            68: --EXPECTF--
        !            69: Does A implement A? 
        !            70:    - Using object argument: Interface A is a Class
        !            71:    - Using string argument: Interface A is a Class
        !            72: Does A implement B? 
        !            73:    - Using object argument: Interface B is a Class
        !            74:    - Using string argument: Interface B is a Class
        !            75: Does A implement C? 
        !            76:    - Using object argument: Interface C is a Class
        !            77:    - Using string argument: Interface C is a Class
        !            78: Does A implement I1? 
        !            79:    - Using object argument: bool(true)
        !            80:    - Using string argument: bool(true)
        !            81: Does A implement I2? 
        !            82:    - Using object argument: bool(false)
        !            83:    - Using string argument: bool(false)
        !            84: Does B implement A? 
        !            85:    - Using object argument: Interface A is a Class
        !            86:    - Using string argument: Interface A is a Class
        !            87: Does B implement B? 
        !            88:    - Using object argument: Interface B is a Class
        !            89:    - Using string argument: Interface B is a Class
        !            90: Does B implement C? 
        !            91:    - Using object argument: Interface C is a Class
        !            92:    - Using string argument: Interface C is a Class
        !            93: Does B implement I1? 
        !            94:    - Using object argument: bool(true)
        !            95:    - Using string argument: bool(true)
        !            96: Does B implement I2? 
        !            97:    - Using object argument: bool(false)
        !            98:    - Using string argument: bool(false)
        !            99: Does C implement A? 
        !           100:    - Using object argument: Interface A is a Class
        !           101:    - Using string argument: Interface A is a Class
        !           102: Does C implement B? 
        !           103:    - Using object argument: Interface B is a Class
        !           104:    - Using string argument: Interface B is a Class
        !           105: Does C implement C? 
        !           106:    - Using object argument: Interface C is a Class
        !           107:    - Using string argument: Interface C is a Class
        !           108: Does C implement I1? 
        !           109:    - Using object argument: bool(true)
        !           110:    - Using string argument: bool(true)
        !           111: Does C implement I2? 
        !           112:    - Using object argument: bool(true)
        !           113:    - Using string argument: bool(true)
        !           114: Does I1 implement A? 
        !           115:    - Using object argument: Interface A is a Class
        !           116:    - Using string argument: Interface A is a Class
        !           117: Does I1 implement B? 
        !           118:    - Using object argument: Interface B is a Class
        !           119:    - Using string argument: Interface B is a Class
        !           120: Does I1 implement C? 
        !           121:    - Using object argument: Interface C is a Class
        !           122:    - Using string argument: Interface C is a Class
        !           123: Does I1 implement I1? 
        !           124:    - Using object argument: bool(true)
        !           125:    - Using string argument: bool(true)
        !           126: Does I1 implement I2? 
        !           127:    - Using object argument: bool(false)
        !           128:    - Using string argument: bool(false)
        !           129: Does I2 implement A? 
        !           130:    - Using object argument: Interface A is a Class
        !           131:    - Using string argument: Interface A is a Class
        !           132: Does I2 implement B? 
        !           133:    - Using object argument: Interface B is a Class
        !           134:    - Using string argument: Interface B is a Class
        !           135: Does I2 implement C? 
        !           136:    - Using object argument: Interface C is a Class
        !           137:    - Using string argument: Interface C is a Class
        !           138: Does I2 implement I1? 
        !           139:    - Using object argument: bool(true)
        !           140:    - Using string argument: bool(true)
        !           141: Does I2 implement I2? 
        !           142:    - Using object argument: bool(true)
        !           143:    - Using string argument: bool(true)
        !           144: 
        !           145: 
        !           146: Test bad arguments:
        !           147: 
        !           148: Warning: ReflectionClass::implementsInterface() expects exactly 1 parameter, 0 given in %s on line 37
        !           149: NULL
        !           150: 
        !           151: Warning: ReflectionClass::implementsInterface() expects exactly 1 parameter, 2 given in %s on line 42
        !           152: NULL
        !           153: Parameter one must either be a string or a ReflectionClass object
        !           154: Interface ThisClassDoesNotExist does not exist
        !           155: Parameter one must either be a string or a ReflectionClass object

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