Skip to content

Commit 49c2238

Browse files
akaashakaash
authored andcommitted
ACQE-5180 | PR Feedback
1 parent 0ea3bfc commit 49c2238

File tree

1 file changed

+63
-24
lines changed
  • dev/tests/integration/testsuite/Magento/Bundle/Block/Sales/Order/Items

1 file changed

+63
-24
lines changed

dev/tests/integration/testsuite/Magento/Bundle/Block/Sales/Order/Items/RendererTest.php

Lines changed: 63 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,24 @@
1111
use Magento\Bundle\Test\Fixture\OrderItem as OrderItemFixture;
1212
use Magento\Bundle\Test\Fixture\Product as BundleProductFixture;
1313
use Magento\Catalog\Test\Fixture\Product as ProductFixture;
14+
use Magento\Config\Model\ResourceModel\Config as CoreConfig;
1415
use Magento\Customer\Api\AccountManagementInterface;
1516
use Magento\Customer\Model\Session;
1617
use Magento\Customer\Test\Fixture\Customer;
18+
use Magento\Framework\App\Config\ScopeConfigInterface;
1719
use Magento\Framework\ObjectManagerInterface;
1820
use Magento\Framework\View\LayoutInterface;
1921
use Magento\Sales\Model\Order;
22+
use Magento\Sales\Model\Order\Email\Sender\OrderSender;
23+
use Magento\Sales\Model\Order\Address as OrderAddress;
2024
use Magento\Store\Model\StoreManagerInterface;
2125
use Magento\TestFramework\Fixture\Config;
2226
use Magento\TestFramework\Fixture\DataFixture;
2327
use Magento\TestFramework\Fixture\DataFixtureStorage;
2428
use Magento\TestFramework\Fixture\DataFixtureStorageManager;
2529
use Magento\TestFramework\Fixture\DbIsolation;
2630
use Magento\TestFramework\Helper\Bootstrap;
31+
use Magento\TestFramework\Mail\Template\TransportBuilderMock;
2732
use PHPUnit\Framework\TestCase;
2833

2934
class RendererTest extends TestCase
@@ -45,11 +50,21 @@ class RendererTest extends TestCase
4550
/** @var Renderer */
4651
private $block;
4752

53+
/**
54+
* @var CoreConfig
55+
*/
56+
protected $resourceConfig;
57+
4858
/**
4959
* @var AccountManagementInterface
5060
*/
5161
private $accountManagement;
5262

63+
/**
64+
* @var OrderSender
65+
*/
66+
private $orderSender;
67+
5368
/**
5469
* @defaultDoc
5570
*/
@@ -59,7 +74,9 @@ protected function setUp(): void
5974
$layout = $this->objectManager->get(LayoutInterface::class);
6075
$this->block = $layout->createBlock(Renderer::class);
6176
$this->fixtures = Bootstrap::getObjectManager()->get(DataFixtureStorageManager::class)->getStorage();
77+
$this->resourceConfig = $this->objectManager->get(CoreConfig::class);
6278
$this->accountManagement = $this->objectManager->get(AccountManagementInterface::class);
79+
$this->orderSender = $this->objectManager->get(OrderSender::class);
6380
}
6481

6582
#[
@@ -113,10 +130,7 @@ public function testOrderEmailContent(): void
113130
* @throws \Magento\Framework\Exception\LocalizedException
114131
*/
115132
#[
116-
DbIsolation(false),
117-
Config('default/currency/options/base', 'USD', 'store', 'default'),
118-
Config('currency/options/default', 'EUR', 'store', 'default'),
119-
Config('currency/options/allow', 'USD, EUR', 'store', 'default'),
133+
DbIsolation(true),
120134
DataFixture(ProductFixture::class, ['price' => 10], 'p1'),
121135
DataFixture(ProductFixture::class, ['price' => 20], 'p2'),
122136
DataFixture(ProductFixture::class, ['price' => 30], 'p3'),
@@ -127,42 +141,67 @@ public function testOrderEmailContent(): void
127141
]
128142
public function testPlaceOrderWithOtherThanDefaultCurrencyValidateEmailHasSameCurrency(): void
129143
{
144+
$this->resourceConfig->saveConfig(
145+
'currency/options/default',
146+
'EUR',
147+
ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
148+
0
149+
);
150+
151+
$this->resourceConfig->saveConfig(
152+
'currency/options/allow',
153+
'EUR',
154+
ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
155+
0
156+
);
157+
158+
$this->resourceConfig->saveConfig(
159+
'currency/options/base',
160+
'USD',
161+
ScopeConfigInterface::SCOPE_TYPE_DEFAULT,
162+
0
163+
);
164+
130165
// Load customer data
131166
$customer = $this->fixtures->get('customer');
132167
$customerEmail = $customer->getEmail();
168+
$customerAdd = $customer->getAddresses();
133169

134170
// Login to customer
135171
$this->accountManagement->authenticate($customerEmail, 'password');
136172

173+
// Including address data file
174+
$addressData = include __DIR__ . '/../../../../../Sales/_files/address_data.php';
175+
176+
// Setting the billing address
177+
$billingAddress = $this->objectManager->create(OrderAddress::class, ['data' => $addressData]);
178+
$billingAddress->setAddressType('billing');
179+
180+
// Setting the shipping address
181+
$shippingAddress = clone $billingAddress;
182+
$shippingAddress->setId(null)->setAddressType('shipping');
183+
137184
// Place the order
138185
$order = $this->objectManager->create(Order::class);
139186
$incrementId = $this->fixtures->get('order')->getIncrementId();
140187
$order->loadByIncrementId($incrementId);
141188
$storeManager = $this->objectManager->get(StoreManagerInterface::class);
142-
$currencyCode = $storeManager->getWebsite()->getDefaultStore()->getDefaultCurrency()->getCode();
189+
$currencyCodeSymbol = $storeManager->getWebsite()->getDefaultStore()->getDefaultCurrency()->getCurrencySymbol();
143190
$storeId = $this->objectManager->get(StoreManagerInterface::class)->getStore()->getId();
144191
$order->setStoreId($storeId);
145-
$order->setOrderCurrencyCode($currencyCode);
192+
$order->setCustomerEmail($customerEmail);
193+
$order->setBillingAddress($billingAddress);
194+
$order->setShippingAddress($shippingAddress);
146195
$order->save();
196+
$this->orderSender->send($order);
197+
$this->assertTrue($order->getSendEmail());
147198

148-
$priceBlockHtml = [];
149-
150-
$items = $order->getAllItems();
151-
foreach ($items as $item) {
152-
$item->setProductOptions([
153-
'bundle_options' => [
154-
[
155-
'value' => [
156-
['title' => '']
157-
],
158-
],
159-
],
160-
'bundle_selection_attributes' => '{"qty":5 ,"price":99}'
161-
]);
162-
$this->block->setItem($item);
163-
$priceBlockHtml[] = $this->block->getValueHtml($item);
164-
}
199+
/** @var TransportBuilderMock $transportBuilderMock */
200+
$transportBuilderMock = Bootstrap::getObjectManager()
201+
->get(TransportBuilderMock::class);
202+
$sentMessage = $transportBuilderMock->getSentMessage();
165203

166-
$this->assertStringContainsString("€99", $priceBlockHtml[0]);
204+
$this->assertNotNull($sentMessage);
205+
$this->assertStringContainsString($currencyCodeSymbol, $sentMessage->getBodyText());
167206
}
168207
}

0 commit comments

Comments
 (0)