4
4
namespace App \Tests \Parser ;
5
5
6
6
use App \Parser \SniffParser ;
7
- use App \Value \Folder ;
8
7
use App \Value \Property ;
9
8
use App \Value \Url ;
10
9
use PHPUnit \Framework \TestCase ;
10
+ use Roave \BetterReflection \BetterReflection ;
11
+ use Roave \BetterReflection \SourceLocator \Ast \Locator ;
12
+ use Roave \BetterReflection \SourceLocator \Type \StringSourceLocator ;
11
13
use Symfony \Component \Filesystem \Filesystem ;
12
14
13
15
/** @covers \App\Parser\SniffParser */
14
16
class SniffParserTest extends TestCase
15
17
{
16
18
private const PHP_FILE_PATH = 'var/tests/src/Standard/Sniffs/Category/MySniff.php ' ;
17
19
private const XML_FILE_PATH = 'var/tests/src/Standard/Docs/Category/MyStandard.xml ' ;
18
- private const REPO_FOLDER = 'var/tests/ ' ;
19
20
20
21
private SniffParser $ parser ;
22
+ private Locator $ astLocator ;
21
23
22
24
/** @test */
23
25
public function parse_WithValidPath_AddCode ()
24
26
{
25
27
$ content = '<?php
28
+ namespace Standard\Sniffs\Category;
26
29
/**
27
30
* Summary
28
31
*
29
32
* Description
30
33
*
31
34
* @since 1.0.0
32
35
*/
33
- class SniffName {}
36
+ class MySniff {}
34
37
' ;
35
38
36
39
(new Filesystem ())->dumpFile (self ::PHP_FILE_PATH , $ content );
37
- $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new Folder ( self :: REPO_FOLDER ));
40
+ $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new StringSourceLocator ( $ content , $ this -> astLocator ));
38
41
self ::assertEquals (
39
42
'Standard.Category.My ' ,
40
43
$ doc ->getCode ()
@@ -45,18 +48,19 @@ class SniffName {}
45
48
public function parse_WithDocblockSummaryAndDescription_AddAllText ()
46
49
{
47
50
$ content = '<?php
51
+ namespace Standard\Sniffs\Category;
48
52
/**
49
53
* Summary
50
54
*
51
55
* Description
52
56
*
53
57
* @since 1.0.0
54
58
*/
55
- class SniffName {}
59
+ class MySniff {}
56
60
' ;
57
61
58
62
(new Filesystem ())->dumpFile (self ::PHP_FILE_PATH , $ content );
59
- $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new Folder ( self :: REPO_FOLDER ));
63
+ $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new StringSourceLocator ( $ content , $ this -> astLocator ));
60
64
self ::assertEquals (
61
65
"Summary \n\nDescription " ,
62
66
$ doc ->getDocblock ()
@@ -67,14 +71,15 @@ class SniffName {}
67
71
public function parse_WithDocblockSummary_AddSummary ()
68
72
{
69
73
$ content = '<?php
74
+ namespace Standard\Sniffs\Category;
70
75
/**
71
76
* Summary
72
77
*/
73
- class SniffName {}
78
+ class MySniff {}
74
79
' ;
75
80
76
81
(new Filesystem ())->dumpFile (self ::PHP_FILE_PATH , $ content );
77
- $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new Folder ( self :: REPO_FOLDER ));
82
+ $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new StringSourceLocator ( $ content , $ this -> astLocator ));
78
83
self ::assertEquals (
79
84
'Summary ' ,
80
85
$ doc ->getDocblock ()
@@ -85,7 +90,8 @@ class SniffName {}
85
90
public function parse_WithProperties_AddPublicOnly ()
86
91
{
87
92
$ content = '<?php
88
- class SniffName {
93
+ namespace Standard\Sniffs\Category;
94
+ class MySniff {
89
95
/** @var bool */
90
96
public $boolProperty = false;
91
97
public string $stringProperty = "";
@@ -97,7 +103,7 @@ class SniffName {
97
103
' ;
98
104
99
105
(new Filesystem ())->dumpFile (self ::PHP_FILE_PATH , $ content );
100
- $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new Folder ( self :: REPO_FOLDER ));
106
+ $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new StringSourceLocator ( $ content , $ this -> astLocator ));
101
107
self ::assertEquals (
102
108
[
103
109
new Property ('boolProperty ' , 'bool ' , '' ),
@@ -113,15 +119,16 @@ class SniffName {
113
119
public function parse_WithMultipleLinks_AddLinks ()
114
120
{
115
121
$ content = '<?php
122
+ namespace Standard\Sniffs\Category;
116
123
/**
117
124
* @link http://link1.com
118
125
* @link http://link2.com
119
126
*/
120
- class SniffName {}
127
+ class MySniff {}
121
128
' ;
122
129
123
130
(new Filesystem ())->dumpFile (self ::PHP_FILE_PATH , $ content );
124
- $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new Folder ( self :: REPO_FOLDER ));
131
+ $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new StringSourceLocator ( $ content , $ this -> astLocator ));
125
132
self ::assertEquals (
126
133
[
127
134
new Url ('http://link1.com ' ),
@@ -135,18 +142,19 @@ class SniffName {}
135
142
public function parse_WithXmlDocs_AddProperties ()
136
143
{
137
144
$ content = '<?php
145
+ namespace Standard\Sniffs\Category;
138
146
/**
139
147
* Summary
140
148
*
141
149
* Description
142
150
*
143
151
* @since 1.0.0
144
152
*/
145
- class SniffName {}
153
+ class MySniff {}
146
154
' ;
147
155
148
156
(new Filesystem ())->dumpFile (self ::PHP_FILE_PATH , $ content );
149
- $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new Folder ( self :: REPO_FOLDER ));
157
+ $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new StringSourceLocator ( $ content , $ this -> astLocator ));
150
158
self ::assertEquals (
151
159
'Standard.Category.My ' ,
152
160
$ doc ->getCode ()
@@ -157,11 +165,12 @@ class SniffName {}
157
165
public function parse_WithXmlLinks_MergeLinks ()
158
166
{
159
167
$ content = '<?php
168
+ namespace Standard\Sniffs\Category;
160
169
/**
161
170
* @link http://link1.com
162
171
* @link http://link3.com
163
172
*/
164
- class SniffName {}
173
+ class MySniff {}
165
174
' ;
166
175
167
176
(new Filesystem ())->dumpFile (self ::PHP_FILE_PATH , $ content );
@@ -175,7 +184,7 @@ class SniffName {}
175
184
XML ;
176
185
(new Filesystem ())->dumpFile (self ::XML_FILE_PATH , $ content );
177
186
178
- $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new Folder ( self :: REPO_FOLDER ));
187
+ $ doc = $ this ->parser ->parse (self ::PHP_FILE_PATH , new StringSourceLocator ( $ content , $ this -> astLocator ));
179
188
self ::assertEquals (
180
189
[
181
190
new Url ('http://link1.com ' ),
@@ -189,5 +198,6 @@ class SniffName {}
189
198
protected function setUp (): void
190
199
{
191
200
$ this ->parser = new SniffParser ();
201
+ $ this ->astLocator = (new BetterReflection ())->astLocator ();
192
202
}
193
203
}
0 commit comments