/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
dev/tests/api-functional/testsuite/Magento/GraphQl/Newsletter/Guest/SubscribeEmailToNewsletterTest.php
121 строка
3 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 10:44
22 окт 2025, 10:44
264bea2
Код
Авторство
О чём код?
<?php /** * Copyright 2020 Adobe * All Rights Reserved. */ declare(strict_types=1); namespace Magento\GraphQl\Newsletter\Guest; use Exception; use Magento\Newsletter\Model\ResourceModel\Subscriber as SubscriberResourceModel; use Magento\TestFramework\Helper\Bootstrap; use Magento\TestFramework\TestCase\GraphQlAbstract; /** * Test newsletter email subscription for guest */ class SubscribeEmailToNewsletterTest extends GraphQlAbstract { /** * @var SubscriberResourceModel */ private $subscriberResource; /** * @inheritDoc */ protected function setUp(): void { $objectManager = Bootstrap::getObjectManager(); $this->subscriberResource = $objectManager->get(SubscriberResourceModel::class); } /** * @magentoConfigFixture default_store newsletter/subscription/allow_guest_subscribe 1 */ public function testAddEmailIntoNewsletterSubscription() { $query = $this->getQuery('guest@example.com'); $response = $this->graphQlMutation($query); self::assertArrayHasKey('subscribeEmailToNewsletter', $response); self::assertNotEmpty($response['subscribeEmailToNewsletter']); self::assertEquals('SUBSCRIBED', $response['subscribeEmailToNewsletter']['status']); } /** * @magentoConfigFixture default_store newsletter/subscription/allow_guest_subscribe 1 */ public function testNewsletterSubscriptionWithIncorrectEmailFormat() { $query = $this->getQuery('guest.example.com'); $this->expectException(Exception::class); $this->expectExceptionMessage('Enter a valid email address.' . "\n"); $this->graphQlMutation($query); } /** * @magentoConfigFixture default_store newsletter/subscription/allow_guest_subscribe 0 */ public function testNewsletterSubscriptionWithDisallowedGuestSubscription() { $query = $this->getQuery('guest@example.com'); $this->expectException(Exception::class); $this->expectExceptionMessage( 'Guests can not subscribe to the newsletter. You must create an account to subscribe.' . "\n" ); $this->graphQlMutation($query); } /** * @magentoApiDataFixture Magento/Newsletter/_files/guest_subscriber.php * @magentoConfigFixture default_store newsletter/subscription/allow_guest_subscribe 1 */ public function testNewsletterSubscriptionWithAlreadySubscribedEmail() { $query = $this->getQuery('guest@example.com'); $this->expectException(Exception::class); $this->expectExceptionMessage('This email address is already subscribed.' . "\n"); $this->graphQlMutation($query); } /** * Returns a mutation query * * @param string $email * @return string */ private function getQuery(string $email = ''): string { return <<<QUERY mutation { subscribeEmailToNewsletter( email: "$email" ) { status } } QUERY; } /** * @inheritDoc */ public function tearDown(): void { $this->subscriberResource ->getConnection() ->delete( $this->subscriberResource->getMainTable() ); parent::tearDown(); } }