ILIAS  release_7 Revision v7.30-3-g800a261c036
ilObjectDAVTest.php
Go to the documentation of this file.
1<?php
2use \PHPUnit\Framework\TestCase;
3use \Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
4use Sabre\DAV\Exception\Forbidden;
5
26class ilObjectDAVTest extends TestCase
27{
29 protected $ref_id;
30
32 protected $mocked_obj;
33
36
39
41 protected $dav_obj;
42
43
47 protected function setUp() : void
48 {
49 $this->ref_id = 100;
50 $this->mocked_obj = \Mockery::mock('ilObject');
51 $this->mocked_obj->shouldReceive(['getRefId' => $this->ref_id]);
52
53 $this->mocked_dav_obj_helper = \Mockery::mock('ilWebDAVObjDAVHelper');
54
55 $this->mocked_dav_repo_helper = \Mockery::mock('ilWebDAVRepositoryHelper');
56
57 $this->dav_obj = $this->setUpObjectDAV($this->mocked_obj, $this->mocked_dav_repo_helper, $this->mocked_dav_obj_helper);
58
59 parent::setUp();
60 }
61
65 protected function setUpObjectDAV($mocked_obj, $mocked_repo_helper, $mockes_dav_helper)
66 {
67 return new class($mocked_obj, $mocked_repo_helper, $mockes_dav_helper) extends ilObjectDAV {
68 };
69 }
70
76 {
77 // Arrange
78 $exception_thrown = false;
79 $title = 'Test';
80
81 $this->mocked_dav_repo_helper->shouldReceive('checkAccess')->withArgs(['write', $this->ref_id])->andReturn(false);
82
83 $this->mocked_obj->shouldNotReceive('setTitle');
84
85
86 // Act
87 try {
88 $this->dav_obj->setName($title);
89 } catch (Forbidden $e) {
90 $exception_thrown = $e->getMessage() == 'Permission denied';
91 }
92
93 // Assert
94 $this->assertTrue($exception_thrown);
95 }
96
102 {
103 // Arrange
104 $exception_thrown = false;
105 $title = 'Test';
106
107 $this->mocked_dav_repo_helper->shouldReceive('checkAccess')->withAnyArgs()->andReturn(true);
108 $this->mocked_dav_obj_helper->shouldReceive('isDAVableObjTitle')->with($title)->andReturn(false);
109
110 $this->mocked_obj = \Mockery::mock('ilObject');
111 $this->mocked_obj->shouldNotReceive('setTitle');
112
113 // Act
114 try {
115 $this->dav_obj->setName($title);
116 } catch (Forbidden $e) {
117 $exception_thrown = $e->getMessage() == 'Forbidden characters in title';
118 }
119
120 // Assert
121 $this->assertTrue($exception_thrown);
122 }
123
133 {
134 // Arrange
135 $title = 'Test';
136
137 $this->mocked_dav_repo_helper->shouldReceive('checkAccess')->withAnyArgs()->andReturn(true);
138 $this->mocked_dav_obj_helper->shouldReceive('isDAVableObjTitle')->with($title)->andReturn(true);
139
140 $this->mocked_obj->shouldReceive('setTitle')->withArgs([$title]);
141 $this->mocked_obj->shouldReceive('update');
142
143 // Act
144 $this->dav_obj->setName($title);
145
146 // Assert
147 $this->assertTrue($this->mocked_obj->shouldHaveReceived('setTitle')->withArgs([$title])
148 && $this->mocked_obj->shouldHaveReceived('update'));
149 }
150
156 {
157 // Arrange
158 $exception_thrown = false;
159
160 $this->mocked_dav_repo_helper->shouldReceive('checkAccess')->withAnyArgs()->andReturn(false);
161
162 // Act
163 try {
164 $this->dav_obj->delete();
165 } catch (Forbidden $e) {
166 $exception_thrown = $e->getMessage() == "Permission denied";
167 }
168
169 // Assert
170 $this->assertTrue($exception_thrown);
171 }
172}
An exception for terminatinating execution or to throw for unit testing.
TestCase for the ilObjectDAVTest.
setName_EverythingFine_SetTitleForObject()
Requirements:
setName_ForbiddenCharacters_ThrowForbidden()
setUpObjectDAV($mocked_obj, $mocked_repo_helper, $mockes_dav_helper)
Setup instance for ilObjectDAV.
delete_WithoutPermission_ThrowForbidden()
setName_NoWriteAccess_ThrowForbidden()
Class ilObjectDAV.