]> git.mxchange.org Git - friendica-addons.git/blobdiff - dav/SabreDAV/tests/Sabre/CardDAV/Backend/Mock.php
Initial Release of the calendar plugin
[friendica-addons.git] / dav / SabreDAV / tests / Sabre / CardDAV / Backend / Mock.php
diff --git a/dav/SabreDAV/tests/Sabre/CardDAV/Backend/Mock.php b/dav/SabreDAV/tests/Sabre/CardDAV/Backend/Mock.php
new file mode 100644 (file)
index 0000000..bd66dbb
--- /dev/null
@@ -0,0 +1,125 @@
+<?php
+
+class Sabre_CardDAV_Backend_Mock extends Sabre_CardDAV_Backend_Abstract {
+
+    public $addressBooks;
+    public $cards;
+
+    function __construct($addressBooks = null, $cards = null) {
+
+        $this->addressBooks = $addressBooks;
+        $this->cards = $cards;
+
+        if (is_null($this->addressBooks)) {
+            $this->addressBooks = array(
+                array(
+                    'id' => 'foo',
+                    'uri' => 'book1',
+                    'principaluri' => 'principals/user1',
+                    '{DAV:}displayname' => 'd-name',
+                ),
+            );
+
+            $this->cards = array(
+                'foo' => array(
+                    'card1' => "BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD",
+                    'card2' => "BEGIN:VCARD\nVERSION:3.0\nUID:45678\nEND:VCARD",
+                ),
+            );
+        }
+
+    }
+
+
+    function getAddressBooksForUser($principalUri) {
+
+        $books = array();
+        foreach($this->addressBooks as $book) {
+            if ($book['principaluri'] === $principalUri) {
+                $books[] = $book;
+            }
+        }
+        return $books;
+
+    }
+
+    function updateAddressBook($addressBookId, array $mutations) {
+
+        foreach($this->addressBooks as &$book) {
+            if ($book['id'] !== $addressBookId)
+                continue;
+
+            foreach($mutations as $key=>$value) {
+                $book[$key] = $value;
+            }
+            return true;
+        }
+        return false;
+
+    }
+
+    function createAddressBook($principalUri, $url, array $properties) {
+
+        $this->addressBooks[] = array_merge($properties, array(
+            'id' => $url,
+            'uri' => $url,
+            'principaluri' => $principalUri,
+        ));
+
+    }
+
+    function deleteAddressBook($addressBookId) {
+
+        foreach($this->addressBooks as $key=>$value) {
+            if ($value['id'] === $addressBookId)
+                unset($this->addressBooks[$key]);
+        }
+        unset($this->cards[$addressBookId]);
+
+    }
+
+    function getCards($addressBookId) {
+
+        $cards = array();
+        foreach($this->cards[$addressBookId] as $uri=>$data) {
+            $cards[] = array(
+                'uri' => $uri,
+                'carddata' => $data,
+            );
+        }
+        return $cards;
+
+    }
+
+    function getCard($addressBookId, $cardUri) {
+
+        if (!isset($this->cards[$addressBookId][$cardUri])) {
+            return false;
+        }
+
+        return array(
+            'uri' => $cardUri,
+            'carddata' => $this->cards[$addressBookId][$cardUri],
+        );
+
+    }
+
+    function createCard($addressBookId, $cardUri, $cardData) {
+
+        $this->cards[$addressBookId][$cardUri] = $cardData;
+
+    }
+
+    function updateCard($addressBookId, $cardUri, $cardData) {
+
+        $this->cards[$addressBookId][$cardUri] = $cardData;
+
+    }
+
+    function deleteCard($addressBookId, $cardUri) {
+
+        unset($this->cards[$addressBookId][$cardUri]);
+
+    }
+
+}