Skip to content

Commit d88c8d8

Browse files
author
Maciej Pawłowski
committed
integration test for scoped message identity
1 parent da04422 commit d88c8d8

File tree

3 files changed

+101
-1
lines changed

3 files changed

+101
-1
lines changed

dev/tests/integration/testsuite/Magento/ProductAlert/Model/EmailTest.php

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
use Magento\Catalog\Api\ProductRepositoryInterface;
1010
use Magento\Customer\Api\CustomerRepositoryInterface;
11-
use Magento\ProductAlert\Model\Email;
11+
use Magento\Store\Model\StoreManagerInterface;
1212
use Magento\Store\Model\Website;
1313
use Magento\TestFramework\Mail\Template\TransportBuilderMock;
1414

@@ -156,4 +156,36 @@ public function testEmailForDifferentCustomers(): void
156156
);
157157
}
158158
}
159+
160+
/**
161+
* @magentoAppArea frontend
162+
* @magentoDataFixture Magento/Customer/_files/customer.php
163+
* @magentoDataFixture Magento/Catalog/_files/product_simple.php
164+
* @magentoDataFixture Magento/Store/_files/second_store_with_second_identity.php
165+
*/
166+
public function testScopedMessageIdentity()
167+
{
168+
/** @var Website $website */
169+
$website = $this->_objectManager->create(Website::class);
170+
$website->load(1);
171+
$this->_emailModel->setWebsite($website);
172+
173+
/** @var StoreManagerInterface $storeManager */
174+
$storeManager = $this->_objectManager->create(StoreManagerInterface::class);
175+
$store = $storeManager->getStore('fixture_second_store');
176+
$this->_emailModel->setStoreId($store->getId());
177+
178+
$customer = $this->customerRepository->getById(1);
179+
$this->_emailModel->setCustomerData($customer);
180+
181+
/** @var \Magento\Catalog\Model\Product $product */
182+
$product = $this->productRepository->getById(1);
183+
184+
$this->_emailModel->addPriceProduct($product);
185+
$this->_emailModel->send();
186+
187+
$from = $this->transportBuilder->getSentMessage()->getFrom()[0];
188+
$this->assertEquals('Fixture Store Owner', $from->getName());
189+
$this->assertEquals('fixture.store.owner@example.com', $from->getEmail());
190+
}
159191
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
/**
3+
* Create fixture store with second identity
4+
*
5+
* Copyright © Magento, Inc. All rights reserved.
6+
* See COPYING.txt for license details.
7+
*/
8+
declare(strict_types=1);
9+
10+
require_once __DIR__ . '/second_store.php';
11+
12+
use Magento\Config\Model\ResourceModel\Config;
13+
use Magento\Framework\App\Config\ScopeConfigInterface;
14+
use Magento\Store\Model\ScopeInterface;
15+
use Magento\Store\Model\Store;
16+
use Magento\TestFramework\Helper\Bootstrap;
17+
18+
$objectManager = Bootstrap::getObjectManager();
19+
$store = $objectManager->create(Store::class);
20+
if ($storeId = $store->load('fixture_second_store', 'code')->getId()) {
21+
/** @var Config $configResource */
22+
$configResource = $objectManager->get(Config::class);
23+
$configResource->saveConfig(
24+
'trans_email/ident_general/name',
25+
'Fixture Store Owner',
26+
ScopeInterface::SCOPE_STORES,
27+
$storeId
28+
29+
);
30+
$configResource->saveConfig(
31+
'trans_email/ident_general/email',
32+
'fixture.store.owner@example.com',
33+
ScopeInterface::SCOPE_STORES,
34+
$storeId
35+
);
36+
$scopeConfig = $objectManager->get(ScopeConfigInterface::class);
37+
$scopeConfig->clean();
38+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
/**
3+
*
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
declare(strict_types=1);
8+
9+
use Magento\Store\Model\ScopeInterface;
10+
use Magento\TestFramework\Helper\Bootstrap;
11+
12+
$objectManager = Bootstrap::getObjectManager();
13+
$store = $objectManager->create(\Magento\Store\Model\Store::class);
14+
$storeId = $store->load('fixture_second_store', 'code')->getId();
15+
16+
if ($storeId) {
17+
$configResource = $objectManager->get(\Magento\Config\Model\ResourceModel\Config::class);
18+
$configResource->deleteConfig(
19+
'trans_email/ident_general/name',
20+
ScopeInterface::SCOPE_STORES,
21+
$storeId
22+
);
23+
$configResource->deleteConfig(
24+
'trans_email/ident_general/email',
25+
ScopeInterface::SCOPE_STORES,
26+
$storeId
27+
);
28+
}
29+
30+
require_once __DIR__ . '/second_store_rollback.php';

0 commit comments

Comments
 (0)