/**
  * Проверка работы сервиса привязыающего объект к процессу wf, и востанавливающий его.
  *
  * Для тестирования используется простое workflow состоящее из одного шага.
  * При выполнении initAction происходит привязка процесса wf к объекту. Далее у единственного объявленного шага
  * вызывается переход на самого себя. В рамках этого перехода происходит востановление привязанного объекта
  *
  * При тестирование используется тестовый контроллер с двумя action. Один из которых отвечает за вызов initAction у
  * wf, а второй за вызов doAction.
  *
  * При вызове действия контроллера отвечающего за иницииирование wf, в качестве параметра передается тестовое значение.
  * Это тестове значение записывается в свойство value \OldTown\Workflow\ZF2\Toolkit\PhpUnit\TestData\BindObjectToWorkflowEntryIntegrationTest\Entity\TestEntity.
  *
  * Далее вызывается doAction для уже созданного процесса wf. В рамках этого перехода, ожидаем что будет произведено
  * востановление объекта.
  *
  * В случае успешной работы, сверяем ожидаемое значение, с значение извлеченным из востановленного объекта
  *
  * @return void
  */
 public function testBindObjectToWorkflowEntry()
 {
     /** @noinspection PhpIncludeInspection */
     $this->setApplicationConfig(include TestPaths::getPathToBindObjectToWorkflowEntryIntegrationTest());
     /** @var Application $app */
     $app = $this->getApplication();
     $expectedValue = 'test_completed';
     $url = sprintf('/level1/initialize/%s', $expectedValue);
     $this->dispatch($url);
     /** @var WorkflowDispatchEvent $dispatchEvent */
     $dispatchEvent = $app->getMvcEvent()->getParam(Dispatcher::WORKFLOW_DISPATCH_EVENT);
     $transientVars = $dispatchEvent->getWorkflowResult()->getTransientVars();
     /** @var TestEntity $testObject */
     $testObject = $transientVars['testObject'];
     $url = sprintf('/level1/doAction/%s', $testObject->getId());
     $this->dispatch($url);
     /** @var WorkflowDispatchEvent $dispatchEvent */
     $dispatchEvent = $app->getMvcEvent()->getParam(Dispatcher::WORKFLOW_DISPATCH_EVENT);
     $transientVars = $dispatchEvent->getWorkflowResult()->getTransientVars();
     /** @var TestEntity $testObject */
     $testObject = $transientVars['actualResult'];
     $actualValue = $testObject->getValue();
     static::assertEquals($expectedValue, $actualValue);
 }
 /**
  *
  * @return void
  */
 public function testLoadModule()
 {
     /** @noinspection PhpIncludeInspection */
     $this->setApplicationConfig(include TestPaths::getPathToDefaultAppConfig());
     $this->assertModulesLoaded(['OldTown\\Workflow\\ZF2\\Toolkit']);
 }
示例#3
0
<?php

/**
 * @link     https://github.com/old-town/workflow-zf2-toolkit
 * @author  Malofeykin Andrey  <*****@*****.**>
 */
namespace OldTown\Workflow\ZF2\Toolkit\PhpUnit\TestData\DefaultApp;

use OldTown\Workflow\Basic\BasicWorkflow;
use OldTown\Workflow\Loader\ArrayWorkflowFactory;
use OldTown\Workflow\Loader\XmlWorkflowFactory;
use OldTown\Workflow\Util\DefaultVariableResolver;
use OldTown\Workflow\Spi\Doctrine\DoctrineWorkflowStory;
use OldTown\Workflow\Doctrine\ZF2\EntityManagerFactory;
use OldTown\Workflow\ZF2\Toolkit\PhpUnit\TestData\TestPaths;
return ['doctrine' => ['entitymanager' => ['test' => ['configuration' => 'test', 'connection' => 'test']], 'connection' => ['test' => ['configuration' => 'test', 'eventmanager' => 'orm_default']], 'configuration' => ['test' => ['metadata_cache' => 'array', 'query_cache' => 'array', 'result_cache' => 'array', 'hydration_cache' => 'array', 'driver' => 'test', 'generate_proxies' => true, 'proxy_dir' => TestPaths::getPathToDoctrineProxyDir(), 'proxy_namespace' => 'DoctrineORMModule\\Proxy', 'filters' => [], 'datetime_functions' => [], 'string_functions' => [], 'numeric_functions' => [], 'second_level_cache' => []]], 'driver' => ['test' => ['class' => 'Doctrine\\ORM\\Mapping\\Driver\\DriverChain', 'drivers' => ['OldTown\\Workflow\\Spi\\Doctrine\\Entity' => 'WorkflowDoctrineEntity']]]], 'workflow_zf2' => ['configurations' => ['default' => ['persistence' => ['name' => DoctrineWorkflowStory::class, 'options' => [DoctrineWorkflowStory::ENTITY_MANAGER_FACTORY => [DoctrineWorkflowStory::ENTITY_MANAGER_FACTORY_NAME => EntityManagerFactory::class, DoctrineWorkflowStory::ENTITY_MANAGER_FACTORY_OPTIONS => [EntityManagerFactory::ENTITY_MANAGER_NAME => 'doctrine.entitymanager.test']]]], 'factory' => ['name' => ArrayWorkflowFactory::class, 'options' => ['reload' => true, 'workflows' => ['test' => ['location' => __DIR__ . '/test_workflow.xml']]]], 'resolver' => DefaultVariableResolver::class]], 'managers' => ['testWorkflowManager' => ['configuration' => 'default', 'name' => BasicWorkflow::class]]]];
<?php

use OldTown\Workflow\ZF2\Toolkit\PhpUnit\TestData\TestPaths;
use OldTown\Workflow\ZF2\Toolkit\PhpUnit\Utils\InitTestAppListener;
return ['modules' => ['DoctrineModule', 'DoctrineORMModule', 'OldTown\\Workflow\\ZF2', 'OldTown\\Workflow\\ZF2\\Service', 'OldTown\\Workflow\\ZF2\\Dispatch', 'OldTown\\Workflow\\Doctrine\\ZF2', 'OldTown\\Workflow\\ZF2\\Toolkit'], 'module_listener_options' => ['module_paths' => ['OldTown\\Workflow\\ZF2\\Toolkit' => TestPaths::getPathToModule()], 'config_glob_paths' => [__DIR__ . '/config/autoload/{{,*.}global,{,*.}local}.php']], 'service_manager' => ['invokables' => [InitTestAppListener::class => InitTestAppListener::class]], 'listeners' => [InitTestAppListener::class]];
示例#5
0
<?php

/**
 * @link     https://github.com/old-town/workflow-zf2-toolkit
 * @author   Malofeykin Andrey  <*****@*****.**>
 */
namespace OldTown\Workflow\ZF2\Toolkit\PhpUnit\TestData\BindObjectToWorkflowEntryIntegrationTest;

use OldTown\Workflow\Basic\BasicWorkflow;
use OldTown\Workflow\Loader\ArrayWorkflowFactory;
use OldTown\Workflow\Loader\XmlWorkflowFactory;
use OldTown\Workflow\Util\DefaultVariableResolver;
use OldTown\Workflow\ZF2\Toolkit\DoctrineWorkflowStory\DoctrineWorkflowStory;
use OldTown\Workflow\Doctrine\ZF2\EntityManagerFactory;
use OldTown\Workflow\ZF2\Toolkit\PhpUnit\TestData\TestPaths;
use OldTown\Workflow\ZF2\Toolkit\PhpUnit\TestData\BindObjectToWorkflowEntryIntegrationTest\Entity\TestEntity;
return ['workflow_zf2_toolkit' => ['workflow_entry_to_object_metadata' => ['test' => ['workflowManagerAlias' => 'aliasForTest', 'workflowName' => 'test', 'routeName' => 'testRootRouter/level1', 'map' => ['key1' => ['entityClassName' => TestEntity::class, 'identifiersMap' => ['id' => ['propertyName' => 'id', 'mode' => 'param', 'paramName' => 'testObjectId']]]]]]], 'router' => ['routes' => ['testRootRouter' => ['type' => 'literal', 'options' => ['route' => '/'], 'child_routes' => ['level1' => ['type' => 'literal', 'options' => ['route' => 'level1/'], 'child_routes' => ['testInitialize' => ['type' => 'Segment', 'options' => ['route' => 'initialize/:expectedValue', 'defaults' => ['controller' => TestController::class, 'action' => 'initialize', 'workflowManagerName' => 'testWorkflowManager', 'workflowActionName' => 'initAction', 'workflowName' => 'test']]], 'testDoAction' => ['type' => 'Segment', 'options' => ['route' => 'doAction/:testObjectId', 'defaults' => ['controller' => TestController::class, 'action' => 'do', 'workflowManagerAlias' => 'aliasForTest', 'workflowName' => 'test', 'workflowActionName' => 'dummyAction']]]]]]]]], 'doctrine' => ['entitymanager' => ['test' => ['configuration' => 'test', 'connection' => 'test']], 'connection' => ['test' => ['configuration' => 'test', 'eventmanager' => 'orm_default']], 'configuration' => ['test' => ['metadata_cache' => 'array', 'query_cache' => 'array', 'result_cache' => 'array', 'hydration_cache' => 'array', 'driver' => 'test', 'generate_proxies' => true, 'proxy_dir' => TestPaths::getPathToDoctrineProxyDir(), 'proxy_namespace' => 'DoctrineORMModule\\Proxy', 'filters' => [], 'datetime_functions' => [], 'string_functions' => [], 'numeric_functions' => [], 'second_level_cache' => []]], 'driver' => ['test' => ['class' => 'Doctrine\\ORM\\Mapping\\Driver\\DriverChain', 'drivers' => ['OldTown\\Workflow\\Spi\\Doctrine\\Entity' => 'WorkflowDoctrineEntity', 'OldTown\\Workflow\\ZF2\\Toolkit\\Entity' => 'entityToolkit', 'OldTown\\Workflow\\ZF2\\Toolkit\\PhpUnit\\TestData\\BindObjectToWorkflowEntryIntegrationTest\\Entity' => 'testEntity']], 'testEntity' => ['paths' => stream_resolve_include_path(__DIR__ . '/../../Entity'), 'class' => 'Doctrine\\ORM\\Mapping\\Driver\\AnnotationDriver']]], 'workflow_zf2' => ['configurations' => ['default' => ['persistence' => ['name' => DoctrineWorkflowStory::class, 'options' => [DoctrineWorkflowStory::ENTITY_MANAGER_FACTORY => [DoctrineWorkflowStory::ENTITY_MANAGER_FACTORY_NAME => EntityManagerFactory::class, DoctrineWorkflowStory::ENTITY_MANAGER_FACTORY_OPTIONS => [EntityManagerFactory::ENTITY_MANAGER_NAME => 'doctrine.entitymanager.test']]]], 'factory' => ['name' => ArrayWorkflowFactory::class, 'options' => ['reload' => true, 'workflows' => ['test' => ['location' => __DIR__ . '/test_workflow.xml']]]], 'resolver' => DefaultVariableResolver::class]], 'managers' => ['testWorkflowManager' => ['configuration' => 'default', 'name' => BasicWorkflow::class]], 'manager_aliases' => ['aliasForTest' => 'testWorkflowManager']], 'controllers' => ['invokables' => [TestController::class => TestController::class]], 'view_manager' => ['template_map' => ['old-town/test/initialize' => __DIR__ . '/../../view/initialize.phtml', 'old-town/test/do' => __DIR__ . '/../../view/do.phtml']]];