Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
registerFeature example
public
static
function
registerFeatures
(
iterable
$registeredFeatures
)
: void
{
foreach
(
$registeredFeatures
as
$flag
=>
$data
)
{
// old format
if
(
\
is_string
(
$data
)
)
{
$flag
=
$data
;
$data
=
[
]
;
}
self::
registerFeature
(
$flag
,
$data
)
;
}
}
/** * @internal */
public
static
function
resetRegisteredFeatures
(
)
: void
{
self::
$registeredFeatures
=
[
]
;
}
$this
->
setUpFixtures
(
)
;
static
::
assertFalse
(
Feature::
has
(
'not-existing'
)
)
;
static
::
assertTrue
(
Feature::
has
(
'FEATURE_NEXT_102'
)
)
;
}
public
function
testMajorNaming
(
)
: void
{
$this
->
setUpFixtures
(
)
;
Feature::
registerFeature
(
'v6.1.0.0',
[
'default' => true, 'major' => true
]
)
;
static
::
assertTrue
(
Feature::
has
(
'v6.1.0.0'
)
)
;
static
::
assertTrue
(
Feature::
has
(
'V6.1.0.0'
)
)
;
static
::
assertTrue
(
Feature::
has
(
'v6_1_0_0'
)
)
;
static
::
assertTrue
(
Feature::
isActive
(
'v6.1.0.0'
)
)
;
static
::
assertTrue
(
Feature::
isActive
(
'v6.1.0.0'
)
)
;
Feature::
registerFeature
(
'paypal:v1.0.0.0',
[
'default' => true, 'major' => true
]
)
;
static
::
assertTrue
(
Feature::
has
(
'paypal:v1.0.0.0'
)
)
;
static
::
assertTrue
(
Feature::
has
(
'PAYPAL:V1.0.0.0'
)
)
;
/** * @var array<mixed> */
private
array
$featureConfigBackup
;
protected
function
setUp
(
)
: void
{
$this
->serverVarsBackup =
$_SERVER
;
$this
->envVarsBackup =
$_ENV
;
$this
->featureConfigBackup = Feature::
getRegisteredFeatures
(
)
;
Feature::
registerFeature
(
'FEATURE_NEXT_101'
)
;
Feature::
registerFeature
(
'FEATURE_NEXT_102'
)
;
}
protected
function
tearDown
(
)
: void
{
$_SERVER
=
$this
->serverVarsBackup;
$_ENV
=
$this
->envVarsBackup;
Feature::
resetRegisteredFeatures
(
)
;
Feature::
registerFeatures
(
$this
->featureConfigBackup
)
;
}
static
::
assertStringContainsString
(
$line
,
$fileContents
)
;
static
::
assertSame
(
1,
substr_count
(
$fileContents
,
$line
)
,
sprintf
(
"Multiple occurrences of %s in \n %s",
$line
,
$fileContents
)
)
;
}
}
}
public
function
testChangelogReleaseWithFlags
(
)
: void
{
self::
getContainer
(
)
->
get
(
ChangelogReleaseCreator::
class
)
->
setPlatformRoot
(
__DIR__ . '/_fixture/stage/command-valid-flag'
)
;
$cmd
= self::
getContainer
(
)
->
get
(
ChangelogReleaseCommand::
class
)
;
Feature::
registerFeature
(
'CHANGELOG-00001'
)
;
Feature::
registerFeature
(
'CHANGELOG-00002'
)
;
self::
getContainer
(
)
->
get
(
ChangelogReleaseCreator::
class
)
->
setActiveFlags
(
[
'CHANGELOG-00001' =>
[
'default' => true,
]
,
]
)
;
$cmd
->
run
(
new
StringInput
(
'12.13.14.15'
)
,
new
NullOutput
(
)
)
;
static
::
assertFileExists
(
__DIR__ . '/_fixture/stage/command-valid-flag/CHANGELOG.md'
)
;
/** * @covers ::fake */
public
function
testFakeRestoresFeatureConfigAndEnv
(
)
: void
{
$beforeFeatureFlagConfig
= Feature::
getRegisteredFeatures
(
)
;
$beforeServerEnv
=
$_SERVER
;
Feature::
fake
(
[
]
,
function
D
)
: void
{
$_SERVER
=
[
'asdf' => 'foo'
]
;
Feature::
resetRegisteredFeatures
(
)
;
Feature::
registerFeature
(
'foobar'
)
;
}
)
;
static
::
assertSame
(
$beforeFeatureFlagConfig
, Feature::
getRegisteredFeatures
(
)
)
;
static
::
assertSame
(
$beforeServerEnv
,
$_SERVER
)
;
}
/** * @covers ::fake */
public
function
testFakeSetsFeatures
(
)
: void
{
public
function
testFeatureConfigAndEnvIsRestored
(
)
: void
{
$beforeFeatureFlagConfig
= Feature::
getRegisteredFeatures
(
)
;
$beforeServerEnv
=
$_SERVER
;
$this
->extension->
executeBeforeTest
(
__METHOD__
)
;
$_SERVER
=
[
'asdf' => 'foo'
]
;
Feature::
resetRegisteredFeatures
(
)
;
Feature::
registerFeature
(
'foobar'
)
;
$this
->extension->
executeAfterTest
(
__METHOD__, 0.1
)
;
static
::
assertSame
(
$beforeFeatureFlagConfig
, Feature::
getRegisteredFeatures
(
)
)
;
static
::
assertSame
(
$beforeServerEnv
,
$_SERVER
)
;
}
/** * @DisabledFeatures(features={"v6.5.0.0"}) */
public
function
testSetsFeatures
(
)
: void
{