summaryrefslogtreecommitdiff
path: root/ext/mysqli/tests/mysqli_class_mysqli_warning.phpt
blob: 4d3c883e45161ab1dcb400cf51d9c5433a43736b (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
128
129
130
131
132
--TEST--
Interface of the class mysqli_warning - TODO
--SKIPIF--
<?php
require_once('skipif.inc');
require_once('skipifemb.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() expects parameter 1 to be 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(): Couldn't fetch mysqli in %s on line %d

Warning: mysqli_warning::mysqli_warning(): invalid object or resource mysqli_stmt
 in %s on line %d

Warning: mysqli_warning::mysqli_warning(): invalid object or resource mysqli_stmt
 in %s on line %d

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!