diff --git a/classes/MockDelegateFunction.tpl b/classes/MockDelegateFunction.tpl index ed47624..7887e96 100644 --- a/classes/MockDelegateFunction.tpl +++ b/classes/MockDelegateFunction.tpl @@ -10,7 +10,7 @@ use phpmock\functions\FunctionProvider; * @license http://www.wtfpl.net/txt/copying/ WTFPL * @internal */ -abstract class MockDelegateFunction implements FunctionProvider +class MockDelegateFunction implements FunctionProvider { /** @@ -18,10 +18,16 @@ abstract class MockDelegateFunction implements FunctionProvider * * @return mixed Returns the function output. */ - abstract public function delegate({signatureParameters}); + public function delegate({signatureParameters}) + { + } public function getCallable() { return [$this, "delegate"]; } + + public function {functionName}() + { + } } diff --git a/classes/MockDelegateFunctionBuilder.php b/classes/MockDelegateFunctionBuilder.php index da36f3b..fa297c8 100644 --- a/classes/MockDelegateFunctionBuilder.php +++ b/classes/MockDelegateFunctionBuilder.php @@ -52,11 +52,13 @@ public function build($functionName = null) $parameterBuilder->build($functionName === null ? '' : $functionName); $signatureParameters = $parameterBuilder->getSignatureParameters(); + $populatedFunctionName = $functionName === null ? '_dummy' : $functionName; + /** * If a class with the same signature exists, it is considered equivalent * to the generated class. */ - $hash = md5($signatureParameters); + $hash = md5($populatedFunctionName . $signatureParameters); $this->namespace = __NAMESPACE__ . $hash; if (class_exists($this->getFullyQualifiedClassName())) { return; @@ -65,6 +67,7 @@ public function build($functionName = null) $data = [ "namespace" => $this->namespace, "signatureParameters" => $signatureParameters, + "functionName" => $populatedFunctionName, ]; $this->template->setVar($data, false); $definition = $this->template->render();