Skip to content

Commit

Permalink
Merge 4.x into 5.x
Browse files Browse the repository at this point in the history
  • Loading branch information
SonataCI committed Nov 10, 2021
2 parents b387858 + a651bfb commit ac93833
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 12 deletions.
12 changes: 8 additions & 4 deletions src/Block/FeatureMediaBlockService.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,19 +43,19 @@ final class FeatureMediaBlockService extends AbstractBlockService implements Edi
private Pool $pool;

/**
* @var AdminInterface<MediaInterface>
* @var AdminInterface<MediaInterface>|null
*/
private AdminInterface $mediaAdmin;
private ?AdminInterface $mediaAdmin;

private MediaManagerInterface $mediaManager;

/**
* @param AdminInterface<MediaInterface> $mediaAdmin
* @param AdminInterface<MediaInterface>|null $mediaAdmin
*/
public function __construct(
Environment $twig,
Pool $pool,
AdminInterface $mediaAdmin,
?AdminInterface $mediaAdmin,
MediaManagerInterface $mediaManager
) {
parent::__construct($twig);
Expand Down Expand Up @@ -220,6 +220,10 @@ private function getFormatChoices(?MediaInterface $media = null): array

private function getMediaBuilder(FormMapper $form): FormBuilderInterface
{
if (null === $this->mediaAdmin) {
throw new \LogicException('The SonataAdminBundle is required to render the edit form.');
}

$fieldDescription = $this->mediaAdmin->createFieldDescription('media', [
'translation_domain' => 'SonataMediaBundle',
'edit' => 'list',
Expand Down
12 changes: 8 additions & 4 deletions src/Block/MediaBlockService.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,19 @@ final class MediaBlockService extends AbstractBlockService implements EditableBl
private Pool $pool;

/**
* @var AdminInterface<MediaInterface>
* @var AdminInterface<MediaInterface>|null
*/
private AdminInterface $mediaAdmin;
private ?AdminInterface $mediaAdmin;

private MediaManagerInterface $mediaManager;

/**
* @param AdminInterface<MediaInterface> $mediaAdmin
* @param AdminInterface<MediaInterface>|null $mediaAdmin
*/
public function __construct(
Environment $twig,
Pool $pool,
AdminInterface $mediaAdmin,
?AdminInterface $mediaAdmin,
MediaManagerInterface $mediaManager
) {
parent::__construct($twig);
Expand Down Expand Up @@ -209,6 +209,10 @@ private function getFormatChoices(?MediaInterface $media = null): array

private function getMediaBuilder(FormMapper $form): FormBuilderInterface
{
if (null === $this->mediaAdmin) {
throw new \LogicException('The SonataAdminBundle is required to render the edit form.');
}

$fieldDescription = $this->mediaAdmin->createFieldDescription('media', [
'translation_domain' => 'SonataMediaBundle',
'edit' => 'list',
Expand Down
4 changes: 2 additions & 2 deletions src/Resources/config/block.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
->args([
new ReferenceConfigurator('twig'),
new ReferenceConfigurator('sonata.media.pool'),
new ReferenceConfigurator('sonata.media.admin.media'),
(new ReferenceConfigurator('sonata.media.admin.media'))->nullOnInvalid(),
new ReferenceConfigurator('sonata.media.manager.media'),
])

Expand All @@ -36,7 +36,7 @@
->args([
new ReferenceConfigurator('twig'),
new ReferenceConfigurator('sonata.media.pool'),
new ReferenceConfigurator('sonata.media.admin.media'),
(new ReferenceConfigurator('sonata.media.admin.media'))->nullOnInvalid(),
new ReferenceConfigurator('sonata.media.manager.media'),
])

Expand Down
7 changes: 6 additions & 1 deletion tests/Block/FeatureMediaBlockServiceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@

namespace Sonata\MediaBundle\Tests\Block;

use PHPUnit\Framework\MockObject\Stub;
use Sonata\AdminBundle\Admin\AdminInterface;
use Sonata\BlockBundle\Test\BlockServiceTestCase;
use Sonata\MediaBundle\Block\FeatureMediaBlockService;
use Sonata\MediaBundle\Model\MediaInterface;
use Sonata\MediaBundle\Model\MediaManagerInterface;
use Sonata\MediaBundle\Provider\Pool;

Expand All @@ -27,10 +29,13 @@ protected function setUp(): void
{
parent::setUp();

/** @var AdminInterface<MediaInterface>&Stub $mediaAdmin */
$mediaAdmin = $this->createStub(AdminInterface::class);

$this->blockService = new FeatureMediaBlockService(
$this->twig,
new Pool('default'),
$this->createStub(AdminInterface::class),
$mediaAdmin,
$this->createStub(MediaManagerInterface::class)
);
}
Expand Down
6 changes: 5 additions & 1 deletion tests/Block/MediaBlockServiceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
namespace Sonata\MediaBundle\Tests\Block;

use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\MockObject\Stub;
use Sonata\AdminBundle\Admin\AdminInterface;
use Sonata\BlockBundle\Block\BlockContextInterface;
use Sonata\BlockBundle\Model\Block;
Expand All @@ -35,10 +36,13 @@ protected function setUp(): void

$this->pool = new Pool('default');

/** @var AdminInterface<MediaInterface>&Stub $mediaAdmin */
$mediaAdmin = $this->createStub(AdminInterface::class);

$this->blockService = new MediaBlockService(
$this->twig,
$this->pool,
$this->createStub(AdminInterface::class),
$mediaAdmin,
$this->createStub(MediaManagerInterface::class)
);
}
Expand Down

0 comments on commit ac93833

Please sign in to comment.