From 6c19459a7c9ab378a50ab624ba6f3bf2e6eab0e1 Mon Sep 17 00:00:00 2001 From: Tim Otten <totten@civicrm.org> Date: Mon, 27 Sep 2021 23:06:32 -0700 Subject: [PATCH] (REF) ExampleWorkflowTest - Add coverage for alterMailParams($params['valueName']) --- .../ExampleWorkflowMessageTest.php | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/tests/phpunit/Civi/WorkflowMessage/ExampleWorkflowMessageTest.php b/tests/phpunit/Civi/WorkflowMessage/ExampleWorkflowMessageTest.php index 04b1e75ff3..9e4b2babc9 100644 --- a/tests/phpunit/Civi/WorkflowMessage/ExampleWorkflowMessageTest.php +++ b/tests/phpunit/Civi/WorkflowMessage/ExampleWorkflowMessageTest.php @@ -259,22 +259,50 @@ class ExampleWorkflowMessageTest extends \CiviUnitTestCase { $this->assertTrue(!isset($envelope['myProtectedInt'])); } + public function testExampleRender() { + $hookCount = 0; + $rand = rand(0, 1000); + $cid = $this->individualCreate(['first_name' => 'Foo', 'last_name' => 'Bar' . $rand, 'prefix_id' => NULL, 'suffix_id' => NULL]); + /** @var \Civi\WorkflowMessage\GenericWorkflowMessage $ex */ + $ex = $this->createExample()->setContactId($cid); + \Civi::dispatcher()->addListener('hook_civicrm_alterMailParams', function($e) use (&$hookCount) { + $hookCount++; + $this->assertEquals('my_example_wf', $e->params['valueName'], 'ExampleWorkflow::WORKFLOW should propagate to params[valueName]'); + }); + $this->assertEquals(0, $hookCount); + $rendered = $ex->renderTemplate([ + 'messageTemplate' => [ + 'msg_subject' => 'Hello {contact.display_name}', + ], + ]); + $this->assertEquals(1, $hookCount); + $this->assertEquals('Hello Foo Bar' . $rand, $rendered['subject']); + } + public function testImpromptuRender() { + $hookCount = 0; $rand = rand(0, 1000); $cid = $this->individualCreate(['first_name' => 'Foo', 'last_name' => 'Bar' . $rand, 'prefix_id' => NULL, 'suffix_id' => NULL]); /** @var \Civi\WorkflowMessage\GenericWorkflowMessage $ex */ $ex = WorkflowMessage::create('some_impromptu_wf', [ 'tokenContext' => ['contactId' => $cid], ]); + \Civi::dispatcher()->addListener('hook_civicrm_alterMailParams', function($e) use (&$hookCount) { + $hookCount++; + $this->assertEquals('some_impromptu_wf', $e->params['valueName'], 'Adhoc name should propagate to params[workflow]'); + }); + $this->assertEquals(0, $hookCount); $rendered = $ex->renderTemplate([ 'messageTemplate' => [ 'msg_subject' => 'Hello {contact.display_name}', ], ]); + $this->assertEquals(1, $hookCount); $this->assertEquals('Hello Foo Bar' . $rand, $rendered['subject']); } public function testRenderStoredTemplate() { + $hookCount = 0; $rand = rand(0, 1000); $cid = $this->individualCreate(['first_name' => 'Foo', 'last_name' => 'Bar' . $rand, 'prefix_id' => NULL, 'suffix_id' => NULL]); /** @var \Civi\WorkflowMessage\GenericWorkflowMessage $ex */ @@ -287,7 +315,14 @@ class ExampleWorkflowMessageTest extends \CiviUnitTestCase { 'survey_id' => NULL, ], ]); + + \Civi::dispatcher()->addListener('hook_civicrm_alterMailParams', function($e) use (&$hookCount) { + $hookCount++; + $this->assertEquals('petition_sign', $e->params['valueName']); + }); + $this->assertEquals(0, $hookCount); $rendered = $ex->renderTemplate(); + $this->assertEquals(1, $hookCount); $this->assertStringContainsString('Foo Bar' . $rand, $rendered['subject']); $this->assertStringContainsString('Thank you for signing The Fake Petition', $rendered['html']); $this->assertStringContainsString('Thank you for signing The Fake Petition', $rendered['text']); -- 2.25.1