1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
use Magento\Config\Model\Config;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Store\Model\ResourceModel\Store as StoreResourceModel;
use Magento\Store\Model\ResourceModel\Website as WebsiteResourceModel;
use Magento\Store\Model\ScopeInterface;
use Magento\Store\Model\Store;
use Magento\Store\Model\StoreManagerInterface;
use Magento\Store\Model\Website;
use Magento\TestFramework\Helper\Bootstrap;
$objectManager = Bootstrap::getObjectManager();
/** @var $website Website */
$website = $objectManager->create(Website::class);
$website->setData(['code' => 'test_website', 'name' => 'Test Website', 'default_group_id' => '1', 'is_default' => '0']);
$websiteResourceModel = $objectManager->create(WebsiteResourceModel::class);
$websiteResourceModel->save($website);
$websiteId = $website->getId();
$store = $objectManager->create(Store::class);
$groupId = Bootstrap::getObjectManager()->get(StoreManagerInterface::class)
->getWebsite()
->getDefaultGroupId();
$store->setCode('test_second_store')
->setWebsiteId($websiteId)
->setGroupId($groupId)
->setName('Test Second Store')
->setSortOrder(10)
->setIsActive(1);
$storeResourceModel = $objectManager->create(StoreResourceModel::class);
$storeResourceModel->save($store);
/* Refresh stores memory cache */
$objectManager->get(StoreManagerInterface::class)->reinitStores();
$processConfigData = function (Config $config, array $data) {
foreach ($data as $key => $value) {
$config->setDataByPath($key, $value);
$config->save();
}
};
// save signifyd configuration for the default scope
$configData = [
'fraud_protection/signifyd/active' => '1',
];
/** @var Config $defConfig */
$defConfig = $objectManager->create(Config::class);
$defConfig->setScope(ScopeConfigInterface::SCOPE_TYPE_DEFAULT);
$processConfigData($defConfig, $configData);
// save signifyd website config data
$websiteConfigData = [
'fraud_protection/signifyd/active' => '0',
];
/** @var Config $websiteConfig */
$websiteConfig = $objectManager->create(Config::class);
$websiteConfig->setScope(ScopeInterface::SCOPE_WEBSITES);
$websiteConfig->setWebsite($websiteId);
$processConfigData($websiteConfig, $websiteConfigData);