fix intersection types in tests

This commit is contained in:
Tobias Schultze 2021-07-21 14:55:43 +02:00
parent c7dc7f8240
commit e5d5e9967f
28 changed files with 82 additions and 66 deletions

View File

@ -29,17 +29,17 @@ use Symfony\Component\Form\ChoiceList\Factory\ChoiceListFactoryInterface;
class DoctrineChoiceLoaderTest extends TestCase class DoctrineChoiceLoaderTest extends TestCase
{ {
/** /**
* @var ChoiceListFactoryInterface|MockObject * @var MockObject&ChoiceListFactoryInterface
*/ */
private $factory; private $factory;
/** /**
* @var ObjectManager|MockObject * @var MockObject&ObjectManager
*/ */
private $om; private $om;
/** /**
* @var ObjectRepository|MockObject * @var MockObject&ObjectRepository
*/ */
private $repository; private $repository;
@ -49,12 +49,12 @@ class DoctrineChoiceLoaderTest extends TestCase
private $class; private $class;
/** /**
* @var IdReader|MockObject * @var MockObject&IdReader
*/ */
private $idReader; private $idReader;
/** /**
* @var EntityLoaderInterface|MockObject * @var MockObject&EntityLoaderInterface
*/ */
private $objectLoader; private $objectLoader;

View File

@ -59,7 +59,7 @@ class EntityTypeTest extends BaseTypeTest
private $em; private $em;
/** /**
* @var MockObject|ManagerRegistry * @var MockObject&ManagerRegistry
*/ */
private $emRegistry; private $emRegistry;
@ -1312,7 +1312,10 @@ class EntityTypeTest extends BaseTypeTest
$this->assertSame($choiceLoader1, $choiceLoader3); $this->assertSame($choiceLoader1, $choiceLoader3);
} }
protected function createRegistryMock($name, $em) /**
* @return MockObject&ManagerRegistry
*/
protected function createRegistryMock($name, $em): ManagerRegistry
{ {
$registry = $this->createMock(ManagerRegistry::class); $registry = $this->createMock(ManagerRegistry::class);
$registry->expects($this->any()) $registry->expects($this->any())

View File

@ -169,7 +169,7 @@ class AnnotationsCacheWarmerTest extends TestCase
/** /**
* @return MockObject&Reader * @return MockObject&Reader
*/ */
private function getReadOnlyReader() private function getReadOnlyReader(): Reader
{ {
$readerMock = $this->createMock(Reader::class); $readerMock = $this->createMock(Reader::class);
$readerMock->expects($this->exactly(0))->method('getClassAnnotations'); $readerMock->expects($this->exactly(0))->method('getClassAnnotations');

View File

@ -86,7 +86,7 @@ class CachePoolDeleteCommandTest extends TestCase
/** /**
* @return MockObject&KernelInterface * @return MockObject&KernelInterface
*/ */
private function getKernel() private function getKernel(): KernelInterface
{ {
$container = $this->createMock(ContainerInterface::class); $container = $this->createMock(ContainerInterface::class);

View File

@ -53,7 +53,7 @@ class CachePruneCommandTest extends TestCase
/** /**
* @return MockObject&KernelInterface * @return MockObject&KernelInterface
*/ */
private function getKernel() private function getKernel(): KernelInterface
{ {
$container = $this->createMock(ContainerInterface::class); $container = $this->createMock(ContainerInterface::class);
@ -74,7 +74,7 @@ class CachePruneCommandTest extends TestCase
/** /**
* @return MockObject&PruneableInterface * @return MockObject&PruneableInterface
*/ */
private function getPruneableInterfaceMock() private function getPruneableInterfaceMock(): PruneableInterface
{ {
$pruneable = $this->createMock(PruneableInterface::class); $pruneable = $this->createMock(PruneableInterface::class);
$pruneable $pruneable

View File

@ -24,7 +24,7 @@ use Symfony\Component\EventDispatcher\ImmutableEventDispatcher;
class ImmutableEventDispatcherTest extends TestCase class ImmutableEventDispatcherTest extends TestCase
{ {
/** /**
* @var MockObject * @var MockObject&EventDispatcherInterface
*/ */
private $innerDispatcher; private $innerDispatcher;

View File

@ -20,7 +20,6 @@ use Symfony\Component\Form\DataTransformerInterface;
use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormValidatorInterface;
abstract class AbstractFormTest extends TestCase abstract class AbstractFormTest extends TestCase
{ {
@ -30,7 +29,7 @@ abstract class AbstractFormTest extends TestCase
protected $dispatcher; protected $dispatcher;
/** /**
* @var FormFactoryInterface * @var MockObject&FormFactoryInterface
*/ */
protected $factory; protected $factory;
@ -60,18 +59,19 @@ abstract class AbstractFormTest extends TestCase
return new FormBuilder($name, $dataClass, $dispatcher ?: $this->dispatcher, $this->factory, $options); return new FormBuilder($name, $dataClass, $dispatcher ?: $this->dispatcher, $this->factory, $options);
} }
protected function getDataMapper(): MockObject /**
* @return MockObject&DataMapperInterface
*/
protected function getDataMapper(): DataMapperInterface
{ {
return $this->createMock(DataMapperInterface::class); return $this->createMock(DataMapperInterface::class);
} }
protected function getDataTransformer(): MockObject /**
* @return MockObject&DataTransformerInterface
*/
protected function getDataTransformer(): DataTransformerInterface
{ {
return $this->createMock(DataTransformerInterface::class); return $this->createMock(DataTransformerInterface::class);
} }
protected function getFormValidator(): MockObject
{
return $this->createMock(FormValidatorInterface::class);
}
} }

View File

@ -26,7 +26,7 @@ use Symfony\Component\Form\ChoiceList\View\ChoiceListView;
class CachingFactoryDecoratorTest extends TestCase class CachingFactoryDecoratorTest extends TestCase
{ {
/** /**
* @var MockObject * @var MockObject&ChoiceListFactoryInterface
*/ */
private $decoratedFactory; private $decoratedFactory;

View File

@ -27,7 +27,7 @@ use Symfony\Component\PropertyAccess\PropertyPath;
class PropertyAccessDecoratorTest extends TestCase class PropertyAccessDecoratorTest extends TestCase
{ {
/** /**
* @var MockObject * @var MockObject&ChoiceListFactoryInterface
*/ */
private $decoratedFactory; private $decoratedFactory;

View File

@ -28,15 +28,18 @@ class LazyChoiceListTest extends TestCase
private $list; private $list;
/** /**
* @var MockObject * @var MockObject&ChoiceListInterface
*/ */
private $loadedList; private $loadedList;
/** /**
* @var MockObject * @var MockObject&ChoiceLoaderInterface
*/ */
private $loader; private $loader;
/**
* @var \Closure
*/
private $value; private $value;
protected function setUp(): void protected function setUp(): void

View File

@ -34,12 +34,12 @@ class FormTypeCsrfExtensionTest_ChildType extends AbstractType
class FormTypeCsrfExtensionTest extends TypeTestCase class FormTypeCsrfExtensionTest extends TypeTestCase
{ {
/** /**
* @var MockObject * @var MockObject&CsrfTokenManagerInterface
*/ */
protected $tokenManager; protected $tokenManager;
/** /**
* @var MockObject * @var MockObject&TranslatorInterface
*/ */
protected $translator; protected $translator;

View File

@ -25,7 +25,7 @@ class DataCollectorExtensionTest extends TestCase
private $extension; private $extension;
/** /**
* @var MockObject * @var MockObject&FormDataCollectorInterface
*/ */
private $dataCollector; private $dataCollector;

View File

@ -32,7 +32,7 @@ use Symfony\Component\Form\ResolvedFormTypeFactory;
class FormDataCollectorTest extends TestCase class FormDataCollectorTest extends TestCase
{ {
/** /**
* @var MockObject * @var MockObject&FormDataExtractorInterface
*/ */
private $dataExtractor; private $dataExtractor;
@ -42,17 +42,17 @@ class FormDataCollectorTest extends TestCase
private $dataCollector; private $dataCollector;
/** /**
* @var MockObject * @var EventDispatcher
*/ */
private $dispatcher; private $dispatcher;
/** /**
* @var MockObject * @var FormFactory
*/ */
private $factory; private $factory;
/** /**
* @var MockObject * @var PropertyPathMapper
*/ */
private $dataMapper; private $dataMapper;

View File

@ -41,12 +41,12 @@ class FormDataExtractorTest extends TestCase
private $dataExtractor; private $dataExtractor;
/** /**
* @var MockObject * @var MockObject&EventDispatcherInterface
*/ */
private $dispatcher; private $dispatcher;
/** /**
* @var MockObject * @var MockObject&FormFactoryInterface
*/ */
private $factory; private $factory;

View File

@ -26,7 +26,7 @@ class DataCollectorTypeExtensionTest extends TestCase
private $extension; private $extension;
/** /**
* @var MockObject * @var MockObject&FormDataCollectorInterface
*/ */
private $dataCollector; private $dataCollector;

View File

@ -33,22 +33,22 @@ use Symfony\Component\Form\Test\FormBuilderInterface;
class FormFactoryTest extends TestCase class FormFactoryTest extends TestCase
{ {
/** /**
* @var MockObject * @var MockObject&FormTypeGuesserInterface
*/ */
private $guesser1; private $guesser1;
/** /**
* @var MockObject * @var MockObject&FormTypeGuesserInterface
*/ */
private $guesser2; private $guesser2;
/** /**
* @var MockObject * @var MockObject&FormRegistryInterface
*/ */
private $registry; private $registry;
/** /**
* @var MockObject * @var MockObject&FormBuilderInterface
*/ */
private $builder; private $builder;

View File

@ -44,17 +44,17 @@ class FormRegistryTest extends TestCase
private $registry; private $registry;
/** /**
* @var MockObject|ResolvedFormTypeFactoryInterface * @var MockObject&ResolvedFormTypeFactoryInterface
*/ */
private $resolvedTypeFactory; private $resolvedTypeFactory;
/** /**
* @var MockObject * @var MockObject&FormTypeGuesserInterface
*/ */
private $guesser1; private $guesser1;
/** /**
* @var MockObject * @var MockObject&FormTypeGuesserInterface
*/ */
private $guesser2; private $guesser2;

View File

@ -33,22 +33,22 @@ use Symfony\Component\OptionsResolver\OptionsResolver;
class ResolvedFormTypeTest extends TestCase class ResolvedFormTypeTest extends TestCase
{ {
/** /**
* @var MockObject|FormTypeInterface * @var MockObject&FormTypeInterface
*/ */
private $parentType; private $parentType;
/** /**
* @var MockObject|FormTypeInterface * @var MockObject&FormTypeInterface
*/ */
private $type; private $type;
/** /**
* @var MockObject|FormTypeExtensionInterface * @var MockObject&FormTypeExtensionInterface
*/ */
private $extension1; private $extension1;
/** /**
* @var MockObject|FormTypeExtensionInterface * @var MockObject&FormTypeExtensionInterface
*/ */
private $extension2; private $extension2;
@ -373,17 +373,26 @@ class ResolvedFormTypeTest extends TestCase
]; ];
} }
private function getMockFormType($typeClass = AbstractType::class): MockObject /**
* @return MockObject&FormTypeInterface
*/
private function getMockFormType($typeClass = AbstractType::class): FormTypeInterface
{ {
return $this->getMockBuilder($typeClass)->setMethods(['getBlockPrefix', 'configureOptions', 'finishView', 'buildView', 'buildForm'])->getMock(); return $this->getMockBuilder($typeClass)->setMethods(['getBlockPrefix', 'configureOptions', 'finishView', 'buildView', 'buildForm'])->getMock();
} }
private function getMockFormTypeExtension(): MockObject /**
* @return MockObject&FormTypeExtensionInterface
*/
private function getMockFormTypeExtension(): FormTypeExtensionInterface
{ {
return $this->getMockBuilder(AbstractTypeExtension::class)->setMethods(['getExtendedType', 'configureOptions', 'finishView', 'buildView', 'buildForm'])->getMock(); return $this->getMockBuilder(AbstractTypeExtension::class)->setMethods(['getExtendedType', 'configureOptions', 'finishView', 'buildView', 'buildForm'])->getMock();
} }
private function getMockFormFactory(): MockObject /**
* @return MockObject&FormFactoryInterface
*/
private function getMockFormFactory(): FormFactoryInterface
{ {
return $this->createMock(FormFactoryInterface::class); return $this->createMock(FormFactoryInterface::class);
} }

View File

@ -11,6 +11,7 @@
namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler; namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler;
use MongoDB\Client;
use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler; use Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler;
@ -23,7 +24,7 @@ use Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandl
class MongoDbSessionHandlerTest extends TestCase class MongoDbSessionHandlerTest extends TestCase
{ {
/** /**
* @var MockObject * @var MockObject&Client
*/ */
private $mongo; private $mongo;
private $storage; private $storage;
@ -33,11 +34,11 @@ class MongoDbSessionHandlerTest extends TestCase
{ {
parent::setUp(); parent::setUp();
if (!class_exists(\MongoDB\Client::class)) { if (!class_exists(Client::class)) {
$this->markTestSkipped('The mongodb/mongodb package is required.'); $this->markTestSkipped('The mongodb/mongodb package is required.');
} }
$this->mongo = $this->getMockBuilder(\MongoDB\Client::class) $this->mongo = $this->getMockBuilder(Client::class)
->disableOriginalConstructor() ->disableOriginalConstructor()
->getMock(); ->getMock();
@ -199,7 +200,7 @@ class MongoDbSessionHandlerTest extends TestCase
$method = new \ReflectionMethod($this->storage, 'getMongo'); $method = new \ReflectionMethod($this->storage, 'getMongo');
$method->setAccessible(true); $method->setAccessible(true);
$this->assertInstanceOf(\MongoDB\Client::class, $method->invoke($this->storage)); $this->assertInstanceOf(Client::class, $method->invoke($this->storage));
} }
private function createMongoCollectionMock(): \MongoDB\Collection private function createMongoCollectionMock(): \MongoDB\Collection

View File

@ -31,7 +31,7 @@ class BundleEntryReaderTest extends TestCase
private $reader; private $reader;
/** /**
* @var MockObject * @var MockObject&BundleEntryReaderInterface
*/ */
private $readerImpl; private $readerImpl;

View File

@ -21,7 +21,7 @@ use Symfony\Component\Ldap\Ldap;
class LdapTest extends TestCase class LdapTest extends TestCase
{ {
/** @var MockObject */ /** @var MockObject&AdapterInterface */
private $adapter; private $adapter;
/** @var Ldap */ /** @var Ldap */

View File

@ -51,11 +51,11 @@ class CombinedStoreTest extends AbstractStoreTest
return new CombinedStore([new RedisStore($redis)], new UnanimousStrategy()); return new CombinedStore([new RedisStore($redis)], new UnanimousStrategy());
} }
/** @var MockObject */ /** @var MockObject&StrategyInterface */
private $strategy; private $strategy;
/** @var MockObject */ /** @var MockObject&BlockingStoreInterface */
private $store1; private $store1;
/** @var MockObject */ /** @var MockObject&BlockingStoreInterface */
private $store2; private $store2;
/** @var CombinedStore */ /** @var CombinedStore */
private $store; private $store;

View File

@ -24,7 +24,7 @@ class SetupTransportsCommandTest extends TestCase
public function testReceiverNames() public function testReceiverNames()
{ {
// mock a service locator // mock a service locator
/** @var MockObject|ServiceLocator $serviceLocator */ /** @var MockObject&ServiceLocator $serviceLocator */
$serviceLocator = $this->createMock(ServiceLocator::class); $serviceLocator = $this->createMock(ServiceLocator::class);
// get method must be call twice and will return consecutively a setup-able transport and a non setup-able transport // get method must be call twice and will return consecutively a setup-able transport and a non setup-able transport
$serviceLocator->expects($this->exactly(2)) $serviceLocator->expects($this->exactly(2))
@ -49,7 +49,7 @@ class SetupTransportsCommandTest extends TestCase
public function testReceiverNameArgument() public function testReceiverNameArgument()
{ {
// mock a service locator // mock a service locator
/** @var MockObject|ServiceLocator $serviceLocator */ /** @var MockObject&ServiceLocator $serviceLocator */
$serviceLocator = $this->createMock(ServiceLocator::class); $serviceLocator = $this->createMock(ServiceLocator::class);
// get method must be call twice and will return consecutively a setup-able transport and a non setup-able transport // get method must be call twice and will return consecutively a setup-able transport and a non setup-able transport
$serviceLocator->expects($this->exactly(1)) $serviceLocator->expects($this->exactly(1))
@ -74,7 +74,7 @@ class SetupTransportsCommandTest extends TestCase
$this->expectException(\RuntimeException::class); $this->expectException(\RuntimeException::class);
$this->expectExceptionMessage('The "not_found" transport does not exist.'); $this->expectExceptionMessage('The "not_found" transport does not exist.');
// mock a service locator // mock a service locator
/** @var MockObject|ServiceLocator $serviceLocator */ /** @var MockObject&ServiceLocator $serviceLocator */
$serviceLocator = $this->createMock(ServiceLocator::class); $serviceLocator = $this->createMock(ServiceLocator::class);
// get method must be call twice and will return consecutively a setup-able transport and a non setup-able transport // get method must be call twice and will return consecutively a setup-able transport and a non setup-able transport
$serviceLocator->expects($this->exactly(0)) $serviceLocator->expects($this->exactly(0))

View File

@ -933,7 +933,7 @@ XML;
/** /**
* @return MockObject&NormalizerInterface * @return MockObject&NormalizerInterface
*/ */
private function createMockDateTimeNormalizer() private function createMockDateTimeNormalizer(): NormalizerInterface
{ {
$mock = $this->createMock(CustomNormalizer::class); $mock = $this->createMock(CustomNormalizer::class);

View File

@ -36,7 +36,7 @@ class AbstractNormalizerTest extends TestCase
private $normalizer; private $normalizer;
/** /**
* @var ClassMetadataFactoryInterface|MockObject * @var MockObject&ClassMetadataFactoryInterface
*/ */
private $classMetadata; private $classMetadata;

View File

@ -25,7 +25,7 @@ class ArrayDenormalizerTest extends TestCase
private $denormalizer; private $denormalizer;
/** /**
* @var SerializerInterface|MockObject * @var MockObject&SerializerInterface
*/ */
private $serializer; private $serializer;

View File

@ -31,7 +31,7 @@ class JsonSerializableNormalizerTest extends TestCase
private $normalizer; private $normalizer;
/** /**
* @var MockObject|SerializerInterface * @var MockObject&JsonSerializerNormalizer
*/ */
private $serializer; private $serializer;

View File

@ -100,7 +100,7 @@ class TranslatorCacheTest extends TestCase
$catalogue = new MessageCatalogue($locale, []); $catalogue = new MessageCatalogue($locale, []);
$catalogue->addResource(new StaleResource()); // better use a helper class than a mock, because it gets serialized in the cache and re-loaded $catalogue->addResource(new StaleResource()); // better use a helper class than a mock, because it gets serialized in the cache and re-loaded
/** @var LoaderInterface|MockObject $loader */ /** @var MockObject&LoaderInterface $loader */
$loader = $this->createMock(LoaderInterface::class); $loader = $this->createMock(LoaderInterface::class);
$loader $loader
->expects($this->exactly(2)) ->expects($this->exactly(2))