getMockBuilder(TMapFactory::class) ->disableOriginalConstructor() ->setMethods(['create']) ->getMock(); $tMapFactory->method('create') ->willReturn([]); $provider = new NotSyncedDataProvider($tMapFactory); self::assertEquals([], $provider->getIds('main_table', 'grid_table')); } public function testGetIds() { /** @var TMapFactory|MockObject $tMapFactory */ $tMapFactory = $this->getMockBuilder(TMapFactory::class) ->disableOriginalConstructor() ->setMethods(['create']) ->getMock(); $provider1 = $this->getMockBuilder(NotSyncedDataProviderInterface::class) ->getMockForAbstractClass(); $provider1->method('getIds') ->willReturn([1, 2]); $provider2 = $this->getMockBuilder(NotSyncedDataProviderInterface::class) ->getMockForAbstractClass(); $provider2->method('getIds') ->willReturn([2, 3, 4]); $tMapFactory->method('create') ->with(self::equalTo( [ 'array' => [$provider1, $provider2], 'type' => NotSyncedDataProviderInterface::class ] )) ->willReturn([$provider1, $provider2]); $provider = new NotSyncedDataProvider($tMapFactory, [$provider1, $provider2]); self::assertEquals( [1, 2, 3, 4], array_values($provider->getIds('main_table', 'grid_table')) ); } }