openstackid-resources/tests/MuxImportTest.php
smarcet 4432a5f2b9 Import assets from MUX
Added new endpoints
POST api/v1/summits/{id}/presentations/all/import/mux

payload
* mux_token_id ( string|required)
* mux_token_secret ( string|required)
* email_to (optional|email)

required scopes

REALM_URL/summits/write
REALM_URL/summits/write-event
REALM_URL/summits/write-presentation

Change-Id: If3af7466f5c2fd1a38e1129fecd7e0b86312590e
Signed-off-by: smarcet <smarcet@gmail.com>
2021-06-04 16:28:20 -03:00

102 lines
3.3 KiB
PHP

<?php namespace Tests;
/**
* Copyright 2021 OpenStack Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
use App\Services\Apis\MuxCredentials;
use App\Services\Model\IPresentationVideoMediaUploadProcessor;
use Illuminate\Support\Facades\App;
use DateInterval;
/**
* Class MuxImportTest
* @package Tests
*/
final class MuxImportTest extends TestCase
{
use \InsertSummitTestData;
protected function tearDown():void
{
self::clearTestData();
parent::tearDown();
\Mockery::close();
}
protected function setUp():void
{
parent::setUp();
self::insertTestData();
$time_zone = self::$summit->getTimeZone();
self::$presentations[0]->setStreamingUrl(env("MUX_STREAM_URL1"));
$begin_date = new \DateTime("now", $time_zone);
self::$presentations[0]->setStartDate($begin_date);
self::$presentations[0]->setEndDate((clone $begin_date)->add(new DateInterval("P1D")));
self::$presentations[0]->publish();
self::$presentations[1]->setStreamingUrl(env("MUX_STREAM_URL2"));
self::$presentations[1]->setStartDate($begin_date);
self::$presentations[1]->setEndDate((clone $begin_date)->add(new DateInterval("P1D")));
self::$presentations[1]->publish();
self::$em->persist(self::$presentations[0]);
self::$em->persist(self::$presentations[1]);
self::$em->flush();
}
public function testEnableMP4(){
$service = App::make(IPresentationVideoMediaUploadProcessor::class);
$res = $service->processSummitEventsStreamURLs
(
self::$summit->getId(),
new MuxCredentials
(
env('MUX_TOKEN_ID'),
env('MUX_TOKEN_SECRET')
),
env('MUX_EMAIL_TO')
);
$this->assertTrue($res == 2);
}
public function testEnableMP4AndProcess(){
$service = App::make(IPresentationVideoMediaUploadProcessor::class);
$res = $service->processSummitEventsStreamURLs
(
self::$summit->getId(),
new MuxCredentials
(
env('MUX_TOKEN_ID'),
env('MUX_TOKEN_SECRET')
),
env('MUX_EMAIL_TO')
);
$this->assertTrue($res == 2);
$res = $service->createVideosFromMUXAssets
(
self::$summit->getId(),
new MuxCredentials
(
env('MUX_TOKEN_ID'),
env('MUX_TOKEN_SECRET')
),
env('MUX_EMAIL_TO')
);
$this->assertTrue($res == 2);
$this->assertTrue(self::$presentations[0]->getVideosWithExternalUrls()->count() > 0);
$this->assertTrue(self::$presentations[1]->getVideosWithExternalUrls()->count() > 0);
}
}