/**
  * @param LiveBroadcast $broadcast
  */
 public function preRemove($broadcast)
 {
     foreach ($broadcast->getOutputChannels() as $channel) {
         if ($channel instanceof ChannelYouTube) {
             $youTubeService = $this->getYouTubeService();
             try {
                 $youTubeService->removeLiveEvent($broadcast, $channel);
             } catch (\Google_Service_Exception $ex) {
                 /** @var LoggerInterface $logger */
                 $logger = $this->getConfigurationPool()->getContainer()->get('logger');
                 $logger->warning($ex->getMessage());
             }
         }
     }
     parent::preRemove($broadcast);
 }
 /**
  * Test get methods.
  */
 public function testGetMethods()
 {
     $now = new \DateTime();
     $endTime = new \DateTime('+1 hour');
     $broadcast = new LiveBroadcast();
     $broadcast->setName('Test');
     $broadcast->setDescription('Description of broadcast');
     self::assertEquals($now, $broadcast->getStartTimestamp());
     self::assertEquals($endTime, $broadcast->getEndTimestamp());
     self::assertEquals(new ArrayCollection(), $broadcast->getOutputChannels());
     self::assertEquals('Test', $broadcast->getName());
     self::assertEquals('Description of broadcast', $broadcast->getDescription());
     /* Check default value */
     self::assertTrue($broadcast->isStopOnEndTimestamp());
     $broadcast->setStopOnEndTimestamp(false);
     self::assertFalse($broadcast->isStopOnEndTimestamp());
 }
 /**
  * @param LiveBroadcast $plannedBroadcast
  */
 protected function startBroadcastOnChannels(LiveBroadcast $plannedBroadcast)
 {
     $channels = $plannedBroadcast->getOutputChannels();
     foreach ($channels as $channel) {
         $isChannelBroadcasting = false;
         foreach ($this->runningBroadcasts as $runningBroadcast) {
             if ($runningBroadcast->isBroadcasting($plannedBroadcast, $channel)) {
                 $isChannelBroadcasting = true;
             }
             if ($runningBroadcast->isMonitor()) {
                 $switchMonitorEvent = new SwitchMonitorEvent($runningBroadcast, $plannedBroadcast, $channel);
                 $this->dispatcher->dispatch(SwitchMonitorEvent::NAME, $switchMonitorEvent);
             }
         }
         if (!$isChannelBroadcasting) {
             $this->startBroadcast($plannedBroadcast, $channel);
         }
     }
 }