1
0
Fork 0

Merge remote-tracking branch 'adrianosferreira/add-suggest-in-json-by-cli'

pull/8538/head
Jordi Boggiano 2020-01-13 17:36:10 +01:00
commit f203b3eb41
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC
3 changed files with 60 additions and 0 deletions

View File

@ -601,6 +601,18 @@ EOT
return 0;
}
if (preg_match('/^suggest\.(.+)/', $settingKey, $matches)) {
if ($input->getOption('unset')) {
$this->configSource->removeProperty($settingKey);
return 0;
}
$this->configSource->addProperty($settingKey, $values[0]);
return 0;
}
// handle platform
if (preg_match('/^platform\.(.+)/', $settingKey, $matches)) {
if ($input->getOption('unset')) {

View File

@ -167,6 +167,10 @@ class JsonManipulator
public function addProperty($name, $value)
{
if (substr($name, 0, 8) === 'suggest.') {
return $this->addSubNode('suggest', substr($name, 8), $value);
}
if (substr($name, 0, 6) === 'extra.') {
return $this->addSubNode('extra', substr($name, 6), $value);
}
@ -180,6 +184,10 @@ class JsonManipulator
public function removeProperty($name)
{
if (substr($name, 0, 8) === 'suggest.') {
return $this->removeSubNode('suggest', substr($name, 8));
}
if (substr($name, 0, 6) === 'extra.') {
return $this->removeSubNode('extra', substr($name, 6));
}

View File

@ -1814,6 +1814,46 @@ class JsonManipulatorTest extends TestCase
', $manipulator->getContents());
}
public function testAddSuggestWithPackage()
{
$manipulator = new JsonManipulator('{
"repositories": [
{
"type": "package",
"package": {
"authors": [],
"extra": {
"package-xml": "package.xml"
}
}
}
],
"suggest": {
"package": "Description"
}
}');
$this->assertTrue($manipulator->addProperty('suggest.new-package', 'new-description'));
$this->assertEquals('{
"repositories": [
{
"type": "package",
"package": {
"authors": [],
"extra": {
"package-xml": "package.xml"
}
}
}
],
"suggest": {
"package": "Description",
"new-package": "new-description"
}
}
', $manipulator->getContents());
}
public function testAddRepositoryCanInitializeEmptyRepositories()
{
$manipulator = new JsonManipulator('{