12 use Magento\Framework\Config\Composer\PackageFactory;
33 public function testPackagesFromComposerSuggest(
34 array $moduleDirectories,
35 callable $composerJsonGenerator,
36 array $suggestionsFromLockFile,
37 array $expectedPackages
40 $composerInformation = $this->getMockBuilder(ComposerInformation::class)
41 ->disableOriginalConstructor()
43 $composerInformation->method(
'getSuggestedPackages')
44 ->willReturn($suggestionsFromLockFile);
47 $filesystem = $this->getMockBuilder(Filesystem::class)->disableOriginalConstructor()->getMock();
50 $packageFactory = $this->getMockBuilder(PackageFactory::class)
51 ->disableOriginalConstructor()
52 ->setMethods([
'create'])
54 $packageFactory->method(
'create')
55 ->willReturnCallback(
function ($args) {
56 return new Package($args[
'json']);
61 ->getMockForAbstractClass();
68 $directoryReadFactory = $this->getMockBuilder(
Filesystem\Directory\ReadFactory::class)
69 ->disableOriginalConstructor()
70 ->setMethods([
'create'])
72 $directoryReadFactory->method(
'create')
73 ->willReturnMap($composerJsonGenerator($this));
82 $this->assertEquals($expectedPackages, $dependency->getSampleDataPackages());
92 'moduleDirectories' => [
93 'app/code/LocalModule',
94 'app/code/LocalModuleWithoutComposerJson',
95 'vendor/company/module',
96 'vendor/company2/module/src' 101 'app/code/LocalModule',
103 $test->stubComposerJsonReader(
105 'name' =>
'local/module',
113 'app/code/LocalModuleWithoutComposerJson',
115 $test->stubFileNotFoundReader()
118 'vendor/company/module',
120 $test->stubComposerJsonReader(
122 'name' =>
'company/module',
130 'vendor/company2/module/src/..',
132 $test->stubComposerJsonReader(
134 'name' =>
'company2/module',
142 'vendor/company2/module/src',
144 $test->stubFileNotFoundReader()
147 'vendor/company/module/..',
149 $test->stubFileNotFoundReader()
152 'app/code/LocalModuleWithoutComposerJson/..',
154 $test->stubFileNotFoundReader()
157 'app/code/LocalModule/..',
159 $test->stubFileNotFoundReader()
166 'thirdparty/something-else' =>
'Just a suggested package',
168 'expectedPackages' => [
169 'magento/foo-sample-data' =>
'100.0.0',
170 'thirdparty/bar-sample-data' =>
'1.2.3',
171 'local/module-sample-data' =>
'0.1.0',
172 'company/module-sample-data' =>
'1.0.0-beta',
173 'company2/module-sample-data' =>
'1.10',
185 $stub = $this->getMockBuilder(
Filesystem\Directory\ReadInterface::class)
186 ->getMockForAbstractClass();
187 $stub->method(
'isExist')
188 ->with(
'composer.json')
190 $stub->method(
'isReadable')
191 ->with(
'composer.json')
193 $stub->method(
'readFile')
194 ->with(
'composer.json')
195 ->willReturn(json_encode($composerJsonContent));
204 $stub = $this->getMockBuilder(
Filesystem\Directory\ReadInterface::class)
205 ->getMockForAbstractClass();
206 $stub->method(
'isExist')
207 ->with(
'composer.json')
209 $stub->method(
'readFile')
210 ->with(
'composer.json')
const SAMPLE_DATA_SUGGEST
static dataPackagesFromComposerSuggest()
stubComposerJsonReader(array $composerJsonContent)