123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\Integration\Model;
- /**
- * Test class for \Magento\Integration\Model\ConfigBasedIntegrationManager.php.
- */
- class ConfigBasedIntegrationManagerTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $consolidatedMock;
- /**
- * @var \Magento\Integration\Model\ConfigBasedIntegrationManager
- */
- protected $integrationManager;
- /**
- * @var \Magento\Integration\Api\IntegrationServiceInterface
- */
- protected $integrationService;
- /**
- * @var \Magento\TestFramework\ObjectManager
- */
- protected $objectManager;
- /**
- * @inheritdoc
- */
- protected function setUp()
- {
- parent::setUp();
- $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
- $this->consolidatedMock = $this->createMock(\Magento\Integration\Model\ConsolidatedConfig::class);
- $this->objectManager->addSharedInstance(
- $this->consolidatedMock,
- \Magento\Integration\Model\ConsolidatedConfig::class
- );
- $this->integrationManager = $this->objectManager->create(
- \Magento\Integration\Model\ConfigBasedIntegrationManager::class,
- []
- );
- $this->integrationService = $this->objectManager->create(
- \Magento\Integration\Api\IntegrationServiceInterface::class,
- []
- );
- }
- /**
- * @inheritdoc
- */
- protected function tearDown()
- {
- $this->objectManager->removeSharedInstance(\Magento\Integration\Model\ConsolidatedConfig::class);
- parent::tearDown();
- }
- /**
- * @magentoDbIsolation enabled
- */
- public function testProcessConfigBasedIntegrations()
- {
- $newIntegrations = require __DIR__ . '/Config/Consolidated/_files/integration.php';
- $this->consolidatedMock
- ->expects($this->any())
- ->method('getIntegrations')
- ->willReturn($newIntegrations);
- // Check that the integrations do not exist already
- foreach ($newIntegrations as $integrationName => $integrationData) {
- $integration = $this->integrationService->findByName($integrationName);
- $this->assertEquals(null, $integration->getId(), 'Integration already exists');
- }
- // Create new integrations
- $this->assertEquals(
- $newIntegrations,
- $this->integrationManager->processConfigBasedIntegrations($newIntegrations),
- 'Error processing config based integrations.'
- );
- $createdIntegrations = [];
- // Check that the integrations are new with "inactive" status
- foreach ($newIntegrations as $integrationName => $integrationData) {
- $integration = $this->integrationService->findByName($integrationName);
- $this->assertNotEmpty($integration->getId(), 'Integration was not created');
- $this->assertEquals(
- $integration::STATUS_INACTIVE,
- $integration->getStatus(),
- 'Integration is not created with "inactive" status'
- );
- $createdIntegrations[$integrationName] = $integration;
- }
- // Rerun integration creation with the same data (data has not changed)
- $this->assertEquals(
- $newIntegrations,
- $this->integrationManager->processConfigBasedIntegrations($newIntegrations),
- 'Error processing config based integrations.'
- );
- // Check that the integrations are not recreated when data has not actually changed
- foreach ($newIntegrations as $integrationName => $integrationData) {
- $integration = $this->integrationService->findByName($integrationName);
- $this->assertEquals(
- $createdIntegrations[$integrationName]->getId(),
- $integration->getId(),
- 'Integration ID has changed'
- );
- $this->assertEquals(
- $createdIntegrations[$integrationName]->getStatus(),
- $integration->getStatus(),
- 'Integration status has changed'
- );
- }
- }
- }
|