ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilStudyProgrammeProgressRepositoryTest Class Reference

@group needsInstalledILIAS More...

+ Inheritance diagram for ilStudyProgrammeProgressRepositoryTest:
+ Collaboration diagram for ilStudyProgrammeProgressRepositoryTest:

Public Member Functions

 test_init ()
 
 test_create ($repo)
 @depends test_init More...
 
 test_save_and_load ()
 @depends test_create More...
 
 test_query_ByIds ()
 @depends test_save_and_load More...
 
 test_query_ByPrgIdUsrId ()
 @depends test_save_and_load More...
 
 test_query_ByPrgId ()
 @depends test_save_and_load More...
 
 test_query_past_succsessful_1 ()
 @depends test_save_and_load More...
 
 test_query_past_succsessful_2 ()
 @depends test_save_and_load More...
 

Static Public Member Functions

static tearDownAfterClass ()
 

Protected Member Functions

 setUp ()
 

Protected Attributes

 $backupGlobals = false
 

Static Protected Attributes

static $created = []
 

Detailed Description

@group needsInstalledILIAS

Definition at line 6 of file ilStudyProgrammeProgressRepositoryTest.php.

Member Function Documentation

◆ setUp()

ilStudyProgrammeProgressRepositoryTest::setUp ( )
protected

Definition at line 11 of file ilStudyProgrammeProgressRepositoryTest.php.

11 : void
12 {
13 PHPUnit_Framework_Error_Deprecated::$enabled = false;
14
15 global $DIC;
16 if (!$DIC) {
17 include_once("./Services/PHPUnit/classes/class.ilUnitUtil.php");
18 ilUnitUtil::performInitialisation();
19 }
20 global $DIC;
21 $this->db = $DIC['ilDB'];
22 }
$DIC
Definition: xapitoken.php:46

References $DIC.

◆ tearDownAfterClass()

static ilStudyProgrammeProgressRepositoryTest::tearDownAfterClass ( )
static

Definition at line 282 of file ilStudyProgrammeProgressRepositoryTest.php.

282 : void
283 {
284 global $DIC;
285 if (!$DIC) {
286 include_once("./Services/PHPUnit/classes/class.ilUnitUtil.php");
287 ilUnitUtil::performInitialisation();
288 }
289 global $DIC;
290 $db = $DIC['ilDB'];
291 if (count(self::$created) > 0) {
292 $db->manipulate(
294 . ' WHERE'
295 . ' ' . $db->in(
297 array_keys(self::$created),
298 false,
299 'integer'
300 )
301
302 );
303 }
304 }

References $DIC, ilStudyProgrammeProgressDBRepository\FIELD_ID, and ilStudyProgrammeProgressDBRepository\TABLE.

◆ test_create()

ilStudyProgrammeProgressRepositoryTest::test_create (   $repo)

@depends test_init

Definition at line 34 of file ilStudyProgrammeProgressRepositoryTest.php.

35 {
36 $prg = new ilStudyProgrammeSettings(1);
37 $prg->setPoints(123);
38 $ass = new ilStudyProgrammeAssignment(20);
39 $ass->setUserId(30);
40 $prgs = $repo->createFor($prg, $ass);
41 self::$created[$prgs->getId()] = $prgs;
42 $this->assertEquals($prgs->getNodeId(), 1);
43 $this->assertEquals($prgs->getAssignmentId(), 20);
44 $this->assertEquals($prgs->getUserId(), 30);
45 $this->assertEquals($prgs->getAmountOfPoints(), 123);
46 $this->assertEquals($prgs->getCurrentAmountOfPoints(), 0);
47 $this->assertEquals($prgs->getStatus(), ilStudyProgrammeProgress::STATUS_IN_PROGRESS);
48 $this->assertEquals($prgs->getAssignmentDate()->format('Y-m-d'), (new DateTime())->format('Y-m-d'));
49 $this->assertNull($prgs->getCompletionBy());
50 $this->assertNull($prgs->getDeadline());
51 $this->assertNull($prgs->getCompletionDate());
52 $this->assertNull($prgs->getValidityOfQualification());
53
54 $prg = new ilStudyProgrammeSettings(1);
55 $prg->setPoints(123);
56 $ass = new ilStudyProgrammeAssignment(21);
57 $ass->setUserId(30);
58 $prgs = $repo->createFor($prg, $ass);
59 self::$created[$prgs->getId()] = $prgs;
60
61 $prg = new ilStudyProgrammeSettings(1);
62 $prg->setPoints(123);
63 $ass = new ilStudyProgrammeAssignment(22);
64 $ass->setUserId(31);
65 $prgs = $repo->createFor($prg, $ass);
66 self::$created[$prgs->getId()] = $prgs;
67
68 $prg = new ilStudyProgrammeSettings(2);
69 $prg->setPoints(123);
70 $ass = new ilStudyProgrammeAssignment(23);
71 $ass->setUserId(31);
72 $prgs = $repo->createFor($prg, $ass);
73 self::$created[$prgs->getId()] = $prgs;
74
75 $prg = new ilStudyProgrammeSettings(2);
76 $prg->setPoints(123);
77 $ass = new ilStudyProgrammeAssignment(24);
78 $ass->setUserId(32);
79 $prgs = $repo->createFor($prg, $ass);
80 self::$created[$prgs->getId()] = $prgs;
81 }
Class ilStudyProgrammeAssignment.

References ilStudyProgrammeProgress\STATUS_IN_PROGRESS.

◆ test_init()

ilStudyProgrammeProgressRepositoryTest::test_init ( )

Definition at line 24 of file ilStudyProgrammeProgressRepositoryTest.php.

25 {
26 $repo = new ilStudyProgrammeProgressDBRepository($this->db);
27 $this->assertInstanceOf(ilStudyProgrammeProgressRepository::class, $repo);
28 return $repo;
29 }

◆ test_query_ByIds()

ilStudyProgrammeProgressRepositoryTest::test_query_ByIds ( )

@depends test_save_and_load

Definition at line 128 of file ilStudyProgrammeProgressRepositoryTest.php.

129 {
130 $repo = new ilStudyProgrammeProgressDBRepository($this->db);
131 $prgs = $repo->readByIds(1, 20, 30);
132 $this->assertEquals($prgs->getNodeId(), 1);
133 $this->assertEquals($prgs->getAssignmentId(), 20);
134 $this->assertEquals($prgs->getUserId(), 30);
135 $this->assertEquals($prgs->getAmountOfPoints(), 234);
136 $this->assertEquals($prgs->getCurrentAmountOfPoints(), 345);
137 $this->assertEquals($prgs->getStatus(), ilStudyProgrammeProgress::STATUS_ACCREDITED);
138 $this->assertEquals($prgs->getCompletionBy(), 6);
139 $this->assertEquals($prgs->getDeadline()->format(ilStudyProgrammeProgress::DATE_FORMAT), '2018-01-01');
140 $this->assertEquals($prgs->getCompletionDate()->format(ilStudyProgrammeProgress::DATE_FORMAT), '2017-01-01');
141 $this->assertEquals($prgs->getValidityOfQualification()->format(ilStudyProgrammeProgress::DATE_FORMAT), '2020-01-01');
142 $this->assertFalse($prgs->isInvalidated());
143 }

References ilStudyProgrammeProgress\DATE_FORMAT, and ilStudyProgrammeProgress\STATUS_ACCREDITED.

◆ test_query_ByPrgId()

ilStudyProgrammeProgressRepositoryTest::test_query_ByPrgId ( )

@depends test_save_and_load

Definition at line 165 of file ilStudyProgrammeProgressRepositoryTest.php.

166 {
167 $repo = new ilStudyProgrammeProgressDBRepository($this->db);
168 $prgss = $repo->readByPrgId(1);
169 $this->assertCount(3, $prgss);
170 $assignments = [];
171 foreach ($prgss as $prgs) {
172 $this->assertEquals($prgs->getNodeId(), 1);
173 $assignments[] = $prgs->getAssignmentId();
174 if (in_array($prgs->getAssignmentId(), [20,21])) {
175 $this->assertEquals($prgs->getUserId(), 30);
176 continue;
177 }
178 if ($prgs->getAssignmentId() === 22) {
179 $this->assertEquals($prgs->getUserId(), 31);
180 continue;
181 }
182 $this->assertFalse('unexpected assignment id');
183 }
184 $this->assertEquals([20,21,22], $assignments);
185 }

◆ test_query_ByPrgIdUsrId()

ilStudyProgrammeProgressRepositoryTest::test_query_ByPrgIdUsrId ( )

@depends test_save_and_load

Definition at line 148 of file ilStudyProgrammeProgressRepositoryTest.php.

149 {
150 $repo = new ilStudyProgrammeProgressDBRepository($this->db);
151 $prgss = $repo->readByPrgIdAndUserId(1, 30);
152 $this->assertCount(2, $prgss);
153 $assignments = [];
154 foreach ($prgss as $prgs) {
155 $this->assertEquals($prgs->getNodeId(), 1);
156 $this->assertEquals($prgs->getUserId(), 30);
157 $assignments[] = $prgs->getAssignmentId();
158 }
159 $this->assertEquals([20,21], $assignments);
160 }

◆ test_query_past_succsessful_1()

ilStudyProgrammeProgressRepositoryTest::test_query_past_succsessful_1 ( )

@depends test_save_and_load

Definition at line 191 of file ilStudyProgrammeProgressRepositoryTest.php.

192 {
193 $repo = new ilStudyProgrammeProgressDBRepository($this->db);
194 $prgss = $repo->readByPrgId(1);
195
196 $yesterday = new DateTime();
197 $yesterday->sub(new DateInterval('P1D'));
198
199 $prgrs1 = array_shift($prgss);
200 $prgrs1->setValidityOfQualification($yesterday);
202 $repo->update($prgrs1);
203
204 $prgrs2 = array_shift($prgss);
205 $prgrs2->setValidityOfQualification($yesterday);
207 $prgrs2->invalidate();
208 $repo->update($prgrs2);
209
210 $prgrs3 = array_shift($prgss);
212 $repo->update($prgrs1);
213
214 $prgrss = $repo->readExpiredSuccessfull();
215
216 $this->assertEquals(
217 [$prgrs1->getId()],
218 array_map(function ($prgrs) {
219 return $prgrs->getId();
220 }, $prgrss)
221 );
222
223 $u_prgrss = ilStudyProgrammeDIC::dic()['ilStudyProgrammeUserProgressDB']->getExpiredSuccessfulInstances();
224 $this->assertEquals(
225 [$prgrs1->getId()],
226 array_map(function ($prgrs) {
227 return $prgrs->getId();
228 }, $u_prgrss)
229 );
230 }

References ilStudyProgrammeDIC\dic(), ilStudyProgrammeProgress\STATUS_ACCREDITED, and ilStudyProgrammeProgress\STATUS_COMPLETED.

+ Here is the call graph for this function:

◆ test_query_past_succsessful_2()

ilStudyProgrammeProgressRepositoryTest::test_query_past_succsessful_2 ( )

@depends test_save_and_load

Definition at line 235 of file ilStudyProgrammeProgressRepositoryTest.php.

236 {
237 $repo = new ilStudyProgrammeProgressDBRepository($this->db);
238 $prgss = $repo->readByPrgId(1);
239
240 $yesterday = new DateTime();
241 $yesterday->sub(new DateInterval('P1D'));
242 $tomorrow = new DateTime();
243 $tomorrow->add(new DateInterval('P1D'));
244
245 $prgrs1 = array_shift($prgss);
246 $prgrs1->setValidityOfQualification($yesterday);
248 $repo->update($prgrs1);
249
250 $prgrs2 = array_shift($prgss);
252 $repo->update($prgrs1);
253
254 $prgrs3 = array_shift($prgss);
255 $prgrs2->setValidityOfQualification($yesterday);
256 $prgrs3->setStatus(ilStudyProgrammeProgress::STATUS_FAILED);
257 $repo->update($prgrs1);
258
259
260 $prgrss = [];
261 foreach ($repo->readExpiredSuccessfull() as $key => $prgrs) {
262 $prgrss[] = $prgrs;
263 }
264
265 $this->assertEquals(
266 [$prgrs1->getId()],
267 array_map(function ($prgrs) {
268 return $prgrs->getId();
269 }, $prgrss)
270 );
271
272 $u_prgrss = ilStudyProgrammeDIC::dic()['ilStudyProgrammeUserProgressDB']->getExpiredSuccessfulInstances();
273 $this->assertEquals(
274 [$prgrs1->getId()],
275 array_map(function ($prgrs) {
276 return $prgrs->getId();
277 }, $u_prgrss)
278 );
279 }

References ilStudyProgrammeDIC\dic(), ilStudyProgrammeProgress\STATUS_ACCREDITED, and ilStudyProgrammeProgress\STATUS_FAILED.

+ Here is the call graph for this function:

◆ test_save_and_load()

ilStudyProgrammeProgressRepositoryTest::test_save_and_load ( )

@depends test_create

Definition at line 86 of file ilStudyProgrammeProgressRepositoryTest.php.

87 {
88 $repo = new ilStudyProgrammeProgressDBRepository($this->db);
89 $prgs = current(self::$created);
90 $prgs = $repo->read($prgs->getId());
91 $this->assertEquals($prgs->getNodeId(), 1);
92 $this->assertEquals($prgs->getAssignmentId(), 20);
93 $this->assertEquals($prgs->getUserId(), 30);
94 $this->assertEquals($prgs->getAmountOfPoints(), 123);
95 $this->assertEquals($prgs->getCurrentAmountOfPoints(), 0);
96 $this->assertEquals($prgs->getStatus(), ilStudyProgrammeProgress::STATUS_IN_PROGRESS);
97 $this->assertNull($prgs->getCompletionBy());
98 $this->assertNull($prgs->getDeadline());
99 $this->assertNull($prgs->getCompletionDate());
100 $this->assertFalse($prgs->isInvalidated());
101 $prgs->setAmountOfPoints(234)
102 ->setCurrentAmountOfPoints(345)
104 ->setCompletionBy(6)
105 ->setDeadline(DateTime::createFromFormat(ilStudyProgrammeProgress::DATE_FORMAT, '2018-01-01'))
106 ->setCompletionDate(DateTime::createFromFormat(ilStudyProgrammeProgress::DATE_FORMAT, '2017-01-01'))
107 ->setValidityOfQualification(DateTime::createFromFormat(ilStudyProgrammeProgress::DATE_FORMAT, '2020-01-01'));
108 $repo->update($prgs);
109
110 $repo = new ilStudyProgrammeProgressDBRepository($this->db);
111 $prgs = $repo->read($prgs->getId());
112 $this->assertEquals($prgs->getNodeId(), 1);
113 $this->assertEquals($prgs->getAssignmentId(), 20);
114 $this->assertEquals($prgs->getUserId(), 30);
115 $this->assertEquals($prgs->getAmountOfPoints(), 234);
116 $this->assertEquals($prgs->getCurrentAmountOfPoints(), 345);
117 $this->assertEquals($prgs->getStatus(), ilStudyProgrammeProgress::STATUS_ACCREDITED);
118 $this->assertEquals($prgs->getCompletionBy(), 6);
119 $this->assertEquals($prgs->getDeadline()->format(ilStudyProgrammeProgress::DATE_FORMAT), '2018-01-01');
120 $this->assertEquals($prgs->getCompletionDate()->format(ilStudyProgrammeProgress::DATE_FORMAT), '2017-01-01');
121 $this->assertEquals($prgs->getValidityOfQualification()->format(ilStudyProgrammeProgress::DATE_FORMAT), '2020-01-01');
122 $this->assertFalse($prgs->isInvalidated());
123 }

References ilStudyProgrammeProgress\DATE_FORMAT, ilStudyProgrammeProgress\STATUS_ACCREDITED, and ilStudyProgrammeProgress\STATUS_IN_PROGRESS.

Field Documentation

◆ $backupGlobals

ilStudyProgrammeProgressRepositoryTest::$backupGlobals = false
protected

Definition at line 8 of file ilStudyProgrammeProgressRepositoryTest.php.

◆ $created

ilStudyProgrammeProgressRepositoryTest::$created = []
staticprotected

Definition at line 9 of file ilStudyProgrammeProgressRepositoryTest.php.


The documentation for this class was generated from the following file: