Skip to content

Commit

Permalink
Merge pull request #10 from facile-it/hotfix/moka-cleanup
Browse files Browse the repository at this point in the history
Cleanup and parametrize
  • Loading branch information
xzhayon committed Jun 20, 2017
2 parents 51895c2 + 199ffa0 commit 7790b0d
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions src/Moka/Moka.php
Expand Up @@ -23,12 +23,14 @@
*/
class Moka
{
const STRATEGIES = [
const MOCKING_STRATEGIES = [
'mockery' => MockeryMockingStrategy::class,
'phpunit' => PHPUnitMockingStrategy::class,
'prophecy' => ProphecyMockingStrategy::class
];

const MOCKING_STRATEGY_DEFAULT = PHPUnitMockingStrategy::class;

/**
* @param string $fqcn
* @param string|null $alias
Expand All @@ -39,8 +41,12 @@ class Moka
*/
public static function brew(string $fqcn, string $alias = null, MockingStrategyInterface $mockingStrategy = null): Proxy
{
return ProxyBuilderFactory::get($mockingStrategy ?: new PHPUnitMockingStrategy())
->getProxy($fqcn, $alias);
if (!$mockingStrategy instanceof MockingStrategyInterface) {
$defaultMockingStrategy = static::MOCKING_STRATEGY_DEFAULT;
$mockingStrategy = new $defaultMockingStrategy();
}

return ProxyBuilderFactory::get($mockingStrategy)->getProxy($fqcn, $alias);
}

/**
Expand All @@ -52,7 +58,7 @@ public static function brew(string $fqcn, string $alias = null, MockingStrategyI
*/
public static function __callStatic($name, $arguments)
{
if (!isset(static::STRATEGIES[$name])) {
if (!isset(static::MOCKING_STRATEGIES[$name])) {
throw new NotImplementedException(
sprintf(
'Mocking strategy "%s" does not exist',
Expand All @@ -63,9 +69,9 @@ public static function __callStatic($name, $arguments)

$fqcn = $arguments[0];
$alias = $arguments[1] ?? null;
$mockingStrategy = static::STRATEGIES[$name];
$mockingStrategy = static::MOCKING_STRATEGIES[$name];

return self::brew($fqcn, $alias, new $mockingStrategy());
return static::brew($fqcn, $alias, new $mockingStrategy());
}

/**
Expand All @@ -88,6 +94,6 @@ public static function clean()
*/
public static function get(string $fqcn, string $alias = null): Proxy
{
return static::brew($fqcn, $alias, new PHPUnitMockingStrategy());
return static::brew($fqcn, $alias);
}
}

0 comments on commit 7790b0d

Please sign in to comment.