]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/tests/Sabre/CardDAV/Backend/Mock.php
Merge branch 'master' of ../../save/merge/frio_hovercard into frio
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / CardDAV / Backend / Mock.php
1 <?php
2
3 class Sabre_CardDAV_Backend_Mock extends Sabre_CardDAV_Backend_Abstract {
4
5     public $addressBooks;
6     public $cards;
7
8     function __construct($addressBooks = null, $cards = null) {
9
10         $this->addressBooks = $addressBooks;
11         $this->cards = $cards;
12
13         if (is_null($this->addressBooks)) {
14             $this->addressBooks = array(
15                 array(
16                     'id' => 'foo',
17                     'uri' => 'book1',
18                     'principaluri' => 'principals/user1',
19                     '{DAV:}displayname' => 'd-name',
20                 ),
21             );
22
23             $this->cards = array(
24                 'foo' => array(
25                     'card1' => "BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD",
26                     'card2' => "BEGIN:VCARD\nVERSION:3.0\nUID:45678\nEND:VCARD",
27                 ),
28             );
29         }
30
31     }
32
33
34     function getAddressBooksForUser($principalUri) {
35
36         $books = array();
37         foreach($this->addressBooks as $book) {
38             if ($book['principaluri'] === $principalUri) {
39                 $books[] = $book;
40             }
41         }
42         return $books;
43
44     }
45
46     function updateAddressBook($addressBookId, array $mutations) {
47
48         foreach($this->addressBooks as &$book) {
49             if ($book['id'] !== $addressBookId)
50                 continue;
51
52             foreach($mutations as $key=>$value) {
53                 $book[$key] = $value;
54             }
55             return true;
56         }
57         return false;
58
59     }
60
61     function createAddressBook($principalUri, $url, array $properties) {
62
63         $this->addressBooks[] = array_merge($properties, array(
64             'id' => $url,
65             'uri' => $url,
66             'principaluri' => $principalUri,
67         ));
68
69     }
70
71     function deleteAddressBook($addressBookId) {
72
73         foreach($this->addressBooks as $key=>$value) {
74             if ($value['id'] === $addressBookId)
75                 unset($this->addressBooks[$key]);
76         }
77         unset($this->cards[$addressBookId]);
78
79     }
80
81     function getCards($addressBookId) {
82
83         $cards = array();
84         foreach($this->cards[$addressBookId] as $uri=>$data) {
85             $cards[] = array(
86                 'uri' => $uri,
87                 'carddata' => $data,
88             );
89         }
90         return $cards;
91
92     }
93
94     function getCard($addressBookId, $cardUri) {
95
96         if (!isset($this->cards[$addressBookId][$cardUri])) {
97             return false;
98         }
99
100         return array(
101             'uri' => $cardUri,
102             'carddata' => $this->cards[$addressBookId][$cardUri],
103         );
104
105     }
106
107     function createCard($addressBookId, $cardUri, $cardData) {
108
109         $this->cards[$addressBookId][$cardUri] = $cardData;
110
111     }
112
113     function updateCard($addressBookId, $cardUri, $cardData) {
114
115         $this->cards[$addressBookId][$cardUri] = $cardData;
116
117     }
118
119     function deleteCard($addressBookId, $cardUri) {
120
121         unset($this->cards[$addressBookId][$cardUri]);
122
123     }
124
125 }