Skip to content

Commit 313019d

Browse files
committed
Merge pull request #968 from Vinai/ui-dataprovider-config-fileresolver
Apply pattern matching datasource config files
2 parents 6cd1721 + 181be0d commit 313019d

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

app/code/Magento/Ui/DataProvider/Config/FileResolver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public function get($filename, $scope)
4545
{
4646
$iterator = $this->iteratorFactory->create(
4747
$this->directoryRead,
48-
$this->directoryRead->search('/*/*/etc/data_source/*')
48+
$this->directoryRead->search('/*/*/etc/data_source/' . $filename)
4949
);
5050
return $iterator;
5151
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace Magento\Ui\DataProvider\Config;
4+
5+
use Magento\Framework\Filesystem;
6+
use Magento\Ui\DataProvider\Config\FileResolver;
7+
use Magento\Framework\Config\FileIteratorFactory;
8+
9+
class FileResolverTest extends \PHPUnit_Framework_TestCase
10+
{
11+
/**
12+
* @var \Magento\Framework\Filesystem\Directory\Read | \PHPUnit_Framework_MockObject_MockObject
13+
*/
14+
private $mockDirectoryRead;
15+
16+
/**
17+
* @var FileResolver
18+
*/
19+
private $fileResolver;
20+
21+
public function setUp()
22+
{
23+
$this->mockDirectoryRead = $this->getMockBuilder('Magento\Framework\Filesystem\Directory\Read')
24+
->disableOriginalConstructor()
25+
->getMock();
26+
$stubFileIteratorFactory = $this->getMockBuilder('Magento\Framework\Config\FileIteratorFactory')
27+
->disableOriginalConstructor()
28+
->getMock();
29+
$stubFilesystem = $this->getMockBuilder('Magento\Framework\Filesystem')
30+
->disableOriginalConstructor()
31+
->getMock();
32+
$stubFilesystem->expects($this->any())
33+
->method('getDirectoryRead')
34+
->willReturn($this->mockDirectoryRead);
35+
$this->fileResolver = new FileResolver($stubFilesystem, $stubFileIteratorFactory);
36+
}
37+
38+
public function testItAppliesTheFilenamePattern()
39+
{
40+
$this->mockDirectoryRead->expects($this->once())
41+
->method('search')
42+
->with($this->matchesRegularExpression('#\*\.xml$#'))
43+
->willReturn([]);
44+
45+
$this->fileResolver->get('*.xml', '');
46+
}
47+
}

0 commit comments

Comments
 (0)