ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ILIAS\ResourceStorage\Flavours\FlavourMachineTest Class Reference

Class FlavourMachineTest. More...

+ Inheritance diagram for ILIAS\ResourceStorage\Flavours\FlavourMachineTest:
+ Collaboration diagram for ILIAS\ResourceStorage\Flavours\FlavourMachineTest:

Public Member Functions

 testFactory ()
 
 definitionsToMachines ()
 
 testDefaultMachines (FlavourDefinition $d, string $machine)
 definitionsToMachines More...
 
 machinesToEngines ()
 
 testDefaultMachineEngines (string $machine, string $engine)
 machinesToEngines More...
 
 testNullMachineFallback (FlavourDefinition $d, string $machine, string $engine)
 definitionsToMachines More...
 
 testMachineResult ()
 
- Public Member Functions inherited from ILIAS\ResourceStorage\AbstractBaseTest
 getDummyStream ()
 

Protected Member Functions

 setUp ()
 
- Protected Member Functions inherited from ILIAS\ResourceStorage\AbstractBaseTest
 setUp ()
 
 getDummyUploadResult (string $file_name, string $mime_type, int $size)
 
 getDummyFileRevision (ResourceIdentification $id)
 

Private Member Functions

 createSVGColorChangeDefinition (string $color, string $to_color)
 

Private Attributes

 $imagick_mock
 
 $gd_mock
 
PHPUnit Framework MockObject MockObject $engine_factory_mock
 
array $engine_mocks = []
 

Additional Inherited Members

- Protected Attributes inherited from ILIAS\ResourceStorage\AbstractBaseTest
ILIAS ResourceStorage DummyIDGenerator $id_generator
 
 $db_mock
 

Detailed Description

Member Function Documentation

◆ createSVGColorChangeDefinition()

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::createSVGColorChangeDefinition ( string  $color,
string  $to_color 
)
private

Definition at line 203 of file FlavourMachineTest.php.

References ILIAS\MetaData\Repository\Validation\Data\__construct(), and ILIAS\ResourceStorage\Flavour\Flavours\__construct().

Referenced by ILIAS\ResourceStorage\Flavours\FlavourMachineTest\testMachineResult().

203  : FlavourDefinition
204  {
205  return new class ($color, $to_color) extends DummyDefinition {
206  private string $color;
207  private string $to_color;
208 
209  public function __construct(string $color, string $to_color)
210  {
211  $this->color = $color;
212  $this->to_color = $to_color;
214  'svg_color_changer',
215  'svg_color_changing_machine'
216  );
217  }
218 
219  public function getColor(): string
220  {
221  return $this->color;
222  }
223 
224  public function getToColor(): string
225  {
226  return $this->to_color;
227  }
228  };
229  }
__construct(VocabulariesInterface $vocabularies)
__construct(FlavourBuilder $flavour_builder, ResourceBuilder $resource_builder)
Definition: Flavours.php:34
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ definitionsToMachines()

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::definitionsToMachines ( )

Definition at line 106 of file FlavourMachineTest.php.

106  : array
107  {
108  return [
109  [new PagesToExtract(true), ExtractPages::class, ImagickEngineWithOptionalFFMpeg::class],
110  [new CropToSquare(), CropSquare::class, GDEngine::class],
111  [new FitToSquare(), FitSquare::class, GDEngine::class],
112  [new ToGreyScale(), MakeGreyScale::class, GDEngine::class],
113  ];
114  }

◆ machinesToEngines()

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::machinesToEngines ( )

Definition at line 133 of file FlavourMachineTest.php.

133  : array
134  {
135  return [
136  [ExtractPages::class, ImagickEngine::class],
137  [CropSquare::class, GDEngine::class],
138  [FitSquare::class, GDEngine::class],
139  [MakeGreyScale::class, GDEngine::class],
140  ];
141  }

◆ setUp()

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::setUp ( )
protected

Definition at line 71 of file FlavourMachineTest.php.

71  : void
72  {
73  $this->engine_factory_mock = $this->createMock(\ILIAS\ResourceStorage\Flavour\Engine\Factory::class);
74  }
Class ChatMainBarProvider .
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ testDefaultMachineEngines()

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::testDefaultMachineEngines ( string  $machine,
string  $engine 
)

machinesToEngines

Definition at line 146 of file FlavourMachineTest.php.

146  : void
147  {
148  $factory = new \ILIAS\ResourceStorage\Flavour\Engine\Factory();
149  $engin_instance = $factory->get(new $machine());
150  $this->assertInstanceOf($engine, $engin_instance);
151  }

◆ testDefaultMachines()

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::testDefaultMachines ( FlavourDefinition  $d,
string  $machine 
)

definitionsToMachines

Definition at line 120 of file FlavourMachineTest.php.

120  : void
121  {
122  $factory = new Factory($this->engine_factory_mock);
123  $this->engine_factory_mock->expects($this->exactly(1))
124  ->method('get')
125  ->willReturn(new NoEngine());
126 
127  $machine_instance = $factory->get($d);
128  $this->assertInstanceOf($machine, $machine_instance);
129  $machine_instance_second_get = $factory->get($d);
130  $this->assertSame($machine_instance, $machine_instance_second_get);
131  }

◆ testFactory()

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::testFactory ( )

Definition at line 76 of file FlavourMachineTest.php.

76  : void
77  {
78  $factory = new Factory($this->engine_factory_mock, [
79  \stdClass::class => \stdClass::class,
80  BrokenDummyMachine::class => BrokenDummyMachine::class
81  ]);
82 
83  // Not a machine
84  $definition = $this->createMock(FlavourDefinition::class);
85  $definition->expects($this->once())->method('getFlavourMachineId')->willReturn(\stdClass::class);
86 
87  $null_machine = $factory->get($definition);
88  $this->assertInstanceOf(NullMachine::class, $null_machine);
89  $this->assertEquals('Machine stdClass does not implement FlavourMachine', $null_machine->getReason());
90  $this->assertEquals('null_machine', $null_machine->getId());
91  $this->assertEquals(NoEngine::class, $null_machine->dependsOnEngine());
92 
93  // Broken machine
94  $definition = $this->createMock(FlavourDefinition::class);
95  $definition->expects($this->once())->method('getFlavourMachineId')->willReturn(BrokenDummyMachine::class);
96  $null_machine = $factory->get($definition);
97  $this->assertInstanceOf(NullMachine::class, $null_machine);
98  $this->assertEquals(
99  'Could not instantiate machine ILIAS\ResourceStorage\Flavours\BrokenDummyMachine',
100  $null_machine->getReason()
101  );
102  $this->assertEquals('null_machine', $null_machine->getId());
103  $this->assertEquals(NoEngine::class, $null_machine->dependsOnEngine());
104  }

◆ testMachineResult()

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::testMachineResult ( )

Definition at line 179 of file FlavourMachineTest.php.

References ILIAS\ResourceStorage\Flavours\FlavourMachineTest\createSVGColorChangeDefinition(), and ILIAS\Filesystem\Stream\Streams\ofString().

179  : void
180  {
181  $svg_stream = Streams::ofString(
182  '<?xml version="1.0" encoding="UTF-8"?>
183 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 155 155"><defs><style>.cls-1{fill:red;}</style></defs><g><g><rect class="cls-1" x="3" y="3" width="150" height="150"/><path d="M151.14,6V151.14H6V6H151.14m6-6H0V157.14H157.14V0h0Z"/></g></g></svg>'
184  );
185  $machine = new SVGDummyMachine();
186  ;
187  $definition = $this->createSVGColorChangeDefinition('red', 'blue');
188  $file_info = new FileInformation();
189 
190  $result = iterator_to_array($machine->processStream($file_info, $svg_stream, $definition));
191  $this->assertCount(1, $result);
192  $result_one = $result[0];
193  $this->assertInstanceOf(Result::class, $result_one);
194  $this->assertEquals($definition, $result_one->getDefinition());
195  $this->assertInstanceOf(FileStream::class, $result_one->getStream());
196  $this->assertEquals(
197  '<?xml version="1.0" encoding="UTF-8"?>
198 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 155 155"><defs><style>.cls-1{fill:blue;}</style></defs><g><g><rect class="cls-1" x="3" y="3" width="150" height="150"/><path d="M151.14,6V151.14H6V6H151.14m6-6H0V157.14H157.14V0h0Z"/></g></g></svg>',
199  (string)$result_one->getStream()
200  );
201  }
createSVGColorChangeDefinition(string $color, string $to_color)
static ofString(string $string)
Creates a new stream with an initial value.
Definition: Streams.php:41
+ Here is the call graph for this function:

◆ testNullMachineFallback()

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::testNullMachineFallback ( FlavourDefinition  $d,
string  $machine,
string  $engine 
)

definitionsToMachines

Definition at line 156 of file FlavourMachineTest.php.

156  : void
157  {
158  $factory = new Factory($this->engine_factory_mock);
159 
160  $engine_mock = $this->createMock(Engine::class);
161 
162  $this->engine_factory_mock->expects($this->once())
163  ->method('get')
164  ->willReturn($engine_mock);
165 
166  $engine_mock->expects($this->once())
167  ->method('isRunning')
168  ->willReturn(false);
169 
170  $machine_instance = $factory->get($d);
171  $this->assertInstanceOf(NullMachine::class, $machine_instance);
172  $this->assertEquals(
173  "Machine $machine depends on engine $engine which is not running or available.",
174  $machine_instance->getReason()
175  );
176  }

Field Documentation

◆ $engine_factory_mock

PHPUnit Framework MockObject MockObject ILIAS\ResourceStorage\Flavours\FlavourMachineTest::$engine_factory_mock
private

Definition at line 67 of file FlavourMachineTest.php.

◆ $engine_mocks

array ILIAS\ResourceStorage\Flavours\FlavourMachineTest::$engine_mocks = []
private

Definition at line 69 of file FlavourMachineTest.php.

◆ $gd_mock

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::$gd_mock
private

Definition at line 63 of file FlavourMachineTest.php.

◆ $imagick_mock

ILIAS\ResourceStorage\Flavours\FlavourMachineTest::$imagick_mock
private

Definition at line 59 of file FlavourMachineTest.php.


The documentation for this class was generated from the following file: