From 55c4ac1bfe565f1ca7f537fdd8b7a201be28e581 Mon Sep 17 00:00:00 2001 From: xue <> Date: Thu, 10 Nov 2005 12:47:19 +0000 Subject: Initial import of prado framework --- tests/UnitTests/framework/utComponent.php | 224 ++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 tests/UnitTests/framework/utComponent.php (limited to 'tests/UnitTests/framework/utComponent.php') diff --git a/tests/UnitTests/framework/utComponent.php b/tests/UnitTests/framework/utComponent.php new file mode 100644 index 00000000..2683652a --- /dev/null +++ b/tests/UnitTests/framework/utComponent.php @@ -0,0 +1,224 @@ +_text; + } + + public function setText($value) + { + $this->_text=$value; + } + + public function getObject() + { + if(!$this->_object) + { + $this->_object=new NewComponent; + $this->_object->_text='object text'; + } + return $this->_object; + } + + public function onMyEvent($param) + { + $this->raiseEvent('MyEvent',$this,$param); + } + + public function myEventHandler($sender,$param) + { + $this->_eventHandled=true; + } + + public function isEventHandled() + { + return $this->_eventHandled; + } +} + +class utComponent extends UnitTestCase +{ + protected $component; + + public function setUp() + { + $this->component=new NewComponent; + } + + public function tearDown() + { + $this->component=null; + } + + public function testHasProperty() + { + $this->assertTrue($this->component->hasProperty('Text')); + $this->assertTrue($this->component->hasProperty('text')); + $this->assertFalse($this->component->hasProperty('Caption')); + } + + public function testCanGetProperty() + { + $this->assertTrue($this->component->canGetProperty('Text')); + $this->assertTrue($this->component->canGetProperty('text')); + $this->assertFalse($this->component->canGetProperty('Caption')); + } + + public function testCanSetProperty() + { + $this->assertTrue($this->component->canSetProperty('Text')); + $this->assertTrue($this->component->canSetProperty('text')); + $this->assertFalse($this->component->canSetProperty('Caption')); + } + + public function testGetProperty() + { + $this->assertTrue('default'===$this->component->Text); + try + { + $value2=$this->component->Caption; + $this->fail('exception not raised when getting undefined property'); + } + catch(TInvalidOperationException $e) + { + $this->pass(); + } + } + + public function testSetProperty() + { + $value='new value'; + $this->component->Text=$value; + $text=$this->component->Text; + $this->assertTrue($value===$this->component->Text); + try + { + $this->component->NewMember=$value; + $this->fail('exception not raised when setting undefined property'); + } + catch(TInvalidOperationException $e) + { + $this->pass(); + } + } + + public function testGetPropertyByPath() + { + $this->assertTrue('object text'===$this->component->getPropertyByPath('Object.Text')); + } + + public function testSetPropertyByPath() + { + $this->component->setPropertyByPath('Object.Text','new object text'); + $this->assertEqual('new object text',$this->component->getPropertyByPath('Object.Text')); + } + + public function testHasEvent() + { + $this->assertTrue($this->component->hasEvent('MyEvent')); + $this->assertTrue($this->component->hasEvent('myevent')); + $this->assertFalse($this->component->hasEvent('YourEvent')); + } + + public function testHasEventHandler() + { + $this->assertFalse($this->component->hasEventHandler('MyEvent')); + $this->component->attachEventHandler('MyEvent','foo'); + $this->assertTrue($this->component->hasEventHandler('MyEvent')); + } + + public function testGetEventHandlers() + { + $list=$this->component->getEventHandlers('MyEvent'); + $this->assertTrue(($list instanceof TList) && ($list->getCount()===0)); + $this->component->attachEventHandler('MyEvent','foo'); + $this->assertTrue(($list instanceof TList) && ($list->getCount()===1)); + try + { + $list=$this->component->getEventHandlers('YourEvent'); + $this->fail('exception not raised when getting event handlers for undefined event'); + } + catch(TInvalidOperationException $e) + { + $this->pass(); + } + } + + public function testAttachEventHandler() + { + $this->component->attachEventHandler('MyEvent','foo'); + $this->assertTrue($this->component->getEventHandlers('MyEvent')->getCount()===1); + try + { + $this->component->attachEventHandler('YourEvent','foo'); + $this->fail('exception not raised when attaching event handlers for undefined event'); + } + catch(TInvalidOperationException $e) + { + $this->pass(); + } + $this->component->MyEvent[]='foo2'; + $this->assertTrue($this->component->getEventHandlers('MyEvent')->getCount()===2); + $this->component->getEventHandlers('MyEvent')->add('foo3'); + $this->assertTrue($this->component->getEventHandlers('MyEvent')->getCount()===3); + $this->component->MyEvent[0]='foo4'; + $this->assertTrue($this->component->getEventHandlers('MyEvent')->getCount()===3); + $this->component->getEventHandlers('MyEvent')->addAt(0,'foo5'); + $this->assertTrue($this->component->MyEvent->Count===4 && $this->component->MyEvent[0]==='foo5'); + $this->component->MyEvent='foo6'; + $this->assertTrue($this->component->MyEvent->Count===5 && $this->component->MyEvent[4]==='foo6'); + } + + public function testRaiseEvent() + { + $this->component->attachEventHandler('MyEvent',array($this->component,'myEventHandler')); + $this->assertFalse($this->component->isEventHandled()); + $this->component->raiseEvent('MyEvent',$this,null); + $this->assertTrue($this->component->isEventHandled()); + $this->component->attachEventHandler('MyEvent',array($this->component,'Object.myEventHandler')); + $this->assertFalse($this->component->Object->isEventHandled()); + $this->component->raiseEvent('MyEvent',$this,null); + $this->assertTrue($this->component->Object->isEventHandled()); + } + + public function testEvaluateExpression() + { + $expression="1+2"; + $this->assertTrue(3===$this->component->evaluateExpression($expression)); + try + { + $button=$this->component->evaluateExpression('$this->button'); + $this->fail('exception not raised when evaluating an invalid exception'); + } + catch(Exception $e) + { + $this->pass(); + } + } + + public function testEvaluateStatements() + { + $statements='$a="test string"; echo $a;'; + $this->assertEqual('test string',$this->component->evaluateStatements($statements)); + try + { + $statements='$a=new NewComponent; echo $a->button;'; + $button=$this->component->evaluateStatements($statements); + $this->fail('exception not raised when evaluating an invalid statement'); + } + catch(Exception $e) + { + $this->pass(); + } + } +} + +?> \ No newline at end of file -- cgit v1.2.3