. */ namespace Xibo\Tests\integration\Cache; use Xibo\Entity\Display; use Xibo\Helper\Random; use Xibo\OAuth2\Client\Entity\XiboDisplay; use Xibo\OAuth2\Client\Entity\XiboLibrary; use Xibo\Tests\Helper\DisplayHelperTrait; use Xibo\Tests\Helper\LayoutHelperTrait; use Xibo\Tests\LocalWebTestCase; /** * Class DisplayGroupMediaUnassignTest * @package Xibo\Tests\integration\Cache */ class DisplayGroupMediaUnassignTest extends LocalWebTestCase { use LayoutHelperTrait; use DisplayHelperTrait; /** @var XiboLibrary */ protected $media; /** @var XiboDisplay */ protected $display; // public function setup() { parent::setup(); $this->getLogger()->debug('Setup test for Cache ' . get_class($this) .' Test'); // Add a media item $this->media = (new XiboLibrary($this->getEntityProvider())) ->create(Random::generateString(), PROJECT_ROOT . '/tests/resources/HLH264.mp4'); // Create a Display $this->display = $this->createDisplay(); // Assign the mediaId to the display $this->getEntityProvider()->post('/displaygroup/' . $this->display->displayGroupId . '/media/assign', [ 'mediaId' => [$this->media->mediaId] ]); $this->displaySetStatus($this->display, Display::$STATUS_DONE); $this->displaySetLicensed($this->display); $this->getLogger()->debug('Finished Setup'); } public function tearDown() { $this->getLogger()->debug('Tear Down'); parent::tearDown(); // Delete the Layout we've been working with $this->media->deleteAssigned(); // Delete the Display $this->deleteDisplay($this->display); } // /** * @group cacheInvalidateTests */ public function testInvalidateCache() { // Make sure our Display is already DONE $this->assertTrue($this->displayStatusEquals($this->display, Display::$STATUS_DONE), 'Display Status isnt as expected'); // Add the Layout we have prepared to the Display Group $this->sendRequest('POST','/displaygroup/' . $this->display->displayGroupId . '/media/unassign', [ 'mediaId' => [$this->media->mediaId] ]); // Validate the display status afterwards $this->assertTrue($this->displayStatusEquals($this->display, Display::$STATUS_PENDING), 'Display Status isnt as expected'); // Validate that XMR has been called. $this->assertFalse(in_array($this->display->displayId, $this->getPlayerActionQueue()), 'Player action not present'); } }