13
13
*/
14
14
class SupportedPhpExtensionsTest extends TestCase
15
15
{
16
- protected function setUp (): void
16
+ public function providePhpVersions (): array
17
17
{
18
- parent ::setUp ();
18
+ return [
19
+ [['apcu ' , 'pdo_mysql ' ], '8.2 ' ],
20
+ [['apcu ' , 'pdo_pgsql ' , 'redis ' ], '8.1 ' ],
21
+ [['pdo_pgsql ' , 'memcached ' ], '8.0 ' ],
22
+ ];
23
+ }
19
24
20
- $ this ->partialMock (SupportedPhpExtensions::class, function (MockInterface $ mock ) {
25
+ /** @dataProvider providePhpVersions */
26
+ public function testItFiltersVersions ($ expected , $ version ): void
27
+ {
28
+ $ this ->mock (SupportedPhpExtensions::class, function (MockInterface $ mock ) use ($ version ) {
21
29
$ mock ->shouldAllowMockingProtectedMethods ();
22
30
$ mock ->shouldReceive ('get ' )
31
+ ->with ($ version )
23
32
->once ()
24
33
->passthru ();
25
34
$ mock ->shouldReceive ('fetch ' )
35
+ ->withNoArgs ()
26
36
->once ()
27
37
->andReturn ([
28
38
'apcu 8.1 8.2 ' ,
@@ -32,22 +42,22 @@ protected function setUp(): void
32
42
'redis 8.1 ' ,
33
43
]);
34
44
});
35
- }
36
45
37
- public function providePhpVersions (): array
38
- {
39
- return [
40
- [['apcu ' , 'pdo_mysql ' ], '8.2 ' ],
41
- [['apcu ' , 'pdo_pgsql ' , 'redis ' ], '8.1 ' ],
42
- [['pdo_pgsql ' , 'memcached ' ], '8.0 ' ],
43
- ];
46
+ $ supported = app (SupportedPhpExtensions::class)->get ($ version );
47
+
48
+ self ::assertEquals ($ expected , $ supported );
44
49
}
45
50
46
- /** @dataProvider providePhpVersions */
47
- public function testItFiltersVersions ($ expected , $ version ): void
51
+ public function testItReturnsEmptyArrayOnError (): void
48
52
{
49
- $ supported = app (SupportedPhpExtensions::class)->get ($ version );
53
+ $ this ->mock (SupportedPhpExtensions::class, function (MockInterface $ mock ) {
54
+ $ mock ->shouldAllowMockingProtectedMethods ();
55
+ $ mock ->shouldReceive ('get ' )->once ()->passthru ();
56
+ $ mock ->shouldReceive ('fetch ' )->once ()->withNoArgs ()->andReturn (false );
57
+ });
50
58
51
- self ::assertEquals ($ expected , $ supported );
59
+ $ supported = app (SupportedPhpExtensions::class)->get ('8.2 ' );
60
+
61
+ self ::assertEquals ([], $ supported );
52
62
}
53
63
}
0 commit comments