1
0
mirror of synced 2024-11-22 13:26:10 +03:00
bitrix-module/tests/helpers/Helpers.php

54 lines
1.3 KiB
PHP
Raw Normal View History

<?php
namespace Tests\Intaro\RetailCrm;
use Intaro\RetailCrm\Component\ConfigProvider;
class Helpers
{
/** @var \ReflectionClass */
private static $configReflection;
/**
* Sets property into config provider
*
* @param string $propertyName
* @param mixed $value
*
* @throws \ReflectionException
*/
public static function setConfigProperty(string $propertyName, $value)
{
static::regenerateConfigReflection();
$property = static::$configReflection->getProperty($propertyName);
$property->setAccessible(true);
$property->setValue($value);
}
/**
* Sets property into config provider
*
* @param string $propertyName
*
* @return mixed
* @throws \ReflectionException
*/
public static function getConfigProperty(string $propertyName): mixed
{
static::regenerateConfigReflection();
$property = static::$configReflection->getProperty($propertyName);
$property->setAccessible(true);
return $property->getValue();
}
/**
* Regenerates config reflection
*/
protected static function regenerateConfigReflection(): void
{
if (null === static::$configReflection) {
static::$configReflection = new \ReflectionClass(ConfigProvider::class);
}
}
}