1<?php 2 3class ilCertificateLearningHistoryProviderTest extends ilCertificateBaseTestCase 4{ 5 public function testIsActive() 6 { 7 $learningHistoryFactory = $this->getMockBuilder('ilLearningHistoryFactory') 8 ->disableOriginalConstructor() 9 ->getMock(); 10 11 $language = $this->getMockBuilder('ilLanguage') 12 ->disableOriginalConstructor() 13 ->getMock(); 14 15 $dic = $this->getMockBuilder('\ILIAS\DI\Container') 16 ->disableOriginalConstructor() 17 ->getMock(); 18 19 $template = $this->getMockBuilder('ilTemplate') 20 ->disableOriginalConstructor() 21 ->getMock(); 22 23 $userCertificateRepository = $this->getMockBuilder('ilUserCertificateRepository') 24 ->disableOriginalConstructor() 25 ->getMock(); 26 27 $controller = $this->getMockBuilder('ilCtrl') 28 ->disableOriginalConstructor() 29 ->getMock(); 30 31 $certificateSettings = $this->getMockBuilder('ilSetting') 32 ->disableOriginalConstructor() 33 ->getMock(); 34 35 $certificateSettings->method('get') 36 ->willReturn(true); 37 38 $uiFactory = $this->getMockBuilder('ILIAS\UI\Factory') 39 ->disableOriginalConstructor() 40 ->getMock(); 41 42 $uiRenderer = $this->getMockBuilder('ILIAS\UI\Renderer') 43 ->disableOriginalConstructor() 44 ->getMock(); 45 46 $provider = new ilCertificateLearningHistoryProvider( 47 10, 48 $learningHistoryFactory, 49 $language, 50 $template, 51 $dic, 52 $userCertificateRepository, 53 $controller, 54 $certificateSettings, 55 $uiFactory, 56 $uiRenderer 57 ); 58 59 $this->assertTrue($provider->isActive()); 60 } 61 62 public function testGetEntries() 63 { 64 $learningHistoryFactory = $this->getMockBuilder('ilLearningHistoryFactory') 65 ->disableOriginalConstructor() 66 ->getMock(); 67 68 $language = $this->getMockBuilder('ilLanguage') 69 ->disableOriginalConstructor() 70 ->getMock(); 71 72 $language->method('txt') 73 ->willReturnOnConsecutiveCalls( 74 'Certificate for %1$s', 75 '%1$s achieved.', 76 'Certificate for %1$s', 77 '%1$s achieved.' 78 ); 79 80 $dic = $this->getMockBuilder('\ILIAS\DI\Container') 81 ->disableOriginalConstructor() 82 ->getMock(); 83 84 $template = $this->getMockBuilder('ilTemplate') 85 ->disableOriginalConstructor() 86 ->getMock(); 87 88 $template->method('get') 89 ->willReturnOnConsecutiveCalls('Course Title', 'Test Title'); 90 91 $userCertificateRepository = $this->getMockBuilder('ilUserCertificateRepository') 92 ->disableOriginalConstructor() 93 ->getMock(); 94 95 $userCertificateRepository->method('fetchActiveCertificatesInIntervalForPresentation') 96 ->willReturn( 97 array( 98 new ilUserCertificatePresentation( 99 200, 100 'crs', 101 new ilUserCertificate( 102 1, 103 200, 104 'crs', 105 300, 106 'Ilyas Odys', 107 123456789, 108 '<xml>Some Content</xml>', 109 '["SOME_PLACEHOLDER"]', 110 null, 111 1, 112 'v5.4.0', 113 true, 114 '/some/where/background_1.jpg', 115 '/some/where/else/thumbnail_1.jpg', 116 40 117 ), 118 'Course Title', 119 'Course Description' 120 ), 121 new ilUserCertificatePresentation( 122 500, 123 'tst', 124 new ilUserCertificate( 125 5, 126 500, 127 'tst', 128 5000, 129 'Ilyas Odys', 130 987654321, 131 '<xml>Some Content</xml>', 132 '["SOME_PLACEHOLDER"]', 133 null, 134 1, 135 'v5.4.0', 136 true, 137 '/some/where/background_1.jpg', 138 '/some/where/else/thumbnail_1.jpg', 139 50 140 ), 141 'Test Title', 142 'Test Description' 143 ) 144 ) 145 ); 146 147 $controller = $this->getMockBuilder('ilCtrl') 148 ->disableOriginalConstructor() 149 ->getMock(); 150 151 $controller 152 ->expects($this->exactly(2)) 153 ->method('getLinkTargetByClass') 154 ->willReturn('<a href> </a>'); 155 156 $controller 157 ->expects($this->exactly(2)) 158 ->method('clearParametersByClass'); 159 160 $controller 161 ->expects($this->exactly(2)) 162 ->method('setParameterByClass'); 163 164 $certificateSettings = $this->getMockBuilder('ilSetting') 165 ->disableOriginalConstructor() 166 ->getMock(); 167 168 $certificateSettings->method('get') 169 ->willReturn(true); 170 171 $uiFactory = $this->getMockBuilder('ILIAS\UI\Factory') 172 ->disableOriginalConstructor() 173 ->getMock(); 174 175 $link = $this->getMockBuilder('\ILIAS\UI\Component\Link\Factory') 176 ->disableOriginalConstructor() 177 ->getMock(); 178 179 $std_link = $this->getMockBuilder('\ILIAS\UI\Component\Link\Standard') 180 ->disableOriginalConstructor() 181 ->getMock(); 182 183 $link->method('standard') 184 ->withConsecutive( 185 array('Course Title', '<a href> </a>'), 186 array('Test Title', '<a href> </a>') 187 ) 188 ->willReturn($std_link); 189 190 $uiFactory->method('link') 191 ->willReturn($link); 192 193 $uiRenderer = $this->getMockBuilder('ILIAS\UI\Renderer') 194 ->disableOriginalConstructor() 195 ->getMock(); 196 197 $uiRenderer->method('render') 198 ->with($std_link) 199 ->willReturn('link'); 200 201 $utilHelper = $this->getMockBuilder('ilCertificateUtilHelper') 202 ->disableOriginalConstructor() 203 ->getMock(); 204 205 $utilHelper->method('getImagePath') 206 ->willReturn('/some/acutal/image/path/background.png'); 207 208 $provider = new ilCertificateLearningHistoryProvider( 209 10, 210 $learningHistoryFactory, 211 $language, 212 $template, 213 $dic, 214 $userCertificateRepository, 215 $controller, 216 $certificateSettings, 217 $uiFactory, 218 $uiRenderer, 219 $utilHelper 220 ); 221 222 $expectedEntries = array( 223 new ilLearningHistoryEntry( 224 'Certificate for link achieved.', 225 'Certificate for link achieved.', 226 '/some/acutal/image/path/background.png', 227 123456789, 228 200 229 ), 230 new ilLearningHistoryEntry( 231 'Certificate for link achieved.', 232 'Certificate for link achieved.', 233 '/some/acutal/image/path/background.png', 234 987654321, 235 500 236 ),); 237 238 $actualEntries = $provider->getEntries(123456789, 987654321); 239 $this->assertEquals($expectedEntries, $actualEntries); 240 } 241 242 public function testGetName() 243 { 244 $learningHistoryFactory = $this->getMockBuilder('ilLearningHistoryFactory') 245 ->disableOriginalConstructor() 246 ->getMock(); 247 248 $language = $this->getMockBuilder('ilLanguage') 249 ->disableOriginalConstructor() 250 ->getMock(); 251 252 $language 253 ->expects($this->once()) 254 ->method('txt') 255 ->willReturn('Certificates'); 256 257 $dic = $this->getMockBuilder('\ILIAS\DI\Container') 258 ->disableOriginalConstructor() 259 ->getMock(); 260 261 $template = $this->getMockBuilder('ilTemplate') 262 ->disableOriginalConstructor() 263 ->getMock(); 264 265 $userCertificateRepository = $this->getMockBuilder('ilUserCertificateRepository') 266 ->disableOriginalConstructor() 267 ->getMock(); 268 269 $controller = $this->getMockBuilder('ilCtrl') 270 ->disableOriginalConstructor() 271 ->getMock(); 272 273 $certificateSettings = $this->getMockBuilder('ilSetting') 274 ->disableOriginalConstructor() 275 ->getMock(); 276 277 $certificateSettings->method('get') 278 ->willReturn(true); 279 280 $uiFactory = $this->getMockBuilder('ILIAS\UI\Factory') 281 ->disableOriginalConstructor() 282 ->getMock(); 283 284 $uiRenderer = $this->getMockBuilder('ILIAS\UI\Renderer') 285 ->disableOriginalConstructor() 286 ->getMock(); 287 288 $provider = new ilCertificateLearningHistoryProvider( 289 10, 290 $learningHistoryFactory, 291 $language, 292 $template, 293 $dic, 294 $userCertificateRepository, 295 $controller, 296 $certificateSettings, 297 $uiFactory, 298 $uiRenderer 299 ); 300 301 $this->assertEquals('Certificates', $provider->getName()); 302 } 303} 304