Skip to content

Commit db13fa2

Browse files
akaashakaash
authored andcommitted
ACQE-4774 | PR Feedbacks
1 parent b5e05ea commit db13fa2

File tree

2 files changed

+76
-110
lines changed

2 files changed

+76
-110
lines changed

dev/tests/integration/testsuite/Magento/Customer/Model/AccountManagement/CreateAccountTest.php

Lines changed: 0 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@
3232
use Magento\TestFramework\Helper\Xpath;
3333
use Magento\TestFramework\Mail\Template\TransportBuilderMock;
3434
use PHPUnit\Framework\TestCase;
35-
use Magento\Newsletter\Model\Subscriber;
36-
use Magento\Framework\Exception\NoSuchEntityException;
37-
use Magento\Framework\App\Area;
38-
use Magento\Framework\Mail\Template\TransportBuilder;
3935

4036
/**
4137
* Tests for customer creation via customer account management service.
@@ -759,110 +755,4 @@ private function getCustomTemplateId(string $templateCode): int
759755
->getFirstItem()
760756
->getId();
761757
}
762-
763-
/**
764-
* @magentoConfigFixture current_store newsletter/general/active 1
765-
* @magentoConfigFixture current_store newsletter/subscription/confirm 1
766-
* @magentoDataFixture Magento/Customer/_files/customer.php
767-
* @magentoDataFixture Magento/Newsletter/_files/subscribers.php
768-
*
769-
* @return void
770-
* @throws InputException
771-
* @throws InputMismatchException
772-
* @throws LocalizedException
773-
* @throws NoSuchEntityException
774-
*/
775-
public function testCreateAccountWithNewsLetterSubscription() :void
776-
{
777-
$customer = $this->customerRepository->getById(1);
778-
$customerEmail = $customer->getEmail();
779-
$customerData = [
780-
'name' => $customer->getFirstname() . ' ' . $customer->getLastname(),
781-
'email' => $customerEmail,
782-
'id' => $customer->getId(),
783-
'rp_token' => 'randomstring'
784-
];
785-
$this->assertAndSendEmailNotification(
786-
$customerData,
787-
$customerEmail,
788-
'customer_create_account_email_template',
789-
null
790-
);
791-
792-
/** @var Subscriber $subscriber */
793-
$subscriber = $this->objectManager->create(Subscriber::class);
794-
$subscriber->subscribe($customerEmail);
795-
$subscriber->confirm($subscriber->getSubscriberConfirmCode());
796-
$confirmationLink = $subscriber->getConfirmationLink();
797-
798-
// Verify if the customer is subscribed to newsletter
799-
$this->assertTrue($subscriber->isSubscribed());
800-
801-
$this->assertAndSendEmailNotification(
802-
$customerData,
803-
$customerEmail,
804-
'newsletter_subscription_confirm_email_template',
805-
$confirmationLink
806-
);
807-
}
808-
809-
/**
810-
* @param $customerData
811-
* @param $customerEmail
812-
* @param $templateIdentifier
813-
* @param $confirmationLink
814-
* @return void
815-
* @throws LocalizedException
816-
* @throws \Magento\Framework\Exception\MailException
817-
*/
818-
private function assertAndSendEmailNotification(
819-
$customerData,
820-
$customerEmail,
821-
$templateIdentifier,
822-
$confirmationLink = null
823-
) :void {
824-
/** @var TransportBuilder $transportBuilder */
825-
$transportBuilder = $this->objectManager->get(TransportBuilder::class);
826-
$transport = $transportBuilder->setTemplateIdentifier($templateIdentifier)
827-
->setTemplateOptions(
828-
[
829-
'area' => Area::AREA_FRONTEND,
830-
'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID
831-
]
832-
)
833-
->setTemplateVars(
834-
[
835-
'customer' => $customerData,
836-
'subscriber_data' => [
837-
'confirmation_link' => $confirmationLink,
838-
],
839-
]
840-
)
841-
->addTo($customerEmail)
842-
->getTransport();
843-
$transport->sendMessage();
844-
$sendMessage = $transport->getMessage();
845-
$this->assertNotNull($sendMessage);
846-
847-
switch ($templateIdentifier) {
848-
case 'customer_create_account_email_template':
849-
$this->assertEquals('Welcome to Default', $sendMessage->getSubject());
850-
$this->assertStringContainsString(
851-
$customerData['name'],
852-
$sendMessage->getBody()->getParts()[0]->getRawContent()
853-
);
854-
$this->assertStringContainsString(
855-
$customerData['email'],
856-
$sendMessage->getBody()->getParts()[0]->getRawContent()
857-
);
858-
break;
859-
case 'newsletter_subscription_confirm_email_template':
860-
$this->assertStringContainsString(
861-
$confirmationLink,
862-
$sendMessage->getBody()->getParts()[0]->getRawContent()
863-
);
864-
$this->assertEquals('Newsletter subscription confirmation', $sendMessage->getSubject());
865-
break;
866-
}
867-
}
868758
}

dev/tests/integration/testsuite/Magento/Newsletter/Model/Plugin/PluginTest.php

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
namespace Magento\Newsletter\Model\Plugin;
77

88
use Magento\TestFramework\Helper\Bootstrap;
9+
use Magento\TestFramework\Mail\Template\TransportBuilderMock;
910

1011
/**
1112
* @magentoAppIsolation enabled
@@ -24,6 +25,11 @@ class PluginTest extends \PHPUnit\Framework\TestCase
2425
*/
2526
protected $customerRepository;
2627

28+
/**
29+
* @var TransportBuilderMock
30+
*/
31+
protected $transportBuilderMock;
32+
2733
protected function setUp(): void
2834
{
2935
$this->accountManagement = Bootstrap::getObjectManager()->get(
@@ -32,6 +38,9 @@ protected function setUp(): void
3238
$this->customerRepository = Bootstrap::getObjectManager()->get(
3339
\Magento\Customer\Api\CustomerRepositoryInterface::class
3440
);
41+
$this->transportBuilderMock = Bootstrap::getObjectManager()->get(
42+
TransportBuilderMock::class
43+
);
3544
}
3645

3746
protected function tearDown(): void
@@ -223,4 +232,71 @@ public function testCustomerWithTwoNewsLetterSubscriptions()
223232
$extensionAttributes = $customer->getExtensionAttributes();
224233
$this->assertTrue($extensionAttributes->getIsSubscribed());
225234
}
235+
236+
/**
237+
* @magentoAppArea adminhtml
238+
* @magentoDbIsolation enabled
239+
* @magentoConfigFixture current_store newsletter/general/active 1
240+
* @magentoDataFixture Magento/Customer/_files/customer_welcome_email_template.php
241+
*
242+
* @return void
243+
* @throws \Magento\Framework\Exception\LocalizedException
244+
*/
245+
public function testCreateAccountWithNewsLetterSubscription() :void
246+
{
247+
$objectManager = Bootstrap::getObjectManager();
248+
/** @var \Magento\Customer\Api\Data\CustomerInterfaceFactory $customerFactory */
249+
$customerFactory = $objectManager->get(\Magento\Customer\Api\Data\CustomerInterfaceFactory::class);
250+
$customerDataObject = $customerFactory->create()
251+
->setFirstname('John')
252+
->setLastname('Doe')
253+
->setEmail('customer@example.com');
254+
$extensionAttributes = $customerDataObject->getExtensionAttributes();
255+
$extensionAttributes->setIsSubscribed(true);
256+
$customerDataObject->setExtensionAttributes($extensionAttributes);
257+
$this->accountManagement->createAccount($customerDataObject, '123123qW');
258+
259+
$message = $this->transportBuilderMock->getSentMessage();
260+
261+
$this->assertEquals('Welcome to Main Website Store', $message->getSubject());
262+
$this->assertStringContainsString(
263+
'John',
264+
$message->getBody()->getParts()[0]->getRawContent()
265+
);
266+
$this->assertStringContainsString(
267+
'customer@example.com',
268+
$message->getBody()->getParts()[0]->getRawContent()
269+
);
270+
271+
/** @var \Magento\Newsletter\Model\Subscriber $subscriber */
272+
$subscriber = $objectManager->create(\Magento\Newsletter\Model\Subscriber::class);
273+
$subscriber->loadByEmail('customer@example.com');
274+
$this->assertTrue($subscriber->isSubscribed());
275+
276+
/** @var \Magento\Framework\Mail\Template\TransportBuilder $transportBuilder */
277+
$transportBuilder = $objectManager->get(\Magento\Framework\Mail\Template\TransportBuilder::class);
278+
$transport = $transportBuilder->setTemplateIdentifier('newsletter_subscription_confirm_email_template')
279+
->setTemplateOptions(
280+
[
281+
'area' => \Magento\Framework\App\Area::AREA_FRONTEND,
282+
'store' => \Magento\Store\Model\Store::DEFAULT_STORE_ID
283+
]
284+
)
285+
->setTemplateVars(
286+
[
287+
'subscriber_data' => [
288+
'confirmation_link' => $subscriber->getConfirmationLink(),
289+
],
290+
]
291+
)
292+
->addTo('customer@example.com')
293+
->getTransport();
294+
$sendMessage = $transport->getMessage();
295+
296+
$this->assertStringContainsString(
297+
$subscriber->getConfirmationLink(),
298+
$sendMessage->getBody()->getParts()[0]->getRawContent()
299+
);
300+
$this->assertEquals('Newsletter subscription confirmation', $sendMessage->getSubject());
301+
}
226302
}

0 commit comments

Comments
 (0)