ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilWebResourceItemInternalTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21use PHPUnit\Framework\TestCase;
22
27class ilWebResourceItemInternalTest extends TestCase
28{
29 protected function getItem(string $target, ilWebLinkParameter ...$parameters): ilWebLinkItemInternal
30 {
31 $item = $this->getMockBuilder(ilWebLinkItemInternal::class)
32 ->setConstructorArgs([
33 0,
34 1,
35 'title',
36 null,
37 $target,
38 true,
39 new DateTimeImmutable(),
40 new DateTimeImmutable(),
41 $parameters
42 ])
43 ->onlyMethods(['appendParameter', 'getStaticLink'])
44 ->getMock();
45 $item->method('appendParameter')->willReturnCallback(
46 fn(string $link, string $key, string $value) => $link . '.' . $key . '.' . $value
47 );
48 $item->method('getStaticLink')->willReturnCallback(
49 fn(int $ref_id, string $type) => $type . ':' . $ref_id
50 );
51 return $item;
52 }
53
54 public function testGetResolvedLink(): void
55 {
56 $param1 = $this->getMockBuilder(ilWebLinkParameter::class)
57 ->disableOriginalConstructor()
58 ->onlyMethods(['appendToLink'])
59 ->getMock();
60 $param1->expects($this->once())
61 ->method('appendToLink')
62 ->with('tar:13')
63 ->willReturn('tar:13?param1');
64 $param2 = $this->getMockBuilder(ilWebLinkParameter::class)
65 ->disableOriginalConstructor()
66 ->onlyMethods(['appendToLink'])
67 ->getMock();
68 $param2->expects($this->once())
69 ->method('appendToLink')
70 ->with('tar:13?param1')
71 ->willReturn('tar:13?param1&param2');
72
73 $item = $this->getItem('tar|13', $param1, $param2);
74 $this->assertSame(
75 'tar:13?param1&param2',
76 $item->getResolvedLink(true)
77 );
78 $this->assertSame(
79 'tar:13',
80 $item->getResolvedLink(false)
81 );
82
83 $item = $this->getItem('wpage|14', $param1, $param2);
84 $this->assertSame(
85 'wiki:0.target.wiki_wpage_14',
86 $item->getResolvedLink(false)
87 );
88
89 $item = $this->getItem('term|15', $param1, $param2);
90 $this->assertSame(
91 'git:0.target.git_15',
92 $item->getResolvedLink(false)
93 );
94
95 $item = $this->getItem('page|16', $param1, $param2);
96 $this->assertSame(
97 'pg:16',
98 $item->getResolvedLink(false)
99 );
100 }
101}
Immutable class for internal Web Link items.
Immutable class for parameters attached to Web Link items.
Unit tests for ilWebLinkItemInternal.
getItem(string $target, ilWebLinkParameter ... $parameters)
$ref_id
Definition: ltiauth.php:66