/**
  * @dataProvider metadataProvider
  * @param string $entityType
  * @param array $metadata
  * @return void
  */
 public function testGetMetadata($entityType, $metadata)
 {
     $defaults = ['connectionName' => 'default', 'eavEntityType' => null, 'sequence' => null, 'entityContext' => [], 'fields' => null];
     $this->entityMetadataFactoryMock->expects($this->once())->method('create')->with(array_merge($defaults, $metadata[$entityType]))->willReturn($this->entityMetadataMock);
     $metadataPool = new MetadataPool($this->entityMetadataFactoryMock, $this->entityHydratorFactoryMock, $metadata);
     $this->assertEquals($this->entityMetadataMock, $metadataPool->getMetadata($entityType));
 }
    /**
     * @dataProvider metadataProvider
     * @param string $entityType
     * @param array $metadata
     * @return void
     */
    public function testGetMetadata($entityType, $metadata)
    {
        $sequence = $this->getMockBuilder(
            'Magento\Framework\DB\Sequence\SequenceInterface'
        )->disableOriginalConstructor();

        $defaults = [
            'connectionName' => 'default',
            'eavEntityType' => null,
            'entityContext' => [],
            'sequence' => $sequence,
            'fields' => null
        ];

        $finalMetadata = $metadata;
        $finalMetadata[$entityType]['connectionName'] = 'default';

        $this->entityMetadataFactoryMock->expects($this->once())
            ->method('create')
            ->with(array_merge($defaults, $metadata[$entityType]))
            ->willReturn($this->entityMetadataMock);
        $this->sequenceFactoryMock->expects($this->once())
            ->method('create')
            ->with($entityType, $finalMetadata)
            ->willReturn($sequence);
        $metadataPool = new MetadataPool(
            $this->entityMetadataFactoryMock,
            $this->entityHydratorFactoryMock,
            $this->sequenceFactoryMock,
            $metadata
        );
        $this->assertEquals($this->entityMetadataMock, $metadataPool->getMetadata($entityType));
    }