ILIAS  trunk Revision v13.0_alpha-52-g21c366bbdd4
TileTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21namespace ILIAS\Badge\test;
22
23use ilCtrl;
24use ilBadge;
25use ilLanguage;
27use RuntimeException;
33use PHPUnit\Framework\TestCase;
35use PHPUnit\Framework\Attributes\DataProvider;
36use ILIAS\UI\Component\Image\Image as ImageComponent;
37use ILIAS\UI\Component\Modal\Modal as ModalComponent;
38use ILIAS\UI\Component\Button\Button as ButtonComponent;
39
40use function count;
41
42class TileTest extends TestCase
43{
44 public function testConstruct(): void
45 {
46 $container = $this->getMockBuilder(Container::class)->disableOriginalConstructor()->getMock();
47 $parent = $this->getMockBuilder(BadgeParent::class)->disableOriginalConstructor()->getMock();
48 $modal = $this->getMockBuilder(Modal::class)->disableOriginalConstructor()->getMock();
49 $format_date = static fn(int $x): string => '';
50
51 $this->assertInstanceOf(Tile::class, new Tile($container, $parent, $modal, $format_date));
52 }
53
54 #[DataProvider('provideAsVariants')]
55 public function testAs(string $method, array $expected_components): void
56 {
57 $badge_image_rid_name = '43242-324234-324234-234233';
58 $badge = $this->getMockBuilder(ilBadge::class)->disableOriginalConstructor()->getMock();
59 $modal_content = $this->getMockBuilder(ModalContent::class)->disableOriginalConstructor()->getMock();
60 $container = $this->getMockBuilder(Container::class)->disableOriginalConstructor()->getMock();
61 $parent = $this->getMockBuilder(BadgeParent::class)->disableOriginalConstructor()->getMock();
62 $modal = $this->getMockBuilder(Modal::class)->disableOriginalConstructor()->getMock();
63 $ui = $this->getMockBuilder(UIServices::class)->disableOriginalConstructor()->getMock();
64 $ctrl = $this->getMockBuilder(ilCtrl::class)->disableOriginalConstructor()->getMock();
65 $language = $this->getMockBuilder(ilLanguage::class)->disableOriginalConstructor()->getMock();
66 $resource_storage = $this->getMockBuilder(Services::class)->disableOriginalConstructor()->getMock();
67 $language->method('txt')->willReturnCallback(
68 static fn(string $lang_key) => 'Translated: ' . $lang_key
69 );
70 $container->method('ui')->willReturn($ui);
71 $container->method('ctrl')->willReturn($ctrl);
72 $container->method('language')->willReturn($language);
73 $container->method('resourceStorage')->willReturn($resource_storage);
74 $format_date = function (int $x): void {
75 throw new RuntimeException('Should not be called.');
76 };
77 $badge->method('getImageRid')->willReturn($badge_image_rid_name);
78 $modal_content->method('badge')->willReturn($badge);
79
80 $tile = new Tile($container, $parent, $modal, $format_date);
81
82 $components = $tile->$method($modal_content);
83
84 $this->assertCount(count($expected_components), $components);
85 array_map($this->assertInstanceOf(...), $expected_components, $components);
86 }
87
88 public static function provideAsVariants(): array
89 {
90 return [
91 'Test asImage' => ['asImage', [ModalComponent::class, ImageComponent::class]],
92 'Test asTitle' => ['asTitle', [ModalComponent::class, ButtonComponent::class]],
93 'Test asTitleWithLeadingImage' => [
94 'asTitleWithLeadingImage',
95 [ModalComponent::class, ImageComponent::class, ButtonComponent::class]
96 ],
97 ];
98 }
99}
$components
testAs(string $method, array $expected_components)
Definition: TileTest.php:55
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:38
Provides fluid interface to RBAC services.
Definition: UIServices.php:25
Class ilCtrl provides processing control methods.
language handling
This describes commonalities between standard and primary buttons.
Definition: Button.php:34
This describes commonalities between the different modals.
Definition: Modal.php:35
$container
@noRector
Definition: wac.php:39