90 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			90 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace FFMpeg\Tests\FFProbe\DataMapping;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use FFMpeg\Tests\TestCase;
							 | 
						||
| 
								 | 
							
								use FFMpeg\FFProbe\DataMapping\StreamCollection;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class StreamCollectionTest extends TestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function testAdd()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $stream = $this->getStreamMock();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $collection = new StreamCollection();
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array(), $collection->all());
							 | 
						||
| 
								 | 
							
								        $collection->add($stream);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array($stream), $collection->all());
							 | 
						||
| 
								 | 
							
								        $collection->add($stream);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array($stream, $stream), $collection->all());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testVideos()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $audio = $this->getStreamMock();
							 | 
						||
| 
								 | 
							
								        $audio->expects($this->once())
							 | 
						||
| 
								 | 
							
								            ->method('isVideo')
							 | 
						||
| 
								 | 
							
								            ->will($this->returnValue(false));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $video = $this->getStreamMock();
							 | 
						||
| 
								 | 
							
								        $video->expects($this->once())
							 | 
						||
| 
								 | 
							
								            ->method('isVideo')
							 | 
						||
| 
								 | 
							
								            ->will($this->returnValue(true));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $collection = new StreamCollection(array($audio, $video));
							 | 
						||
| 
								 | 
							
								        $videos = $collection->videos();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertInstanceOf('FFMpeg\FFProbe\DataMapping\StreamCollection', $videos);
							 | 
						||
| 
								 | 
							
								        $this->assertCount(1, $videos);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array($video), $videos->all());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testAudios()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $audio = $this->getStreamMock();
							 | 
						||
| 
								 | 
							
								        $audio->expects($this->once())
							 | 
						||
| 
								 | 
							
								            ->method('isAudio')
							 | 
						||
| 
								 | 
							
								            ->will($this->returnValue(true));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $video = $this->getStreamMock();
							 | 
						||
| 
								 | 
							
								        $video->expects($this->once())
							 | 
						||
| 
								 | 
							
								            ->method('isAudio')
							 | 
						||
| 
								 | 
							
								            ->will($this->returnValue(false));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $collection = new StreamCollection(array($audio, $video));
							 | 
						||
| 
								 | 
							
								        $audios = $collection->audios();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertInstanceOf('FFMpeg\FFProbe\DataMapping\StreamCollection', $audios);
							 | 
						||
| 
								 | 
							
								        $this->assertCount(1, $audios);
							 | 
						||
| 
								 | 
							
								        $this->assertEquals(array($audio), $audios->all());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testCount()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $stream = $this->getStreamMock();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $collection = new StreamCollection(array($stream));
							 | 
						||
| 
								 | 
							
								        $this->assertCount(1, $collection);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testGetIterator()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $audio = $this->getStreamMock();
							 | 
						||
| 
								 | 
							
								        $video = $this->getStreamMock();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $collection = new StreamCollection(array($audio, $video));
							 | 
						||
| 
								 | 
							
								        $this->assertInstanceOf('\Iterator', $collection->getIterator());
							 | 
						||
| 
								 | 
							
								        $this->assertCount(2, $collection->getIterator());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function testFirst()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $stream1 = $this->getStreamMock();
							 | 
						||
| 
								 | 
							
								        $stream2 = $this->getStreamMock();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $coll = new StreamCollection(array($stream1, $stream2));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $this->assertSame($stream1, $coll->first());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |