| 
<?php
 use movemegif\data\ColorTable;
 use movemegif\data\GraphicExtension;
 use movemegif\domain\Frame;
 use movemegif\domain\StringCanvas;
 use movemegif\exception\ColorNotFoundException;
 use movemegif\exception\DurationTooSmallException;
 use movemegif\exception\EmptyFrameException;
 use movemegif\exception\InvalidDimensionsException;
 use movemegif\exception\MovemegifException;
 use movemegif\exception\TooManyColorsException;
 use movemegif\GifBuilder;
 
 require_once __DIR__ . '/../../php/autoloader.php';
 
 /**
 * Tests all exceptions
 *
 * @author Patrick van Bergen
 */
 class ExceptionTest extends PHPUnit_Framework_TestCase
 {
 public function testTooManyColorsException()
 {
 $count = 0;
 
 $pixelIndexes = "";
 
 $index2color = array();
 
 for ($i = 0; $i < 256; $i++) {
 $pixelIndexes .= ' ' . (string)$i;
 $index2color[$i] = $i;
 }
 
 $builder = new GifBuilder(16, 16);
 $builder->addFrame()->setCanvas(new StringCanvas(16, 16, $pixelIndexes, $index2color));
 
 try {
 $builder->getContents();
 } catch (MovemegifException $e) {
 $count++;
 }
 
 for ($i = 0; $i < 16; $i++) {
 $pixelIndexes .= ' ' . (string)256;
 }
 $index2color[256] = 256;
 
 $builder = new GifBuilder(16, 17);
 $builder->addFrame()->setCanvas(new StringCanvas(16, 17, $pixelIndexes, $index2color));
 
 try {
 $builder->getContents();
 } catch (TooManyColorsException $e) {
 $count++;
 }
 
 $this->assertSame(1, $count);
 }
 
 public function testDurationTooSmallException()
 {
 $count = 0;
 
 $frame = new Frame();
 
 try {
 
 $frame->setDuration(1);
 
 } catch (DurationTooSmallException $e) {
 $count++;
 }
 
 $this->assertSame(1, $count);
 }
 
 //    public function testEmptyFrameException()
 //    {
 //        $count = 0;
 //
 //        try {
 //
 //            new GraphicExtension(array(), new ColorTable(0), 2, 1, 1, 1, 1, 0, 0);
 //
 //        } catch (EmptyFrameException $e) {
 //            $count++;
 //        }
 //
 //        $this->assertSame(1, $count);
 //    }
 
 public function testColorNotFoundException()
 {
 $count = 0;
 
 $indexString = '
 1 2
 2 1
 ';
 
 $index2color = array(
 '1' => 0x00ff00
 );
 
 try {
 
 $canvas = new StringCanvas(2, 2, $indexString, $index2color);
 
 } catch (ColorNotFoundException $e) {
 $count++;
 }
 
 $this->assertSame(1, $count);
 }
 
 
 public function testInvalidDimensionsException()
 {
 $count = 0;
 
 $indexString = '
 1 2
 2 1
 ';
 
 $index2color = array(
 '1' => 0x00ff00,
 '2' => 0xff0000,
 );
 
 try {
 
 $canvas = new StringCanvas(2, 3, $indexString, $index2color);
 
 } catch (InvalidDimensionsException $e) {
 $count++;
 }
 
 $this->assertSame(1, $count);
 }
 }
 |