_repository = new Zend_Tool_Framework_Action_Repository(); } public function teardown() { $this->_repository = null; } public function testRepositoryIsEmpty() { $this->assertEquals(0, count($this->_repository)); } public function testAddActionCanHandleActionObjects() { $fooAction = new Zend_Tool_Framework_Action_Base(); $fooAction->setName('Foo'); $this->_repository->addAction($fooAction); $this->assertEquals(1, count($this->_repository)); $this->assertEquals('Zend_Tool_Framework_Action_Base', get_class($this->_repository->getAction('Foo'))); } public function testAddActionWillParseNameFromClassNameOnExtendedActions() { $this->_repository->addAction(new Zend_Tool_Framework_Action_Foo()); $this->assertEquals('Zend_Tool_Framework_Action_Foo', get_class($this->_repository->getAction('Foo'))); } /** * @expectedException Zend_Tool_Framework_Action_Exception */ public function testAddActionThrowsExceptionOnDuplicateNameAction() { $this->_repository->addAction(new Zend_Tool_Framework_Action_Foo()); $this->_repository->addAction(new Zend_Tool_Framework_Action_Foo()); } /** * @expectedException Zend_Tool_Framework_Action_Exception */ public function testAddActionThrowsExceptionOnActionWithNoName() { $this->_repository->addAction(new Zend_Tool_Framework_Action_Base()); } public function testGetActionReturnsNullOnNonExistentAction() { $this->assertNull($this->_repository->getAction('Foo')); } public function testRepositoryIsCountable() { $this->assertTrue($this->_repository instanceof Countable); } public function testRepositoryIsIterable() { $this->assertTrue($this->_repository instanceof Traversable); } public function testRepositoryCanIterate() { $this->_repository->addAction(new Zend_Tool_Framework_Action_Base('Foo')); $this->_repository->addAction(new Zend_Tool_Framework_Action_Base('Bar')); $i=0; foreach ($this->_repository as $action) { $i++; $this->assertEquals('Zend_Tool_Framework_Action_Base', get_class($action)); } $this->assertEquals(2, $i); } public function testGetActionsReturnsAnArrayOfActions() { $this->_repository->addAction(new Zend_Tool_Framework_Action_Base('Foo')); $this->_repository->addAction(new Zend_Tool_Framework_Action_Base('Bar')); $i=0; foreach ($this->_repository->getActions() as $action) { $i++; $this->assertEquals('Zend_Tool_Framework_Action_Base', get_class($action)); } $this->assertEquals(2, $i); } public function testProcessMethodReturnsNull() { $this->assertNull($this->_repository->process()); } }