ILIAS  trunk Revision v11.0_alpha-2662-g519ff7d528f
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 ()
 
 testDefaultMachines (FlavourDefinition $d, string $machine)
 
 testDefaultMachineEngines (string $machine, string $engine)
 
 testNullMachineFallback (FlavourDefinition $d, string $machine, string $engine)
 
 testMachineResult ()
 
- Public Member Functions inherited from ILIAS\ResourceStorage\AbstractTestBase
 getDummyStream ()
 

Static Public Member Functions

static definitionsToMachines ()
 
static machinesToEngines ()
 

Protected Member Functions

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

Private Member Functions

 createSVGColorChangeDefinition (string $color, string $to_color)
 

Private Attributes

MockObject $engine_factory_mock
 

Additional Inherited Members

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

Detailed Description

Member Function Documentation

◆ createSVGColorChangeDefinition()

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

Definition at line 185 of file FlavourMachineTest.php.

References ILIAS\ResourceStorage\Flavour\Flavours\__construct(), and ILIAS\GlobalScreen\Provider\__construct().

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

185  : FlavourDefinition
186  {
187  return new class ($color, $to_color) extends DummyDefinition {
188  public function __construct(private string $color, private string $to_color)
189  {
191  'svg_color_changer',
192  'svg_color_changing_machine'
193  );
194  }
195 
196  public function getColor(): string
197  {
198  return $this->color;
199  }
200 
201  public function getToColor(): string
202  {
203  return $this->to_color;
204  }
205  };
206  }
__construct(Container $dic, ilPlugin $plugin)
__construct(protected FlavourBuilder $flavour_builder, protected ResourceBuilder $resource_builder)
Definition: Flavours.php:32
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ definitionsToMachines()

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

Definition at line 98 of file FlavourMachineTest.php.

98  : \Iterator
99  {
100  yield [new PagesToExtract(true), ExtractPages::class, ImagickEngineWithOptionalFFMpeg::class];
101  yield [new CropToSquare(), CropSquare::class, GDEngine::class];
102  yield [new FitToSquare(), FitSquare::class, GDEngine::class];
103  yield [new ToGreyScale(), MakeGreyScale::class, GDEngine::class];
104  }

◆ machinesToEngines()

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

Definition at line 121 of file FlavourMachineTest.php.

121  : \Iterator
122  {
123  yield [ExtractPages::class, ImagickEngine::class];
124  yield [CropSquare::class, GDEngine::class];
125  yield [FitSquare::class, GDEngine::class];
126  yield [MakeGreyScale::class, GDEngine::class];
127  }

◆ setUp()

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

Definition at line 63 of file FlavourMachineTest.php.

63  : void
64  {
65  $this->engine_factory_mock = $this->createMock(\ILIAS\ResourceStorage\Flavour\Engine\Factory::class);
66  }
Interface Observer Contains several chained tasks and infos about them.
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 
)

Definition at line 130 of file FlavourMachineTest.php.

130  : void
131  {
132  $factory = new \ILIAS\ResourceStorage\Flavour\Engine\Factory();
133  $engine_instance = $factory->get(new $machine());
134  $this->assertInstanceOf($engine, $engine_instance);
135  }

◆ testDefaultMachines()

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

Definition at line 108 of file FlavourMachineTest.php.

108  : void
109  {
110  $factory = new Factory($this->engine_factory_mock);
111  $this->engine_factory_mock->expects($this->once())
112  ->method('get')
113  ->willReturn(new NoEngine());
114 
115  $machine_instance = $factory->get($d);
116  $this->assertInstanceOf($machine, $machine_instance);
117  $machine_instance_second_get = $factory->get($d);
118  $this->assertSame($machine_instance, $machine_instance_second_get);
119  }

◆ testFactory()

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

Definition at line 68 of file FlavourMachineTest.php.

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

◆ testMachineResult()

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

Definition at line 161 of file FlavourMachineTest.php.

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

161  : void
162  {
163  $svg_stream = Streams::ofString(
164  '<?xml version="1.0" encoding="UTF-8"?>
165 <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>'
166  );
167  $machine = new SVGDummyMachine();
168  ;
169  $definition = $this->createSVGColorChangeDefinition('red', 'blue');
170  $file_info = new FileInformation();
171 
172  $result = iterator_to_array($machine->processStream($file_info, $svg_stream, $definition));
173  $this->assertCount(1, $result);
174  $result_one = $result[0];
175  $this->assertInstanceOf(Result::class, $result_one);
176  $this->assertEquals($definition, $result_one->getDefinition());
177  $this->assertInstanceOf(FileStream::class, $result_one->getStream());
178  $this->assertSame(
179  '<?xml version="1.0" encoding="UTF-8"?>
180 <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>',
181  (string) $result_one->getStream()
182  );
183  }
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 
)

Definition at line 138 of file FlavourMachineTest.php.

138  : void
139  {
140  $factory = new Factory($this->engine_factory_mock);
141 
142  $engine_mock = $this->createMock(Engine::class);
143 
144  $this->engine_factory_mock->expects($this->once())
145  ->method('get')
146  ->willReturn($engine_mock);
147 
148  $engine_mock->expects($this->once())
149  ->method('isRunning')
150  ->willReturn(false);
151 
152  $machine_instance = $factory->get($d);
153  $this->assertInstanceOf(NullMachine::class, $machine_instance);
154  $this->assertSame(
155  "Machine $machine depends on engine $engine which is not running or available.",
156  $machine_instance->getReason()
157  );
158  }

Field Documentation

◆ $engine_factory_mock

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

Definition at line 60 of file FlavourMachineTest.php.


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