ILIAS  trunk Revision v11.0_alpha-1831-g8615d53dadb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\ResourceStorage\Flavours\FlavourTest Class Reference

Class FlavorTest. More...

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

Public Member Functions

 testDefinitionVariantNameLengths ()
 
 testHasFlavour ()
 
 testNewFlavour ()
 
- Public Member Functions inherited from ILIAS\ResourceStorage\AbstractTestBase
 getDummyStream ()
 

Data Fields

MockObject $resource_builder
 

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)
 

Protected Attributes

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

Private Attributes

const BASE_DIR = '/var'
 
Factory $machine_factory
 
StorageHandler $storage_handler_mock
 
FlavourRepository $flavour_repo
 
StreamAccess $stream_access
 

Detailed Description

Class FlavorTest.

Author
Fabian Schmid fabia.nosp@m.n@sr.nosp@m..solu.nosp@m.tion.nosp@m.s

Definition at line 46 of file FlavourTest.php.

Member Function Documentation

◆ setUp()

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

Definition at line 63 of file FlavourTest.php.

63  : void
64  {
65  $this->machine_factory = new Factory(new \ILIAS\ResourceStorage\Flavour\Engine\Factory());
66  $this->storage_handler_mock = $this->createMock(StorageHandler::class);
67  $this->storage_handler_mock->expects($this->any())->method('isPrimary')->willReturn(true);
68  $this->storage_handler_factory = new StorageHandlerFactory([
69  $this->storage_handler_mock
70  ], self::BASE_DIR);
71  $this->flavour_repo = $this->createMock(FlavourRepository::class);
72  $this->resource_builder = $this->createMock(ResourceBuilder::class);
73  $this->stream_access = new StreamAccess(self::BASE_DIR, $this->storage_handler_factory);
74  }
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...

◆ testDefinitionVariantNameLengths()

ILIAS\ResourceStorage\Flavours\FlavourTest::testDefinitionVariantNameLengths ( )

Definition at line 77 of file FlavourTest.php.

77  : void
78  {
79  $flavour_builder = new FlavourBuilder(
80  $this->flavour_repo,
81  $this->machine_factory,
82  $this->resource_builder,
83  $this->storage_handler_factory,
84  $this->stream_access,
85  new Subject()
86  );
87 
88  // Length OK
89  $flavour_definition = $this->createMock(FlavourDefinition::class);
90  $flavour_definition->expects($this->exactly(2))
91  ->method('getVariantName')
92  ->willReturn(str_repeat('a', 768));
93 
94  $flavour_builder->has(
95  new ResourceIdentification('1'),
96  $flavour_definition
97  );
98  $this->assertTrue(true); // no exception thrown
99 
100  // Too long
101  $flavour_definition = $this->createMock(FlavourDefinition::class);
102  $flavour_definition->expects($this->exactly(2))
103  ->method('getVariantName')
104  ->willReturn(str_repeat('a', 769));
105 
106  $this->expectException(\InvalidArgumentException::class);
107  $flavour_builder->has(
108  new ResourceIdentification('1'),
109  $flavour_definition
110  );
111  }

◆ testHasFlavour()

ILIAS\ResourceStorage\Flavours\FlavourTest::testHasFlavour ( )

Definition at line 113 of file FlavourTest.php.

113  : void
114  {
115  // Data
116  $rid_one = new ResourceIdentification('1');
117  $rid_two = new ResourceIdentification('2');
118  $flavour_builder = new FlavourBuilder(
119  $this->flavour_repo,
120  $this->machine_factory,
121  $this->resource_builder,
122  $this->storage_handler_factory,
123  $this->stream_access,
124  new Subject()
125  );
126 
127  // Expectations
128  $flavour_definition = $this->createMock(FlavourDefinition::class);
129  $flavour_definition->expects($this->exactly(4))
130  ->method('getVariantName')
131  ->willReturn('short');
132 
133 
134  $consecutive = [
135  [[$rid_one, 0, $flavour_definition], false],
136  [[$rid_two, 0, $flavour_definition], true],
137  ];
138  $this->flavour_repo
139  ->expects($this->exactly(2))
140  ->method('has')
141  ->willReturnCallback(
142  function ($rid, $mid, $def) use (&$consecutive) {
143  [$expected, $ret] = array_shift($consecutive);
144  $this->assertEquals($expected, [$rid, $mid, $def]);
145  return $ret;
146  }
147  );
148 
149  // Assertions
150  $this->assertFalse(
151  $flavour_builder->has(
152  $rid_one,
153  $flavour_definition
154  )
155  );
156  $this->assertTrue(
157  $flavour_builder->has(
158  $rid_two,
159  $flavour_definition
160  )
161  );
162  }

◆ testNewFlavour()

ILIAS\ResourceStorage\Flavours\FlavourTest::testNewFlavour ( )

Definition at line 164 of file FlavourTest.php.

References ILIAS\Filesystem\Stream\Streams\ofString().

164  : void
165  {
166  // Data
167  $rid_one = new ResourceIdentification('1');
168  $flavour_builder = new FlavourBuilder(
169  $this->flavour_repo,
170  $this->machine_factory,
171  $this->resource_builder,
172  $this->storage_handler_factory,
173  $this->stream_access,
174  new Subject()
175  );
176 
177  // Expectations
178  $flavour_definition = $this->createMock(FlavourDefinition::class);
179  $flavour_definition->expects($this->any())
180  ->method('getVariantName')
181  ->willReturn('short');
182 
183  $this->flavour_repo->expects($this->once())
184  ->method('has')
185  ->with($rid_one, 0, $flavour_definition)
186  ->willReturn(false);
187 
188  $this->resource_builder->expects($this->exactly(1))
189  ->method('has')
190  ->with($rid_one)
191  ->willReturn(true);
192 
193  $revision = $this->createMock(FileRevision::class);
194 
195  $revision->expects($this->once())
196  ->method('getInformation')
197  ->willReturn($this->createMock(FileInformation::class));
198 
199  $stream = Streams::ofString('test');
200 
201  $resource = $this->createMock(StorableResource::class);
202 
203  $this->resource_builder->expects($this->once())
204  ->method('get')
205  ->with($rid_one)
206  ->willReturn($resource);
207 
208  $resource->expects($this->any())
209  ->method('getCurrentRevision')
210  ->willReturn($revision);
211 
212 
213  $this->resource_builder->expects($this->exactly(1))
214  ->method('extractStream')
215  ->with($revision)
216  ->willReturn($stream);
217 
218 
219  // Assertions
220  $flavour = $flavour_builder->get(
221  $rid_one,
222  $flavour_definition
223  );
224  $this->assertInstanceOf(Flavour::class, $flavour);
225  $stream_resolvers = $flavour->getStreamResolvers();
226  $this->assertCount(1, $stream_resolvers);
227  $first_stream_access = $stream_resolvers[0];
228  $this->assertInstanceOf(StreamResolver::class, $first_stream_access);
229  $resolved_stream = $first_stream_access->getStream();
230  $this->assertEquals('empty', (string) $resolved_stream);
231  }
static ofString(string $string)
Creates a new stream with an initial value.
Definition: Streams.php:41
+ Here is the call graph for this function:

Field Documentation

◆ $flavour_repo

FlavourRepository ILIAS\ResourceStorage\Flavours\FlavourTest::$flavour_repo
private

Definition at line 59 of file FlavourTest.php.

◆ $machine_factory

Factory ILIAS\ResourceStorage\Flavours\FlavourTest::$machine_factory
private

Definition at line 53 of file FlavourTest.php.

◆ $resource_builder

MockObject ILIAS\ResourceStorage\Flavours\FlavourTest::$resource_builder

Definition at line 48 of file FlavourTest.php.

◆ $storage_handler_factory

ILIAS\ResourceStorage\Flavours\FlavourTest::$storage_handler_factory
protected

Definition at line 58 of file FlavourTest.php.

◆ $storage_handler_mock

StorageHandler ILIAS\ResourceStorage\Flavours\FlavourTest::$storage_handler_mock
private

Definition at line 54 of file FlavourTest.php.

◆ $stream_access

StreamAccess ILIAS\ResourceStorage\Flavours\FlavourTest::$stream_access
private

Definition at line 60 of file FlavourTest.php.

◆ BASE_DIR

const ILIAS\ResourceStorage\Flavours\FlavourTest::BASE_DIR = '/var'
private

Definition at line 52 of file FlavourTest.php.


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