Skip to content

Commit

Permalink
Merge pull request #145 from localheinz/fix/deprecate
Browse files Browse the repository at this point in the history
Fix: Deprecate the file argument
  • Loading branch information
localheinz authored Dec 24, 2018
2 parents fb907fb + 5ae774d commit 65c9a9a
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/Command/NormalizeCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ protected function configure(): void
new Console\Input\InputArgument(
'file',
Console\Input\InputArgument::OPTIONAL,
'Path to composer.json file'
'Path to composer.json file (deprecated, use --working-dir instead)'
),
new Console\Input\InputOption(
'dry-run',
Expand Down Expand Up @@ -123,6 +123,8 @@ protected function execute(Console\Input\InputInterface $input, Console\Output\O

if (null === $composerFile) {
$composerFile = Factory::getComposerFile();
} else {
$io->write('<fg=yellow>Note: The file argument is deprecated and will be removed in 2.0.0. Please use the --working-dir option instead.</fg>');
}

try {
Expand Down
49 changes: 49 additions & 0 deletions test/Integration/NormalizeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -759,6 +759,55 @@ public function testSucceedsWhenComposerJsonIsPresentAndValidAndComposerLockIsPr
self::assertComposerLockFileFresh($currentState);
}

public function testSucceedsWhenComposerJsonIsPresentAndValidAndComposerLockIsPresentAndFreshBeforeAndComposerJsonIsNotYetNormalizedAndComposerLockIsNotFreshAfterAndInformsWhenFileArgumentIsUsed(): void
{
$scenario = $this->createScenario(
CommandInvocation::usingFileArgument(),
__DIR__ . '/../Fixture/json/valid/lock/present/lock/fresh-before/json/not-yet-normalized/lock/not-fresh-after'
);

$initialState = $scenario->initialState();

self::assertComposerJsonFileExists($initialState);
self::assertComposerLockFileExists($initialState);
self::assertComposerLockFileFresh($initialState);

$application = $this->createApplication(new NormalizeCommand(
new Factory(),
new ComposerJsonNormalizer(),
new Formatter(),
new Differ()
));

$input = new Console\Input\ArrayInput($scenario->consoleParameters());

$output = new Console\Output\BufferedOutput();

$exitCode = $application->run(
$input,
$output
);

self::assertExitCodeSame(0, $exitCode);

$renderedOutput = $output->fetch();

self::assertContains('Note: The file argument is deprecated and will be removed in 2.0.0. Please use the --working-dir option instead.', $renderedOutput);

$expected = \sprintf(
'Successfully normalized %s.',
$scenario->composerJsonFileReference()
);

self::assertContains($expected, $renderedOutput);

$currentState = $scenario->currentState();

self::assertComposerJsonFileModified($initialState, $currentState);
self::assertComposerLockFileModified($initialState, $currentState);
self::assertComposerLockFileFresh($currentState);
}

/**
* @dataProvider providerCommandInvocation
*
Expand Down
5 changes: 5 additions & 0 deletions test/Util/CommandInvocation.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ public static function inCurrentWorkingDirectory(): self
return new self('in-current-working-directory');
}

/**
* @deprecated The file argument will be removed in 2.0.0.
*
* @return CommandInvocation
*/
public static function usingFileArgument(): self
{
return new self('using-file-argument');
Expand Down

0 comments on commit 65c9a9a

Please sign in to comment.