예제 #1
0
 /**
  * @dataProvider orderingActionMapProvider
  */
 public function testProductUpdateOrderingActions($actionClass, $recordClass)
 {
     $container = new ServiceContainer();
     $generator = $container['generator'];
     $generator->registerTemplate('TwigActionTemplate', new TwigActionTemplate());
     $generator->registerTemplate('UpdateOrderingRecordActionTemplate', new UpdateOrderingRecordActionTemplate());
     $runner = new ActionRunner($container);
     $runner->registerAction('UpdateOrderingRecordActionTemplate', array('namespace' => 'ProductBundle', 'record_class' => $recordClass));
     $action = $runner->createAction($actionClass);
     $this->assertNotNull($action);
 }
예제 #2
0
 /**
  * @dataProvider roleProvider
  */
 public function testRunnerWithMultiRoleInterface($roles, $resultType)
 {
     $container = new ServiceContainer();
     $generator = $container['generator'];
     $generator->registerTemplate('RecordActionTemplate', new RecordActionTemplate());
     $runner = new ActionRunner($container);
     $runner->registerAutoloader();
     $runner->registerAction('RecordActionTemplate', array('namespace' => 'OrderBundle', 'model' => 'Order', 'types' => array(['prefix' => 'Create', 'allowed_roles' => ['user', 'admin']], ['prefix' => 'Update'], ['prefix' => 'Delete'])));
     $user = new TestUser();
     $user->roles = $roles;
     $runner->setCurrentUser($user);
     $result = $runner->run('OrderBundle::Action::CreateOrder', ['qty' => '1']);
     ok($result);
     is($resultType, $result->type);
 }
예제 #3
0
 public function testRecordActionTemplate()
 {
     $generator = new ActionGenerator();
     $generator->registerTemplate('RecordActionTemplate', new RecordActionTemplate());
     $runner = new ActionRunner(['generator' => $generator]);
     $actionArgs = array('namespace' => 'test', 'model' => 'testModel', 'types' => array(['prefix' => 'Create'], ['prefix' => 'Update'], ['prefix' => 'Delete'], ['prefix' => 'BulkDelete']));
     $runner->registerAction('RecordActionTemplate', $actionArgs);
     /*
             $template = $generator->getTemplate('RecordActionTemplate');
             $template->register($runner, 'RecordActionTemplate', $actionArgs);
     */
     $this->assertCount(4, $runner->getPretreatments());
     $className = 'test\\Action\\UpdatetestModel';
     $this->assertNotNull($pretreatment = $runner->getActionPretreatment($className));
     $generatedAction = $generator->generate('RecordActionTemplate', $className, $pretreatment['arguments']);
     $generatedAction->load();
     ok(class_exists($className));
 }
예제 #4
0
 public function testRunAndJsonOutput()
 {
     $container = new ServiceContainer();
     $generator = $container['generator'];
     $generator->registerTemplate('RecordActionTemplate', new RecordActionTemplate());
     $runner = new ActionRunner($container);
     $runner->registerAutoloader();
     $runner->registerAction('RecordActionTemplate', array('namespace' => 'User', 'model' => 'User', 'types' => array(['prefix' => 'Create'], ['prefix' => 'Update'], ['prefix' => 'Delete'])));
     $result = $runner->run('User::Action::CreateUser', ['email' => 'foo@foo']);
     $this->assertNotNull($result);
     $json = $result->__toString();
     $this->assertNotNull($json, 'json output');
     $data = json_decode($json);
     $this->assertTrue($data->success);
     ok($data->data);
     ok($data->data->id);
     $results = $runner->getResults();
     $this->assertNotEmpty($results);
     $this->assertNotNull($runner->getResult('User::Action::CreateUser'));
     $runner->setResult('test', 'test message');
     is(true, $runner->hasResult('test'));
     $runner->removeResult('test');
     is(false, $runner->hasResult('test'));
 }