mirror of
https://github.com/silverstripe/silverstripe-behat-extension
synced 2024-10-22 15:05:32 +00:00
Merge pull request #281 from creative-commoners/pulls/6/replace-extension-subclasses
API Replace Extension subclasses
This commit is contained in:
commit
a84252623d
@ -23,7 +23,6 @@ use SilverStripe\Dev\FixtureBlueprint;
|
|||||||
use SilverStripe\Dev\FixtureFactory;
|
use SilverStripe\Dev\FixtureFactory;
|
||||||
use SilverStripe\Dev\YamlFixture;
|
use SilverStripe\Dev\YamlFixture;
|
||||||
use SilverStripe\ORM\Connect\TempDatabase;
|
use SilverStripe\ORM\Connect\TempDatabase;
|
||||||
use SilverStripe\ORM\DataExtension;
|
|
||||||
use SilverStripe\ORM\DataObject;
|
use SilverStripe\ORM\DataObject;
|
||||||
use SilverStripe\ORM\DB;
|
use SilverStripe\ORM\DB;
|
||||||
use SilverStripe\Security\Group;
|
use SilverStripe\Security\Group;
|
||||||
@ -692,6 +691,8 @@ class FixtureContext implements Context
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Adds an extension and runs dev/build?flush
|
||||||
|
*
|
||||||
* @param $extension
|
* @param $extension
|
||||||
* @param $class
|
* @param $class
|
||||||
*
|
*
|
||||||
@ -699,11 +700,31 @@ class FixtureContext implements Context
|
|||||||
*/
|
*/
|
||||||
public function iAddAnExtensionToTheClass($extension, $class)
|
public function iAddAnExtensionToTheClass($extension, $class)
|
||||||
{
|
{
|
||||||
|
$this->iAddAnExtensionToTheClassInner($extension, $class, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds an extension, but doesn't run dev/build afterwards. Will still run ?flush
|
||||||
|
*
|
||||||
|
* @param $extension
|
||||||
|
* @param $class
|
||||||
|
*
|
||||||
|
* @Given I add an extension :extension to the :class class without dev-build
|
||||||
|
*/
|
||||||
|
public function iAddAnExtensionToTheClassWithoutDevBuild(string $extension, string $class): void
|
||||||
|
{
|
||||||
|
$this->iAddAnExtensionToTheClassInner($extension, $class, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function iAddAnExtensionToTheClassInner(string $extension, string $class, bool $flushOnly)
|
||||||
|
{
|
||||||
|
|
||||||
// Validate the extension
|
// Validate the extension
|
||||||
Assert::assertTrue(
|
Assert::assertTrue(
|
||||||
class_exists($extension ?? '') && is_subclass_of($extension, Extension::class),
|
class_exists($extension ?? '') && is_subclass_of($extension, Extension::class),
|
||||||
'Given extension does not extend Extension'
|
'Given extension does not extend Extension'
|
||||||
);
|
);
|
||||||
|
/** @var Extension $extension */
|
||||||
|
|
||||||
// Add the extension to the CLI context
|
// Add the extension to the CLI context
|
||||||
/** @var Extensible $targetClass */
|
/** @var Extensible $targetClass */
|
||||||
@ -741,8 +762,8 @@ YAML;
|
|||||||
// Remember to cleanup...
|
// Remember to cleanup...
|
||||||
$this->activatedConfigFiles[] = $destPath;
|
$this->activatedConfigFiles[] = $destPath;
|
||||||
|
|
||||||
// Flush website. We'll need to dev/build too if it's a DataExtension
|
// Flush website. We'll need to dev/build too if it's a DataObject
|
||||||
if (is_subclass_of($extension, DataExtension::class)) {
|
if (is_subclass_of($targetClass, DataObject::class) && !$flushOnly) {
|
||||||
$this->getMainContext()->visit('/dev/build?flush');
|
$this->getMainContext()->visit('/dev/build?flush');
|
||||||
} else {
|
} else {
|
||||||
$this->getMainContext()->visit('/?flush');
|
$this->getMainContext()->visit('/?flush');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user