1--TEST--
2Delete multi
3--SKIPIF--
4<?php include "skipif.inc";?>
5--FILE--
6<?php
7include dirname (__FILE__) . '/config.inc';
8$m = memc_get_instance ();
9
10function has_all_keys($keys, $array, $check_true = false)
11{
12	foreach ($keys as $key) {
13		if (!isset($array[$key]))
14			return false;
15
16		if ($check_true && $array[$key] !== true)
17			return false;
18	}
19	return true;
20}
21
22$data = array(
23	'foo' => 'foo-data',
24	'bar' => 'bar-data',
25	'baz' => 'baz-data',
26	'lol' => 'lol-data',
27	'kek' => 'kek-data',
28);
29
30$keys = array_keys($data);
31
32$null = null;
33$m->setMulti($data, 3600);
34
35/* Check that all keys were stored */
36var_dump(has_all_keys($keys, $m->getMulti($keys)));
37
38/* Check that all keys get deleted */
39$deleted = $m->deleteMulti($keys);
40var_dump(has_all_keys($keys, $deleted, true));
41
42/* Try to get the deleted keys, should give empty array */
43var_dump($m->getMulti($keys));
44
45/* ---- same tests for byKey variants ---- */
46$m->setMultiByKey("hi", $data, 3600);
47
48var_dump(has_all_keys($keys, $m->getMultiByKey('hi', $keys)));
49
50/* Check that all keys get deleted */
51$deleted = $m->deleteMultiByKey('hi', $keys);
52var_dump(has_all_keys($keys, $deleted, true));
53
54/* Try to get the deleted keys, should give empty array */
55var_dump($m->getMultiByKey('hi', $keys));
56
57/* Test deleting non-existent keys */
58$keys = array();
59$keys[] = "nothere";
60$keys[] = "nothere2";
61
62$retval = $m->deleteMulti($keys);
63
64foreach ($retval as $key => $value) {
65    if ($value === Memcached::RES_NOTFOUND) {
66        echo "$key NOT FOUND\n";
67    }
68}
69
70
71?>
72--EXPECT--
73bool(true)
74bool(true)
75array(0) {
76}
77bool(true)
78bool(true)
79array(0) {
80}
81nothere NOT FOUND
82nothere2 NOT FOUND