aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/tests/unit/CalDAV/CachedSubscriptionObjectTest.php
blob: 03a2c9f20ee4d4ddd7da0937da6887b6c5238e66 (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
<?php

declare(strict_types=1);
/**
 * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */
namespace OCA\DAV\Tests\unit\CalDAV;

use OCA\DAV\CalDAV\CachedSubscriptionObject;
use OCA\DAV\CalDAV\CalDavBackend;

class CachedSubscriptionObjectTest extends \Test\TestCase {
	public function testGet(): void {
		$backend = $this->createMock(CalDavBackend::class);
		$calendarInfo = [
			'{http://owncloud.org/ns}owner-principal' => 'user1',
			'principaluri' => 'user2',
			'id' => 666,
			'uri' => 'cal',
		];
		$objectData = [
			'uri' => 'foo123'
		];

		$backend->expects($this->once())
			->method('getCalendarObject')
			->with(666, 'foo123', 1)
			->willReturn([
				'calendardata' => 'BEGIN...',
			]);

		$calendarObject = new CachedSubscriptionObject($backend, $calendarInfo, $objectData);
		$this->assertEquals('BEGIN...', $calendarObject->get());
	}


	public function testPut(): void {
		$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
		$this->expectExceptionMessage('Creating objects in a cached subscription is not allowed');

		$backend = $this->createMock(CalDavBackend::class);
		$calendarInfo = [
			'{http://owncloud.org/ns}owner-principal' => 'user1',
			'principaluri' => 'user2',
			'id' => 666,
			'uri' => 'cal',
		];
		$objectData = [
			'uri' => 'foo123'
		];

		$calendarObject = new CachedSubscriptionObject($backend, $calendarInfo, $objectData);
		$calendarObject->put('');
	}


	public function testDelete(): void {
		$this->expectException(\Sabre\DAV\Exception\MethodNotAllowed::class);
		$this->expectExceptionMessage('Deleting objects in a cached subscription is not allowed');

		$backend = $this->createMock(CalDavBackend::class);
		$calendarInfo = [
			'{http://owncloud.org/ns}owner-principal' => 'user1',
			'principaluri' => 'user2',
			'id' => 666,
			'uri' => 'cal',
		];
		$objectData = [
			'uri' => 'foo123'
		];

		$calendarObject = new CachedSubscriptionObject($backend, $calendarInfo, $objectData);
		$calendarObject->delete();
	}
}