ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilCertificateQueueRepositoryTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22{
23 public function testEntryCanBeAddedToQueue(): void
24 {
25 $databaseMock = $this->createMock(ilDBInterface::class);
26
27 $loggerMock = $this->getMockBuilder(ilLogger::class)
28 ->disableOriginalConstructor()
29 ->getMock();
30
31 $timestamp = time();
32
33 $databaseMock->expects($this->once())
34 ->method('nextId')
35 ->willReturn(20);
36
37 $loggerMock->expects($this->atLeastOnce())
38 ->method('debug');
39
40 $loggerMock->expects($this->atLeastOnce())
41 ->method('debug');
42
43 $databaseMock->expects($this->once())
44 ->method('insert')
45 ->with(
46 'il_cert_cron_queue',
47 [
48 'id' => ['integer', 20],
49 'obj_id' => ['integer', 10],
50 'usr_id' => ['integer', 500],
51 'adapter_class' => ['text', 'SomeClass'],
52 'state' => ['text', 'SomeState'],
53 'started_timestamp' => ['integer', $timestamp],
54 'template_id' => ['integer', 10000]
55 ]
56 );
57
58 $repository = new ilCertificateQueueRepository($databaseMock, $loggerMock);
59
60 $queueEntry = new ilCertificateQueueEntry(
61 10,
62 500,
63 'SomeClass',
64 'SomeState',
65 10000,
67 );
68
69 $repository->addToQueue($queueEntry);
70 }
71
72 public function testRemoveFromQueue(): void
73 {
74 $databaseMock = $this->createMock(ilDBInterface::class);
75
76 $loggerMock = $this->getMockBuilder(ilLogger::class)
77 ->disableOriginalConstructor()
78 ->getMock();
79
80 $loggerMock->expects($this->atLeastOnce())
81 ->method('debug');
82
83 $databaseMock->expects($this->once())
84 ->method('quote')
85 ->with(30, 'integer')
86 ->willReturn('30');
87
88 $databaseMock->expects($this->once())
89 ->method('manipulate')
90 ->with('DELETE FROM il_cert_cron_queue WHERE id = 30');
91
92 $repository = new ilCertificateQueueRepository($databaseMock, $loggerMock);
93
94 $repository->removeFromQueue(30);
95 }
96
97 public function testFetchAllEntriesFromQueue(): void
98 {
99 $databaseMock = $this->createMock(ilDBInterface::class);
100
101 $loggerMock = $this->getMockBuilder(ilLogger::class)
102 ->disableOriginalConstructor()
103 ->getMock();
104
105 $loggerMock->expects($this->atLeastOnce())
106 ->method('debug');
107
108 $loggerMock->expects($this->atLeastOnce())
109 ->method('debug');
110
111 $databaseMock->expects($this->once())
112 ->method('query');
113
114 $databaseMock->expects($this->exactly(3))
115 ->method('fetchAssoc')
116 ->willReturnOnConsecutiveCalls(
117 [
118 'id' => 10,
119 'obj_id' => 100,
120 'usr_id' => 5000,
121 'adapter_class' => 'SomeClass',
122 'state' => 'SomeState',
123 'template_id' => 1000,
124 'started_timestamp' => 123_456_789
125 ],
126 [
127 'id' => 20,
128 'obj_id' => 100,
129 'usr_id' => 5000,
130 'adapter_class' => 'SomeClass',
131 'state' => 'SomeState',
132 'template_id' => 1000,
133 'started_timestamp' => 123_456_789
134 ],
135 null
136 );
137
138 $repository = new ilCertificateQueueRepository($databaseMock, $loggerMock);
139
140 $entries = $repository->getAllEntriesFromQueue();
141
142 $this->assertSame(10, $entries[0]->getId());
143 $this->assertSame(20, $entries[1]->getId());
144 }
145}
foreach($mandatory_scripts as $file) $timestamp
Definition: buildRTE.php:70