aboutsummaryrefslogtreecommitdiff
path: root/vendors/simpletest/test/reflection_php4_test.php
blob: 8ee211b961b691fa9bf77c83ab96066d0e540195 (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
<?php
// $Id: reflection_php4_test.php 1505 2007-04-30 23:39:59Z lastcraft $
require_once(dirname(__FILE__) . '/../autorun.php');

class AnyOldThing {
    function aMethod() {
    }
}

class AnyOldChildThing extends AnyOldThing { }

class TestOfReflection extends UnitTestCase {

    function testClassExistence() {
        $reflection = new SimpleReflection('AnyOldThing');
        $this->assertTrue($reflection->classOrInterfaceExists());
        $this->assertTrue($reflection->classOrInterfaceExistsSansAutoload());
    }

    function testClassNonExistence() {
        $reflection = new SimpleReflection('UnknownThing');
        $this->assertFalse($reflection->classOrInterfaceExists());
        $this->assertFalse($reflection->classOrInterfaceExistsSansAutoload());
    }

    function testDetectionOfInterfacesAlwaysFalse() {
        $reflection = new SimpleReflection('AnyOldThing');
        $this->assertFalse($reflection->isAbstract());
        $this->assertFalse($reflection->isInterface());
    }

    function testFindingParentClass() {
        $reflection = new SimpleReflection('AnyOldChildThing');
        $this->assertEqual(strtolower($reflection->getParent()), 'anyoldthing');
    }

    function testMethodsListFromClass() {
        $reflection = new SimpleReflection('AnyOldThing');
        $methods = $reflection->getMethods();
        $this->assertEqualIgnoringCase($methods[0], 'aMethod');
    }

    function testNoInterfacesForPHP4() {
        $reflection = new SimpleReflection('AnyOldThing');
        $this->assertEqual(
                $reflection->getInterfaces(),
                array());
    }

    function testMostGeneralPossibleSignature() {
        $reflection = new SimpleReflection('AnyOldThing');
        $this->assertEqualIgnoringCase(
                $reflection->getSignature('aMethod'),
                'function &aMethod()');
    }

    function assertEqualIgnoringCase($a, $b) {
        return $this->assertEqual(strtolower($a), strtolower($b));
    }
}
?>