| 
<?php
 /**
 * Class ClockCanvasTest
 */
 class ClockCanvasTest extends PHPUnit_Framework_TestCase {
 
 private $ClockCanvas;
 
 protected function setUp()
 {
 parent::setUp();
 }
 
 protected function tearDown()
 {
 unset($this->ClockCanvas);
 parent::tearDown();
 }
 
 public function testInit_NoParams_CorrectCanvasCenter()
 {
 $this->init_object();
 $params = $this->ClockCanvas->get_params();
 $this->assertEquals(400, $params['width']);
 $this->assertEquals(400, $params['height']);
 
 $canvas = $params['canvas'];
 $canvas_center = $canvas['center'];
 $this->assertEquals(200, $canvas_center['x']);
 $this->assertEquals(200, $canvas_center['y']);
 }
 
 /**
 * @param array $params - params for the object
 * @param array $expected - expected result, check the function to
 * get better picture.
 *
 * @dataProvider data_testInit_ParamsWidthHeight_CorrectMainCircle
 */
 public function testInit_ParamsWidthHeight_CorrectMainCircle($params, $expected)
 {
 $this->init_object($params);
 $clock_params = $this->ClockCanvas->get_params();
 
 $circle_main = $clock_params['circle_main'];
 $this->assertEquals($expected['center']['x'], $circle_main['center']['x']);
 $this->assertEquals($expected['center']['y'], $circle_main['center']['y']);
 
 // Correct size.
 $this->assertEquals($expected['size'], $circle_main['size']);
 }
 
 public function testInit_NoParams_CorrectCenterCircle()
 {
 $this->init_object();
 $clock_params = $this->ClockCanvas->get_params();
 
 // Correct size.
 $circle_center = $clock_params['circle_center'];
 $this->assertEquals(10, $circle_center['size']);
 }
 
 /**
 * @param $params
 * @param $expected_canvas_center
 *
 * @dataProvider data_testInit_ParamsWidthHeight_CorrectCanvasCenter
 */
 public function testInit_ParamsWidthHeight_CorrectCanvasCenter($params, $expected_canvas_center)
 {
 $this->init_object($params);
 $clock_params = $this->ClockCanvas->get_params();
 $this->assertEquals($params['width'], $clock_params['width']);
 $this->assertEquals($params['height'], $clock_params['height']);
 
 $canvas = $clock_params['canvas'];
 $canvas_center = $canvas['center'];
 $this->assertEquals($expected_canvas_center['x'], $canvas_center['x']);
 $this->assertEquals($expected_canvas_center['y'], $canvas_center['y']);
 }
 
 public function data_testInit_ParamsWidthHeight_CorrectCanvasCenter()
 {
 return array(
 array(
 array('width' => 300, 'height' => 200),
 array('x' => 150, 'y' => 100)
 ),
 array(
 array('width' => 150, 'height' => 150),
 array('x' => 75, 'y' => 75)
 ),
 array(
 array('width' => 155, 'height' => 155),
 array('x' => 77, 'y' => 77)
 )
 );
 }
 
 public function data_testInit_ParamsWidthHeight_CorrectMainCircle()
 {
 return array(
 array(
 array('width' => 300, 'height' => 200),
 array(
 'center' => array('x' => 150, 'y' => 100),
 'size' => 180
 ),
 ),
 array(
 array('width' => 150, 'height' => 150),
 array(
 'center' => array('x' => 75, 'y' => 75),
 'size' => 135
 ),
 ),
 array(
 array('width' => 125, 'height' => 150),
 array(
 'center' => array('x' => 62, 'y' => 75),
 'size' => 112
 ),
 ),
 );
 }
 
 public function init_object(array $params = array())
 {
 $this->ClockCanvas = new \PTX\ClockCanvas($params);
 }
 }
 |