<?php 
/** 
 * SecretTextIterator SteganographyKit UnitTest 
 *  
 * @link        https://github.com/picamator/SteganographyKit 
 * @license     http://opensource.org/licenses/BSD-3-Clause New BSD License 
 */ 
 
use Picamator\SteganographyKit\Iterator\SecretTextIterator; 
 
class SecretTextIteratorTest extends BaseTest  
{ 
    /** 
     * @dataProvider providerIterator 
     * @param string $binaryData 
     * @param integer $itemSize 
     * @param array $expected 
     */ 
    public function testIterator($binaryData, $itemSize, array $expected)  
    {         
        // mock image 
        $secretText = $this->getMock( 
            'Picamator\SteganographyKit\SecretText\PlainText',  
            array('getBinaryData', 'getBinaryItemSize') 
        ); 
        $secretText->expects($this->once()) 
            ->method('getBinaryData')->will($this->returnValue($binaryData));     
         
        $secretText->expects($this->once()) 
            ->method('getBinaryItemSize')->will($this->returnValue($itemSize));  
 
        // cretate iterator 
        $iterator   = new SecretTextIterator($secretText); 
        $actual     = iterator_to_array($iterator); 
         
        $this->assertEquals($expected, array_values($actual));  
    } 
     
    public function providerIterator() 
    { 
        return array( 
            array( 
                '10011101101010111111111000000000',  
                 3,  
                array( 
                    '100', 
                    '111', 
                    '011', 
                    '010', 
                    '101', 
                    '111', 
                    '111', 
                    '110', 
                    '000', 
                    '000', 
                    '00', 
                ) 
            ), 
            array( 
                '10011',  
                 1,  
                array( 
                    '1', 
                    '0', 
                    '0', 
                    '1', 
                    '1' 
                ) 
            ), 
        ); 
    } 
}
 
 |