1--TEST--
2PHPUnit_Framework_MockObject_Generator::generate('NS\Foo', array(), 'MockFoo', false)
3--FILE--
4<?php
5namespace NS;
6
7class Foo
8{
9    public function __clone()
10    {
11    }
12}
13
14require __DIR__ . '/../../../vendor/autoload.php';
15
16$generator = new \PHPUnit_Framework_MockObject_Generator;
17
18$mock = $generator->generate(
19    'NS\Foo',
20    array(),
21    'MockFoo',
22    false
23);
24
25print $mock['code'];
26?>
27--EXPECTF--
28class MockFoo extends NS\Foo implements PHPUnit_Framework_MockObject_MockObject
29{
30    private $__phpunit_invocationMocker;
31    private $__phpunit_originalObject;
32    private $__phpunit_configurable = [];
33
34    public function __clone()
35    {
36        $this->__phpunit_invocationMocker = clone $this->__phpunit_getInvocationMocker();
37    }
38
39    public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
40    {
41        return $this->__phpunit_getInvocationMocker()->expects($matcher);
42    }
43
44    public function method()
45    {
46        $any = new PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount;
47        $expects = $this->expects($any);
48        return call_user_func_array(array($expects, 'method'), func_get_args());
49    }
50
51    public function __phpunit_setOriginalObject($originalObject)
52    {
53        $this->__phpunit_originalObject = $originalObject;
54    }
55
56    public function __phpunit_getInvocationMocker()
57    {
58        if ($this->__phpunit_invocationMocker === null) {
59            $this->__phpunit_invocationMocker = new PHPUnit_Framework_MockObject_InvocationMocker($this->__phpunit_configurable);
60        }
61
62        return $this->__phpunit_invocationMocker;
63    }
64
65    public function __phpunit_hasMatchers()
66    {
67        return $this->__phpunit_getInvocationMocker()->hasMatchers();
68    }
69
70    public function __phpunit_verify($unsetInvocationMocker = true)
71    {
72        $this->__phpunit_getInvocationMocker()->verify();
73
74        if ($unsetInvocationMocker) {
75            $this->__phpunit_invocationMocker = null;
76        }
77    }
78}
79