47 : void
48 {
49 $rendered = 'Rendered components';
50
51 $access = $this->getMockBuilder(ilAccess::class)->disableOriginalConstructor()->getMock();
52 $badge = $this->getMockBuilder(ilBadge::class)->disableOriginalConstructor()->getMock();
53 $container = $this->getMockBuilder(Container::class)->disableOriginalConstructor()->getMock();
54 $descriptive = $this->getMockBuilder(Descriptive::class)->getMock();
55 $factory = $this->getMockBuilder(UI::class)->disableOriginalConstructor()->getMock();
56 $language = $this->getMockBuilder(ilLanguage::class)->disableOriginalConstructor()->getMock();
57 $legacy = $this->getMockBuilder(Legacy\Content::class)->disableOriginalConstructor()->getMock();
58 $legacy_factory = $this->getMockBuilder(Legacy\Factory::class)->disableOriginalConstructor()->getMock();
59 $link = $this->getMockBuilder(Link::class)->disableOriginalConstructor()->getMock();
60 $listing = $this->getMockBuilder(Listing::class)->disableOriginalConstructor()->getMock();
61 $renderer = $this->getMockBuilder(Renderer::class)->disableOriginalConstructor()->getMock();
62 $standard_link = $this->getMockBuilder(StandardLink::class)->disableOriginalConstructor()->getMock();
63 $ui = $this->getMockBuilder(UIServices::class)->disableOriginalConstructor()->getMock();
64
65 $language->method('txt')->willReturnCallback(static fn(string $name): string => $name . ' translated');
66
67 $listing->expects(self::once())->method('descriptive')->with([
68 'object translated' => $legacy,
69 ])->willReturn($descriptive);
70
71 $link->method('standard')->with('Lorem', 'Some URL.')->willReturn($standard_link);
72
73 $factory->method('listing')->willReturn($listing);
74 $factory->method('link')->willReturn($link);
75 $legacy_factory->expects(self::once())->method('content')->with($rendered)->willReturn($legacy);
76 $factory->expects(self::once())->method('legacy')->willReturn($legacy_factory);
77
78 $renderer->expects(self::once())->method(
'render')->willReturn($rendered);
79
80 $ui->method('factory')->willReturn($factory);
81 $ui->method(
'renderer')->willReturn(
$renderer);
82
83 $access->expects(self::once())->method('checkAccess')->with('read', '', 89)->willReturn(true);
84
86 $container->method(
'language')->willReturn($language);
87 $container->method(
'access')->willReturn($access);
88
89 $parent_id = 6879;
90 $badge->method('getParentId')->willReturn($parent_id);
91 $badge->method('getParentMeta')->willReturn([
92 'id' => $parent_id,
93 'type' => 'crs',
94 'title' => 'Lorem',
95 ]);
96
97 $icon =
function (
int $id,
string $size,
string $type):
string {
98 $this->assertSame([6879,
'big',
'crs'], [
$id, $size, $type]);
99 return 'Some image path.';
100 };
101
102 $references_of = static fn(): array => [89];
103
104 $link_to =
function (
int $ref_id):
string {
105 $this->assertSame(89,
$ref_id);
106 return 'Some URL.';
107 };
108
109 $parent =
new BadgeParent(
$container, $icon, $references_of, $link_to);
110 $this->assertSame($descriptive, $parent->asComponent($badge));
111 }