Issues (3641)

ProductMeasurementBaseUnitDataImportPluginTest.php (1 issue)

1
<?php
2
3
/**
4
 * MIT License
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
namespace SprykerTest\Zed\ProductMeasurementUnitDataImport\Communication\Plugin;
9
10
use Codeception\Test\Unit;
11
use Generated\Shared\Transfer\DataImporterReportTransfer;
12
use Spryker\Zed\DataImport\DataImportDependencyProvider;
13
use Spryker\Zed\Product\Business\ProductFacadeInterface;
14
use Spryker\Zed\ProductMeasurementUnitDataImport\Communication\Plugin\ProductMeasurementBaseUnitDataImportPlugin;
15
use Spryker\Zed\ProductMeasurementUnitDataImport\Communication\Plugin\ProductMeasurementSalesUnitDataImportPlugin;
16
use Spryker\Zed\ProductMeasurementUnitDataImport\Communication\Plugin\ProductMeasurementSalesUnitStoreDataImportPlugin;
17
use Spryker\Zed\ProductMeasurementUnitDataImport\Communication\Plugin\ProductMeasurementUnitDataImportPlugin;
18
use Spryker\Zed\ProductMeasurementUnitDataImport\ProductMeasurementUnitDataImportConfig;
19
20
/**
21
 * Auto-generated group annotations
22
 *
23
 * @group SprykerTest
24
 * @group Zed
25
 * @group ProductMeasurementUnitDataImport
26
 * @group Communication
27
 * @group Plugin
28
 * @group ProductMeasurementBaseUnitDataImportPluginTest
29
 * Add your own group annotations below this line
30
 */
31
class ProductMeasurementBaseUnitDataImportPluginTest extends Unit
32
{
33
    /**
34
     * @var \SprykerTest\Zed\ProductMeasurementUnitDataImport\ProductMeasurementUnitDataImportCommunicationTester
35
     */
36
    protected $tester;
37
38
    /**
39
     * @var bool
40
     */
41
    protected static $neededDataAdded = false;
42
43
    /**
44
     * @return void
45
     */
46
    protected function setUp(): void
47
    {
48
        parent::setUp();
49
50
        $this->tester->setDependency(
51
            DataImportDependencyProvider::DATA_IMPORTER_PLUGINS,
52
            [
53
                new ProductMeasurementUnitDataImportPlugin(),
54
                new ProductMeasurementBaseUnitDataImportPlugin(),
55
                new ProductMeasurementSalesUnitDataImportPlugin(),
56
                new ProductMeasurementSalesUnitStoreDataImportPlugin(),
57
            ],
58
        );
59
60
        if (!static::$neededDataAdded) {
61
            $idProductAbstract = $this->getProductFacade()->findProductAbstractIdBySku('testing-sku-197888');
62
            if (!$idProductAbstract) {
63
                $idProductAbstract = ($this->tester->haveProductAbstract(['sku' => 'testing-sku-197888']))
0 ignored issues
show
The assignment to $idProductAbstract is dead and can be removed.
Loading history...
64
                    ->getIdProductAbstract();
65
            }
66
            static::$neededDataAdded = true;
67
        }
68
    }
69
70
    /**
71
     * @return void
72
     */
73
    public function testImportImportsData(): void
74
    {
75
        $this->tester->ensureMeasurementSalesUnitStoreIsEmpty();
76
        $this->tester->ensureMeasurementSalesUnitIsEmpty();
77
        $this->tester->ensureMeasurementBaseUnitIsEmpty();
78
79
        $dataDir = codecept_data_dir();
80
        $this->tester->importMeasurementUnitData($dataDir);
81
        $dataImporterReportTransfer = $this->tester->importMeasurementBaseUnitData($dataDir);
82
83
        $this->assertInstanceOf(DataImporterReportTransfer::class, $dataImporterReportTransfer);
84
85
        $this->tester->assertMeasurementBaseUnitContainsData();
86
    }
87
88
    /**
89
     * @return void
90
     */
91
    public function testGetImportTypeReturnsTypeOfImporter(): void
92
    {
93
        $productMeasurementBaseUnitDataImportPlugin = new ProductMeasurementBaseUnitDataImportPlugin();
94
        $this->assertSame(
95
            ProductMeasurementUnitDataImportConfig::IMPORT_TYPE_PRODUCT_MEASUREMENT_BASE_UNIT,
96
            $productMeasurementBaseUnitDataImportPlugin->getImportType(),
97
        );
98
    }
99
100
    /**
101
     * @return \Spryker\Zed\Product\Business\ProductFacadeInterface
102
     */
103
    protected function getProductFacade(): ProductFacadeInterface
104
    {
105
        return $this->tester->getLocator()->product()->facade();
106
    }
107
}
108