ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ilCertificateQueueRepositoryTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(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 }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
foreach($mandatory_scripts as $file) $timestamp
Definition: buildRTE.php:70