87 lines
2.5 KiB
PHP
Executable File
87 lines
2.5 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Shipping\Model;
|
|
|
|
use Magento\Framework\DataObject;
|
|
use Magento\Framework\ObjectManagerInterface;
|
|
use Magento\Quote\Model\Quote\Address\RateResult\Method;
|
|
use Magento\Shipping\Model\Rate\Result;
|
|
use Magento\TestFramework\Helper\Bootstrap;
|
|
|
|
/**
|
|
* Contains list of tests for Shipping model
|
|
*/
|
|
class ShippingTest extends \PHPUnit\Framework\TestCase
|
|
{
|
|
/**
|
|
* @var Shipping
|
|
*/
|
|
private $model;
|
|
|
|
/**
|
|
* @var ObjectManagerInterface
|
|
*/
|
|
private $objectManager;
|
|
|
|
/**
|
|
* @inheritdoc
|
|
*/
|
|
protected function setUp(): void
|
|
{
|
|
$this->objectManager = Bootstrap::getObjectManager();
|
|
$this->model = $this->objectManager->get(Shipping::class);
|
|
}
|
|
|
|
/**
|
|
* Checks shipping rates processing by address.
|
|
* @covers \Magento\Shipping\Model\Shipping::collectRatesByAddress
|
|
* @return Result
|
|
*/
|
|
public function testCollectRatesByAddress()
|
|
{
|
|
$address = $this->objectManager->create(DataObject::class, [
|
|
'data' => [
|
|
'region_id' => 'CA',
|
|
'postcode' => '11111',
|
|
'lastname' => 'John',
|
|
'firstname' => 'Doe',
|
|
'street' => 'Some street',
|
|
'city' => 'Los Angeles',
|
|
'email' => 'john.doe@example.com',
|
|
'telephone' => '11111111',
|
|
'country_id' => 'US',
|
|
'item_qty' => 1
|
|
]
|
|
]);
|
|
/** @var Shipping $result */
|
|
$result = $this->model->collectRatesByAddress($address, 'flatrate');
|
|
static::assertInstanceOf(Shipping::class, $result);
|
|
|
|
return $result->getResult();
|
|
}
|
|
|
|
/**
|
|
* Checks shipping rate details for processed address.
|
|
* @covers \Magento\Shipping\Model\Shipping::collectRatesByAddress
|
|
* @param Result $result
|
|
* @depends testCollectRatesByAddress
|
|
* @magentoConfigFixture carriers/flatrate/active 1
|
|
* @magentoConfigFixture carriers/flatrate/price 5.00
|
|
*/
|
|
public function testCollectRates(Result $result)
|
|
{
|
|
$rates = $result->getAllRates();
|
|
static::assertNotEmpty($rates);
|
|
|
|
/** @var Method $rate */
|
|
$rate = array_pop($rates);
|
|
|
|
static::assertInstanceOf(Method::class, $rate);
|
|
static::assertEquals('flatrate', $rate->getData('carrier'));
|
|
static::assertEquals(5, $rate->getData('price'));
|
|
}
|
|
}
|