Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion src/Contracts/Dispatchable.php
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
<?php namespace Keios\Apparatus\Contracts;


/**
* Interface Dispatchable
* @package Keios\Apparatus\Contracts
*/
interface Dispatchable
{

/**
* @fluent
* @param $eventName
*
* @param string $eventName
*
* @return Dispatchable
*/
public function name($eventName);

/**
* @fluent
*
* @param $data
*
* @return Dispatchable
Expand All @@ -22,6 +28,7 @@ public function with($data);

/**
* @fluent
*
* @param array $expectedReactions
*
* @return Dispatchable
Expand Down
7 changes: 7 additions & 0 deletions src/Contracts/LoaderInterface.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
<?php namespace Keios\Apparatus\Contracts;


/**
* Interface LoaderInterface
* @package Keios\Apparatus\Contracts
*/
interface LoaderInterface
{
/**
* @return mixed
*/
public function loadScenarios();
}
25 changes: 24 additions & 1 deletion src/Contracts/Runnable.php
Original file line number Diff line number Diff line change
@@ -1,15 +1,38 @@
<?php namespace Keios\Apparatus\Contracts;

use Keios\Apparatus\Core\Dispatcher;
use Keios\Apparatus\Core\Step;

/**
* Interface Runnable
* @package Keios\Apparatus\Contracts
*/
interface Runnable
{
/**
* @param Dispatchable $event
*
* @return mixed
*/
public function inject(Dispatchable $event);

/**
* @param Dispatcher $dispatcher
*
* @return mixed
*/
public function setDispatcher(Dispatcher $dispatcher);

/**
* @return mixed
*/
public function run();

/**
* @param string $eventName
* @param $data
* @param array $expectedReactions
*
* @return mixed
*/
public function dispatch($eventName, $data, array $expectedReactions);
}
6 changes: 3 additions & 3 deletions src/Core/Dispatcher.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,13 @@ public function __construct(ScenarioRepository $scenarioRepository, ScenarioRunn
* @param \Keios\Apparatus\Contracts\Dispatchable $event
*
* @return mixed
* @throws \Keios\Apparatus\Exceptions\InvalidScenarioException
* @throws \Keios\Apparatus\Exceptions\NoHandlerScenarioFoundException
*/
public function dispatch(Dispatchable $event)
{
$scenario = $this->scenarioRepository->findHandlerScenarioFor($event);

$reaction = $this->scenarioRunner->run($scenario, $event);

return $reaction;
return $this->scenarioRunner->run($scenario, $event);
}
}
5 changes: 3 additions & 2 deletions src/Core/Event.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public function name($eventName)
/**
* @fluent
*
* @param $eventName
* @param string $eventName
*
* @return \Keios\Apparatus\Contracts\Dispatchable $this
*/
Expand Down Expand Up @@ -94,6 +94,7 @@ public function expect(array $expectedReactions)

/**
* @return mixed
* @throws \Keios\Apparatus\Exceptions\NoHandlerScenarioFoundException
*/
public function getReaction()
{
Expand All @@ -102,7 +103,7 @@ public function getReaction()
}

/**
* @return mixed
* @return string|null
*/
public function getEventName()
{
Expand Down
25 changes: 22 additions & 3 deletions src/Core/Scenario.php
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ public function __construct()

/**
* @param \Keios\Apparatus\Core\Dispatcher $dispatcher
*
* @return mixed|void
*/
public function setDispatcher(Dispatcher $dispatcher)
{
Expand All @@ -73,6 +75,8 @@ public function setDispatcher(Dispatcher $dispatcher)

/**
* @param \Keios\Apparatus\Contracts\Dispatchable $event
*
* @return mixed|void
*/
public function inject(Dispatchable $event)
{
Expand Down Expand Up @@ -117,6 +121,9 @@ public function has($property)

/**
* @return mixed
* @throws \Keios\Apparatus\Exceptions\NoStepForEventFoundException
* @throws \Keios\Apparatus\Exceptions\NotInitializedException
* @throws \Keios\Apparatus\Exceptions\NoStepsDefinedException
*/
public function run()
{
Expand All @@ -143,9 +150,9 @@ public function run()
}

/**
* @param $eventName
* @param $data
* @param array $expectedReactions
* @param string $eventName
* @param $data
* @param array $expectedReactions
*
* @return mixed
*/
Expand All @@ -158,6 +165,9 @@ public function dispatch($eventName, $data, array $expectedReactions)

/**
* @param \Keios\Apparatus\Core\Step $step
*
* @throws \Keios\Apparatus\Exceptions\EventAlreadyRegisteredException
* @throws \Keios\Apparatus\Exceptions\StepAlreadyRegisteredException
*/
public function add(Step $step)
{
Expand All @@ -168,6 +178,9 @@ public function add(Step $step)
/**
* @param $stepName
* @param \Keios\Apparatus\Core\Step $step
*
* @throws \Keios\Apparatus\Exceptions\NoStepWithNameFoundException
* @throws \Keios\Apparatus\Exceptions\EventAlreadyRegisteredException
*/
public function replace($stepName, Step $step)
{
Expand All @@ -177,6 +190,9 @@ public function replace($stepName, Step $step)
/**
* @param $stepName
* @param \Keios\Apparatus\Core\Step $step
*
* @throws \Keios\Apparatus\Exceptions\EventAlreadyRegisteredException
* @throws \Keios\Apparatus\Exceptions\NoStepWithNameFoundException
*/
public function insertBefore($stepName, Step $step)
{
Expand All @@ -186,6 +202,9 @@ public function insertBefore($stepName, Step $step)
/**
* @param $stepName
* @param \Keios\Apparatus\Core\Step $step
*
* @throws \Keios\Apparatus\Exceptions\EventAlreadyRegisteredException
* @throws \Keios\Apparatus\Exceptions\NoStepWithNameFoundException
*/
public function insertAfter($stepName, Step $step)
{
Expand Down
8 changes: 4 additions & 4 deletions src/Core/ScenarioConfiguration.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ class ScenarioConfiguration implements LoaderInterface
protected $registeredScenarios = [];

/**
* @param $eventName
* @param $scenarioClassName
* @param string $eventName
* @param string $scenarioClassName
*
* @throws \Keios\Apparatus\Exceptions\InvalidScenarioException
* @throws \Keios\Apparatus\Exceptions\ScenarioNotFoundException
Expand All @@ -38,7 +38,7 @@ public function bind($eventName, $scenarioClassName)
}

/**
* @param $scenarioClassName
* @param string $scenarioClassName
*
* @throws \Keios\Apparatus\Exceptions\ScenarioNotFoundException
*/
Expand All @@ -52,7 +52,7 @@ protected function assertScenarioExists($scenarioClassName)
}

/**
* @param $scenarioClassName
* @param string $scenarioClassName
*
* @throws \Keios\Apparatus\Exceptions\InvalidScenarioException
*/
Expand Down
11 changes: 5 additions & 6 deletions src/Core/ScenarioFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public function __construct(LoaderInterface $scenarioLoader)
* @param \Keios\Apparatus\Contracts\Dispatchable $event
*
* @return mixed
* @throws \Keios\Apparatus\Exceptions\InvalidScenarioException
* @throws \Keios\Apparatus\Exceptions\NoHandlerScenarioFoundException
*/
public function findHandlerScenarioFor(Dispatchable $event)
Expand All @@ -44,7 +45,7 @@ public function findHandlerScenarioFor(Dispatchable $event)
}

/**
* @param $eventName
* @param string $eventName
*
* @return bool
*/
Expand Down Expand Up @@ -93,11 +94,9 @@ protected function make($eventName)
protected function resolveClosure($closure)
{
$scenario = $closure();

if ($interfaces = class_implements($scenario)) {
if (in_array('Keios\Apparatus\Contracts\Runnable', $interfaces)) {
$interfaces = class_implements($scenario);
if ($interfaces && in_array('Keios\Apparatus\Contracts\Runnable', $interfaces, true)) {
return is_object($scenario) ? $scenario : new $scenario();
}
}

throw new InvalidScenarioException(
Expand All @@ -106,7 +105,7 @@ protected function resolveClosure($closure)
}

/**
* @param $eventName
* @param string $eventName
*
* @throws \Keios\Apparatus\Exceptions\NoHandlerScenarioFoundException
*/
Expand Down
2 changes: 2 additions & 0 deletions src/Core/ScenarioRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ public function __construct(ScenarioFactory $scenarioFactory)
* @param \Keios\Apparatus\Contracts\Dispatchable $event
*
* @return mixed
* @throws \Keios\Apparatus\Exceptions\InvalidScenarioException
* @throws \Keios\Apparatus\Exceptions\NoHandlerScenarioFoundException
*/
public function findHandlerScenarioFor(Dispatchable $event)
{
Expand Down
2 changes: 1 addition & 1 deletion src/Core/ScenarioRunner.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
class ScenarioRunner
{
/**
* @var
* @var Dispatcher
*/
protected $dispatcher;

Expand Down
Loading