ltsecurityinc安防产品在线商城代码
This commit is contained in:
+126
@@ -0,0 +1,126 @@
|
||||
<?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(): void
|
||||
{
|
||||
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(): void
|
||||
{
|
||||
$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->assertNull($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'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user