Polishing composer rules (#5170)

* [Composer] Add check for existing compsore.json

* update composer package

* coding style

* various static fixes
This commit is contained in:
Tomas Votruba 2021-01-13 14:02:14 +01:00 committed by GitHub
parent 96e44124cc
commit 713915d1b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
56 changed files with 403 additions and 248 deletions

View File

@ -41,15 +41,15 @@
"symfony/dependency-injection": "^5.1",
"symfony/finder": "^4.4.8|^5.1",
"symfony/http-kernel": "^4.4.8|^5.1",
"symplify/autowire-array-parameter": "^9.0.26",
"symplify/console-color-diff": "^9.0.26",
"symplify/package-builder": "^9.0.26",
"symplify/rule-doc-generator": "^9.0.26",
"symplify/set-config-resolver": "^9.0.26",
"symplify/simple-php-doc-parser": "^9.0.26",
"symplify/skipper": "^9.0.26",
"symplify/smart-file-system": "^9.0.26",
"symplify/symfony-php-config": "^9.0.26",
"symplify/autowire-array-parameter": "^9.0.34",
"symplify/console-color-diff": "^9.0.34",
"symplify/package-builder": "^9.0.34",
"symplify/rule-doc-generator": "^9.0.34",
"symplify/set-config-resolver": "^9.0.34",
"symplify/simple-php-doc-parser": "^9.0.34",
"symplify/skipper": "^9.0.34",
"symplify/smart-file-system": "^9.0.34",
"symplify/symfony-php-config": "^9.0.34",
"webmozart/assert": "^1.9"
},
"require-dev": {
@ -62,12 +62,12 @@
"phpstan/phpstan-nette": "^0.12.12",
"phpunit/phpunit": "^9.5",
"sebastian/diff": "^4.0.4",
"symplify/changelog-linker": "^9.0.26",
"symplify/coding-standard": "^9.0.26",
"symplify/easy-coding-standard": "^9.0.26",
"symplify/easy-testing": "^9.0.26",
"symplify/phpstan-extensions": "^9.0.26",
"symplify/phpstan-rules": "^9.0.26",
"symplify/changelog-linker": "^9.0.34",
"symplify/coding-standard": "^9.0.34",
"symplify/easy-coding-standard": "^9.0.34",
"symplify/easy-testing": "^9.0.34",
"symplify/phpstan-extensions": "^9.0.34",
"symplify/phpstan-rules": "^9.0.34",
"tracy/tracy": "^2.7"
},
"replace": {

View File

@ -103,9 +103,11 @@ return static function (ContainerConfigurator $containerConfigurator): void {
$services->set(ComposerModifier::class)
->call('configure', [
ValueObjectInliner::inline([
new ChangePackageVersion('nette/nette', '^3.0'), // meta package
// meta package
new ChangePackageVersion('nette/nette', '^3.0'),
// https://github.com/nette/nette/blob/v2.4.0/composer.json vs https://github.com/nette/nette/blob/v3.0.0/composer.json
new ChangePackageVersion('nette/application', '^3.0.6'), // older versions have security issues
// older versions have security issues
new ChangePackageVersion('nette/application', '^3.0.6'),
new ChangePackageVersion('nette/bootstrap', '^3.0'),
new ChangePackageVersion('nette/caching', '^3.0'),
new ChangePackageVersion('nette/component-model', '^3.0'),
@ -133,6 +135,6 @@ return static function (ContainerConfigurator $containerConfigurator): void {
new ChangePackageVersion('contributte/forms-multiplier', '3.1.x-dev'),
// other packages
new ChangePackageVersion('radekdostal/nette-datetimepicker', '^3.0'),
])
]),
]);
};

View File

@ -78,10 +78,8 @@ final class PhpDocInfoTest extends AbstractKernelTestCase
$this->docBlockManipulator->replaceTagByAnother($phpDocInfo->getPhpDocNode(), 'test', 'flow');
$this->assertStringEqualsFile(
__DIR__ . '/Source/expected-replaced-tag.txt',
$this->phpDocInfoPrinter->printFormatPreserving($phpDocInfo)
);
$printedPhpDocInfo = $this->phpDocInfoPrinter->printFormatPreserving($phpDocInfo);
$this->assertStringEqualsFile(__DIR__ . '/Source/expected-replaced-tag.txt', $printedPhpDocInfo);
}
private function createPhpDocInfoFromFile(string $path): PhpDocInfo

View File

@ -25,11 +25,8 @@ final class DoctrineTest extends AbstractPhpDocInfoPrinterTest
$fileInfo = new SmartFileInfo($docFilePath);
$relativeFilePathFromCwd = $fileInfo->getRelativeFilePathFromCwd();
$this->assertSame(
$docComment,
$this->phpDocInfoPrinter->printFormatPreserving($phpDocInfo),
$relativeFilePathFromCwd
);
$printedPhpDocInfo = $this->phpDocInfoPrinter->printFormatPreserving($phpDocInfo);
$this->assertSame($docComment, $printedPhpDocInfo, $relativeFilePathFromCwd);
}
public function provideDataClass(): Iterator

View File

@ -36,11 +36,8 @@ final class MultilineTest extends AbstractPhpDocInfoPrinterTest
$fileInfo = new SmartFileInfo($docFilePath);
$relativeFilePathFromCwd = $fileInfo->getRelativeFilePathFromCwd();
$this->assertSame(
$docComment,
$this->phpDocInfoPrinter->printFormatPreserving($phpDocInfo),
$relativeFilePathFromCwd
);
$printedPhpDocInfo = $this->phpDocInfoPrinter->printFormatPreserving($phpDocInfo);
$this->assertSame($docComment, $printedPhpDocInfo, $relativeFilePathFromCwd);
}
public function provideData(): Iterator

View File

@ -38,7 +38,8 @@ final class TypeNodeAnalyzerTest extends AbstractKernelTestCase
*/
public function testContainsArrayType(TypeNode $typeNode, bool $expectedContains): void
{
$this->assertSame($expectedContains, $this->typeNodeAnalyzer->containsArrayType($typeNode));
$containsArrayType = $this->typeNodeAnalyzer->containsArrayType($typeNode);
$this->assertSame($expectedContains, $containsArrayType);
}
public function provideDataForArrayType(): Iterator
@ -55,7 +56,8 @@ final class TypeNodeAnalyzerTest extends AbstractKernelTestCase
*/
public function testIsIntersectionAndNotNullable(TypeNode $typeNode, bool $expectedIs): void
{
$this->assertSame($expectedIs, $this->typeNodeAnalyzer->isIntersectionAndNotNullable($typeNode));
$isIntersection = $this->typeNodeAnalyzer->isIntersectionAndNotNullable($typeNode);
$this->assertSame($expectedIs, $isIntersection);
}
public function provideDataForIntersectionAndNotNullable(): Iterator

View File

@ -29,7 +29,8 @@ final class ClassTypeResolverTest extends AbstractNodeTypeResolverTest
{
$variableNodes = $this->getNodesForFileOfType($file, Class_::class);
$this->assertEquals($expectedType, $this->nodeTypeResolver->resolve($variableNodes[$nodePosition]));
$resolvedType = $this->nodeTypeResolver->resolve($variableNodes[$nodePosition]);
$this->assertEquals($expectedType, $resolvedType);
}
public function dataProvider(): Iterator

View File

@ -24,7 +24,8 @@ final class InterfaceTypeResolverTest extends AbstractNodeTypeResolverTest
{
$variableNodes = $this->getNodesForFileOfType($file, Interface_::class);
$this->assertEquals($expectedType, $this->nodeTypeResolver->resolve($variableNodes[$nodePosition]));
$resolvedType = $this->nodeTypeResolver->resolve($variableNodes[$nodePosition]);
$this->assertEquals($expectedType, $resolvedType);
}
public function dataProvider(): Iterator

View File

@ -23,7 +23,8 @@ final class NameTypeResolverTest extends AbstractNodeTypeResolverTest
{
$nameNodes = $this->getNodesForFileOfType($file, Name::class);
$this->assertEquals($expectedType, $this->nodeTypeResolver->resolve($nameNodes[$nodePosition]));
$resolvedType = $this->nodeTypeResolver->resolve($nameNodes[$nodePosition]);
$this->assertEquals($expectedType, $resolvedType);
}
public function provideData(): Iterator

View File

@ -24,7 +24,8 @@ final class TraitTypeResolverTest extends AbstractNodeTypeResolverTest
{
$variableNodes = $this->getNodesForFileOfType($file, Trait_::class);
$this->assertEquals($expectedType, $this->nodeTypeResolver->resolve($variableNodes[$nodePosition]));
$resolvedType = $this->nodeTypeResolver->resolve($variableNodes[$nodePosition]);
$this->assertEquals($expectedType, $resolvedType);
}
public function provideData(): Iterator

View File

@ -26,7 +26,8 @@ final class VariableTypeResolverTest extends AbstractNodeTypeResolverTest
{
$variableNodes = $this->getNodesForFileOfType($file, Variable::class);
$this->assertEquals($expectedType, $this->nodeTypeResolver->resolve($variableNodes[$nodePosition]));
$resolvedType = $this->nodeTypeResolver->resolve($variableNodes[$nodePosition]);
$this->assertEquals($expectedType, $resolvedType);
}
public function provideData(): Iterator

View File

@ -625,3 +625,44 @@ parameters:
- '#Method Rector\\SymfonyCodeQuality\\NodeFactory\\RouteNameClassFactory\:\:create\(\) should return PhpParser\\Node\\Stmt\\Namespace_ but returns PhpParser\\Node#'
- '#Content of method "mapToPhpParserNode\(\)" is duplicated with method in "Rector\\PHPStanStaticTypeMapper\\TypeMapper\\CallableTypeMapper" class\. Use unique content or abstract service instead#'
- '#Parameter \#4 \$classWithConstants of class Rector\\Privatization\\ValueObject\\ReplaceStringWithClassConstant constructor expects class\-string, string given#'
# resolve later - clean duplicated code
- '#Content of method "resolveClass\(\)" is duplicated with method "resolveClassName\(\)" in "Rector\\NetteToSymfony\\Analyzer\\NetteControlFactoryInterfaceAnalyzer" class\. Use unique content or abstract service instead#'
- '#Content of method "collectMockVariableName\(\)" is duplicated with method "collectMockVariableName\(\)" in "Rector\\MockistaToMockery\\Rector\\ClassMethod\\MockistaMockToMockeryMockRector" class\. Use unique content or abstract service instead#'
- '#Content of method "shouldSkipMethodCallIncludingNew\(\)" is duplicated with method "shouldSkipMethodCallIncludingNew\(\)" in "Rector\\Defluent\\Rector\\AbstractFluentChainMethodCallRector" class\. Use unique content or abstract service instead#'
- '#Content of method "mapToPhpParserNode\(\)" is duplicated with method "mapToPhpParserNode\(\)" in "Rector\\PHPStanStaticTypeMapper\\TypeMapper\\ClosureTypeMapper" class\. Use unique content or abstract service instead#'
- '#Content of method "getFqnClassName\(\)" is duplicated with method "getFullyQualifiedName\(\)" in "Rector\\TypeDeclaration\\Rector\\FunctionLike\\ParamTypeDeclarationRector" class\. Use unique content or abstract service instead#'
- '#Content of method "resolveMethodCallVar\(\)" is duplicated with method "resolveMethodCallVar\(\)" in "Rector\\Defluent\\NodeFactory\\SeparateReturnMethodCallFactory" class\. Use unique content or abstract service instead#'
- '#Content of method "getFullyQualifiedName\(\)" is duplicated with method "resolveClassName\(\)" in "Rector\\NetteToSymfony\\Analyzer\\NetteControlFactoryInterfaceAnalyzer" class\. Use unique content or abstract service instead#'
- '#Content of method "endsWith\(\)" is duplicated with method "endsWith\(\)" in "Rector\\Naming\\ExpectedNameResolver\\AbstractExpectedNameResolver" class\. Use unique content or abstract service instead#'
- '#Content of method "convertParamsToArgs\(\)" is duplicated with method "convertParamNodesToArgNodes\(\)" in "Rector\\Core\\PhpParser\\Node\\NodeFactory" class\. Use unique content or abstract service instead#'
- '#Content of method "resolveForParam\(\)" is duplicated with method "resolve\(\)" in "Rector\\Naming\\ExpectedNameResolver\\MatchParamTypeExpectedNameResolver" class\. Use unique content or abstract service instead#'
- '#Content of method "isInTestClass\(\)" is duplicated with method "isInTestClass\(\)" in "Rector\\Core\\Rector\\AbstractPHPUnitRector" class\. Use unique content or abstract service instead#'
- '#Content of method "getFqnClassName\(\)" is duplicated with method "resolveClassName\(\)" in "Rector\\NetteToSymfony\\Analyzer\\NetteControlFactoryInterfaceAnalyzer" class\. Use unique content or abstract service instead#'
- '#Content of method "shouldSkipMethodCallIncludingNew\(\)" is duplicated with method "shouldSkipMethodCallIncludingNew\(\)" in "Rector\\Defluent\\Rector\\Return_\\ReturnFluentChainMethodCallToNormalMethodCallRector" class\. Use unique content or abstract service instead#'
- '#Content of method "endsWith\(\)" is duplicated with method "endsWith\(\)" in "Rector\\Naming\\Naming\\ExpectedNameResolver" class\. Use unique content or abstract service instead#'
- '#Content of method "resolve\(\)" is duplicated with method "resolveForParam\(\)" in "Rector\\Naming\\Naming\\ExpectedNameResolver" class\. Use unique content or abstract service instead#'
- '#Content of method "refactor\(\)" is duplicated with method "refactor\(\)" in "Rector\\Nette\\Rector\\FuncCall\\PregFunctionToNetteUtilsStringsRector" class\. Use unique content or abstract service instead#'
- '#Content of method "isTypes\(\)" is duplicated with method "isTypes\(\)" in "Rector\\Core\\Context\\ContextAnalyzer" class\. Use unique content or abstract service instead#'
- '#Content of method "removeFirstArgument\(\)" is duplicated with method "moveArguments\(\)" in "Rector\\PHPUnit\\Rector\\MethodCall\\AssertSameBoolNullToSpecificMethodRector" class\. Use unique content or abstract service instead#'
- '#Content of method "isInstancesOf\(\)" is duplicated with method "isTypes\(\)" in "Rector\\Core\\Context\\ContextAnalyzer" class\. Use unique content or abstract service instead#'
- '#Content of method "getFullyQualifiedName\(\)" is duplicated with method "getClassName\(\)" in "Rector\\Naming\\Naming\\PropertyNaming" class\. Use unique content or abstract service instead#'
- '#Content of method "(.*?)Trait\(\)" is duplicated with method "autowireNameResolverTrait\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "isLocalMethodCallNamed\(\)" is duplicated with method "isLocalMethodCallNamed\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "isLocalMethodCallsNamed\(\)" is duplicated with method "isLocalMethodCallsNamed\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "isFuncCallName\(\)" is duplicated with method "isFuncCallName\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "isClassConstReference\(\)" is duplicated with method "isClassConstReference\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "isStaticCallNamed\(\)" is duplicated with method "isStaticCallNamed\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "isStaticCallsNamed\(\)" is duplicated with method "isStaticCallsNamed\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "isMethodCall\(\)" is duplicated with method "isMethodCall\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "isVariableName\(\)" is duplicated with method "isVariableName\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "isInClassNamed\(\)" is duplicated with method "isInClassNamed\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "isInClassesNamed\(\)" is duplicated with method "isInClassesNamed\(\)" in "Rector\\Core\\Rector\\AbstractRector\\NameResolverTrait" class\. Use unique content or abstract service instead#'
- '#Content of method "getClassName\(\)" is duplicated with method "resolveClassName\(\)" in "Rector\\NetteToSymfony\\Analyzer\\NetteControlFactoryInterfaceAnalyzer" class\. Use unique content or abstract service instead#'
-
message: '#Do not use setter on a service#'
paths:
- rules/composer/src/Modifier/ComposerModifier.php

View File

@ -13,13 +13,19 @@ use Webmozart\Assert\Assert;
*/
final class ComposerModifier
{
/** @var string|null */
/**
* @var string|null
*/
private $filePath;
/** @var string */
/**
* @var string
*/
private $command = 'composer update';
/** @var ComposerModifierInterface[] */
/**
* @var ComposerModifierInterface[]
*/
private $configuration = [];
/**
@ -40,7 +46,7 @@ final class ComposerModifier
$this->configuration = $configuration;
}
public function filePath(string $filePath): void
public function setFilePath(string $filePath): void
{
$this->filePath = $filePath;
}
@ -50,7 +56,7 @@ final class ComposerModifier
return $this->filePath ?: getcwd() . '/composer.json';
}
public function command(string $command): void
public function setCommand(string $command): void
{
$this->command = $command;
}

View File

@ -14,10 +14,14 @@ use Symplify\ComposerJsonManipulator\ValueObject\ComposerJson;
*/
final class AddPackageToRequire implements ComposerModifierInterface
{
/** @var string */
/**
* @var string
*/
private $packageName;
/** @var Version */
/**
* @var Version
*/
private $version;
/**

View File

@ -14,10 +14,14 @@ use Symplify\ComposerJsonManipulator\ValueObject\ComposerJson;
*/
final class AddPackageToRequireDev implements ComposerModifierInterface
{
/** @var string */
/**
* @var string
*/
private $packageName;
/** @var Version */
/**
* @var Version
*/
private $version;
/**

View File

@ -14,10 +14,14 @@ use Symplify\ComposerJsonManipulator\ValueObject\ComposerJson;
*/
final class ChangePackageVersion implements ComposerModifierInterface
{
/** @var string */
/**
* @var string
*/
private $packageName;
/** @var Version */
/**
* @var Version
*/
private $targetVersion;
/**

View File

@ -13,7 +13,9 @@ use Symplify\ComposerJsonManipulator\ValueObject\ComposerJson;
*/
final class MovePackageToRequire implements ComposerModifierInterface
{
/** @var string */
/**
* @var string
*/
private $packageName;
/**

View File

@ -13,7 +13,9 @@ use Symplify\ComposerJsonManipulator\ValueObject\ComposerJson;
*/
final class MovePackageToRequireDev implements ComposerModifierInterface
{
/** @var string */
/**
* @var string
*/
private $packageName;
/**

View File

@ -13,7 +13,9 @@ use Symplify\ComposerJsonManipulator\ValueObject\ComposerJson;
*/
final class RemovePackage implements ComposerModifierInterface
{
/** @var string */
/**
* @var string
*/
private $packageName;
/**

View File

@ -15,13 +15,19 @@ use Webmozart\Assert\Assert;
*/
final class ReplacePackage implements ComposerModifierInterface
{
/** @var string */
/**
* @var string
*/
private $oldPackageName;
/** @var string */
/**
* @var string
*/
private $newPackageName;
/** @var Version */
/**
* @var Version
*/
private $targetVersion;
/**
@ -31,7 +37,11 @@ final class ReplacePackage implements ComposerModifierInterface
*/
public function __construct(string $oldPackageName, string $newPackageName, string $targetVersion)
{
Assert::notSame($oldPackageName, $newPackageName, '$oldPackageName cannot be the same as $newPackageName. If you want to change version of package, use ' . ChangePackageVersion::class);
Assert::notSame(
$oldPackageName,
$newPackageName,
'$oldPackageName cannot be the same as $newPackageName. If you want to change version of package, use ' . ChangePackageVersion::class
);
$this->oldPackageName = $oldPackageName;
$this->newPackageName = $newPackageName;

View File

@ -1,18 +1,20 @@
<?php
declare(strict_types=1);
namespace Rector\Composer\ValueObject\Version;
use Composer\Semver\VersionParser;
use UnexpectedValueException;
final class Version
{
/** @var string */
/**
* @var string
*/
private $version;
/**
* @param string $version version string
* @throws UnexpectedValueException if $version string is not valid
*/
public function __construct(string $version)
{

View File

@ -1,14 +1,15 @@
<?php
declare(strict_types=1);
namespace Rector\Composer\Tests\Modifier;
use Nette\Utils\Json;
use Rector\Composer\Modifier\ComposerModifier;
use Rector\Composer\ValueObject\ComposerModifier\AddPackageToRequire;
use Rector\Composer\ValueObject\ComposerModifier\ReplacePackage;
use Rector\Composer\ValueObject\ComposerModifier\ChangePackageVersion;
use Rector\Composer\ValueObject\ComposerModifier\MovePackageToRequireDev;
use Rector\Composer\ValueObject\ComposerModifier\RemovePackage;
use Rector\Composer\Modifier\ComposerModifier;
use Rector\Composer\ValueObject\ComposerModifier\ReplacePackage;
use Rector\Core\HttpKernel\RectorKernel;
use Symplify\ComposerJsonManipulator\ValueObject\ComposerJson;
use Symplify\PackageBuilder\Testing\AbstractKernelTestCase;
@ -24,9 +25,7 @@ final class ComposerModifierTest extends AbstractKernelTestCase
{
/** @var ComposerModifier $composerModifier */
$composerModifier = $this->getService(ComposerModifier::class);
$composerModifier->configure([
new AddPackageToRequire('vendor1/package3', '^3.0'),
]);
$composerModifier->configure([new AddPackageToRequire('vendor1/package3', '^3.0')]);
$composerJson = new ComposerJson();
$composerJson->setRequire([
@ -34,13 +33,14 @@ final class ComposerModifierTest extends AbstractKernelTestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
'vendor1/package3' => '^3.0',
]);
$this->assertEquals($changedComposerJson, $composerModifier->modify($composerJson));
$composerModifier->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testRefactorWithOneAddedAndOneRemovedPackage(): void
@ -58,12 +58,13 @@ final class ComposerModifierTest extends AbstractKernelTestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package2' => '^2.0',
'vendor1/package3' => '^3.0',
]);
$this->assertEquals($changedComposerJson, $composerModifier->modify($composerJson));
$composerModifier->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testRefactorWithAddedAndRemovedSamePackage(): void
@ -81,12 +82,13 @@ final class ComposerModifierTest extends AbstractKernelTestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$this->assertEquals($changedComposerJson, $composerModifier->modify($composerJson));
$composerModifier->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testRefactorWithRemovedAndAddedBackSamePackage(): void
@ -104,13 +106,14 @@ final class ComposerModifierTest extends AbstractKernelTestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
'vendor1/package3' => '^3.0',
]);
$this->assertEquals($changedComposerJson, $composerModifier->modify($composerJson));
$composerModifier->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testRefactorWithMovedAndChangedPackages(): void
@ -130,30 +133,25 @@ final class ComposerModifierTest extends AbstractKernelTestCase
'vendor1/package3' => '^3.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package3' => '~3.0.0',
'vendor2/package1' => '^3.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson->setRequireDev([
'vendor1/package1' => '^1.0',
]);
$this->assertEquals($changedComposerJson, $composerModifier->modify($composerJson));
$composerModifier->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testRefactorWithMultipleConfiguration(): void
{
/** @var ComposerModifier $composerModifier */
$composerModifier = $this->getService(ComposerModifier::class);
$composerModifier->configure([
new MovePackageToRequireDev('vendor1/package1'),
]);
$composerModifier->configure([
new ReplacePackage('vendor1/package2', 'vendor2/package1', '^3.0'),
]);
$composerModifier->configure([
new ChangePackageVersion('vendor1/package3', '~3.0.0'),
]);
$composerModifier->configure([new MovePackageToRequireDev('vendor1/package1')]);
$composerModifier->configure([new ReplacePackage('vendor1/package2', 'vendor2/package1', '^3.0')]);
$composerModifier->configure([new ChangePackageVersion('vendor1/package3', '~3.0.0')]);
$composerJson = new ComposerJson();
$composerJson->setRequire([
@ -162,30 +160,25 @@ final class ComposerModifierTest extends AbstractKernelTestCase
'vendor1/package3' => '^3.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package3' => '~3.0.0',
'vendor2/package1' => '^3.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson->setRequireDev([
'vendor1/package1' => '^1.0',
]);
$this->assertEquals($changedComposerJson, $composerModifier->modify($composerJson));
$composerModifier->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testRefactorWithConfigurationAndReconfigurationAndConfiguration(): void
{
/** @var ComposerModifier $composerModifier */
$composerModifier = $this->getService(ComposerModifier::class);
$composerModifier->configure([
new MovePackageToRequireDev('vendor1/package1'),
]);
$composerModifier->reconfigure([
new ReplacePackage('vendor1/package2', 'vendor2/package1', '^3.0'),
]);
$composerModifier->configure([
new ChangePackageVersion('vendor1/package3', '~3.0.0'),
]);
$composerModifier->configure([new MovePackageToRequireDev('vendor1/package1')]);
$composerModifier->reconfigure([new ReplacePackage('vendor1/package2', 'vendor2/package1', '^3.0')]);
$composerModifier->configure([new ChangePackageVersion('vendor1/package3', '~3.0.0')]);
$composerJson = new ComposerJson();
$composerJson->setRequire([
@ -194,13 +187,14 @@ final class ComposerModifierTest extends AbstractKernelTestCase
'vendor1/package3' => '^3.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package3' => '~3.0.0',
'vendor2/package1' => '^3.0',
]);
$this->assertEquals($changedComposerJson, $composerModifier->modify($composerJson));
$composerModifier->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testRefactorWithMovedAndChangedPackagesWithSortPackages(): void
@ -215,7 +209,7 @@ final class ComposerModifierTest extends AbstractKernelTestCase
$composerJson = new ComposerJson();
$composerJson->setConfig([
'sort-packages' => true
'sort-packages' => true,
]);
$composerJson->setRequire([
'vendor1/package1' => '^1.0',
@ -223,37 +217,38 @@ final class ComposerModifierTest extends AbstractKernelTestCase
'vendor1/package3' => '^3.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setConfig([
'sort-packages' => true
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setConfig([
'sort-packages' => true,
]);
$changedComposerJson->setRequire([
$expectedComposerJson->setRequire([
'vendor1/package0' => '^3.0',
'vendor1/package3' => '~3.0.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson->setRequireDev([
'vendor1/package1' => '^1.0',
]);
$this->assertEquals($changedComposerJson, $composerModifier->modify($composerJson));
$composerModifier->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testFilePath(): void
{
/** @var ComposerModifier $composerModifier */
$composerModifier = $this->getService(ComposerModifier::class);
$this->assertEquals(getcwd() . '/composer.json', $composerModifier->getFilePath());
$this->assertSame(getcwd() . '/composer.json', $composerModifier->getFilePath());
$composerModifier->filePath('test/composer.json');
$this->assertEquals('test/composer.json', $composerModifier->getFilePath());
$composerModifier->setFilePath('test/composer.json');
$this->assertSame('test/composer.json', $composerModifier->getFilePath());
}
public function testCommand(): void
{
/** @var ComposerModifier $composerModifier */
$composerModifier = $this->getService(ComposerModifier::class);
$this->assertEquals('composer update', $composerModifier->getCommand());
$this->assertSame('composer update', $composerModifier->getCommand());
$composerModifier->command('composer update --prefer-stable');
$this->assertEquals('composer update --prefer-stable', $composerModifier->getCommand());
$composerModifier->setCommand('composer update --prefer-stable');
$this->assertSame('composer update --prefer-stable', $composerModifier->getCommand());
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Rector\Composer\Tests\ValueObject\ComposerModifier;
use PHPUnit\Framework\TestCase;
@ -16,17 +18,19 @@ final class AddPackageToRequireDevTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson->setRequireDev([
'vendor1/package3' => '^3.0',
]);
$addPackageToRequireDev = new AddPackageToRequireDev('vendor1/package3', '^3.0');
$this->assertEquals($changedComposerJson, $addPackageToRequireDev->modify($composerJson));
$addPackageToRequireDev->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testAddExistingPackage(): void
@ -37,14 +41,16 @@ final class AddPackageToRequireDevTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$addPackageToRequireDev = new AddPackageToRequireDev('vendor1/package1', '^3.0');
$this->assertEquals($changedComposerJson, $addPackageToRequireDev->modify($composerJson));
$addPackageToRequireDev->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $expectedComposerJson->getJsonArray());
}
public function testAddExistingDevPackage(): void
@ -57,15 +63,17 @@ final class AddPackageToRequireDevTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson->setRequireDev([
'vendor1/package2' => '^2.0',
]);
$addPackageToRequireDev = new AddPackageToRequireDev('vendor1/package2', '^3.0');
$this->assertEquals($changedComposerJson, $addPackageToRequireDev->modify($composerJson));
$addPackageToRequireDev->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Rector\Composer\Tests\ValueObject\ComposerModifier;
use PHPUnit\Framework\TestCase;
@ -16,15 +18,16 @@ final class AddPackageToRequireTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
'vendor1/package3' => '^3.0',
]);
$addPackageToRequire = new AddPackageToRequire('vendor1/package3', '^3.0');
$this->assertEquals($changedComposerJson, $addPackageToRequire->modify($composerJson));
$addPackageToRequire->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testAddExistingPackage(): void
@ -35,14 +38,15 @@ final class AddPackageToRequireTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$addPackageToRequire = new AddPackageToRequire('vendor1/package1', '^3.0');
$this->assertEquals($changedComposerJson, $addPackageToRequire->modify($composerJson));
$addPackageToRequire->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testAddExistingDevPackage(): void
@ -55,15 +59,16 @@ final class AddPackageToRequireTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson->setRequireDev([
'vendor1/package2' => '^2.0',
]);
$addPackageToRequire = new AddPackageToRequire('vendor1/package2', '^3.0');
$this->assertEquals($changedComposerJson, $addPackageToRequire->modify($composerJson));
$addPackageToRequire->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Rector\Composer\Tests\ValueObject\ComposerModifier;
use PHPUnit\Framework\TestCase;
@ -16,14 +18,15 @@ final class ChangePackageVersionTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$changePackageVersion = new ChangePackageVersion('vendor1/package3', '^3.0');
$this->assertEquals($changedComposerJson, $changePackageVersion->modify($composerJson));
$changePackageVersion->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testChangeVersionExistingPackage(): void
@ -34,14 +37,15 @@ final class ChangePackageVersionTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^3.0',
'vendor1/package2' => '^2.0',
]);
$changePackageVersion = new ChangePackageVersion('vendor1/package1', '^3.0');
$this->assertEquals($changedComposerJson, $changePackageVersion->modify($composerJson));
$changePackageVersion->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testChangeVersionExistingDevPackage(): void
@ -54,15 +58,17 @@ final class ChangePackageVersionTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson->setRequireDev([
'vendor1/package2' => '^3.0',
]);
$changePackageVersion = new ChangePackageVersion('vendor1/package2', '^3.0');
$this->assertEquals($changedComposerJson, $changePackageVersion->modify($composerJson));
$changePackageVersion->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Rector\Composer\Tests\ValueObject\ComposerModifier;
use PHPUnit\Framework\TestCase;
@ -16,34 +18,36 @@ final class MovePackageToRequireDevTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$movePackageToRequireDev = new MovePackageToRequireDev('vendor1/package3');
$this->assertEquals($changedComposerJson, $movePackageToRequireDev->modify($composerJson));
$movePackageToRequireDev->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testMoveExistingPackage(): void
{
$composerJson = new ComposerJson();
$composerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package2' => '^2.0',
]);
$expectedComposerJson->setRequireDev([
'vendor1/package1' => '^1.0',
]);
$movePackageToRequireDev = new MovePackageToRequireDev('vendor1/package1');
$this->assertEquals($changedComposerJson, $movePackageToRequireDev->modify($composerJson));
$movePackageToRequireDev->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testMoveExistingDevPackage(): void
@ -56,15 +60,16 @@ final class MovePackageToRequireDevTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson->setRequireDev([
'vendor1/package2' => '^2.0',
]);
$movePackageToRequireDev = new MovePackageToRequireDev('vendor1/package2');
$this->assertEquals($changedComposerJson, $movePackageToRequireDev->modify($composerJson));
$movePackageToRequireDev->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Rector\Composer\Tests\ValueObject\ComposerModifier;
use PHPUnit\Framework\TestCase;
@ -16,14 +18,15 @@ final class MovePackageToRequireTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$movePackageToRequire = new MovePackageToRequire('vendor1/package3');
$this->assertEquals($changedComposerJson, $movePackageToRequire->modify($composerJson));
$movePackageToRequire->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testMoveExistingDevPackage(): void
@ -34,16 +37,17 @@ final class MovePackageToRequireTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson->setRequireDev([
'vendor1/package2' => '^2.0',
]);
$movePackageToRequire = new MovePackageToRequire('vendor1/package1');
$this->assertEquals($changedComposerJson, $movePackageToRequire->modify($composerJson));
$movePackageToRequire->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testMoveExistingPackage(): void
@ -56,15 +60,16 @@ final class MovePackageToRequireTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
]);
$changedComposerJson->setRequireDev([
$expectedComposerJson->setRequireDev([
'vendor1/package2' => '^2.0',
]);
$movePackageToRequire = new MovePackageToRequire('vendor1/package1');
$this->assertEquals($changedComposerJson, $movePackageToRequire->modify($composerJson));
$movePackageToRequire->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Rector\Composer\Tests\ValueObject\ComposerModifier;
use PHPUnit\Framework\TestCase;
@ -16,14 +18,15 @@ final class RemovePackageTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$removePackage = new RemovePackage('vendor1/package3');
$this->assertEquals($changedComposerJson, $removePackage->modify($composerJson));
$removePackage->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testRemoveExistingPackage(): void
@ -34,13 +37,14 @@ final class RemovePackageTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package2' => '^2.0',
]);
$removePackage = new RemovePackage('vendor1/package1');
$this->assertEquals($changedComposerJson, $removePackage->modify($composerJson));
$removePackage->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testRemoveExistingDevPackage(): void
@ -53,12 +57,13 @@ final class RemovePackageTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
]);
$removePackage = new RemovePackage('vendor1/package2');
$this->assertEquals($changedComposerJson, $removePackage->modify($composerJson));
$removePackage->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Rector\Composer\Tests\ValueObject\ComposerModifier;
use PHPUnit\Framework\TestCase;
@ -15,15 +17,15 @@ final class ReplacePackageTest extends TestCase
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
'vendor1/package2' => '^2.0',
]);
$replacePackage = new ReplacePackage('vendor1/package3', 'vendor1/package4', '^3.0');
$this->assertEquals($changedComposerJson, $replacePackage->modify($composerJson));
$replacePackage->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testReplaceExistingPackage(): void
@ -34,14 +36,15 @@ final class ReplacePackageTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package3' => '^3.0',
'vendor1/package2' => '^2.0',
]);
$replacePackage = new ReplacePackage('vendor1/package1', 'vendor1/package3', '^3.0');
$this->assertEquals($changedComposerJson, $replacePackage->modify($composerJson));
$replacePackage->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
public function testReplaceExistingDevPackage(): void
@ -54,15 +57,16 @@ final class ReplacePackageTest extends TestCase
'vendor1/package2' => '^2.0',
]);
$changedComposerJson = new ComposerJson();
$changedComposerJson->setRequire([
$expectedComposerJson = new ComposerJson();
$expectedComposerJson->setRequire([
'vendor1/package1' => '^1.0',
]);
$changedComposerJson->setRequireDev([
'vendor1/package3' => '^3.0',
$expectedComposerJson->setRequireDev([
'vendor1/package3' => '^3.0',
]);
$replacePackage = new ReplacePackage('vendor1/package2', 'vendor1/package3', '^3.0');
$this->assertEquals($changedComposerJson, $replacePackage->modify($composerJson));
$replacePackage->modify($composerJson);
$this->assertSame($expectedComposerJson->getJsonArray(), $composerJson->getJsonArray());
}
}

View File

@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace Rector\Composer\Tests\Version;
use PHPUnit\Framework\TestCase;
@ -12,28 +14,28 @@ final class VersionTest extends TestCase
{
$version = new Version('1.2.3');
$this->assertInstanceOf(Version::class, $version);
$this->assertEquals('1.2.3', $version->getVersion());
$this->assertSame('1.2.3', $version->getVersion());
}
public function testTildeVersion(): void
{
$version = new Version('~1.2.3');
$this->assertInstanceOf(Version::class, $version);
$this->assertEquals('~1.2.3', $version->getVersion());
$this->assertSame('~1.2.3', $version->getVersion());
}
public function testCaretVersion(): void
{
$version = new Version('^1.2.3');
$this->assertInstanceOf(Version::class, $version);
$this->assertEquals('^1.2.3', $version->getVersion());
$this->assertSame('^1.2.3', $version->getVersion());
}
public function testDevMasterAsVersion(): void
{
$version = new Version('dev-master as 1.2.3');
$this->assertInstanceOf(Version::class, $version);
$this->assertEquals('dev-master as 1.2.3', $version->getVersion());
$this->assertSame('dev-master as 1.2.3', $version->getVersion());
}
public function testWrongAliasVersion(): void

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\DoctrineCodeQuality\NodeManipulator;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\Doctrine\Tests\Rector\Class_\AddEntityIdByConditionRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\ClassConstFetch\RenameClassConstantsUseToStringsRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\Class_\AddInterfaceByTraitRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\Class_\AddInterfaceByTraitRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\Generic\Tests\Rector\Expression\MethodCallToReturnRector\Source;

View File

@ -91,18 +91,11 @@ final class StmtOrderTest extends AbstractKernelTestCase
$classLike = $this->stmtOrder->reorderClassStmtsByOldToNewKeys($class, self::OLD_TO_NEW_KEYS);
$expectedClass = $this->getExpectedClassNode();
$this->assertSame(
$this->nodeNameResolver->getName($expectedClass->stmts[0]),
$this->nodeNameResolver->getName($classLike->stmts[0])
);
$this->assertSame(
$this->nodeNameResolver->getName($expectedClass->stmts[1]),
$this->nodeNameResolver->getName($classLike->stmts[1])
);
$this->assertSame(
$this->nodeNameResolver->getName($expectedClass->stmts[2]),
$this->nodeNameResolver->getName($classLike->stmts[2])
);
$this->assertTrue($this->nodeNameResolver->areNamesEqual($expectedClass->stmts[0], $classLike->stmts[0]));
$this->assertTrue($this->nodeNameResolver->areNamesEqual($expectedClass->stmts[1], $classLike->stmts[1]));
$this->assertTrue($this->nodeNameResolver->areNamesEqual($expectedClass->stmts[2], $classLike->stmts[2]));
}
private function getTestClassNode(): Class_

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\PHPUnit\Tests\Rector\ClassMethod\AddDoesNotPerformAssertionToNonAssertingTestRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\PHPUnit\Tests\Rector\ClassMethod\AddDoesNotPerformAssertionToNonAssertingTestRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\PHPUnit\Tests\Rector\Class_\SelfContainerGetMethodCallFromTestToInjectPropertyRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\PHPUnit\Tests\Rector\Class_\SelfContainerGetMethodCallFromTestToInjectPropertyRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\Renaming\Tests\Rector\Name\RenameClassRector\Source\FirstNamespace;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\Renaming\Tests\Rector\Name\RenameClassRector\Source\SecondNamespace;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\Renaming\Tests\Rector\Name\RenameClassRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\TypeDeclaration\Tests\Rector\FunctionLike\ReturnTypeDeclarationRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Rector\TypeDeclaration\Tests\Rector\Property\CompleteVarDocTypePropertyRector\Source;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Gedmo\Mapping\Annotation;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Gedmo\Mapping\Annotation;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Gedmo\Mapping\Annotation;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Gedmo\Mapping\Annotation;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Gedmo\Mapping\Annotation;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Gedmo\Mapping\Annotation;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Gedmo\Timestampable\Traits;

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
namespace Gedmo\Translatable;

View File

@ -28,12 +28,13 @@ final class ValueResolverTest extends AbstractKernelTestCase
}
/**
* @param mixed $expected
* @param mixed $expectedValue
* @dataProvider dataProvider
*/
public function test($expected, Expr $expr): void
public function test(Expr $expr, $expectedValue): void
{
$this->assertSame($expected, $this->valueResolver->getValue($expr));
$resolvedValue = $this->valueResolver->getValue($expr);
$this->assertSame($expectedValue, $resolvedValue);
}
public function dataProvider(): Iterator
@ -46,12 +47,12 @@ final class ValueResolverTest extends AbstractKernelTestCase
new FullyQualified('SomeClassResolveName')
);
yield ['SomeClassResolveName::SOME_CONSTANT', $classConstFetchNode];
yield [true, $builderFactory->val(true)];
yield [1, $builderFactory->val(1)];
yield [1.0, $builderFactory->val(1.0)];
yield [null, $builderFactory->var('foo')];
yield [2, new Plus($builderFactory->val(1), $builderFactory->val(1))];
yield [null, new Plus($builderFactory->val(1), $builderFactory->var('foo'))];
yield [$classConstFetchNode, 'SomeClassResolveName::SOME_CONSTANT'];
yield [$builderFactory->val(true), true];
yield [$builderFactory->val(1), 1];
yield [$builderFactory->val(1.0), 1.0];
yield [$builderFactory->var('foo'), null];
yield [new Plus($builderFactory->val(1), $builderFactory->val(1)), 2];
yield [new Plus($builderFactory->val(1), $builderFactory->var('foo')), null];
}
}

View File

@ -1,4 +1,6 @@
<?php declare(strict_types=1);
<?php
declare(strict_types=1);
use Symplify\SmartFileSystem\FileSystemFilter;
use Symplify\SmartFileSystem\Finder\FinderSanitizer;