function ConfigEntityTest::testConfigAction

Tests saving the configuration of an action and then loading it again.

File

tests/src/Kernel/ConfigEntityTest.php, line 51

Class

ConfigEntityTest
Tests storage and loading of Rules config entities.

Namespace

Drupal\Tests\rules\Kernel

Code

public function testConfigAction() {
    $action = $this->expressionManager
        ->createAction('rules_test_debug_log');
    $config_entity = $this->storage
        ->create([
        'id' => 'test_rule',
    ])
        ->setExpression($action);
    $config_entity->save();
    // The logger instance has changed, refresh it.
    $this->logger = $this->container
        ->get('logger.channel.rules_debug');
    $this->logger
        ->addLogger($this->debugLog);
    $loaded_entity = $this->storage
        ->load('test_rule');
    $this->assertEquals($action->getConfiguration(), $loaded_entity->get('component')['expression'], 'Action configuration is the same after loading the config.');
    // Create the Rules expression object from the configuration.
    $expression = $loaded_entity->getExpression();
    $expression->execute();
    // Test that the action logged something.
    $this->assertRulesDebugLogEntryExists('action called');
}