@@ -415,7 +415,12 @@ public static function constructEmptyExcept(
415415
416416 private static function generateMock ()
417417 {
418- return self ::doGenerateMock (func_get_args ());
418+ $ args = func_get_args ();
419+ if (version_compare (PHPUnitVersion::series (), '10.4 ' , '>= ' ) && !is_bool ($ args [1 ])) {
420+ array_splice ($ args , 1 , 0 , [true ]);
421+ }
422+
423+ return self ::doGenerateMock ($ args );
419424 }
420425
421426 /**
@@ -433,26 +438,28 @@ private static function generateMockForAbstractClass(): object
433438 private static function doGenerateMock ($ args , $ isAbstract = false )
434439 {
435440 $ testCase = self ::extractTestCaseFromArgs ($ args );
436- $ methodName = $ isAbstract ? 'getMockForAbstractClass ' : 'getMock ' ;
441+
442+ // PHPUnit 10.4 changed method names
443+ if (version_compare (PHPUnitVersion::series (), '10.4 ' , '>= ' )) {
444+ $ methodName = $ isAbstract ? 'mockObjectForAbstractClass ' : 'testDouble ' ;
445+ } else {
446+ $ methodName = $ isAbstract ? 'getMockForAbstractClass ' : 'getMock ' ;
447+ }
448+
437449 // PHPUnit 10.3 changed the namespace
438450 if (version_compare (PHPUnitVersion::series (), '10.3 ' , '>= ' )) {
439451 $ generatorClass = new Generator ();
440452 } else {
441453 $ generatorClass = new LegacyGenerator ();
442454 }
443455
444- // using PHPUnit 5.4 mocks registration
445- if (version_compare (PHPUnitVersion::series (), '5.4 ' , '>= ' )
446- && $ testCase instanceof PHPUnitTestCase
447- ) {
448- $ mock = call_user_func_array ([$ generatorClass , $ methodName ], $ args );
449- $ testCase ->registerMockObject ($ mock );
450- return $ mock ;
451- }
456+ $ mock = call_user_func_array ([$ generatorClass , $ methodName ], $ args );
457+
452458 if ($ testCase instanceof PHPUnitTestCase) {
453- $ generatorClass = $ testCase ;
459+ $ testCase-> registerMockObject ( $ mock ) ;
454460 }
455- return call_user_func_array ([$ generatorClass , $ methodName ], $ args );
461+
462+ return $ mock ;
456463 }
457464
458465 private static function extractTestCaseFromArgs (&$ args )
0 commit comments