From c0b94a7ccf263badbe223725a24e9da59796edf8 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Wed, 9 Sep 2020 19:32:41 -0400 Subject: [PATCH] PMCORE-2091 PMFSendMessage sends 10 mails when deleting a case --- .../workflow/engine/classes/SpoolRunTest.php | 52 +++++++++++++++++++ workflow/engine/classes/SpoolRun.php | 3 ++ 2 files changed, 55 insertions(+) diff --git a/tests/unit/workflow/engine/classes/SpoolRunTest.php b/tests/unit/workflow/engine/classes/SpoolRunTest.php index 8b8faaefa..942a7054c 100644 --- a/tests/unit/workflow/engine/classes/SpoolRunTest.php +++ b/tests/unit/workflow/engine/classes/SpoolRunTest.php @@ -331,4 +331,56 @@ class SpoolRunTest extends TestCase $this->assertTrue($expected); } + + /** + * This test updateSpoolStatus method. + * @test + * @covers \SpoolRun::__construct() + * @covers \SpoolRun::setData() + * @covers \SpoolRun::setConfig() + * @covers \SpoolRun::sendMail() + * @covers \SpoolRun::handleMail() + * @covers \SpoolRun::updateSpoolStatus() + */ + public function it_should_test_updateSpoolStatus_method() + { + $appMsgUid = G::generateUniqueID(); + factory(AppMessage::class)->create([ + 'APP_MSG_UID' => $appMsgUid + ]); + + $emailServer = factory(EmailServerModel::class)->states('PHPMAILER')->make(); + + $config = $emailServer->toArray(); + $config['SMTPSecure'] = 'ssl'; + + $faker = Factory::create(); + + $file1 = UploadedFile::fake()->image('avatar.jpg', 400, 300); + $file2 = UploadedFile::fake()->create('document.pdf', 200); + + $files = [ + $file1->path(), + $file2->path() + ]; + + $spoolRun = new SpoolRun(); + $spoolRun->setData( + $appMsgUid, + $faker->title, + $faker->companyEmail, + $faker->freeEmail, + $faker->text(), + $faker->dateTime()->format('Y-m-d H:i:s'), + $faker->companyEmail, + $faker->freeEmail, + '', + $files + ); + $spoolRun->setConfig($config); + + $expected = $spoolRun->sendMail(); + + $this->assertTrue($expected); + } } diff --git a/workflow/engine/classes/SpoolRun.php b/workflow/engine/classes/SpoolRun.php index f4bd96160..711abc303 100644 --- a/workflow/engine/classes/SpoolRun.php +++ b/workflow/engine/classes/SpoolRun.php @@ -336,6 +336,9 @@ class SpoolRun private function updateSpoolStatus() { $oAppMessage = AppMessagePeer::retrieveByPK($this->spoolId); + if (empty($oAppMessage)) { + return; + } if (is_array($this->fileData['attachments'])) { $attachment = implode(",", $this->fileData['attachments']); $oAppMessage->setappMsgAttach($attachment);