public function testGetFirstAvailableReturnsOnlyAllowedAndNotDisabledItem() { $this->_items['item1']->expects($this->exactly(1))->method('isAllowed')->will($this->returnValue(true)); $this->_items['item1']->expects($this->exactly(1))->method('isDisabled')->will($this->returnValue(true)); $this->_model->add($this->_items['item1']); $this->_items['item2']->expects($this->exactly(1))->method('isAllowed')->will($this->returnValue(false)); $this->_model->add($this->_items['item2']); $this->_items['item3']->expects($this->exactly(1))->method('isAllowed')->will($this->returnValue(true)); $this->_items['item3']->expects($this->exactly(1))->method('isDisabled')->will($this->returnValue(false)); $this->_model->add($this->_items['item3']); $this->assertEquals($this->_items['item3'], $this->_model->getFirstAvailable()); }