. * */ namespace Ampache\Gui\AlbumDisk; use Ampache\Config\ConfigContainerInterface; use Ampache\MockeryTestCase; use Ampache\Module\Authorization\Check\FunctionCheckerInterface; use Ampache\Module\Authorization\GuiGatekeeperInterface; use Ampache\Module\Database\Query\Browse; use Ampache\Module\Util\ZipHandlerInterface; use Ampache\Repository\Model\AlbumDisk; use Ampache\Repository\Model\ModelFactoryInterface; use Mockery\MockInterface; use Override; /** * A disk row is the only thing the artist page shows when albums are not grouped, so this is where a manager * either learns the release has been withdrawn or does not. */ class AlbumDiskViewAdapterTest extends MockeryTestCase { private MockInterface&AlbumDisk $albumDisk; private MockInterface&Browse $browse; private MockInterface&ConfigContainerInterface $configContainer; private MockInterface&FunctionCheckerInterface $functionChecker; private MockInterface&GuiGatekeeperInterface $gatekeeper; private MockInterface&ModelFactoryInterface $modelFactory; private AlbumDiskViewAdapter $subject; private MockInterface&ZipHandlerInterface $zipHandler; public function testIsDisabledFollowsTheAlbumBehindTheDisk(): void { $this->albumDisk->shouldReceive('isEnabled')->once()->andReturnFalse(); self::assertTrue($this->subject->isDisabled()); } public function testIsDisabledIsFalseWhileTheAlbumIsOnTheShelves(): void { $this->albumDisk->shouldReceive('isEnabled')->once()->andReturnTrue(); self::assertFalse($this->subject->isDisabled()); } #[Override] protected function setUp(): void { $this->configContainer = $this->mock(ConfigContainerInterface::class); $this->modelFactory = $this->mock(ModelFactoryInterface::class); $this->zipHandler = $this->mock(ZipHandlerInterface::class); $this->functionChecker = $this->mock(FunctionCheckerInterface::class); $this->gatekeeper = $this->mock(GuiGatekeeperInterface::class); $this->browse = $this->mock(Browse::class); $this->albumDisk = $this->mock(AlbumDisk::class); $this->subject = new AlbumDiskViewAdapter( $this->configContainer, $this->modelFactory, $this->zipHandler, $this->functionChecker, $this->gatekeeper, $this->browse, $this->albumDisk, ); } }