新随笔  :: 联系 :: 订阅 订阅  :: 管理

PHP Unittest mock

Posted on 2013-01-31 16:51  张贺  阅读(1127)  评论(0编辑  收藏  举报
 1 <?php
 2 require_once 'custom/modules/Documents/views/view.edit.php';
 3 require_once 'modules/Documents/Document.php';
 4 /**
 5  * Test Class
 6  */
 7 class CustomDocumentsViewEditTest extends Sugar_PHPUnit_Framework_TestCase
 8 {
 9     public function provider()
10     {
11         return array(
12             array(array('share_document_type' => 1)),
13             array(array('return_module' => 'Accounts')),
14             array(array('share_document_type' => 0, 'share_document_with' => array(1, 2, 3, 4)))
15         );
16     }
17     /**
18      * @covers CustomDocumentsViewEdit::display
19      * @dataProvider provider
20      */
21     public function testTags($request)
22     {
23         $_REQUEST = array_merge($_REQUEST, $request);
24         $ut = $this->getMockBuilder('CustomDocumentsViewEdit')
25                    ->disableOriginalConstructor()
26                    ->setMethods(array('validateTags', 'getRelatedClient', 'callParent'))
27                    ->getMock();
28         $ut->expects($this->any())
29             ->method('getRelatedClient')
30             ->will($this->returnValue(false));
31         $ut->expects($this->any())
32            ->method('validateTags')
33            ->will($this->returnValue(true));
34         $edit = $this->getMock('EditView');
35         $doc = $this->getMock('Document');
36         $ut->ev = $ut->bean = $edit;
37         $ut->ev->focus = $doc;
38         $ut->display();
39     }
40 }