Issues (3641)

InstallProductPackagingUnitTypesTest.php (1 issue)

Labels
Severity
1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerTest\Zed\ProductPackagingUnit\Business;
9
10
use Codeception\Test\Unit;
11
use Generated\Shared\DataBuilder\ProductPackagingUnitTypeBuilder;
12
use Spryker\Zed\ProductPackagingUnit\Business\ProductPackagingUnitBusinessFactory;
13
use Spryker\Zed\ProductPackagingUnit\Business\ProductPackagingUnitFacade;
14
use Spryker\Zed\ProductPackagingUnit\ProductPackagingUnitConfig;
15
use SprykerTest\Zed\ProductPackagingUnit\ProductPackagingUnitBusinessTester;
16
17
/**
18
 * Auto-generated group annotations
19
 *
20
 * @group SprykerTest
21
 * @group Zed
22
 * @group ProductPackagingUnit
23
 * @group Business
24
 * @group InstallProductPackagingUnitTypesTest
25
 * Add your own group annotations below this line
26
 */
27
class InstallProductPackagingUnitTypesTest extends Unit
28
{
29
    /**
30
     * @var \SprykerTest\Zed\ProductPackagingUnit\ProductPackagingUnitBusinessTester
31
     */
32
    protected ProductPackagingUnitBusinessTester $tester;
33
34
    /**
35
     * @return void
36
     */
37
    public function testInstallProductPackagingUnitTypesShouldPersistInfrastructuralPackagingUnitTypes(): void
38
    {
39
        // Arrange
40
        $productPackagingUnitTypeTransfer = (new ProductPackagingUnitTypeBuilder())->build();
41
        $config = $this->createProductPackagingUnitConfigMock();
42
        $config->method('getInfrastructuralPackagingUnitTypes')
0 ignored issues
show
The method method() does not exist on Spryker\Zed\ProductPacka...ductPackagingUnitConfig. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

42
        $config->/** @scrutinizer ignore-call */ 
43
                 method('getInfrastructuralPackagingUnitTypes')

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
43
            ->willReturn([$productPackagingUnitTypeTransfer]);
44
        $factory = $this->createProductPackagingUnitBusinessFactoryMock($config);
45
        $facade = $this->createProductPackagingUnitFacadeMock($factory);
46
47
        // Act
48
        $facade->installProductPackagingUnitTypes();
49
50
        // Assert
51
        $productPackagingUnitTypeTransfer = $this->tester->getFacade()->findProductPackagingUnitTypeByName($productPackagingUnitTypeTransfer);
52
        $this->assertNotNull($productPackagingUnitTypeTransfer->getIdProductPackagingUnitType());
53
    }
54
55
    /**
56
     * @return \PHPUnit\Framework\MockObject\MockObject|\Spryker\Zed\ProductPackagingUnit\ProductPackagingUnitConfig
57
     */
58
    protected function createProductPackagingUnitConfigMock(): ProductPackagingUnitConfig
59
    {
60
        return $this->getMockBuilder(ProductPackagingUnitConfig::class)
61
            ->getMock();
62
    }
63
64
    /**
65
     * @param \Spryker\Zed\ProductPackagingUnit\ProductPackagingUnitConfig|\PHPUnit\Framework\MockObject\MockObject|null $config
66
     *
67
     * @return \PHPUnit\Framework\MockObject\MockObject|\Spryker\Zed\ProductPackagingUnit\Business\ProductPackagingUnitBusinessFactory
68
     */
69
    protected function createProductPackagingUnitBusinessFactoryMock(?ProductPackagingUnitConfig $config = null): ProductPackagingUnitBusinessFactory
70
    {
71
        /** @var \PHPUnit\Framework\MockObject\MockObject|\Spryker\Zed\ProductPackagingUnit\Business\ProductPackagingUnitBusinessFactory $mockObject */
72
        $mockObject = $this->getMockBuilder(ProductPackagingUnitBusinessFactory::class)
73
            ->enableProxyingToOriginalMethods()
74
            ->getMock();
75
76
        if ($config !== null) {
77
            $mockObject->setConfig($config);
78
        }
79
80
        return $mockObject;
81
    }
82
83
    /**
84
     * @param \Spryker\Zed\ProductPackagingUnit\Business\ProductPackagingUnitBusinessFactory|\PHPUnit\Framework\MockObject\MockObject|null $factory
85
     *
86
     * @return \PHPUnit\Framework\MockObject\MockObject|\Spryker\Zed\ProductPackagingUnit\Business\ProductPackagingUnitFacade
87
     */
88
    protected function createProductPackagingUnitFacadeMock(?ProductPackagingUnitBusinessFactory $factory = null): ProductPackagingUnitFacade
89
    {
90
        /** @var \PHPUnit\Framework\MockObject\MockObject|\Spryker\Zed\ProductPackagingUnit\Business\ProductPackagingUnitFacade $mockObject */
91
        $mockObject = $this->getMockBuilder(ProductPackagingUnitFacade::class)
92
            ->enableProxyingToOriginalMethods()
93
            ->getMock();
94
95
        if ($factory !== null) {
96
            $mockObject->setFactory($factory);
97
        }
98
99
        return $mockObject;
100
    }
101
}
102