summaryrefslogtreecommitdiff
path: root/ext/mysqli/tests/mysqli_class_mysqli_warning.phpt
blob: 0aedb50bb22720035a340a029927d96dee1c801c (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
122
123
124
125
126
127
--TEST--
Interface of the class mysqli_warning - TODO
--SKIPIF--
<?php
require_once('skipif.inc');
require_once('skipifconnectfailure.inc');
require_once('connect.inc');

if (!$TEST_EXPERIMENTAL)
	die("skip - experimental (= unsupported) feature");
?>
--FILE--
<?php
    require('connect.inc');

    $warning = new mysqli_warning();
    $warning = new mysqli_warning(null);
    $warning = new mysqli_warning(null, null);

    $mysqli = new mysqli();
    $warning = new mysqli_warning($mysqli);

    $mysqli = new my_mysqli($host, $user, $passwd, $db, $port, $socket);
    $stmt = new mysqli_stmt($mysqli);
    $warning = new mysqli_warning($stmt);

    $stmt = $mysqli->stmt_init();
    $warning = new mysqli_warning($stmt);

    $obj = new stdClass();
    $warning = new mysqli_warning($obj);

    include("table.inc");
    $mysqli = new my_mysqli($host, $user, $passwd, $db, $port, $socket);
    $res = $mysqli->query('INSERT INTO test(id, label) VALUES (1, "zz")');
    $warning = mysqli_get_warnings($mysqli);

    printf("Parent class:\n");
    var_dump(get_parent_class($warning));

    printf("\nMethods:\n");
    $methods = get_class_methods($warning);
    $expected_methods = array(
        'next'                      => true,
    );

    foreach ($methods as $k => $method) {
        if (isset($expected_methods[$method])) {
            unset($methods[$k]);
            unset($expected_methods[$method]);
        }
    }
    if (!empty($methods)) {
        printf("Dumping list of unexpected methods.\n");
        var_dump($methods);
    }
    if (!empty($expected_methods)) {
        printf("Dumping list of missing methods.\n");
        var_dump($expected_methods);
    }
    if (empty($methods) && empty($expected_methods))
        printf("ok\n");

    printf("\nClass variables:\n");
    $variables = get_class_vars(get_class($mysqli));
    sort($variables);
    foreach ($variables as $k => $var)
        printf("%s\n", $var);

    printf("\nObject variables:\n");
    $variables = get_object_vars($mysqli);
    foreach ($variables as $k => $var)
        printf("%s\n", $var);

    printf("\nMagic, magic properties:\n");

    assert('' === $warning->message);
    printf("warning->message = '%s'\n", $warning->message);

    assert('' === $warning->sqlstate);
    printf("warning->sqlstate= '%s'\n", $warning->sqlstate);

    assert(0 === $warning->errno);
    printf("warning->errno = '%s'\n", $warning->errno);

    printf("\nAccess to undefined properties:\n");
    printf("warning->unknown = '%s'\n", @$warning->unknown);

    print "done!";
?>
--CLEAN--
<?php
	require_once("clean_table.inc");
?>
--EXPECTF--
Warning: Wrong parameter count for mysqli_warning::mysqli_warning() in %s on line %d

Warning: mysqli_warning::mysqli_warning(): Argument #1 must be of type object, null given in %s on line %d

Warning: Wrong parameter count for mysqli_warning::mysqli_warning() in %s on line %d

Warning: mysqli_warning::mysqli_warning(): mysqli object is already closed in %s on line %d
mysqli_stmt object is not fully initialized
mysqli_stmt object is not fully initialized

Warning: mysqli_warning::mysqli_warning(): Invalid class argument in /home/nixnutz/php6_mysqlnd/ext/mysqli/tests/mysqli_class_mysqli_warning.php on line 19

Warning: mysqli_warning::mysqli_warning(): No warnings found in %s on line %d
Parent class:
bool(false)

Methods:
ok

Class variables:

Object variables:

Magic, magic properties:
warning->message = ''
warning->sqlstate= ''
warning->errno = ''

Access to undefined properties:

warning->unknown = ''
done!