Skip to content

Commit 84076d7

Browse files
authored
tv next test (#7)
* path * honest test
1 parent 76fc30f commit 84076d7

File tree

8 files changed

+44
-57
lines changed

8 files changed

+44
-57
lines changed

phpstan.neon

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ parameters:
22
level: 8
33

44
paths:
5+
- bin
56
- src
67
- tests
78

src/Analyzer/UnusedDefinitionsAnalyzer.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use Rector\Behastan\ValueObject\Mask\SkippedMask;
1616
use Symfony\Component\Console\Style\SymfonyStyle;
1717
use Symfony\Component\Finder\SplFileInfo;
18+
use Webmozart\Assert\Assert;
1819

1920
/**
2021
* @see \Rector\Behastan\Tests\Analyzer\UnusedDefinitionsAnalyzer\UnusedDefinitionsAnalyzerTest
@@ -42,7 +43,18 @@ public function __construct(
4243
*/
4344
public function analyse(array $contextFiles, array $featureFiles): array
4445
{
46+
Assert::allIsInstanceOf($contextFiles, SplFileInfo::class);
47+
foreach ($contextFiles as $contextFile) {
48+
Assert::endsWith($contextFile->getFilename(), '.php');
49+
}
50+
51+
Assert::allIsInstanceOf($featureFiles, SplFileInfo::class);
52+
foreach ($featureFiles as $featureFile) {
53+
Assert::endsWith($featureFile->getFilename(), '.feature');
54+
}
55+
4556
$maskCollection = $this->definitionMasksResolver->resolve($contextFiles);
57+
4658
$this->maskCollectionStatsPrinter->printStats($maskCollection);
4759

4860
$featureInstructions = $this->usedInstructionResolver->resolveInstructionsFromFeatureFiles($featureFiles);

tests/Analyzer/UnusedDefinitionsAnalyzer/Fixture/Contexts/SomeContext.php renamed to tests/Analyzer/UnusedDefinitionsAnalyzer/Fixture/EverythingUsed/SomeContext.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Analyzer\UnusedDefinitionsAnalyzer\Fixture\Contexts;
3+
namespace Rector\Behastan\Tests\Analyzer\UnusedDefinitionsAnalyzer\Fixture\EverythingUsed;
44

55
use Behat\Behat\Context\Context;
66
use Behat\Step\Given;
@@ -11,18 +11,20 @@ final class LoginContext implements Context
1111
#[Given('I am on the login page')]
1212
public function iAmOnTheLoginPage(): void
1313
{
14-
// open login page
1514
}
1615

1716
#[When('I login as :username')]
1817
public function iLoginAs(string $username): void
1918
{
20-
// fill credentials and submit form
19+
}
20+
21+
#[When('I login with :email email')]
22+
public function iLoginWith(string $email): void
23+
{
2124
}
2225

2326
#[When('The :username is logged in')]
2427
public function isLoggedIn(string $username): void
2528
{
26-
// fill credentials and submit form
2729
}
2830
}

tests/Analyzer/UnusedDefinitionsAnalyzer/Fixture/Features/some.feature renamed to tests/Analyzer/UnusedDefinitionsAnalyzer/Fixture/EverythingUsed/some.feature

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ Feature: User login
22
Scenario: Successful login
33
Given I am on the login page
44
When I login as "Tomas"
5+
When I login with "[email protected]" email
56
Then The "Tomas" is logged in

tests/Fixture/BehatContext.php renamed to tests/Analyzer/UnusedDefinitionsAnalyzer/Fixture/UnusedMasks/BehatContext.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Rector\Behastan\Tests\Fixture;
5+
namespace Rector\Behastan\Tests\Analyzer\UnusedDefinitionsAnalyzer\Fixture\UnusedMasks;
66

77
final class BehatContext
88
{

tests/Fixture/some.feature renamed to tests/Analyzer/UnusedDefinitionsAnalyzer/Fixture/UnusedMasks/some.feature

File renamed without changes.

tests/Analyzer/UnusedDefinitionsAnalyzer/UnusedDefinitionsAnalyzerTest.php

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Rector\Behastan\Analyzer\UnusedDefinitionsAnalyzer;
88
use Rector\Behastan\Finder\BehatMetafilesFinder;
99
use Rector\Behastan\Tests\AbstractTestCase;
10+
use Rector\Behastan\ValueObject\Mask\AbstractMask;
1011

1112
final class UnusedDefinitionsAnalyzerTest extends AbstractTestCase
1213
{
@@ -19,16 +20,34 @@ protected function setUp(): void
1920
$this->unusedDefinitionsAnalyzer = $this->make(UnusedDefinitionsAnalyzer::class);
2021
}
2122

22-
public function test(): void
23+
public function testEverythingUsed(): void
2324
{
24-
$featureFiles = BehatMetafilesFinder::findFeatureFiles([__DIR__ . '/Fixture/Features']);
25-
$this->assertCount(1, $featureFiles);
25+
$featureFiles = BehatMetafilesFinder::findFeatureFiles([__DIR__ . '/Fixture/EverythingUsed']);
26+
$contextFiles = BehatMetafilesFinder::findContextFiles([__DIR__ . '/Fixture/EverythingUsed']);
2627

27-
$contextFiles = BehatMetafilesFinder::findContextFiles([__DIR__ . '/Fixture/Contexts']);
28+
$this->assertCount(1, $featureFiles);
2829
$this->assertCount(1, $contextFiles);
2930

3031
$unusedDefinitions = $this->unusedDefinitionsAnalyzer->analyse($contextFiles, $featureFiles);
3132

3233
$this->assertCount(0, $unusedDefinitions);
3334
}
35+
36+
public function testFoundMask(): void
37+
{
38+
$featureFiles = BehatMetafilesFinder::findFeatureFiles([__DIR__ . '/Fixture/UnusedMasks']);
39+
$contextFiles = BehatMetafilesFinder::findContextFiles([__DIR__ . '/Fixture/UnusedMasks']);
40+
41+
$this->assertCount(1, $featureFiles);
42+
$this->assertCount(1, $contextFiles);
43+
44+
$unusedMasks = $this->unusedDefinitionsAnalyzer->analyse($contextFiles, $featureFiles);
45+
$this->assertCount(1, $unusedMasks);
46+
$this->assertContainsOnlyInstancesOf(AbstractMask::class, $unusedMasks);
47+
48+
/** @var AbstractMask $unusedMask */
49+
$unusedMask = $unusedMasks[0];
50+
$this->assertSame(__DIR__ . '/Fixture/UnusedMasks/BehatContext.php', $unusedMask->filePath);
51+
$this->assertSame('never used', $unusedMask->mask);
52+
}
3453
}

tests/BehastanTest.php

Lines changed: 0 additions & 48 deletions
This file was deleted.

0 commit comments

Comments
 (0)