Skip to content

Commit 6a72c15

Browse files
committed
extend tests for parser type overwrite
1 parent 96d01c1 commit 6a72c15

File tree

1 file changed

+73
-18
lines changed

1 file changed

+73
-18
lines changed

tests/MagentoHackathon/Composer/Magento/InstallerTest.php

Lines changed: 73 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class InstallerTest extends \PHPUnit_Framework_TestCase
1414
*/
1515
protected $object;
1616

17+
/** @var Composer */
1718
protected $composer;
1819
protected $config;
1920
protected $vendorDir;
@@ -110,26 +111,16 @@ public function testSupports()
110111
}
111112

112113
/**
113-
* @covers MagentoHackathon\Composer\Magento\Installer::getParser
114+
* @dataProvider parserTypeProvider
114115
*/
115-
public function testGetModmanParser()
116+
public function testGetParser( $packageExtra, $expectedClass, $composerExtra, $packageName, $prepareCallback )
116117
{
117-
// getParser returns a modman parser by default, if map isn't set
118-
$package = $this->createPackageMock(array('map' => null));
119-
120-
touch($this->vendorDir . DIRECTORY_SEPARATOR . 'modman');
121-
122-
$this->assertInstanceOf('MagentoHackathon\Composer\Magento\ModmanParser', $this->object->getParser($package));
123-
}
124-
125-
/**
126-
* @covers MagentoHackathon\Composer\Magento\Installer::getParser
127-
*/
128-
public function testGetMapParser()
129-
{
130-
$package = $this->createPackageMock(array('map' => array('test' => 'test')));
131-
132-
$this->assertInstanceOf('MagentoHackathon\Composer\Magento\MapParser', $this->object->getParser($package));
118+
$composerExtra = array_merge( $composerExtra, $this->composer->getPackage()->getExtra() );
119+
$this->composer->setPackage($this->createPackageMock($composerExtra));
120+
121+
$package = $this->createPackageMock( $packageExtra, $packageName );
122+
$prepareCallback($this->vendorDir);
123+
$this->assertInstanceOf($expectedClass, $this->object->getParser($package));
133124
}
134125

135126
public function deployMethodProvider()
@@ -178,4 +169,68 @@ public function deployMethodProvider()
178169
),
179170
);
180171
}
172+
173+
public function parserTypeProvider()
174+
{
175+
$mapOverwrite = array(
176+
'example/test2' => array('test' => 'test2'),
177+
'example/test3' => array('test' => 'test3'),
178+
);
179+
return array(
180+
array(
181+
'packageExtra' => array('map' => array('test' => 'test')),
182+
'expectedClass' => 'MagentoHackathon\Composer\Magento\MapParser',
183+
'composerExtra' => array( 'magento-map-overwrite' => $mapOverwrite ),
184+
'packageName' => 'example/test1',
185+
'prepareCallback' => function($vendorDir){
186+
187+
},
188+
),
189+
array(
190+
'packageExtra' => array('map' => null),
191+
'expectedClass' => 'MagentoHackathon\Composer\Magento\ModmanParser',
192+
'composerExtra' => array( 'magento-map-overwrite' => $mapOverwrite ),
193+
'packageName' => 'example/test1',
194+
'prepareCallback' => function($vendorDir){
195+
touch($vendorDir . DIRECTORY_SEPARATOR . 'modman');
196+
},
197+
),
198+
array(
199+
'packageExtra' => array('map' => null, 'package-xml' => 'package.xml'),
200+
'expectedClass' => 'MagentoHackathon\Composer\Magento\PackageXmlParser',
201+
'composerExtra' => array( 'magento-map-overwrite' => $mapOverwrite ),
202+
'packageName' => 'example/test1',
203+
'prepareCallback' => function($vendorDir){
204+
touch($vendorDir . DIRECTORY_SEPARATOR . 'package.xml');
205+
},
206+
),
207+
array(
208+
'packageExtra' => array('map' => array('test' => 'test')),
209+
'expectedClass' => 'MagentoHackathon\Composer\Magento\MapParser',
210+
'composerExtra' => array( 'magento-map-overwrite' => $mapOverwrite ),
211+
'packageName' => 'example/test1',
212+
'prepareCallback' => function($vendorDir){
213+
214+
},
215+
),
216+
array(
217+
'packageExtra' => array('map' => null),
218+
'expectedClass' => 'MagentoHackathon\Composer\Magento\ModmanParser',
219+
'composerExtra' => array( 'magento-map-overwrite' => $mapOverwrite ),
220+
'packageName' => 'example/test1',
221+
'prepareCallback' => function($vendorDir){
222+
touch($vendorDir . DIRECTORY_SEPARATOR . 'modman');
223+
},
224+
),
225+
array(
226+
'packageExtra' => array('map' => null),
227+
'expectedClass' => 'MagentoHackathon\Composer\Magento\MapParser',
228+
'composerExtra' => array( 'magento-map-overwrite' => $mapOverwrite ),
229+
'packageName' => 'example/test2',
230+
'prepareCallback' => function($vendorDir){
231+
touch($vendorDir . DIRECTORY_SEPARATOR . 'modman');
232+
},
233+
),
234+
);
235+
}
181236
}

0 commit comments

Comments
 (0)