<?php 
/** 
 * ImageIterator SteganographyKit UnitTest 
 *  
 * @link        https://github.com/picamator/SteganographyKit 
 * @license     http://opensource.org/licenses/BSD-3-Clause New BSD License 
 */ 
 
use Picamator\SteganographyKit\Iterator\ImageRandomIterator; 
 
class ImageRandomIteratorTest extends BaseTest  
{ 
    /** 
     * @dataProvider providerIterator 
     * @param string $path 
     * @param array $imgSize 
     * @param integer $expectedSize 
     */ 
    public function testIterator($path, array $imgSize, $expectedSize)  
    { 
        $path = $this->getDataPath($path); 
         
        // mock image 
        $image = $this->getMock( 
            'Picamator\SteganographyKit\Image\Image',  
            array('getSize', 'getImage'), 
            array(array('path' => $path)) 
        ); 
        $image->expects($this->once()) 
            ->method('getSize')->will($this->returnValue($imgSize));     
         
        $imageSrc   = imagecreatefrompng($path); 
        $image->expects($this->once()) 
            ->method('getImage')->will($this->returnValue($imageSrc));  
 
        // cretate iterator 
        $iterator   = new ImageRandomIterator($image, 123456); 
        $actual     = iterator_to_array($iterator); 
                 
        $this->assertEquals($expectedSize, count($actual));  
    } 
     
    public function providerIterator() 
    { 
        return array( 
            array('original_50_50.png', array('width' => 1, 'height' =>  3), 3), 
            array('original_50_50.png', array('width' => 3, 'height' =>  1), 3), 
            array('original_50_50.png', array('width' => 1, 'height' =>  1), 1), 
            array('original_50_50.png', array('width' => 1, 'height' =>  2), 2), 
            array('original_50_50.png', array('width' => 50, 'height' =>  50), 2500) 
        ); 
    } 
}
 
 |