File tree Expand file tree Collapse file tree
rules-tests/PHPUnit110/Rector/ClassMethod/MockObjectArgCreateStubToCreateMockRector
rules/PHPUnit110/Rector/ClassMethod Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66use Rector \PHPUnit \CodeQuality \Rector \Class_ \AddIntersectionVarToMockObjectPropertyRector ;
77use Rector \PHPUnit \CodeQuality \Rector \Class_ \AddStubIntersectionVarToStubPropertyRector ;
88use Rector \PHPUnit \CodeQuality \Rector \ClassMethod \BareCreateMockAssignToDirectUseRector ;
9+ use Rector \PHPUnit \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector ;
910use Rector \PHPUnit \PHPUnit120 \Rector \CallLike \CreateStubInCoalesceArgRector ;
1011use Rector \PHPUnit \PHPUnit120 \Rector \CallLike \CreateStubOverCreateMockArgRector ;
1112use Rector \PHPUnit \PHPUnit120 \Rector \Class_ \PropertyCreateMockToCreateStubRector ;
2324 AddIntersectionVarToMockObjectPropertyRector::class,
2425 AddStubIntersectionVarToStubPropertyRector::class,
2526 BareCreateMockAssignToDirectUseRector::class,
27+
28+ // mocks back over stubs, where mock object is required
29+ MockObjectArgCreateStubToCreateMockRector::class,
2630 ]);
2731};
Original file line number Diff line number Diff line change 55use Rector \Config \RectorConfig ;
66use Rector \PHPUnit \PHPUnit110 \Rector \CallLike \AssertContainsOnlyMethodCallRector ;
77use Rector \PHPUnit \PHPUnit110 \Rector \Class_ \NamedArgumentForDataProviderRector ;
8+ use Rector \PHPUnit \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector ;
89use Rector \PHPUnit \PHPUnit120 \Rector \Class_ \AssertIsTypeMethodCallRector ;
910
1011return static function (RectorConfig $ rectorConfig ): void {
1112 $ rectorConfig ->rules ([
1213 NamedArgumentForDataProviderRector::class,
14+ MockObjectArgCreateStubToCreateMockRector::class,
1315 // deprecated in PHPUnit 11.5, guarded by composer package constraint
1416 AssertContainsOnlyMethodCallRector::class,
1517 AssertIsTypeMethodCallRector::class,
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Fixture ;
4+
5+ use PHPUnit \Framework \MockObject \MockObject ;
6+ use PHPUnit \Framework \TestCase ;
7+ use Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Source \SomeUser ;
8+
9+ final class PassedToMockObjectParam extends TestCase
10+ {
11+ public function test ()
12+ {
13+ $ user = $ this ->createStub (SomeUser::class);
14+ $ this ->prepareUserMock ($ user );
15+ }
16+
17+ private function prepareUserMock (MockObject $ user ): void
18+ {
19+ $ user ->expects ($ this ->once ())
20+ ->method ('getId ' )
21+ ->willReturn (1 );
22+ }
23+ }
24+
25+ ?>
26+ -----
27+ <?php
28+
29+ namespace Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Fixture ;
30+
31+ use PHPUnit \Framework \MockObject \MockObject ;
32+ use PHPUnit \Framework \TestCase ;
33+ use Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Source \SomeUser ;
34+
35+ final class PassedToMockObjectParam extends TestCase
36+ {
37+ public function test ()
38+ {
39+ $ user = $ this ->createMock (SomeUser::class);
40+ $ this ->prepareUserMock ($ user );
41+ }
42+
43+ private function prepareUserMock (MockObject $ user ): void
44+ {
45+ $ user ->expects ($ this ->once ())
46+ ->method ('getId ' )
47+ ->willReturn (1 );
48+ }
49+ }
50+
51+ ?>
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Fixture ;
4+
5+ use PHPUnit \Framework \MockObject \MockObject ;
6+ use PHPUnit \Framework \TestCase ;
7+ use Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Source \SomeUser ;
8+
9+ final class IntersectionDocblockParam extends TestCase
10+ {
11+ public function test ()
12+ {
13+ $ user = $ this ->createStub (SomeUser::class);
14+ $ this ->prepareCommonMocks ('some_event ' , $ user );
15+ }
16+
17+ /**
18+ * @param MockObject&SomeUser $user
19+ */
20+ private function prepareCommonMocks (string $ event , MockObject $ user ): void
21+ {
22+ $ user ->expects ($ this ->once ())
23+ ->method ('getId ' )
24+ ->willReturn (1 );
25+ }
26+ }
27+
28+ ?>
29+ -----
30+ <?php
31+
32+ namespace Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Fixture ;
33+
34+ use PHPUnit \Framework \MockObject \MockObject ;
35+ use PHPUnit \Framework \TestCase ;
36+ use Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Source \SomeUser ;
37+
38+ final class IntersectionDocblockParam extends TestCase
39+ {
40+ public function test ()
41+ {
42+ $ user = $ this ->createMock (SomeUser::class);
43+ $ this ->prepareCommonMocks ('some_event ' , $ user );
44+ }
45+
46+ /**
47+ * @param MockObject&SomeUser $user
48+ */
49+ private function prepareCommonMocks (string $ event , MockObject $ user ): void
50+ {
51+ $ user ->expects ($ this ->once ())
52+ ->method ('getId ' )
53+ ->willReturn (1 );
54+ }
55+ }
56+
57+ ?>
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Fixture ;
4+
5+ use PHPUnit \Framework \MockObject \MockObject ;
6+ use PHPUnit \Framework \TestCase ;
7+ use Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Source \SomeUser ;
8+
9+ final class NamedArg extends TestCase
10+ {
11+ public function test ()
12+ {
13+ $ user = $ this ->createStub (SomeUser::class);
14+ $ this ->prepareUserMock (user: $ user );
15+ }
16+
17+ private function prepareUserMock (MockObject $ user ): void
18+ {
19+ $ user ->expects ($ this ->once ())
20+ ->method ('getId ' );
21+ }
22+ }
23+
24+ ?>
25+ -----
26+ <?php
27+
28+ namespace Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Fixture ;
29+
30+ use PHPUnit \Framework \MockObject \MockObject ;
31+ use PHPUnit \Framework \TestCase ;
32+ use Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Source \SomeUser ;
33+
34+ final class NamedArg extends TestCase
35+ {
36+ public function test ()
37+ {
38+ $ user = $ this ->createMock (SomeUser::class);
39+ $ this ->prepareUserMock (user: $ user );
40+ }
41+
42+ private function prepareUserMock (MockObject $ user ): void
43+ {
44+ $ user ->expects ($ this ->once ())
45+ ->method ('getId ' );
46+ }
47+ }
48+
49+ ?>
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Fixture ;
4+
5+ use PHPUnit \Framework \TestCase ;
6+ use Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Source \SomeUser ;
7+
8+ final class SkipPlainParamType extends TestCase
9+ {
10+ public function test ()
11+ {
12+ $ user = $ this ->createStub (SomeUser::class);
13+ $ this ->useUser ($ user );
14+ }
15+
16+ private function useUser (SomeUser $ user ): void
17+ {
18+ $ user ->getId ();
19+ }
20+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Fixture ;
4+
5+ use PHPUnit \Framework \TestCase ;
6+ use Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Source \SomeUser ;
7+
8+ final class SkipStubOnlyUsage extends TestCase
9+ {
10+ public function test ()
11+ {
12+ $ user = $ this ->createStub (SomeUser::class);
13+ $ user ->method ('getId ' )->willReturn (1 );
14+
15+ $ this ->assertSame (1 , $ user ->getId ());
16+ }
17+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector ;
6+
7+ use Iterator ;
8+ use PHPUnit \Framework \Attributes \DataProvider ;
9+ use Rector \Testing \PHPUnit \AbstractRectorTestCase ;
10+
11+ final class MockObjectArgCreateStubToCreateMockRectorTest extends AbstractRectorTestCase
12+ {
13+ #[DataProvider('provideData ' )]
14+ public function test (string $ filePath ): void
15+ {
16+ $ this ->doTestFile ($ filePath );
17+ }
18+
19+ public static function provideData (): Iterator
20+ {
21+ return self ::yieldFilesFromDirectory (__DIR__ . '/Fixture ' );
22+ }
23+
24+ public function provideConfigFilePath (): string
25+ {
26+ return __DIR__ . '/config/configured_rule.php ' ;
27+ }
28+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Rector \PHPUnit \Tests \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector \Source ;
6+
7+ final class SomeUser
8+ {
9+ public function getId (): int
10+ {
11+ return 1 ;
12+ }
13+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ use Rector \Config \RectorConfig ;
6+ use Rector \PHPUnit \PHPUnit110 \Rector \ClassMethod \MockObjectArgCreateStubToCreateMockRector ;
7+
8+ return static function (RectorConfig $ rectorConfig ): void {
9+ $ rectorConfig ->rule (MockObjectArgCreateStubToCreateMockRector::class);
10+ };
You can’t perform that action at this time.
0 commit comments