ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
TileTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 namespace ILIAS\Badge\test;
22 
33 use ilBadge;
34 use ilCtrl;
35 use ilLanguage;
38 
39 class TileTest extends TestCase
40 {
41  public function testConstruct(): void
42  {
43  $container = $this->getMockBuilder(Container::class)->disableOriginalConstructor()->getMock();
44  $parent = $this->getMockBuilder(BadgeParent::class)->disableOriginalConstructor()->getMock();
45  $modal = $this->getMockBuilder(Modal::class)->disableOriginalConstructor()->getMock();
46  $sign_file = static fn(string $x): string => '';
47  $format_date = static fn(int $x): string => '';
48 
49  $this->assertInstanceOf(Tile::class, new Tile($container, $parent, $modal, $sign_file, $format_date));
50  }
51 
52  #[DataProvider('provideAsVariants')]
53  public function testAs(string $method, array $expected_components): void
54  {
55  $signed_file = '/some-signed-file';
56  $badge_image_path = '/file-path';
57  $badge_image_name = 'Dummy image';
58  $badge_image_rid_name = '43242-324234-324234-234233';
59  $badge = $this->getMockBuilder(ilBadge::class)->disableOriginalConstructor()->getMock();
60  $modal_content = $this->getMockBuilder(ModalContent::class)->disableOriginalConstructor()->getMock();
61  $container = $this->getMockBuilder(Container::class)->disableOriginalConstructor()->getMock();
62  $parent = $this->getMockBuilder(BadgeParent::class)->disableOriginalConstructor()->getMock();
63  $modal = $this->getMockBuilder(Modal::class)->disableOriginalConstructor()->getMock();
64  $ui = $this->getMockBuilder(UIServices::class)->disableOriginalConstructor()->getMock();
65  $ctrl = $this->getMockBuilder(ilCtrl::class)->disableOriginalConstructor()->getMock();
66  $language = $this->getMockBuilder(ilLanguage::class)->disableOriginalConstructor()->getMock();
67  $resource_storage = $this->getMockBuilder(Services::class)->disableOriginalConstructor()->getMock();
68  $language->method('txt')->willReturnCallback(
69  static fn(string $lang_key) => 'Translated: ' . $lang_key
70  );
71  $container->method('ui')->willReturn($ui);
72  $container->method('ctrl')->willReturn($ctrl);
73  $container->method('language')->willReturn($language);
74  $container->method('resourceStorage')->willReturn($resource_storage);
75  $format_date = function (int $x): void {
76  throw new \RuntimeException('Should not be called.');
77  };
78  $sign_file = function (string $path) use ($signed_file, $badge_image_path): string {
79  return $signed_file;
80  };
81 
82  $badge->method('getImagePath')->willReturn($badge_image_path);
83  $badge->method('getImage')->willReturn($badge_image_name);
84  $badge->method('getImageRid')->willReturn($badge_image_rid_name);
85  $modal_content->method('badge')->willReturn($badge);
86 
87  $tile = new Tile($container, $parent, $modal, $sign_file, $format_date);
88 
89  $components = $tile->$method($modal_content);
90 
91  $this->assertCount(\count($expected_components), $components);
92  array_map($this->assertInstanceOf(...), $expected_components, $components);
93  }
94 
95  public static function provideAsVariants(): array
96  {
97  return [
98  'Test asImage' => ['asImage', [ModalComponent::class, ImageComponent::class]],
99  'Test asTitle' => ['asTitle', [ModalComponent::class, ButtonComponent::class]],
100  'Test asTitleWithLeadingImage' => [
101  'asTitleWithLeadingImage',
102  [ModalComponent::class, ImageComponent::class, ButtonComponent::class]
103  ],
104  ];
105  }
106 }
testAs(string $method, array $expected_components)
Definition: TileTest.php:53
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$path
Definition: ltiservices.php:29
$components
$container
Definition: wac.php:36
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...