ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
Mock.php
Go to the documentation of this file.
1<?php
2
4
5class Mock extends AbstractBackend {
6
8 public $cards;
9
10 function __construct($addressBooks = null, $cards = null) {
11
12 $this->addressBooks = $addressBooks;
13 $this->cards = $cards;
14
15 if (is_null($this->addressBooks)) {
16 $this->addressBooks = [
17 [
18 'id' => 'foo',
19 'uri' => 'book1',
20 'principaluri' => 'principals/user1',
21 '{DAV:}displayname' => 'd-name',
22 ],
23 [
24 'id' => 'bar',
25 'uri' => 'book3',
26 'principaluri' => 'principals/user1',
27 '{DAV:}displayname' => 'd-name',
28 ],
29 ];
30
31 $card2 = fopen('php://memory', 'r+');
32 fwrite($card2, "BEGIN:VCARD\nVERSION:3.0\nUID:45678\nEND:VCARD");
33 rewind($card2);
34 $this->cards = [
35 'foo' => [
36 'card1' => "BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD",
37 'card2' => $card2,
38 ],
39 'bar' => [
40 'card3' => "BEGIN:VCARD\nVERSION:3.0\nUID:12345\nFN:Test-Card\nEMAIL;TYPE=home:bar@example.org\nEND:VCARD",
41 ],
42 ];
43 }
44
45 }
46
47
48 function getAddressBooksForUser($principalUri) {
49
50 $books = [];
51 foreach ($this->addressBooks as $book) {
52 if ($book['principaluri'] === $principalUri) {
53 $books[] = $book;
54 }
55 }
56 return $books;
57
58 }
59
76 function updateAddressBook($addressBookId, \Sabre\DAV\PropPatch $propPatch) {
77
78 foreach ($this->addressBooks as &$book) {
79 if ($book['id'] !== $addressBookId)
80 continue;
81
82 $propPatch->handleRemaining(function($mutations) use (&$book) {
83 foreach ($mutations as $key => $value) {
84 $book[$key] = $value;
85 }
86 return true;
87 });
88
89 }
90
91 }
92
93 function createAddressBook($principalUri, $url, array $properties) {
94
95 $this->addressBooks[] = array_merge($properties, [
96 'id' => $url,
97 'uri' => $url,
98 'principaluri' => $principalUri,
99 ]);
100
101 }
102
103 function deleteAddressBook($addressBookId) {
104
105 foreach ($this->addressBooks as $key => $value) {
106 if ($value['id'] === $addressBookId)
107 unset($this->addressBooks[$key]);
108 }
109 unset($this->cards[$addressBookId]);
110
111 }
112
132 function getCards($addressBookId) {
133
134 $cards = [];
135 foreach ($this->cards[$addressBookId] as $uri => $data) {
136 if (is_resource($data)) {
137 $cards[] = [
138 'uri' => $uri,
139 'carddata' => $data,
140 ];
141 } else {
142 $cards[] = [
143 'uri' => $uri,
144 'carddata' => $data,
145 'etag' => '"' . md5($data) . '"',
146 'size' => strlen($data)
147 ];
148 }
149 }
150 return $cards;
151
152 }
153
166 function getCard($addressBookId, $cardUri) {
167
168 if (!isset($this->cards[$addressBookId][$cardUri])) {
169 return false;
170 }
171
172 $data = $this->cards[$addressBookId][$cardUri];
173 return [
174 'uri' => $cardUri,
175 'carddata' => $data,
176 'etag' => '"' . md5($data) . '"',
177 'size' => strlen($data)
178 ];
179
180 }
181
207 function createCard($addressBookId, $cardUri, $cardData) {
208
209 if (is_resource($cardData)) {
210 $cardData = stream_get_contents($cardData);
211 }
212 $this->cards[$addressBookId][$cardUri] = $cardData;
213 return '"' . md5($cardData) . '"';
214
215 }
216
242 function updateCard($addressBookId, $cardUri, $cardData) {
243
244 if (is_resource($cardData)) {
245 $cardData = stream_get_contents($cardData);
246 }
247 $this->cards[$addressBookId][$cardUri] = $cardData;
248 return '"' . md5($cardData) . '"';
249
250 }
251
252 function deleteCard($addressBookId, $cardUri) {
253
254 unset($this->cards[$addressBookId][$cardUri]);
255
256 }
257
258}
An exception for terminatinating execution or to throw for unit testing.
getAddressBooksForUser($principalUri)
Returns the list of addressbooks for a specific user.
Definition: Mock.php:48
__construct($addressBooks=null, $cards=null)
Definition: Mock.php:10
deleteCard($addressBookId, $cardUri)
Deletes a card.
Definition: Mock.php:252
createCard($addressBookId, $cardUri, $cardData)
Creates a new card.
Definition: Mock.php:207
getCards($addressBookId)
Returns all cards for a specific addressbook id.
Definition: Mock.php:132
deleteAddressBook($addressBookId)
Deletes an entire addressbook and all its contents.
Definition: Mock.php:103
updateAddressBook($addressBookId, \Sabre\DAV\PropPatch $propPatch)
Updates properties for an address book.
Definition: Mock.php:76
getCard($addressBookId, $cardUri)
Returns a specfic card.
Definition: Mock.php:166
updateCard($addressBookId, $cardUri, $cardData)
Updates a card.
Definition: Mock.php:242
createAddressBook($principalUri, $url, array $properties)
Creates a new address book.
Definition: Mock.php:93
This class represents a set of properties that are going to be updated.
Definition: PropPatch.php:20
$key
Definition: croninfo.php:18
$url
$data
Definition: bench.php:6