ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
ilTermsOfServiceHelperTest.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
3
9{
13 public function testDocumentCanBeAccepted()
14 {
15 $dataGatewayFactory = $this->getMockBuilder(\ilTermsOfServiceDataGatewayFactory::class)->getMock();
16 $dataGateway = $this
17 ->getMockBuilder(\ilTermsOfServiceAcceptanceDataGateway::class)
18 ->getMock();
19
20 $dataGateway
21 ->expects($this->once())
22 ->method('trackAcceptance')
23 ->with($this->isInstanceOf(\ilTermsOfServiceAcceptanceEntity::class));
24
25 $dataGatewayFactory
26 ->expects($this->any())
27 ->method('getByName')
28 ->willReturn($dataGateway);
29
30 $helper = new \ilTermsOfServiceHelper(
31 $this->getMockBuilder(\ilDBInterface::class)->getMock(),
32 $dataGatewayFactory
33 );
34
35 $user = $this
36 ->getMockBuilder(\ilObjUser::class)
37 ->disableOriginalConstructor()
38 ->setMethods(['getLanguage', 'getId', 'getLogin', 'writeAccepted', 'hasToAcceptTermsOfServiceInSession'])
39 ->getMock();
40
41 $user
42 ->expects($this->any())
43 ->method('getId')
44 ->willReturn(-1);
45
46 $user
47 ->expects($this->any())
48 ->method('getLogin')
49 ->willReturn('phpunit');
50
51 $user
52 ->expects($this->once())
53 ->method('writeAccepted');
54
55 $user
56 ->expects($this->once())
57 ->method('hasToAcceptTermsOfServiceInSession')
58 ->with(false);
59
60 $document = $this
61 ->getMockBuilder(\ilTermsOfServiceDocument::class)
62 ->disableOriginalConstructor()
63 ->setMethods(['content', 'id', 'criteria', 'title'])
64 ->getMock();
65
66 $document
67 ->expects($this->atLeast(1))
68 ->method('content')
69 ->willReturn('phpunit');
70
71 $document
72 ->expects($this->atLeast(1))
73 ->method('title')
74 ->willReturn('phpunit');
75
76 $document
77 ->expects($this->atLeast(1))
78 ->method('id')
79 ->willReturn(1);
80
81 $document
82 ->expects($this->atLeast(1))
83 ->method('criteria')
84 ->willReturn([]);
85
86 $helper->trackAcceptance($user, $document);
87 }
88
93 {
94 $dataGatewayFactory = $this->getMockBuilder(\ilTermsOfServiceDataGatewayFactory::class)->getMock();
95 $dataGateway = $this
96 ->getMockBuilder(\ilTermsOfServiceAcceptanceDataGateway::class)
97 ->getMock();
98
99 $dataGateway
100 ->expects($this->once())
101 ->method('deleteAcceptanceHistoryByUser')
102 ->with($this->isInstanceOf(\ilTermsOfServiceAcceptanceEntity::class));
103
104 $dataGatewayFactory
105 ->expects($this->any())
106 ->method('getByName')
107 ->willReturn($dataGateway);
108
109 $helper = new \ilTermsOfServiceHelper(
110 $this->getMockBuilder(\ilDBInterface::class)->getMock(),
111 $dataGatewayFactory
112 );
113
114 $user = $this
115 ->getMockBuilder(\ilObjUser::class)
116 ->disableOriginalConstructor()
117 ->setMethods(['getId', 'getLogin'])
118 ->getMock();
119
120 $user
121 ->expects($this->any())
122 ->method('getId')
123 ->willReturn(-1);
124
125 $user
126 ->expects($this->any())
127 ->method('getLogin')
128 ->willReturn('phpunit');
129
130 $helper->deleteAcceptanceHistoryByUser($user->getId());
131 }
132
137 {
138 $dataGatewayFactory = $this->getMockBuilder(\ilTermsOfServiceDataGatewayFactory::class)->getMock();
139 $dataGateway = $this
140 ->getMockBuilder(\ilTermsOfServiceAcceptanceDataGateway::class)
141 ->getMock();
142
143 $entity = new \ilTermsOfServiceAcceptanceEntity();
144 $entity->withId(4711);
145
146 $dataGateway
147 ->expects($this->atLeast(1))
148 ->method('loadCurrentAcceptanceOfUser')
149 ->with($this->isInstanceOf(\ilTermsOfServiceAcceptanceEntity::class))
150 ->willReturn($entity);
151
152 $dataGatewayFactory
153 ->expects($this->any())
154 ->method('getByName')
155 ->willReturn($dataGateway);
156
157 $helper = new \ilTermsOfServiceHelper(
158 $this->getMockBuilder(\ilDBInterface::class)->getMock(),
159 $dataGatewayFactory
160 );
161
162 $user = $this
163 ->getMockBuilder(\ilObjUser::class)
164 ->disableOriginalConstructor()
165 ->setMethods(['getId', 'getLogin'])
166 ->getMock();
167
168 $user
169 ->expects($this->any())
170 ->method('getId')
171 ->willReturn(-1);
172
173 $user
174 ->expects($this->any())
175 ->method('getLogin')
176 ->willReturn('phpunit');
177
178 $this->assertInstanceOf(\ilTermsOfServiceAcceptanceEntity::class, $helper->getCurrentAcceptanceForUser($user));
179 $this->assertEquals($entity, $helper->getCurrentAcceptanceForUser($user));
180 }
181
186 {
187 $dataGatewayFactory = $this->getMockBuilder(\ilTermsOfServiceDataGatewayFactory::class)->getMock();
188 $dataGateway = $this
189 ->getMockBuilder(\ilTermsOfServiceAcceptanceDataGateway::class)
190 ->getMock();
191
192 $entity = new \ilTermsOfServiceAcceptanceEntity();
193 $entity->withId(4711);
194
195 $dataGateway
196 ->expects($this->atLeast(1))
197 ->method('loadById')
198 ->willReturn($entity);
199
200 $dataGatewayFactory
201 ->expects($this->any())
202 ->method('getByName')
203 ->willReturn($dataGateway);
204
205 $helper = new \ilTermsOfServiceHelper(
206 $this->getMockBuilder(\ilDBInterface::class)->getMock(),
207 $dataGatewayFactory
208 );
209
210 $user = $this
211 ->getMockBuilder(\ilObjUser::class)
212 ->disableOriginalConstructor()
213 ->setMethods(['getId', 'getLogin'])
214 ->getMock();
215
216 $user
217 ->expects($this->any())
218 ->method('getId')
219 ->willReturn(-1);
220
221 $user
222 ->expects($this->any())
223 ->method('getLogin')
224 ->willReturn('phpunit');
225
226 $this->assertInstanceOf(\ilTermsOfServiceAcceptanceEntity::class, $helper->getById($entity->getId()));
227 $this->assertEquals($entity, $helper->getById($entity->getId()));
228 }
229}
An exception for terminatinating execution or to throw for unit testing.
Class ilTermsOfServiceBaseTest.
Class ilTermsOfServiceHelperTest.
$user
Definition: migrateto20.php:57
once($eventName, callable $callBack, $priority=100)
Subscribe to an event exactly once.