@@ -35,6 +35,7 @@ public function testCheckWithPhpizeInPath(): void
3535 putenv ('PATH= ' . realpath (self ::GOOD_PHPIZE_PATH ));
3636
3737 $ mockPhpBinary = $ this ->createMock (PhpBinaryPath::class);
38+ $ mockPhpBinary ->method ('phpApiVersion ' )->willReturn ('20240924 ' );
3839 (fn () => $ this ->phpBinaryPath = '/path/to/php ' )
3940 ->bindTo ($ mockPhpBinary , PhpBinaryPath::class)();
4041
@@ -58,6 +59,7 @@ public function testCheckWithPhpizeFromTargetPlatform(): void
5859 putenv ('PATH= ' . realpath (self ::BAD_PHPIZE_PATH ));
5960
6061 $ mockPhpBinary = $ this ->createMock (PhpBinaryPath::class);
62+ $ mockPhpBinary ->method ('phpApiVersion ' )->willReturn ('20240924 ' );
6163 (fn () => $ this ->phpBinaryPath = '/path/to/php ' )
6264 ->bindTo ($ mockPhpBinary , PhpBinaryPath::class)();
6365
@@ -102,4 +104,28 @@ public function testCheckWithPhpizeGuessed(): void
102104
103105 putenv ('PATH= ' . $ oldPath );
104106 }
107+
108+ public function testPhpizeForDifferentPhpApiVersionIsRejected (): void
109+ {
110+ $ oldPath = getenv ('PATH ' );
111+ putenv ('PATH= ' . realpath (self ::GOOD_PHPIZE_PATH ));
112+
113+ $ mockPhpBinary = $ this ->createMock (PhpBinaryPath::class);
114+ $ mockPhpBinary ->method ('phpApiVersion ' )->willReturn ('20250925 ' );
115+ (fn () => $ this ->phpBinaryPath = '/path/to/php ' )
116+ ->bindTo ($ mockPhpBinary , PhpBinaryPath::class)();
117+
118+ self ::assertFalse ((new PhpizeBuildToolFinder ([]))->check (new TargetPlatform (
119+ OperatingSystem::NonWindows,
120+ OperatingSystemFamily::Linux,
121+ $ mockPhpBinary ,
122+ Architecture::x86_64,
123+ ThreadSafetyMode::NonThreadSafe,
124+ 1 ,
125+ null ,
126+ null ,
127+ )));
128+
129+ putenv ('PATH= ' . $ oldPath );
130+ }
105131}
0 commit comments