magento2-docker/dev/tests/integration/testsuite/Magento/Sales/Model/Order/StatusTest.php

72 lines
2.2 KiB
PHP
Executable File

<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Sales\Model\Order;
use Magento\Framework\App\State;
use Magento\Sales\Api\Data\OrderInterfaceFactory;
use Magento\TestFramework\Helper\Bootstrap;
/**
* Class ShipmentTest
* @package Magento\Sales\Model\Order
*/
class StatusTest extends \PHPUnit\Framework\TestCase
{
public function theCorrectLabelIsUsedDependingOnTheAreaProvider()
{
return [
'backend label' => [
'adminhtml',
'Example',
],
'store view label' => [
'frontend',
'Store view example',
],
];
}
/**
* In the backend the regular label must be showed.
*
* @param $area
* @param $result
*
* @magentoDataFixture Magento/Sales/_files/order_status.php
* @dataProvider theCorrectLabelIsUsedDependingOnTheAreaProvider
*/
public function testTheCorrectLabelIsUsedDependingOnTheArea($area, $result)
{
$objectManager = Bootstrap::getObjectManager();
$objectManager->get(State::class)->setAreaCode($area);
/** @var \Magento\Sales\Model\Order $order */
$order = $objectManager->create(\Magento\Sales\Model\Order::class);
$order->loadByIncrementId('100000001');
$this->assertEquals($result, $order->getStatusLabel());
}
/**
* Tests that specified order status frontend label for store should be displayed correctly
*
* @magentoDataFixture Magento/Sales/_files/order_status_with_different_labels.php
*/
public function testTheCorrectLabelIsUsedDependingOnTheStore()
{
$objectManager = Bootstrap::getObjectManager();
$objectManager->get(State::class)->setAreaCode('frontend');
$orderFactory = $objectManager->get(OrderInterfaceFactory::class);
$order = $orderFactory->create()->loadByIncrementId('100000001');
$this->assertEquals('Custom status label', $order->getFrontendStatusLabel());
$order->setStoreId(1);
$order->save();
$this->assertEquals(1, $order->getStoreId());
$this->assertEquals('First store label', $order->getFrontendStatusLabel());
}
}