diff --git a/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/PersistedObjectHandlerTest.php b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/PersistedObjectHandlerTest.php
new file mode 100644
index 000000000..30dc3ec40
--- /dev/null
+++ b/dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/PersistedObjectHandlerTest.php
@@ -0,0 +1,377 @@
+ [
+ 'EntityOne' => [
+ 'type' => 'testType',
+ 'data' => [
+ 0 => [
+ 'key' => $dataKey,
+ 'value' => $dataValue
+ ]
+ ]
+ ]
+ ]
+ ];
+ $jsonResponse = "
+ {
+ \"" . strtolower($dataKey) . "\" : \"{$dataValue}\"
+ }
+ ";
+
+ // Mock Classes
+ $this->mockDataHandlerWithOutput($parserOutput);
+ $this->mockCurlHandler($jsonResponse);
+ $handler = PersistedObjectHandler::getInstance();
+
+ // Call method
+ $handler->createEntity(
+ $entityStepKey,
+ $scope,
+ $entityName
+ );
+
+ $persistedValue = $handler->retrieveEntityField($entityStepKey, $dataKey, $scope);
+ $this->assertEquals($dataValue, $persistedValue);
+ }
+
+ public function testDeleteSimpleEntity()
+ {
+ // Test Data and Variables
+ $entityName = "EntityOne";
+ $entityStepKey = "StepKey";
+ $dataKey = "testKey";
+ $dataValue = "testValue";
+ $scope = PersistedObjectHandler::TEST_SCOPE;
+ $parserOutput = [
+ 'entity' => [
+ 'EntityOne' => [
+ 'type' => 'testType',
+ 'data' => [
+ 0 => [
+ 'key' => $dataKey,
+ 'value' => $dataValue
+ ]
+ ]
+ ]
+ ]
+ ];
+ $jsonResponse = "
+ {
+ \"" . strtolower($dataKey) . "\" : \"{$dataValue}\"
+ }
+ ";
+
+ // Mock Classes
+ $this->mockDataHandlerWithOutput($parserOutput);
+ $this->mockCurlHandler($jsonResponse);
+ $handler = PersistedObjectHandler::getInstance();
+
+ // Call method
+ $handler->createEntity(
+ $entityStepKey,
+ $scope,
+ $entityName
+ );
+
+ $handler->deleteEntity(
+ $entityStepKey,
+ $scope
+ );
+
+ // Handler found and called Delete on existing entity
+ $this->addToAssertionCount(1);
+ }
+
+ public function testGetSimpleEntity()
+ {
+ // Test Data and Variables
+ $entityName = "EntityOne";
+ $entityStepKey = "StepKey";
+ $dataKey = "testKey";
+ $dataValue = "testValue";
+ $scope = PersistedObjectHandler::TEST_SCOPE;
+ $parserOutput = [
+ 'entity' => [
+ 'EntityOne' => [
+ 'type' => 'testType',
+ 'data' => [
+ 0 => [
+ 'key' => $dataKey,
+ 'value' => $dataValue
+ ]
+ ]
+ ]
+ ]
+ ];
+ $jsonResponse = "
+ {
+ \"" . strtolower($dataKey) . "\" : \"{$dataValue}\"
+ }
+ ";
+
+ // Mock Classes
+ $this->mockDataHandlerWithOutput($parserOutput);
+ $this->mockCurlHandler($jsonResponse);
+ $handler = PersistedObjectHandler::getInstance();
+
+ // Call method
+ $handler->getEntity(
+ $entityStepKey,
+ $scope,
+ $entityName
+ );
+
+ $persistedValue = $handler->retrieveEntityField($entityStepKey, $dataKey, $scope);
+ $this->assertEquals($dataValue, $persistedValue);
+ }
+
+ public function testUpdateSimpleEntity()
+ {
+ $this->markTestSkipped("Potential Bug in DataPersistenceHandler class");
+ // Test Data and Variables
+ $entityName = "EntityOne";
+ $entityStepKey = "StepKey";
+ $dataKey = "testKey";
+ $dataValue = "testValue";
+ $updateName = "EntityTwo";
+ $updateValue = "newValue";
+ $scope = PersistedObjectHandler::TEST_SCOPE;
+ $parserOutput = [
+ 'entity' => [
+ $entityName => [
+ 'type' => 'testType',
+ 'data' => [
+ 0 => [
+ 'key' => $dataKey,
+ 'value' => $dataValue
+ ]
+ ]
+ ],
+ $updateName => [
+ 'type' => 'testType',
+ 'data' => [
+ 0 => [
+ 'key' => $dataKey,
+ 'value' => $updateValue
+ ]
+ ]
+ ]
+ ]
+ ];
+ $jsonResponse = "
+ {
+ \"" . strtolower($dataKey) . "\" : \"{$dataValue}\"
+ }
+ ";
+ $updatedResponse = "
+ {
+ \"" . strtolower($dataKey) . "\" : \"{$updateValue}\"
+ }
+ ";
+
+ // Mock Classes
+ $this->mockDataHandlerWithOutput($parserOutput);
+ $this->mockCurlHandler($jsonResponse);
+ $handler = PersistedObjectHandler::getInstance();
+ $handler->createEntity(
+ $entityStepKey,
+ $scope,
+ $entityName
+ );
+ $this->mockCurlHandler($updatedResponse);
+
+ // Call method
+ $handler->updateEntity(
+ $entityStepKey,
+ $scope,
+ $updateName
+ );
+
+ $persistedValue = $handler->retrieveEntityField($entityStepKey, $dataKey, $scope);
+ $this->assertEquals($updateValue, $persistedValue);
+ }
+
+ public function testRetrieveEntityAcrossScopes()
+ {
+ // Test Data and Variables
+ $entityNameOne = "EntityOne";
+ $entityStepKeyOne = "StepKeyOne";
+ $dataKeyOne = "testKeyOne";
+ $dataValueOne = "testValueOne";
+ $entityNameTwo = "EntityTwo";
+ $entityStepKeyTwo = "StepKeyTwo";
+ $dataKeyTwo = "testKeyTwo";
+ $dataValueTwo = "testValueTwo";
+ $entityNameThree = "EntityThree";
+ $entityStepKeyThree = "StepKeyThree";
+ $dataKeyThree = "testKeyThree";
+ $dataValueThree = "testValueThree";
+
+ $parserOutputOne = [
+ 'entity' => [
+ $entityNameOne => [
+ 'type' => 'testType',
+ 'data' => [
+ 0 => [
+ 'key' => $dataKeyOne,
+ 'value' => $dataValueOne
+ ]
+ ]
+ ],
+ $entityNameTwo => [
+ 'type' => 'testType',
+ 'data' => [
+ 0 => [
+ 'key' => $dataKeyTwo,
+ 'value' => $dataValueTwo
+ ]
+ ]
+ ],
+ $entityNameThree => [
+ 'type' => 'testType',
+ 'data' => [
+ 0 => [
+ 'key' => $dataKeyThree,
+ 'value' => $dataValueThree
+ ]
+ ]
+ ]
+ ]
+ ];
+ $jsonReponseOne = "
+ {
+ \"" . strtolower($dataKeyOne) . "\" : \"{$dataValueOne}\"
+ }
+ ";
+ $jsonReponseTwo = "
+ {
+ \"" . strtolower($dataKeyTwo) . "\" : \"{$dataValueTwo}\"
+ }
+ ";
+ $jsonReponseThree = "
+ {
+ \"" . strtolower($dataKeyThree) . "\" : \"{$dataValueThree}\"
+ }
+ ";
+
+ // Mock Classes and Create Entities
+ $handler = PersistedObjectHandler::getInstance();
+
+ $this->mockDataHandlerWithOutput($parserOutputOne);
+ $this->mockCurlHandler($jsonReponseOne);
+ $handler->createEntity(
+ $entityStepKeyOne,
+ PersistedObjectHandler::TEST_SCOPE,
+ $entityNameOne
+ );
+
+ $this->mockCurlHandler($jsonReponseTwo);
+ $handler->createEntity(
+ $entityStepKeyTwo,
+ PersistedObjectHandler::HOOK_SCOPE,
+ $entityNameTwo
+ );
+
+ $this->mockCurlHandler($jsonReponseThree);
+ $handler->createEntity(
+ $entityStepKeyThree,
+ PersistedObjectHandler::SUITE_SCOPE,
+ $entityNameThree
+ );
+
+ // Call method
+ $retrievedFromTest = $handler->retrieveEntityField(
+ $entityStepKeyOne,
+ $dataKeyOne,
+ PersistedObjectHandler::HOOK_SCOPE
+ );
+ $retrievedFromHook = $handler->retrieveEntityField(
+ $entityStepKeyTwo,
+ $dataKeyTwo,
+ PersistedObjectHandler::SUITE_SCOPE
+ );
+ $retrievedFromSuite = $handler->retrieveEntityField(
+ $entityStepKeyThree,
+ $dataKeyThree,
+ PersistedObjectHandler::TEST_SCOPE
+ );
+
+ $this->assertEquals($dataValueOne, $retrievedFromTest);
+ $this->assertEquals($dataValueTwo, $retrievedFromHook);
+ $this->assertEquals($dataValueThree, $retrievedFromSuite);
+ }
+
+ /**
+ * Mocks DataObjectHandler to use given output to create
+ * @param $parserOutput
+ * @throws \Exception
+ */
+ public function mockDataHandlerWithOutput($parserOutput)
+ {
+ // Clear DataObjectHandler singleton if already set
+ $property = new \ReflectionProperty(DataObjectHandler::class, "INSTANCE");
+ $property->setAccessible(true);
+ $property->setValue(null);
+
+ $mockDataProfileSchemaParser = AspectMock::double(DataProfileSchemaParser::class, [
+ 'readDataProfiles' => $parserOutput
+ ])->make();
+
+ $mockObjectManager = AspectMock::double(ObjectManager::class, [
+ 'create' => $mockDataProfileSchemaParser
+ ])->make();
+
+ AspectMock::double(ObjectManagerFactory::class, [
+ 'getObjectManager' => $mockObjectManager
+ ]);
+ }
+
+ public function mockCurlHandler($response)
+ {
+ AspectMock::double(CurlHandler::class, [
+ "__construct" => null,
+ "executeRequest" => $response,
+ "getRequestDataArray" => [],
+ "isContentTypeJson" => true
+ ]);
+ }
+
+ public function tearDown()
+ {
+ // Clear out Singleton between tests
+ $property = new \ReflectionProperty(PersistedObjectHandler::class, "INSTANCE");
+ $property->setAccessible(true);
+ $property->setValue(null);
+
+ parent::tearDown(); // TODO: Change the autogenerated stub
+ }
+}
diff --git a/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt b/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt
index 60b645cfa..8d33003af 100644
--- a/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt
+++ b/dev/tests/verification/Resources/ActionGroupContainsStepKeyInArgText.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt b/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt
index ddee76f82..2c2536136 100644
--- a/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt
+++ b/dev/tests/verification/Resources/ActionGroupMergedViaInsertAfter.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt b/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt
index 4121a6d48..110ce3059 100644
--- a/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt
+++ b/dev/tests/verification/Resources/ActionGroupMergedViaInsertBefore.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupSkipReadiness.txt b/dev/tests/verification/Resources/ActionGroupSkipReadiness.txt
index 073211992..b787f9116 100644
--- a/dev/tests/verification/Resources/ActionGroupSkipReadiness.txt
+++ b/dev/tests/verification/Resources/ActionGroupSkipReadiness.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupToExtend.txt b/dev/tests/verification/Resources/ActionGroupToExtend.txt
index fb8a9fd60..7c7e666cd 100644
--- a/dev/tests/verification/Resources/ActionGroupToExtend.txt
+++ b/dev/tests/verification/Resources/ActionGroupToExtend.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt b/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt
index 41953aa3f..f0d14dbd9 100644
--- a/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt
+++ b/dev/tests/verification/Resources/ActionGroupUsingCreateData.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -20,16 +18,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class ActionGroupUsingCreateDataCest
{
- /**
- * @var DataPersistenceHandler $createCategoryKey1;
- */
- protected $createCategoryKey1;
-
- /**
- * @var DataPersistenceHandler $createConfigProductKey1;
- */
- protected $createConfigProductKey1;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -37,13 +25,21 @@ class ActionGroupUsingCreateDataCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createCategoryKey1");
- $ApiCategory = DataObjectHandler::getInstance()->getObject("ApiCategory");
- $this->createCategoryKey1 = new DataPersistenceHandler($ApiCategory, []);
- $this->createCategoryKey1->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createCategoryKey1",
+ "hook",
+ "ApiCategory",
+ [],
+ null
+ );
$I->amGoingTo("create entity that has the stepKey: createConfigProductKey1");
- $ApiConfigurableProduct = DataObjectHandler::getInstance()->getObject("ApiConfigurableProduct");
- $this->createConfigProductKey1 = new DataPersistenceHandler($ApiConfigurableProduct, [$this->createCategoryKey1]);
- $this->createConfigProductKey1->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createConfigProductKey1",
+ "hook",
+ "ApiConfigurableProduct",
+ ["createCategoryKey1"],
+ null
+ );
}
/**
diff --git a/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt b/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt
index 674de1afc..2d435b051 100644
--- a/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupUsingNestedArgument.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt b/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt
index 6815d318b..3bc708a1a 100644
--- a/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -21,11 +19,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class ActionGroupWithDataOverrideTestCest
{
- /**
- * @var DataPersistenceHandler $createPersonParam;
- */
- protected $createPersonParam;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -33,9 +26,13 @@ class ActionGroupWithDataOverrideTestCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createPersonParam->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createPersonParam",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
$I->fillField("#foo", "myData1");
$I->fillField("#bar", "myData2");
}
diff --git a/dev/tests/verification/Resources/ActionGroupWithDataTest.txt b/dev/tests/verification/Resources/ActionGroupWithDataTest.txt
index e4b79cf73..e79534bad 100644
--- a/dev/tests/verification/Resources/ActionGroupWithDataTest.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithDataTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -21,11 +19,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class ActionGroupWithDataTestCest
{
- /**
- * @var DataPersistenceHandler $createPersonParam;
- */
- protected $createPersonParam;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -33,9 +26,13 @@ class ActionGroupWithDataTestCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createPersonParam->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createPersonParam",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
$I->fillField("#foo", "myData1");
$I->fillField("#bar", "myData2");
}
diff --git a/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt b/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt
index 79c95b0df..115ed73f3 100644
--- a/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithDefaultArgumentAndStringSelectorParam.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt
index 620bbf5f5..495af8666 100644
--- a/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithMultipleParameterSelectorsFromDefaultArgument.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt b/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt
index b0f709ac9..ed8323423 100644
--- a/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithNoArguments.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt b/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt
index a5119c368..ed02790e5 100644
--- a/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -21,11 +19,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class ActionGroupWithNoDefaultTestCest
{
- /**
- * @var DataPersistenceHandler $createPersonParam;
- */
- protected $createPersonParam;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -33,9 +26,13 @@ class ActionGroupWithNoDefaultTestCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createPersonParam->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createPersonParam",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
$I->fillField("#foo", "myData1");
$I->fillField("#bar", "myData2");
}
diff --git a/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt b/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt
index 33d3d3d13..fd5e72c3f 100644
--- a/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithPassedArgumentAndStringSelectorParam.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt b/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt
index 133553573..5ed6eb7f7 100644
--- a/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithPersistedData.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -21,11 +19,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class ActionGroupWithPersistedDataCest
{
- /**
- * @var DataPersistenceHandler $createPersonParam;
- */
- protected $createPersonParam;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -33,9 +26,13 @@ class ActionGroupWithPersistedDataCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createPersonParam->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createPersonParam",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
$I->fillField("#foo", "myData1");
$I->fillField("#bar", "myData2");
}
@@ -71,13 +68,17 @@ class ActionGroupWithPersistedDataCest
public function ActionGroupWithPersistedData(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createPerson");
- $DefaultPerson = DataObjectHandler::getInstance()->getObject("DefaultPerson");
- $createPerson = new DataPersistenceHandler($DefaultPerson, []);
- $createPerson->createEntity();
- $I->amOnPage("/" . $createPerson->getCreatedDataByName('firstname') . "/" . $createPerson->getCreatedDataByName('lastname') . ".html");
- $I->fillField("#foo", $createPerson->getCreatedDataByName('firstname'));
- $I->fillField("#bar", $createPerson->getCreatedDataByName('lastname'));
- $I->searchAndMultiSelectOption("#foo", [$createPerson->getCreatedDataByName('firstname'), $createPerson->getCreatedDataByName('lastname')]);
- $I->see("#element ." . $createPerson->getCreatedDataByName('firstname'));
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createPerson",
+ "test",
+ "DefaultPerson",
+ [],
+ null
+ );
+ $I->amOnPage("/" . PersistedObjectHandler::getInstance()->retrieveEntityField('createPerson', 'firstname', 'test') . "/" . PersistedObjectHandler::getInstance()->retrieveEntityField('createPerson', 'lastname', 'test') . ".html");
+ $I->fillField("#foo", PersistedObjectHandler::getInstance()->retrieveEntityField('createPerson', 'firstname', 'test'));
+ $I->fillField("#bar", PersistedObjectHandler::getInstance()->retrieveEntityField('createPerson', 'lastname', 'test'));
+ $I->searchAndMultiSelectOption("#foo", [PersistedObjectHandler::getInstance()->retrieveEntityField('createPerson', 'firstname', 'test'), PersistedObjectHandler::getInstance()->retrieveEntityField('createPerson', 'lastname', 'test')]);
+ $I->see("#element ." . PersistedObjectHandler::getInstance()->retrieveEntityField('createPerson', 'firstname', 'test'));
}
}
diff --git a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt
index b5c871a0d..6ab432bf2 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromDefaultArgument.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt
index d3b910c0a..46ce55e62 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSimpleDataUsageFromPassedArgument.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -36,10 +34,10 @@ class ActionGroupWithSimpleDataUsageFromPassedArgumentCest
$I->see("1.5", "#element .1.5");
$I->see("true", "#element .true");
$I->see("simpleData.firstname", "#element .simpleData.firstname");
- $I->see($persisted->getCreatedDataByName('data'), "#element ." . $persisted->getCreatedDataByName('data'));
+ $I->see(PersistedObjectHandler::getInstance()->retrieveEntityField('persisted', 'data', 'test'), "#element ." . PersistedObjectHandler::getInstance()->retrieveEntityField('persisted', 'data', 'test'));
$I->see("John", "#element .John");
- $I->see($simpleData->getCreatedDataByName('firstname'), "#element ." . $simpleData->getCreatedDataByName('firstname'));
- $I->see($simpleData->getCreatedDataByName('firstname[0]'), "#element ." . $simpleData->getCreatedDataByName('firstname[0]'));
- $I->see($simpleData->getCreatedDataByName('firstname[data_index]'), "#element ." . $simpleData->getCreatedDataByName('firstname[data_index]'));
+ $I->see(PersistedObjectHandler::getInstance()->retrieveEntityField('simpleData', 'firstname', 'test'), "#element ." . PersistedObjectHandler::getInstance()->retrieveEntityField('simpleData', 'firstname', 'test'));
+ $I->see(PersistedObjectHandler::getInstance()->retrieveEntityField('simpleData', 'firstname[0]', 'test'), "#element ." . PersistedObjectHandler::getInstance()->retrieveEntityField('simpleData', 'firstname[0]', 'test'));
+ $I->see(PersistedObjectHandler::getInstance()->retrieveEntityField('simpleData', 'firstname[data_index]', 'test'), "#element ." . PersistedObjectHandler::getInstance()->retrieveEntityField('simpleData', 'firstname[data_index]', 'test'));
}
}
diff --git a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt
index 027370779..e4eabcb07 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromDefaultArgument.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt
index 7900385db..aa8b3d3d2 100644
--- a/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithSingleParameterSelectorFromPassedArgument.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt b/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt
index 5214b952d..542e20133 100644
--- a/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithStepKeyReferences.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -30,13 +28,19 @@ class ActionGroupWithStepKeyReferencesCest
public function ActionGroupWithStepKeyReferences(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createSimpleDataActionGroup");
- $simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
- $createSimpleDataActionGroup = new DataPersistenceHandler($simpleData, []);
- $createSimpleDataActionGroup->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createSimpleDataActionGroup",
+ "test",
+ "simpleData",
+ [],
+ null
+ );
$grabTextDataActionGroup = $I->grabTextFrom(".class");
- $I->fillField(".{$grabTextDataActionGroup}", $createSimpleDataActionGroup->getCreatedDataByName('field'));
+ $I->fillField(".{$grabTextDataActionGroup}", PersistedObjectHandler::getInstance()->retrieveEntityField('createSimpleDataActionGroup', 'field', 'test'));
+ $I->comment("Invocation stepKey will not be appended in non stepKey instances");
$I->click($action0);
$I->fillField($action1);
+ $I->comment("Invocation stepKey will be appended in non stepKey instances");
$action3ActionGroup = $I->executeJS($action3ActionGroup);
$action4ActionGroup = $I->magentoCLI($action4ActionGroup, "\"stuffHere\"");
$I->comment($action4ActionGroup);
@@ -45,18 +49,34 @@ class ActionGroupWithStepKeyReferencesCest
$date->setTimezone(new \DateTimeZone("America/Los_Angeles"));
$action5ActionGroup = $date->format("H:i:s");
$action6ActionGroup = $I->formatMoney($action6ActionGroup);
- $I->amGoingTo("delete entity that has the createDataKey: {$action7}");
- ${$action7}->deleteEntity();
+ $I->amGoingTo("delete entity that has the createDataKey: {$action7ActionGroupActionGroup}");
+ PersistedObjectHandler::getInstance()->deleteEntity(
+ "{$action7ActionGroupActionGroup}",
+ "test"
+ );
$I->amGoingTo("get entity that has the stepKey: action8ActionGroup");
- ${$action8} = DataObjectHandler::getInstance()->getObject("{$action8}");
- $action8ActionGroup = new DataPersistenceHandler(${$action8});
- $action8ActionGroup->getEntity(null);
+ PersistedObjectHandler::getInstance()->getEntity(
+ "action8ActionGroup",
+ "test",
+ "{$action8}",
+ [],
+ null
+ );
$I->amGoingTo("update entity that has the createdDataKey: 1");
- $1->updateEntity("{$action9}");
+ PersistedObjectHandler::getInstance()->updateEntity(
+ "1",
+ "test",
+ "{$action9}",
+ []
+ );
$I->amGoingTo("create entity that has the stepKey: action10ActionGroup");
- ${$action10} = DataObjectHandler::getInstance()->getObject("{$action10}");
- $action10ActionGroup = new DataPersistenceHandler(${$action10}, []);
- $action10ActionGroup->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "action10ActionGroup",
+ "test",
+ "{$action10}",
+ [],
+ null
+ );
$action11ActionGroup = $I->grabAttributeFrom($action11ActionGroup, "someInput");
$action12ActionGroup = $I->grabCookie($action12ActionGroup, ['domain' => 'www.google.com']);
$action13ActionGroup = $I->grabFromCurrentUrl($action13ActionGroup);
diff --git a/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt b/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt
index 4ec6520d9..acc274567 100644
--- a/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt
+++ b/dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -21,11 +19,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class ActionGroupWithTopLevelPersistedDataCest
{
- /**
- * @var DataPersistenceHandler $createPersonParam;
- */
- protected $createPersonParam;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -33,9 +26,13 @@ class ActionGroupWithTopLevelPersistedDataCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createPersonParam->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createPersonParam",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
$I->fillField("#foo", "myData1");
$I->fillField("#bar", "myData2");
}
@@ -70,10 +67,10 @@ class ActionGroupWithTopLevelPersistedDataCest
*/
public function ActionGroupWithTopLevelPersistedData(AcceptanceTester $I)
{
- $I->amOnPage("/" . $this->createPersonParam->getCreatedDataByName('firstname') . "/" . $this->createPersonParam->getCreatedDataByName('lastname') . ".html");
- $I->fillField("#foo", $this->createPersonParam->getCreatedDataByName('firstname'));
- $I->fillField("#bar", $this->createPersonParam->getCreatedDataByName('lastname'));
- $I->searchAndMultiSelectOption("#foo", [$this->createPersonParam->getCreatedDataByName('firstname'), $this->createPersonParam->getCreatedDataByName('lastname')]);
- $I->see("#element ." . $this->createPersonParam->getCreatedDataByName('firstname'));
+ $I->amOnPage("/" . PersistedObjectHandler::getInstance()->retrieveEntityField('createPersonParam', 'firstname', 'test') . "/" . PersistedObjectHandler::getInstance()->retrieveEntityField('createPersonParam', 'lastname', 'test') . ".html");
+ $I->fillField("#foo", PersistedObjectHandler::getInstance()->retrieveEntityField('createPersonParam', 'firstname', 'test'));
+ $I->fillField("#bar", PersistedObjectHandler::getInstance()->retrieveEntityField('createPersonParam', 'lastname', 'test'));
+ $I->searchAndMultiSelectOption("#foo", [PersistedObjectHandler::getInstance()->retrieveEntityField('createPersonParam', 'firstname', 'test'), PersistedObjectHandler::getInstance()->retrieveEntityField('createPersonParam', 'lastname', 'test')]);
+ $I->see("#element ." . PersistedObjectHandler::getInstance()->retrieveEntityField('createPersonParam', 'firstname', 'test'));
}
}
diff --git a/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt b/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt
index a97fd116e..80a1d3c80 100644
--- a/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt
+++ b/dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -21,11 +19,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class ArgumentWithSameNameAsElementCest
{
- /**
- * @var DataPersistenceHandler $createPersonParam;
- */
- protected $createPersonParam;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -33,9 +26,13 @@ class ArgumentWithSameNameAsElementCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createPersonParam->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createPersonParam",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
$I->fillField("#foo", "myData1");
$I->fillField("#bar", "myData2");
}
diff --git a/dev/tests/verification/Resources/AssertTest.txt b/dev/tests/verification/Resources/AssertTest.txt
index beb78eed1..adc764975 100644
--- a/dev/tests/verification/Resources/AssertTest.txt
+++ b/dev/tests/verification/Resources/AssertTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -20,11 +18,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class AssertTestCest
{
- /**
- * @var DataPersistenceHandler $createData1;
- */
- protected $createData1;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -32,9 +25,13 @@ class AssertTestCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createData1");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createData1 = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createData1->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createData1",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
}
/**
@@ -47,9 +44,13 @@ class AssertTestCest
public function AssertTest(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createData2");
- $UniquePerson = DataObjectHandler::getInstance()->getObject("UniquePerson");
- $createData2 = new DataPersistenceHandler($UniquePerson, []);
- $createData2->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createData2",
+ "test",
+ "UniquePerson",
+ [],
+ null
+ );
$grabTextFrom1 = $I->grabTextFrom(".copyright>span");
$I->assertArrayIsSorted(["1", "2", "3", "4", "5"], "asc");
$I->comment("asserts without variable replacement");
@@ -130,14 +131,14 @@ class AssertTestCest
$I->assertNull($text, "pass");
$I->expectException(new MyException('exception msg'), function() {$this->doSomethingBad();});
$I->comment("string type that use created data");
- $I->assertStringStartsWith("D", $this->createData1->getCreatedDataByName('lastname') . ", " . $this->createData1->getCreatedDataByName('firstname'), "fail");
- $I->assertStringStartsNotWith("W", $createData2->getCreatedDataByName('firstname') . ", " . $createData2->getCreatedDataByName('lastname'), "pass");
- $I->assertEquals($this->createData1->getCreatedDataByName('lastname'), $this->createData1->getCreatedDataByName('lastname'), "pass");
+ $I->assertStringStartsWith("D", PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'lastname', 'test') . ", " . PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'firstname', 'test'), "fail");
+ $I->assertStringStartsNotWith("W", PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'firstname', 'test') . ", " . PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'lastname', 'test'), "pass");
+ $I->assertEquals(PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'lastname', 'test'), PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'lastname', 'test'), "pass");
$I->comment("array type that use created data");
- $I->assertArraySubset([$this->createData1->getCreatedDataByName('lastname'), $this->createData1->getCreatedDataByName('firstname')], [$this->createData1->getCreatedDataByName('lastname'), $this->createData1->getCreatedDataByName('firstname'), "1"], "pass");
- $I->assertArraySubset([$createData2->getCreatedDataByName('firstname'), $createData2->getCreatedDataByName('lastname')], [$createData2->getCreatedDataByName('firstname'), $createData2->getCreatedDataByName('lastname'), "1"], "pass");
- $I->assertArrayHasKey("lastname", ['lastname' => $this->createData1->getCreatedDataByName('lastname'), 'firstname' => $this->createData1->getCreatedDataByName('firstname')], "pass");
- $I->assertArrayHasKey("lastname", ['lastname' => $createData2->getCreatedDataByName('lastname'), 'firstname' => $createData2->getCreatedDataByName('firstname')], "pass");
+ $I->assertArraySubset([PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'lastname', 'test'), PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'firstname', 'test')], [PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'lastname', 'test'), PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'firstname', 'test'), "1"], "pass");
+ $I->assertArraySubset([PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'firstname', 'test'), PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'lastname', 'test')], [PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'firstname', 'test'), PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'lastname', 'test'), "1"], "pass");
+ $I->assertArrayHasKey("lastname", ['lastname' => PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'lastname', 'test'), 'firstname' => PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'firstname', 'test')], "pass");
+ $I->assertArrayHasKey("lastname", ['lastname' => PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'lastname', 'test'), 'firstname' => PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'firstname', 'test')], "pass");
$I->assertInstanceOf(User::class, $text, "pass");
$I->assertNotInstanceOf(User::class, 21, "pass");
$I->assertFileExists($text, "pass");
@@ -146,16 +147,16 @@ class AssertTestCest
$I->assertNull($text, "pass");
$I->expectException(new MyException('exception msg'), function() {$this->doSomethingBad();});
$I->fail("fail");
- $I->fail($createData2->getCreatedDataByName('firstname') . " " . $createData2->getCreatedDataByName('lastname'));
- $I->fail($this->createData1->getCreatedDataByName('firstname') . " " . $this->createData1->getCreatedDataByName('lastname'));
+ $I->fail(PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'firstname', 'test') . " " . PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'lastname', 'test'));
+ $I->fail(PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'firstname', 'test') . " " . PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'lastname', 'test'));
$I->assertElementContainsAttribute("#username", "class", "admin__control-text");
$I->assertElementContainsAttribute("#username", "name", "login[username]");
$I->assertElementContainsAttribute("#username", "autofocus", "true");
$I->assertElementContainsAttribute("#username", "data-validate", "{required:true}");
$I->assertElementContainsAttribute(".admin__menu-overlay", "style", "display: none;");
$I->assertElementContainsAttribute(".admin__menu-overlay", "border", "0");
- $I->assertElementContainsAttribute("#username", "value", $createData2->getCreatedDataByName('firstname'));
- $I->assertElementContainsAttribute("#username", "value", $this->createData1->getCreatedDataByName('firstname'));
+ $I->assertElementContainsAttribute("#username", "value", PersistedObjectHandler::getInstance()->retrieveEntityField('createData2', 'firstname', 'test'));
+ $I->assertElementContainsAttribute("#username", "value", PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'firstname', 'test'));
$I->assertEquals("John", "Doe", "pass");
}
}
diff --git a/dev/tests/verification/Resources/BasicActionGroupTest.txt b/dev/tests/verification/Resources/BasicActionGroupTest.txt
index b8b491ef4..d6d953a88 100644
--- a/dev/tests/verification/Resources/BasicActionGroupTest.txt
+++ b/dev/tests/verification/Resources/BasicActionGroupTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -21,11 +19,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class BasicActionGroupTestCest
{
- /**
- * @var DataPersistenceHandler $createPersonParam;
- */
- protected $createPersonParam;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -33,9 +26,13 @@ class BasicActionGroupTestCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createPersonParam->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createPersonParam",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
$I->fillField("#foo", "myData1");
$I->fillField("#bar", "myData2");
}
diff --git a/dev/tests/verification/Resources/BasicFunctionalTest.txt b/dev/tests/verification/Resources/BasicFunctionalTest.txt
index 21aa6d3a2..91a567ebd 100644
--- a/dev/tests/verification/Resources/BasicFunctionalTest.txt
+++ b/dev/tests/verification/Resources/BasicFunctionalTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -80,7 +78,10 @@ class BasicFunctionalTestCest
$I->closeTab();
$I->conditionalClick(".functionalTestSelector", ".functionalDependentTestSelector", true);
$I->amGoingTo("delete entity that has the createDataKey: createKey1");
- $createKey1->deleteEntity();
+ PersistedObjectHandler::getInstance()->deleteEntity(
+ "createKey1",
+ "test"
+ );
$I->deleteEntityByUrl("/V1/categories{$grabbedData}");
$I->dontSee("someInput", ".functionalTestSelector");
$I->dontSeeCheckboxIsChecked(".functionalTestSelector");
diff --git a/dev/tests/verification/Resources/BasicMergeTest.txt b/dev/tests/verification/Resources/BasicMergeTest.txt
index 280630b6f..c77017cbc 100644
--- a/dev/tests/verification/Resources/BasicMergeTest.txt
+++ b/dev/tests/verification/Resources/BasicMergeTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/CharacterReplacementTest.txt b/dev/tests/verification/Resources/CharacterReplacementTest.txt
index 844b08974..c1fddf69b 100644
--- a/dev/tests/verification/Resources/CharacterReplacementTest.txt
+++ b/dev/tests/verification/Resources/CharacterReplacementTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt b/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt
index d8417f5cb..de328c399 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestAddHooks.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestMerging.txt b/dev/tests/verification/Resources/ChildExtendedTestMerging.txt
index caf382718..388d584e6 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestMerging.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestMerging.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt b/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt
index 3ab774b3d..5efddc379 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestNoParent.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt b/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt
index 4fefcd657..9c64b2f7b 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestRemoveAction.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt b/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt
index 5f135c6d7..96d39be2d 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestRemoveHookAction.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestReplace.txt b/dev/tests/verification/Resources/ChildExtendedTestReplace.txt
index 650544131..3e3b6ee58 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestReplace.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestReplace.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt b/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt
index 9c05eb88e..bf4d31020 100644
--- a/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt
+++ b/dev/tests/verification/Resources/ChildExtendedTestReplaceHook.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/DataActionsTest.txt b/dev/tests/verification/Resources/DataActionsTest.txt
new file mode 100644
index 000000000..cac3b72cd
--- /dev/null
+++ b/dev/tests/verification/Resources/DataActionsTest.txt
@@ -0,0 +1,91 @@
+amGoingTo("create entity that has the stepKey: createdInBefore");
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createdInBefore",
+ "hook",
+ "entity",
+ [],
+ null
+ );
+ $I->amGoingTo("update entity that has the createdDataKey: createdInBefore");
+ PersistedObjectHandler::getInstance()->updateEntity(
+ "createdInBefore",
+ "hook",
+ "entity",
+ []
+ );
+ $I->amGoingTo("delete entity that has the createDataKey: createdInBefore");
+ PersistedObjectHandler::getInstance()->deleteEntity(
+ "createdInBefore",
+ "hook"
+ );
+ }
+
+ /**
+ * @Features({"TestModule"})
+ * @Parameter(name = "AcceptanceTester", value="$I")
+ * @param AcceptanceTester $I
+ * @return void
+ * @throws \Exception
+ */
+ public function DataActionsTest(AcceptanceTester $I)
+ {
+ $I->amGoingTo("create entity that has the stepKey: createdInTest");
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createdInTest",
+ "test",
+ "entity",
+ [],
+ null
+ );
+ $I->amGoingTo("update entity that has the createdDataKey: createdInTest");
+ PersistedObjectHandler::getInstance()->updateEntity(
+ "createdInTest",
+ "test",
+ "entity",
+ []
+ );
+ $I->amGoingTo("delete entity that has the createDataKey: createdInTest");
+ PersistedObjectHandler::getInstance()->deleteEntity(
+ "createdInTest",
+ "test"
+ );
+ $I->amGoingTo("update entity that has the createdDataKey: createdInBefore");
+ PersistedObjectHandler::getInstance()->updateEntity(
+ "createdInBefore",
+ "test",
+ "entity",
+ []
+ );
+ $I->amGoingTo("delete entity that has the createDataKey: createdInBefore");
+ PersistedObjectHandler::getInstance()->deleteEntity(
+ "createdInBefore",
+ "test"
+ );
+ }
+}
diff --git a/dev/tests/verification/Resources/DataReplacementTest.txt b/dev/tests/verification/Resources/DataReplacementTest.txt
index 8a95eb1e8..60dd2faae 100644
--- a/dev/tests/verification/Resources/DataReplacementTest.txt
+++ b/dev/tests/verification/Resources/DataReplacementTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt b/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt
index 371eb3d0d..6dd8ef3db 100644
--- a/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt
+++ b/dev/tests/verification/Resources/ExecuteJsEscapingTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -31,8 +29,8 @@ class ExecuteJsEscapingTestCest
{
$javaVariableEscape = $I->executeJS("return \$javascriptVariable");
$mftfVariableNotEscaped = $I->executeJS("return {$doNotEscape}");
- $persistedDataNotEscaped = $I->executeJS("return " . $persisted->getCreatedDataByName('data'));
- $hookPersistedDataNotEscaped = $I->executeJS("return " . $this->persisted->getCreatedDataByName('data'));
- $addNewAttributeForRule = $I->executeJS("document.querySelector('entity option[value=" . $this->productAttribute->getCreatedDataByName('attribute_code') . "]').setAttribute('selected', 'selected')");
+ $persistedDataNotEscaped = $I->executeJS("return " . PersistedObjectHandler::getInstance()->retrieveEntityField('persisted', 'data', 'test'));
+ $hookPersistedDataNotEscaped = $I->executeJS("return " . PersistedObjectHandler::getInstance()->retrieveEntityField('persisted', 'data', 'test'));
+ $addNewAttributeForRule = $I->executeJS("document.querySelector('entity option[value=" . PersistedObjectHandler::getInstance()->retrieveEntityField('productAttribute', 'attribute_code', 'test') . "]').setAttribute('selected', 'selected')");
}
}
diff --git a/dev/tests/verification/Resources/ExtendParentDataTest.txt b/dev/tests/verification/Resources/ExtendParentDataTest.txt
index a681733f0..41bea9d6f 100644
--- a/dev/tests/verification/Resources/ExtendParentDataTest.txt
+++ b/dev/tests/verification/Resources/ExtendParentDataTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -30,9 +28,13 @@ class ExtendParentDataTestCest
public function ExtendParentDataTest(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: simpleDataKey");
- $extendParentData = DataObjectHandler::getInstance()->getObject("extendParentData");
- $simpleDataKey = new DataPersistenceHandler($extendParentData, []);
- $simpleDataKey->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "simpleDataKey",
+ "test",
+ "extendParentData",
+ [],
+ null
+ );
$I->searchAndMultiSelectOption("#selector", ["otherName"]);
$I->searchAndMultiSelectOption("#selector", ["extendName"]);
$I->searchAndMultiSelectOption("#selector", ["item"]);
diff --git a/dev/tests/verification/Resources/ExtendedActionGroup.txt b/dev/tests/verification/Resources/ExtendedActionGroup.txt
index 93acc8910..48fa542bc 100644
--- a/dev/tests/verification/Resources/ExtendedActionGroup.txt
+++ b/dev/tests/verification/Resources/ExtendedActionGroup.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ExtendedParameterArrayTest.txt b/dev/tests/verification/Resources/ExtendedParameterArrayTest.txt
index afdbdec3e..41bea9d6f 100644
--- a/dev/tests/verification/Resources/ExtendedParameterArrayTest.txt
+++ b/dev/tests/verification/Resources/ExtendedParameterArrayTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -18,7 +16,7 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
/**
*/
-class ExtendedParameterArrayTestCest
+class ExtendParentDataTestCest
{
/**
* @Features({"TestModule"})
@@ -27,13 +25,20 @@ class ExtendedParameterArrayTestCest
* @return void
* @throws \Exception
*/
- public function ExtendedParameterArrayTest(AcceptanceTester $I)
+ public function ExtendParentDataTest(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: simpleDataKey");
- $testExtendSimpleParamData = DataObjectHandler::getInstance()->getObject("testExtendSimpleParamData");
- $simpleDataKey = new DataPersistenceHandler($testExtendSimpleParamData, []);
- $simpleDataKey->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "simpleDataKey",
+ "test",
+ "extendParentData",
+ [],
+ null
+ );
$I->searchAndMultiSelectOption("#selector", ["otherName"]);
$I->searchAndMultiSelectOption("#selector", ["extendName"]);
+ $I->searchAndMultiSelectOption("#selector", ["item"]);
+ $I->searchAndMultiSelectOption("#selector", [msq("extendParentData") . "prename"]);
+ $I->searchAndMultiSelectOption("#selector", ["postnameExtend" . msq("extendParentData")]);
}
}
diff --git a/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt b/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt
index 2bfd08a91..936e78721 100644
--- a/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt
+++ b/dev/tests/verification/Resources/ExtendedRemoveActionGroup.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/ExtendingSkippedTest.txt b/dev/tests/verification/Resources/ExtendingSkippedTest.txt
index 35cd3a825..b1f6bf648 100644
--- a/dev/tests/verification/Resources/ExtendingSkippedTest.txt
+++ b/dev/tests/verification/Resources/ExtendingSkippedTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/HookActionsTest.txt b/dev/tests/verification/Resources/HookActionsTest.txt
index 76947ce61..70e4ece10 100644
--- a/dev/tests/verification/Resources/HookActionsTest.txt
+++ b/dev/tests/verification/Resources/HookActionsTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -20,16 +18,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class HookActionsTestCest
{
- /**
- * @var DataPersistenceHandler $sampleCreateBefore;
- */
- protected $sampleCreateBefore;
-
- /**
- * @var DataPersistenceHandler $sampleCreateForAfter;
- */
- protected $sampleCreateForAfter;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -37,22 +25,28 @@ class HookActionsTestCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: sampleCreateBefore");
- $sampleCreatedEntity = DataObjectHandler::getInstance()->getObject("sampleCreatedEntity");
- $this->sampleCreateBefore = new DataPersistenceHandler($sampleCreatedEntity, []);
- $this->sampleCreateBefore->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "sampleCreateBefore",
+ "hook",
+ "sampleCreatedEntity",
+ [],
+ null
+ );
$I->amGoingTo("delete entity that has the createDataKey: sampleCreateBefore");
- $this->sampleCreateBefore->deleteEntity();
+ PersistedObjectHandler::getInstance()->deleteEntity(
+ "sampleCreateBefore",
+ "hook"
+ );
$I->amGoingTo("create entity that has the stepKey: sampleCreateForAfter");
- $sampleCreatedEntity = DataObjectHandler::getInstance()->getObject("sampleCreatedEntity");
- $this->sampleCreateForAfter = new DataPersistenceHandler($sampleCreatedEntity, []);
- $this->sampleCreateForAfter->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "sampleCreateForAfter",
+ "hook",
+ "sampleCreatedEntity",
+ [],
+ null
+ );
}
- /**
- * @var DataPersistenceHandler $sampleCreateAfter;
- */
- protected $sampleCreateAfter;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -60,11 +54,18 @@ class HookActionsTestCest
public function _after(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: sampleCreateAfter");
- $sampleCreatedEntity = DataObjectHandler::getInstance()->getObject("sampleCreatedEntity");
- $this->sampleCreateAfter = new DataPersistenceHandler($sampleCreatedEntity, []);
- $this->sampleCreateAfter->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "sampleCreateAfter",
+ "hook",
+ "sampleCreatedEntity",
+ [],
+ null
+ );
$I->amGoingTo("delete entity that has the createDataKey: sampleCreateForAfter");
- $this->sampleCreateForAfter->deleteEntity();
+ PersistedObjectHandler::getInstance()->deleteEntity(
+ "sampleCreateForAfter",
+ "hook"
+ );
}
/**
diff --git a/dev/tests/verification/Resources/LocatorFunctionTest.txt b/dev/tests/verification/Resources/LocatorFunctionTest.txt
index b9423d1b5..bde511aac 100644
--- a/dev/tests/verification/Resources/LocatorFunctionTest.txt
+++ b/dev/tests/verification/Resources/LocatorFunctionTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -30,20 +28,24 @@ class LocatorFunctionTestCest
public function LocatorFunctionTest(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: data");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $data = new DataPersistenceHandler($ReplacementPerson, []);
- $data->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "data",
+ "test",
+ "ReplacementPerson",
+ [],
+ null
+ );
$I->click(Locator::contains("'label'", "'Name'"));
$I->click(Locator::contains("'label'", "'Name'"));
$I->click(Locator::find("'img'", ['title' => 'diagram']));
$I->click(Locator::contains("string", "'Name'"));
$I->click(Locator::contains("John", "'Name'"));
- $I->click(Locator::contains($data->getCreatedDataByName('key'), "'Name'"));
+ $I->click(Locator::contains(PersistedObjectHandler::getInstance()->retrieveEntityField('data', 'key', 'test'), "'Name'"));
$I->click(Locator::contains("string1", "string2"));
$I->click(Locator::contains("John", "Doe"));
- $I->click(Locator::contains($data->getCreatedDataByName('key1'), $data->getCreatedDataByName('key2')));
+ $I->click(Locator::contains(PersistedObjectHandler::getInstance()->retrieveEntityField('data', 'key1', 'test'), PersistedObjectHandler::getInstance()->retrieveEntityField('data', 'key2', 'test')));
$I->click(Locator::contains("string1", "John"));
- $I->click(Locator::contains("string1", $data->getCreatedDataByName('key1')));
- $I->click(Locator::contains("John", $data->getCreatedDataByName('key1')));
+ $I->click(Locator::contains("string1", PersistedObjectHandler::getInstance()->retrieveEntityField('data', 'key1', 'test')));
+ $I->click(Locator::contains("John", PersistedObjectHandler::getInstance()->retrieveEntityField('data', 'key1', 'test')));
}
}
diff --git a/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt b/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt
index ddfa5da12..5c5091566 100644
--- a/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt
+++ b/dev/tests/verification/Resources/MergeMassViaInsertAfter.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt b/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt
index 82e2c4d6d..94982ec21 100644
--- a/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt
+++ b/dev/tests/verification/Resources/MergeMassViaInsertBefore.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/MergeSkip.txt b/dev/tests/verification/Resources/MergeSkip.txt
index d6ecff5db..878fe6497 100644
--- a/dev/tests/verification/Resources/MergeSkip.txt
+++ b/dev/tests/verification/Resources/MergeSkip.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/MergedActionGroupTest.txt b/dev/tests/verification/Resources/MergedActionGroupTest.txt
index 7862b0036..2d1748f56 100644
--- a/dev/tests/verification/Resources/MergedActionGroupTest.txt
+++ b/dev/tests/verification/Resources/MergedActionGroupTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -21,11 +19,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class MergedActionGroupTestCest
{
- /**
- * @var DataPersistenceHandler $createPersonParam;
- */
- protected $createPersonParam;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -33,9 +26,13 @@ class MergedActionGroupTestCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createPersonParam->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createPersonParam",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
$I->fillField("#foo", "myData1");
$I->fillField("#bar", "myData2");
}
diff --git a/dev/tests/verification/Resources/MergedReferencesTest.txt b/dev/tests/verification/Resources/MergedReferencesTest.txt
index 39111ad40..932229df9 100644
--- a/dev/tests/verification/Resources/MergedReferencesTest.txt
+++ b/dev/tests/verification/Resources/MergedReferencesTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/MultipleActionGroupsTest.txt b/dev/tests/verification/Resources/MultipleActionGroupsTest.txt
index 1b5a74c94..5084692be 100644
--- a/dev/tests/verification/Resources/MultipleActionGroupsTest.txt
+++ b/dev/tests/verification/Resources/MultipleActionGroupsTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -21,11 +19,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class MultipleActionGroupsTestCest
{
- /**
- * @var DataPersistenceHandler $createPersonParam;
- */
- protected $createPersonParam;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -33,9 +26,13 @@ class MultipleActionGroupsTestCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createPersonParam->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createPersonParam",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
$I->fillField("#foo", "myData1");
$I->fillField("#bar", "myData2");
}
diff --git a/dev/tests/verification/Resources/PageReplacementTest.txt b/dev/tests/verification/Resources/PageReplacementTest.txt
index 1422a24ba..01ddedf78 100644
--- a/dev/tests/verification/Resources/PageReplacementTest.txt
+++ b/dev/tests/verification/Resources/PageReplacementTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -30,17 +28,21 @@ class PageReplacementTestCest
public function PageReplacementTest(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: datakey");
- $simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
- $datakey = new DataPersistenceHandler($simpleData, []);
- $datakey->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "datakey",
+ "test",
+ "simpleData",
+ [],
+ null
+ );
$I->amOnPage("/page.html");
$I->amOnPage("/StringLiteral/page.html");
$I->amOnPage("/John/page.html");
- $I->amOnPage("/" . $datakey->getCreatedDataByName('firstname') . "/page.html");
+ $I->amOnPage("/" . PersistedObjectHandler::getInstance()->retrieveEntityField('datakey', 'firstname', 'test') . "/page.html");
$I->amOnPage("/StringLiteral1/StringLiteral2.html");
$I->amOnPage("/John/StringLiteral2.html");
- $I->amOnPage("/John/" . $datakey->getCreatedDataByName('firstname') . ".html");
- $I->amOnPage("/" . $datakey->getCreatedDataByName('firstname') . "/StringLiteral2.html");
+ $I->amOnPage("/John/" . PersistedObjectHandler::getInstance()->retrieveEntityField('datakey', 'firstname', 'test') . ".html");
+ $I->amOnPage("/" . PersistedObjectHandler::getInstance()->retrieveEntityField('datakey', 'firstname', 'test') . "/StringLiteral2.html");
$I->amOnPage("/" . getenv("MAGENTO_BACKEND_NAME") . "/backend");
$I->amOnPage("/" . getenv("MAGENTO_BACKEND_NAME") . "/StringLiteral/page.html");
$I->amOnUrl("http://myFullUrl.com/");
diff --git a/dev/tests/verification/Resources/ParameterArrayTest.txt b/dev/tests/verification/Resources/ParameterArrayTest.txt
index 4b56eb15c..5564bddac 100644
--- a/dev/tests/verification/Resources/ParameterArrayTest.txt
+++ b/dev/tests/verification/Resources/ParameterArrayTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -30,15 +28,19 @@ class ParameterArrayTestCest
public function ParameterArrayTest(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: simpleDataKey");
- $simpleParamData = DataObjectHandler::getInstance()->getObject("simpleParamData");
- $simpleDataKey = new DataPersistenceHandler($simpleParamData, []);
- $simpleDataKey->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "simpleDataKey",
+ "test",
+ "simpleParamData",
+ [],
+ null
+ );
$I->searchAndMultiSelectOption("#selector", ["name"]);
$I->searchAndMultiSelectOption("#selector", [msq("simpleParamData") . "prename"]);
$I->searchAndMultiSelectOption("#selector", ["postname" . msq("simpleParamData")]);
- $I->searchAndMultiSelectOption("#selector", [$simpleDataKey->getCreatedDataByName('name')]);
- $I->searchAndMultiSelectOption("#selector", ["name", $simpleDataKey->getCreatedDataByName('name')]);
- $I->searchAndMultiSelectOption("#selector", ['someKey' => $simpleDataKey->getCreatedDataByName('name')]);
+ $I->searchAndMultiSelectOption("#selector", [PersistedObjectHandler::getInstance()->retrieveEntityField('simpleDataKey', 'name', 'test')]);
+ $I->searchAndMultiSelectOption("#selector", ["name", PersistedObjectHandler::getInstance()->retrieveEntityField('simpleDataKey', 'name', 'test')]);
+ $I->searchAndMultiSelectOption("#selector", ['someKey' => PersistedObjectHandler::getInstance()->retrieveEntityField('simpleDataKey', 'name', 'test')]);
$I->searchAndMultiSelectOption("#selector", ['someKey' => "name"]);
$I->searchAndMultiSelectOption("#selector", ['someKey' => msq("simpleParamData") . "prename"]);
$I->searchAndMultiSelectOption("#selector", ['someKey' => "postname" . msq("simpleParamData")]);
@@ -47,7 +49,7 @@ class ParameterArrayTestCest
$I->unselectOption("#selector", ["name"]);
$I->unselectOption("#selector", [msq("simpleParamData") . "prename"]);
$I->unselectOption("#selector", ["postname" . msq("simpleParamData")]);
- $I->unselectOption("#selector", [$simpleDataKey->getCreatedDataByName('name')]);
- $I->unselectOption("#selector", ["name", $simpleDataKey->getCreatedDataByName('name')]);
+ $I->unselectOption("#selector", [PersistedObjectHandler::getInstance()->retrieveEntityField('simpleDataKey', 'name', 'test')]);
+ $I->unselectOption("#selector", ["name", PersistedObjectHandler::getInstance()->retrieveEntityField('simpleDataKey', 'name', 'test')]);
}
}
diff --git a/dev/tests/verification/Resources/ParentExtendedTest.txt b/dev/tests/verification/Resources/ParentExtendedTest.txt
index a8e74e493..8d7c11319 100644
--- a/dev/tests/verification/Resources/ParentExtendedTest.txt
+++ b/dev/tests/verification/Resources/ParentExtendedTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt b/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt
index 8ff0d58bd..02d371571 100644
--- a/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt
+++ b/dev/tests/verification/Resources/PersistedAndXmlEntityArguments.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -29,6 +27,6 @@ class PersistedAndXmlEntityArgumentsCest
*/
public function PersistedAndXmlEntityArguments(AcceptanceTester $I)
{
- $I->seeInCurrentUrl("/" . $persistedInTest->getCreatedDataByName('urlKey') . ".html?___store=" . msq("uniqueData") . "John");
+ $I->seeInCurrentUrl("/" . PersistedObjectHandler::getInstance()->retrieveEntityField('persistedInTest', 'urlKey', 'test') . ".html?___store=" . msq("uniqueData") . "John");
}
}
diff --git a/dev/tests/verification/Resources/PersistedReplacementTest.txt b/dev/tests/verification/Resources/PersistedReplacementTest.txt
index 78cdd5029..c19e33ee7 100644
--- a/dev/tests/verification/Resources/PersistedReplacementTest.txt
+++ b/dev/tests/verification/Resources/PersistedReplacementTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -20,11 +18,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class PersistedReplacementTestCest
{
- /**
- * @var DataPersistenceHandler $createData1;
- */
- protected $createData1;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -32,9 +25,13 @@ class PersistedReplacementTestCest
public function _before(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createData1");
- $ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
- $this->createData1 = new DataPersistenceHandler($ReplacementPerson, []);
- $this->createData1->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createData1",
+ "hook",
+ "ReplacementPerson",
+ [],
+ null
+ );
}
/**
@@ -47,18 +44,22 @@ class PersistedReplacementTestCest
public function PersistedReplacementTest(AcceptanceTester $I)
{
$I->amGoingTo("create entity that has the stepKey: createdData");
- $simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
- $createdData = new DataPersistenceHandler($simpleData, []);
- $createdData->createEntity();
- $I->fillField("#selector", "StringBefore " . $createdData->getCreatedDataByName('firstname') . " StringAfter");
- $I->fillField("#" . $createdData->getCreatedDataByName('firstname'), "input");
- $I->fillField("#" . getenv("MAGENTO_BASE_URL") . "#" . $createdData->getCreatedDataByName('firstname'), "input");
- $I->fillSecretField("#" . CredentialStore::getInstance()->getSecret("SECRET_PARAM") . "#" . $createdData->getCreatedDataByName('firstname'), "input");
- $I->dragAndDrop("#" . $createdData->getCreatedDataByName('firstname'), $createdData->getCreatedDataByName('lastname'));
- $I->conditionalClick($createdData->getCreatedDataByName('lastname'), "#" . $createdData->getCreatedDataByName('firstname'), true);
- $I->amOnUrl($createdData->getCreatedDataByName('firstname') . ".html");
- $I->searchAndMultiSelectOption("#selector", [$createdData->getCreatedDataByName('firstname'), $createdData->getCreatedDataByName('lastname')]);
- $I->fillField("#selector", "John " . $createdData->getCreatedDataByName('firstname') . " stringLiteral");
- $I->searchAndMultiSelectOption("#selector", [$createdData->getCreatedDataByName('firstname'), "John", "stringLiteral"]);
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createdData",
+ "test",
+ "simpleData",
+ [],
+ null
+ );
+ $I->fillField("#selector", "StringBefore " . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . " StringAfter");
+ $I->fillField("#" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test'), "input");
+ $I->fillField("#" . getenv("MAGENTO_BASE_URL") . "#" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test'), "input");
+ $I->fillSecretField("#" . CredentialStore::getInstance()->getSecret("SECRET_PARAM") . "#" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test'), "input");
+ $I->dragAndDrop("#" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test'), PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'lastname', 'test'));
+ $I->conditionalClick(PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'lastname', 'test'), "#" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test'), true);
+ $I->amOnUrl(PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . ".html");
+ $I->searchAndMultiSelectOption("#selector", [PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test'), PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'lastname', 'test')]);
+ $I->fillField("#selector", "John " . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . " stringLiteral");
+ $I->searchAndMultiSelectOption("#selector", [PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test'), "John", "stringLiteral"]);
}
}
diff --git a/dev/tests/verification/Resources/PersistenceActionGroupAppendingTest.txt b/dev/tests/verification/Resources/PersistenceActionGroupAppendingTest.txt
new file mode 100644
index 000000000..c38a14155
--- /dev/null
+++ b/dev/tests/verification/Resources/PersistenceActionGroupAppendingTest.txt
@@ -0,0 +1,97 @@
+amGoingTo("create entity that has the stepKey: createDataACTIONGROUPBEFORE");
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createDataACTIONGROUPBEFORE",
+ "hook",
+ "entity",
+ [],
+ null
+ );
+ $I->amGoingTo("update entity that has the createdDataKey: createDataACTIONGROUPBEFORE");
+ PersistedObjectHandler::getInstance()->updateEntity(
+ "createDataACTIONGROUPBEFORE",
+ "hook",
+ "newEntity",
+ []
+ );
+ $I->amGoingTo("delete entity that has the createDataKey: createDataACTIONGROUPBEFORE");
+ PersistedObjectHandler::getInstance()->deleteEntity(
+ "createDataACTIONGROUPBEFORE",
+ "hook"
+ );
+ $I->amGoingTo("get entity that has the stepKey: getDataACTIONGROUPBEFORE");
+ PersistedObjectHandler::getInstance()->getEntity(
+ "getDataACTIONGROUPBEFORE",
+ "hook",
+ "someEneity",
+ [],
+ null
+ );
+ $I->comment(PersistedObjectHandler::getInstance()->retrieveEntityField('createData', 'field', 'hook'));
+ }
+
+ /**
+ * @Features({"TestModule"})
+ * @Parameter(name = "AcceptanceTester", value="$I")
+ * @param AcceptanceTester $I
+ * @return void
+ * @throws \Exception
+ */
+ public function PersistenceActionGroupAppendingTest(AcceptanceTester $I)
+ {
+ $I->amGoingTo("create entity that has the stepKey: createDataACTIONGROUP");
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createDataACTIONGROUP",
+ "test",
+ "entity",
+ [],
+ null
+ );
+ $I->amGoingTo("update entity that has the createdDataKey: createDataACTIONGROUP");
+ PersistedObjectHandler::getInstance()->updateEntity(
+ "createDataACTIONGROUP",
+ "test",
+ "newEntity",
+ []
+ );
+ $I->amGoingTo("delete entity that has the createDataKey: createDataACTIONGROUP");
+ PersistedObjectHandler::getInstance()->deleteEntity(
+ "createDataACTIONGROUP",
+ "test"
+ );
+ $I->amGoingTo("get entity that has the stepKey: getDataACTIONGROUP");
+ PersistedObjectHandler::getInstance()->getEntity(
+ "getDataACTIONGROUP",
+ "test",
+ "someEneity",
+ [],
+ null
+ );
+ $I->comment(PersistedObjectHandler::getInstance()->retrieveEntityField('createDataACTIONGROUP', 'field', 'test'));
+ }
+}
diff --git a/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt b/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt
index eb9f2d234..24faac699 100644
--- a/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt
+++ b/dev/tests/verification/Resources/PersistenceCustomFieldsTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -20,16 +18,6 @@ use Yandex\Allure\Adapter\Annotation\TestCaseId;
*/
class PersistenceCustomFieldsTestCest
{
- /**
- * @var DataPersistenceHandler $createData1;
- */
- protected $createData1;
-
- /**
- * @var DataPersistenceHandler $createData2;
- */
- protected $createData2;
-
/**
* @param AcceptanceTester $I
* @throws \Exception
@@ -39,14 +27,22 @@ class PersistenceCustomFieldsTestCest
$createData1Fields['firstname'] = "Mac";
$createData1Fields['lastname'] = "Doe";
$I->amGoingTo("create entity that has the stepKey: createData1");
- $DefaultPerson = DataObjectHandler::getInstance()->getObject("DefaultPerson");
- $this->createData1 = new DataPersistenceHandler($DefaultPerson, [], $createData1Fields);
- $this->createData1->createEntity();
- $createData2Fields['firstname'] = $this->createData1->getCreatedDataByName('firstname');
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createData1",
+ "hook",
+ "DefaultPerson",
+ [],
+ $createData1Fields
+ );
+ $createData2Fields['firstname'] = PersistedObjectHandler::getInstance()->retrieveEntityField('createData1', 'firstname', 'hook');
$I->amGoingTo("create entity that has the stepKey: createData2");
- $uniqueData = DataObjectHandler::getInstance()->getObject("uniqueData");
- $this->createData2 = new DataPersistenceHandler($uniqueData, [$this->createData1], $createData2Fields);
- $this->createData2->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createData2",
+ "hook",
+ "uniqueData",
+ ["createData1"],
+ $createData2Fields
+ );
}
/**
@@ -61,29 +57,49 @@ class PersistenceCustomFieldsTestCest
$createdDataFields['favoriteIndex'] = "1";
$createdDataFields['middlename'] = "Kovacs";
$I->amGoingTo("create entity that has the stepKey: createdData");
- $simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
- $createdData = new DataPersistenceHandler($simpleData, [], $createdDataFields);
- $createdData->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createdData",
+ "test",
+ "simpleData",
+ [],
+ $createdDataFields
+ );
$createdData3Fields['firstname'] = "Takeshi";
$createdData3Fields['lastname'] = "Kovacs";
$I->amGoingTo("create entity that has the stepKey: createdData3");
- $UniquePerson = DataObjectHandler::getInstance()->getObject("UniquePerson");
- $createdData3 = new DataPersistenceHandler($UniquePerson, [$createdData], $createdData3Fields);
- $createdData3->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createdData3",
+ "test",
+ "UniquePerson",
+ ["createdData"],
+ $createdData3Fields
+ );
$createDataAG1CreatedAGFields['firstname'] = "string1";
$I->amGoingTo("create entity that has the stepKey: createDataAG1CreatedAG");
- $simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
- $createDataAG1CreatedAG = new DataPersistenceHandler($simpleData, [], $createDataAG1CreatedAGFields);
- $createDataAG1CreatedAG->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createDataAG1CreatedAG",
+ "test",
+ "simpleData",
+ [],
+ $createDataAG1CreatedAGFields
+ );
$createDataAG2CreatedAGFields['firstname'] = "Jane";
$I->amGoingTo("create entity that has the stepKey: createDataAG2CreatedAG");
- $simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
- $createDataAG2CreatedAG = new DataPersistenceHandler($simpleData, [], $createDataAG2CreatedAGFields);
- $createDataAG2CreatedAG->createEntity();
- $createDataAG3CreatedAGFields['firstname'] = $createdData3->getCreatedDataByName('firstname');
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createDataAG2CreatedAG",
+ "test",
+ "simpleData",
+ [],
+ $createDataAG2CreatedAGFields
+ );
+ $createDataAG3CreatedAGFields['firstname'] = PersistedObjectHandler::getInstance()->retrieveEntityField('createdData3', 'firstname', 'test');
$I->amGoingTo("create entity that has the stepKey: createDataAG3CreatedAG");
- $simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
- $createDataAG3CreatedAG = new DataPersistenceHandler($simpleData, [], $createDataAG3CreatedAGFields);
- $createDataAG3CreatedAG->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createDataAG3CreatedAG",
+ "test",
+ "simpleData",
+ [],
+ $createDataAG3CreatedAGFields
+ );
}
}
diff --git a/dev/tests/verification/Resources/SectionReplacementTest.txt b/dev/tests/verification/Resources/SectionReplacementTest.txt
index 6fdef9083..5bdba2812 100644
--- a/dev/tests/verification/Resources/SectionReplacementTest.txt
+++ b/dev/tests/verification/Resources/SectionReplacementTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
@@ -49,21 +47,25 @@ class SectionReplacementTestCest
$I->click("#Doe" . msq("uniqueData") . "-stringLiteral2 .stringLiteral3");
$I->click("#Doe" . msq("uniqueData") . "-stringLiteral2 .Doe" . msq("uniqueData") . " [stringLiteral3]");
$I->amGoingTo("create entity that has the stepKey: createdData");
- $simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
- $createdData = new DataPersistenceHandler($simpleData, []);
- $createdData->createEntity();
- $I->click("#element ." . $createdData->getCreatedDataByName('firstname'));
- $I->click("#" . $createdData->getCreatedDataByName('firstname') . " .stringLiteral2");
- $I->click("#" . $createdData->getCreatedDataByName('firstname') . "-stringLiteral2 .stringLiteral3");
- $I->click("#" . $createdData->getCreatedDataByName('firstname') . "-stringLiteral2 ." . $createdData->getCreatedDataByName('firstname') . " [stringLiteral3]");
+ PersistedObjectHandler::getInstance()->createEntity(
+ "createdData",
+ "test",
+ "simpleData",
+ [],
+ null
+ );
+ $I->click("#element ." . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test'));
+ $I->click("#" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . " .stringLiteral2");
+ $I->click("#" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . "-stringLiteral2 .stringLiteral3");
+ $I->click("#" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . "-stringLiteral2 ." . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . " [stringLiteral3]");
$I->click("#element .{$data}");
$I->click("#{$data1} .{$data2}");
$I->click("#{$data1}-{$data2} .{$data3}");
$I->click("#John-Doe .John [Tiberius]");
- $I->click("#stringLiteral1-" . $createdData->getCreatedDataByName('firstname') . " .John");
- $I->click("#stringLiteral1-" . $createdData->getCreatedDataByName('firstname') . " .{$data}");
- $I->click("#stringLiteral1-" . $createdData->getCreatedDataByName('firstname') . " ." . msq("uniqueData") . "John");
- $I->click("#stringLiteral1-" . $createdData->getCreatedDataByName('firstname') . " .Doe" . msq("uniqueData"));
+ $I->click("#stringLiteral1-" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . " .John");
+ $I->click("#stringLiteral1-" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . " .{$data}");
+ $I->click("#stringLiteral1-" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . " ." . msq("uniqueData") . "John");
+ $I->click("#stringLiteral1-" . PersistedObjectHandler::getInstance()->retrieveEntityField('createdData', 'firstname', 'test') . " .Doe" . msq("uniqueData"));
$I->click("#element .1#element .2");
$I->click("#element .1#element .{$data}");
}
diff --git a/dev/tests/verification/Resources/SkippedTest.txt b/dev/tests/verification/Resources/SkippedTest.txt
index b00fda574..5cb8fa322 100644
--- a/dev/tests/verification/Resources/SkippedTest.txt
+++ b/dev/tests/verification/Resources/SkippedTest.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/SkippedTestNoIssues.txt b/dev/tests/verification/Resources/SkippedTestNoIssues.txt
index 8d22ca415..9472d69ad 100644
--- a/dev/tests/verification/Resources/SkippedTestNoIssues.txt
+++ b/dev/tests/verification/Resources/SkippedTestNoIssues.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/SkippedTestTwoIssues.txt b/dev/tests/verification/Resources/SkippedTestTwoIssues.txt
index cd140e440..91edd6527 100644
--- a/dev/tests/verification/Resources/SkippedTestTwoIssues.txt
+++ b/dev/tests/verification/Resources/SkippedTestTwoIssues.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/SkippedTestWithHooks.txt b/dev/tests/verification/Resources/SkippedTestWithHooks.txt
index d28c61486..2bb206a78 100644
--- a/dev/tests/verification/Resources/SkippedTestWithHooks.txt
+++ b/dev/tests/verification/Resources/SkippedTestWithHooks.txt
@@ -2,10 +2,8 @@
namespace Magento\AcceptanceTest\_default\Backend;
use Magento\FunctionalTestingFramework\AcceptanceTester;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use \Codeception\Util\Locator;
use Yandex\Allure\Adapter\Annotation\Features;
use Yandex\Allure\Adapter\Annotation\Stories;
diff --git a/dev/tests/verification/Resources/functionalSuiteHooks.txt b/dev/tests/verification/Resources/functionalSuiteHooks.txt
index b85f9e578..665f06a05 100644
--- a/dev/tests/verification/Resources/functionalSuiteHooks.txt
+++ b/dev/tests/verification/Resources/functionalSuiteHooks.txt
@@ -2,8 +2,7 @@
namespace Group;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
/**
* Group class is Codeception Extension which is allowed to handle to all internal events.
@@ -22,7 +21,6 @@ class functionalSuiteHooks extends \Codeception\GroupObject
private $currentTestRun = 0;
private static $HOOK_EXECUTION_INIT = "\n/******** Beginning execution of functionalSuiteHooks suite %s block ********/\n";
private static $HOOK_EXECUTION_END = "\n/******** Execution of functionalSuiteHooks suite %s block complete ********/\n";
- private $create;
public function _before(\Codeception\Event\TestEvent $e)
{
@@ -55,9 +53,13 @@ class functionalSuiteHooks extends \Codeception\GroupObject
$webDriver->_initializeSession();
$webDriver->amOnPage("some.url");
$createFields['someKey'] = "dataHere";
- $createThis = DataObjectHandler::getInstance()->getObject("createThis");
- $this->create = new DataPersistenceHandler($createThis, [], $createFields);
- $this->create->createEntity();
+ PersistedObjectHandler::getInstance()->createEntity(
+ "create",
+ "suite",
+ "createThis",
+ $createFields
+ );
+ $webDriver->click(PersistedObjectHandler::getInstance()->retrieveEntityField('create', 'data', 'suite'));
$webDriver->see("John", msq("uniqueData") . "John");
// reset configuration and close session
@@ -123,6 +125,7 @@ class functionalSuiteHooks extends \Codeception\GroupObject
print $exception->getMessage();
}
+ PersistedObjectHandler::getInstance()->clearSuiteObjects();
print sprintf(self::$HOOK_EXECUTION_END, "after");
}
}
diff --git a/dev/tests/verification/TestModule/ActionGroup/FunctionalActionGroup.xml b/dev/tests/verification/TestModule/ActionGroup/FunctionalActionGroup.xml
index af89993ef..728b606b2 100644
--- a/dev/tests/verification/TestModule/ActionGroup/FunctionalActionGroup.xml
+++ b/dev/tests/verification/TestModule/ActionGroup/FunctionalActionGroup.xml
@@ -49,10 +49,10 @@
-
+
-
+
diff --git a/dev/tests/verification/TestModule/ActionGroup/PersistenceActionGroup.xml b/dev/tests/verification/TestModule/ActionGroup/PersistenceActionGroup.xml
index 45ba57acb..c4f894cfc 100644
--- a/dev/tests/verification/TestModule/ActionGroup/PersistenceActionGroup.xml
+++ b/dev/tests/verification/TestModule/ActionGroup/PersistenceActionGroup.xml
@@ -23,4 +23,11 @@
{{arg3}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dev/tests/verification/TestModule/Test/DataActionsTest.xml b/dev/tests/verification/TestModule/Test/DataActionsTest.xml
new file mode 100644
index 000000000..03d7caa35
--- /dev/null
+++ b/dev/tests/verification/TestModule/Test/DataActionsTest.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/verification/TestModule/Test/PersistenceActionGroupAppendingTest.xml b/dev/tests/verification/TestModule/Test/PersistenceActionGroupAppendingTest.xml
new file mode 100644
index 000000000..20a9b6a28
--- /dev/null
+++ b/dev/tests/verification/TestModule/Test/PersistenceActionGroupAppendingTest.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/tests/verification/Tests/DataActionsTest.php b/dev/tests/verification/Tests/DataActionsTest.php
new file mode 100644
index 000000000..b5ad4a659
--- /dev/null
+++ b/dev/tests/verification/Tests/DataActionsTest.php
@@ -0,0 +1,22 @@
+generateAndCompareTest('DataActionsTest');
+ }
+}
diff --git a/dev/tests/verification/Tests/PersistenceGenerationTest.php b/dev/tests/verification/Tests/PersistenceGenerationTest.php
index afe231c9b..6944d75a0 100644
--- a/dev/tests/verification/Tests/PersistenceGenerationTest.php
+++ b/dev/tests/verification/Tests/PersistenceGenerationTest.php
@@ -16,4 +16,12 @@ public function testPersistedDeclarations()
{
$this->generateAndCompareTest('PersistenceCustomFieldsTest');
}
+
+ /**
+ * Tests complex persistence declarations in xml as they are generated to php.
+ */
+ public function testPersistenceActionGroupAppendingTest()
+ {
+ $this->generateAndCompareTest('PersistenceActionGroupAppendingTest');
+ }
}
diff --git a/dev/tests/verification/_suite/functionalSuiteHooks.xml b/dev/tests/verification/_suite/functionalSuiteHooks.xml
index e86ea9590..f86f8c43c 100644
--- a/dev/tests/verification/_suite/functionalSuiteHooks.xml
+++ b/dev/tests/verification/_suite/functionalSuiteHooks.xml
@@ -16,6 +16,7 @@
dataHere
+
diff --git a/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/PersistedObjectHandler.php b/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/PersistedObjectHandler.php
new file mode 100644
index 000000000..64bb5f0a0
--- /dev/null
+++ b/src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/PersistedObjectHandler.php
@@ -0,0 +1,236 @@
+ Value of override fields.
+ * @param string $storeCode
+ * @return void
+ */
+ public function createEntity(
+ $key,
+ $scope,
+ $entity,
+ $dependentObjectKeys = [],
+ $overrideFields = [],
+ $storeCode = ""
+ ) {
+ $retrievedDependentObjects = [];
+ foreach ($dependentObjectKeys as $objectKey) {
+ $retrievedDependentObjects[] = $this->retrieveEntity($objectKey, $scope);
+ }
+
+ $retrievedEntity = DataObjectHandler::getInstance()->getObject($entity);
+ $persistedObject = new DataPersistenceHandler(
+ $retrievedEntity,
+ $retrievedDependentObjects,
+ $overrideFields
+ );
+
+ $persistedObject->createEntity($storeCode);
+
+ if ($scope == self::TEST_SCOPE) {
+ $this->testObjects[$key] = $persistedObject;
+ } elseif ($scope == self::HOOK_SCOPE) {
+ $this->hookObjects[$key] = $persistedObject;
+ } else {
+ $this->suiteObjects[$key] = $persistedObject;
+ }
+ }
+
+ /**
+ * Retrieves and updates a previously created entity.
+ * @param string $key StepKey of the createData action.
+ * @param string $scope
+ * @param string $updateEntity Name of the static XML data to update the entity with.
+ * @param array $dependentObjectKeys StepKeys of other createData actions that are required.
+ * @return void
+ */
+ public function updateEntity($key, $scope, $updateEntity, $dependentObjectKeys = [])
+ {
+ $retrievedDependentObjects = [];
+ foreach ($dependentObjectKeys as $objectKey) {
+ $retrievedDependentObjects[] = $this->retrieveEntity($objectKey, $scope);
+ }
+
+ $originalEntity = $this->retrieveEntity($key, $scope);
+ $originalEntity->updateEntity($updateEntity, $retrievedDependentObjects);
+ }
+
+ /**
+ * Retrieves and deletes a previously created entity.
+ * @param string $key StepKey of the createData action.
+ * @param string $scope
+ * @return void
+ */
+ public function deleteEntity($key, $scope)
+ {
+ $originalEntity = $this->retrieveEntity($key, $scope);
+ $originalEntity->deleteEntity();
+ }
+
+ /**
+ * Performs GET on given entity and stores entity for use.
+ * @param string $key StepKey of getData action.
+ * @param string $scope
+ * @param string $entity Name of XML static data to use.
+ * @param array $dependentObjectKeys StepKeys of other createData actions that are required.
+ * @param string $storeCode
+ * @param integer $index
+ * @return void
+ */
+ public function getEntity($key, $scope, $entity, $dependentObjectKeys = [], $storeCode = "", $index = null)
+ {
+ $retrievedDependentObjects = [];
+ foreach ($dependentObjectKeys as $objectKey) {
+ $retrievedDependentObjects[] = $this->retrieveEntity($objectKey, $scope);
+ }
+
+ $retrievedEntity = DataObjectHandler::getInstance()->getObject($entity);
+ $persistedObject = new DataPersistenceHandler(
+ $retrievedEntity,
+ $retrievedDependentObjects
+ );
+ $persistedObject->getEntity($index, $storeCode);
+
+ if ($scope == self::TEST_SCOPE) {
+ $this->testObjects[$key] = $persistedObject;
+ } elseif ($scope == self::HOOK_SCOPE) {
+ $this->hookObjects[$key] = $persistedObject;
+ } else {
+ $this->suiteObjects[$key] = $persistedObject;
+ }
+ }
+
+ /**
+ * Retrieves a field from an entity, according to key and scope given.
+ * @param string $stepKey
+ * @param string $field
+ * @param string $scope
+ * @return string
+ * @throws TestReferenceException
+ * @throws \Magento\FunctionalTestingFramework\Exceptions\TestFrameworkException
+ */
+ public function retrieveEntityField($stepKey, $field, $scope)
+ {
+ return $this->retrieveEntity($stepKey, $scope)->getCreatedDataByName($field);
+ }
+
+ /**
+ * Attempts to retrieve Entity from given scope, falling back to outer scopes if not found.
+ * @param string $stepKey
+ * @param string $scope
+ * @return DataPersistenceHandler
+ * @throws TestReferenceException
+ */
+ private function retrieveEntity($stepKey, $scope)
+ {
+ // Assume TEST_SCOPE is default
+ $entityArrays = [$this->testObjects, $this->hookObjects, $this->suiteObjects];
+
+ if ($scope == self::HOOK_SCOPE) {
+ $entityArrays[0] = $this->hookObjects;
+ $entityArrays[1] = $this->testObjects;
+ }
+
+ foreach ($entityArrays as $entityArray) {
+ if (array_key_exists($stepKey, $entityArray)) {
+ return $entityArray[$stepKey];
+ }
+ }
+
+ throw new TestReferenceException("Entity with a CreateDataKey of {$stepKey} could not be found");
+ }
+
+ /**
+ * Clears store of all test persisted Objects
+ * @return void
+ */
+ public function clearTestObjects()
+ {
+ $this->testObjects = [];
+ }
+
+ /**
+ * Clears store of all hook persisted Objects
+ * @return void
+ */
+ public function clearHookObjects()
+ {
+ $this->hookObjects = [];
+ }
+
+ /**
+ * Clears store of all suite persisted Objects
+ * @return void
+ */
+ public function clearSuiteObjects()
+ {
+ $this->suiteObjects = [];
+ }
+}
diff --git a/src/Magento/FunctionalTestingFramework/Extension/TestContextExtension.php b/src/Magento/FunctionalTestingFramework/Extension/TestContextExtension.php
index d6f365d99..07f177dc3 100644
--- a/src/Magento/FunctionalTestingFramework/Extension/TestContextExtension.php
+++ b/src/Magento/FunctionalTestingFramework/Extension/TestContextExtension.php
@@ -7,6 +7,7 @@
namespace Magento\FunctionalTestingFramework\Extension;
use \Codeception\Events;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use Magento\FunctionalTestingFramework\Extension\ErrorLogger;
use Magento\FunctionalTestingFramework\Module\MagentoWebDriver;
@@ -26,11 +27,23 @@ class TestContextExtension extends \Codeception\Extension
* @var array
*/
public static $events = [
+ Events::TEST_START => 'testStart',
Events::TEST_FAIL => 'testFail',
Events::STEP_AFTER => 'afterStep',
- Events::TEST_END => 'testError'
+ Events::TEST_END => 'testEnd'
];
+ /**
+ * Codeception event listener function, triggered on test start.
+ * @throws \Exception
+ * @return void
+ */
+ public function testStart()
+ {
+ PersistedObjectHandler::getInstance()->clearHookObjects();
+ PersistedObjectHandler::getInstance()->clearTestObjects();
+ }
+
/**
* Codeception event listener function, triggered on test failure.
* @param \Codeception\Event\FailEvent $e
@@ -48,11 +61,11 @@ public function testFail(\Codeception\Event\FailEvent $e)
}
/**
- * Codeception event listener function, triggered on test error.
+ * Codeception event listener function, triggered on test ending (naturally or by error).
* @param \Codeception\Event\TestEvent $e
* @return void
*/
- public function testError(\Codeception\Event\TestEvent $e)
+ public function testEnd(\Codeception\Event\TestEvent $e)
{
$cest = $e->getTest();
diff --git a/src/Magento/FunctionalTestingFramework/Suite/Generators/GroupClassGenerator.php b/src/Magento/FunctionalTestingFramework/Suite/Generators/GroupClassGenerator.php
index 2b9662a1a..7e1278345 100644
--- a/src/Magento/FunctionalTestingFramework/Suite/Generators/GroupClassGenerator.php
+++ b/src/Magento/FunctionalTestingFramework/Suite/Generators/GroupClassGenerator.php
@@ -179,7 +179,7 @@ private function buildHookMustacheArray($hookObj)
*/
private function buildWebDriverActionsMustacheArray($action, $actionEntries)
{
- $step = TestGenerator::getInstance()->generateStepsPhp([$action], false, 'webDriver');
+ $step = TestGenerator::getInstance()->generateStepsPhp([$action], TestGenerator::SUITE_SCOPE, 'webDriver');
$rawPhp = str_replace(["\t", "\n"], "", $step);
$multipleCommands = explode(";", $rawPhp, -1);
foreach ($multipleCommands as $command) {
diff --git a/src/Magento/FunctionalTestingFramework/Suite/views/SuiteClass.mustache b/src/Magento/FunctionalTestingFramework/Suite/views/SuiteClass.mustache
index 1cbe5c775..953db9d0c 100644
--- a/src/Magento/FunctionalTestingFramework/Suite/views/SuiteClass.mustache
+++ b/src/Magento/FunctionalTestingFramework/Suite/views/SuiteClass.mustache
@@ -2,8 +2,7 @@
namespace Group;
-use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
-use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
/**
* Group class is Codeception Extension which is allowed to handle to all internal events.
@@ -22,9 +21,6 @@ class {{suiteName}} extends \Codeception\GroupObject
private $currentTestRun = 0;
private static $HOOK_EXECUTION_INIT = "\n/******** Beginning execution of {{suiteName}} suite %s block ********/\n";
private static $HOOK_EXECUTION_END = "\n/******** Execution of {{suiteName}} suite %s block complete ********/\n";
- {{#var}}
- private ${{stepKey}};
- {{/var}}
{{#before}}
public function _before(\Codeception\Event\TestEvent $e)
@@ -101,6 +97,7 @@ class {{suiteName}} extends \Codeception\GroupObject
print $exception->getMessage();
}
+ PersistedObjectHandler::getInstance()->clearSuiteObjects();
print sprintf(self::$HOOK_EXECUTION_END, "after");
}
}
diff --git a/src/Magento/FunctionalTestingFramework/Suite/views/partials/testActions.mustache b/src/Magento/FunctionalTestingFramework/Suite/views/partials/testActions.mustache
index 37dbcfbef..2ed5e8d5e 100644
--- a/src/Magento/FunctionalTestingFramework/Suite/views/partials/testActions.mustache
+++ b/src/Magento/FunctionalTestingFramework/Suite/views/partials/testActions.mustache
@@ -15,11 +15,18 @@ $webDriver->_initializeSession();
{{{action}}}
{{/action}}
{{#createData}}
-${{entityName}} = DataObjectHandler::getInstance()->getObject("{{entityName}}");
-$this->{{stepKey}} = new DataPersistenceHandler(${{entityName}}, [{{#requiredEntities}}$this->{{entityName}}{{^last}}, {{/last}}{{/requiredEntities}}]{{#customFields}}, ${{customFields}}{{/customFields}});
-$this->{{stepKey}}->createEntity();
+PersistedObjectHandler::getInstance()->createEntity(
+ "{{stepKey}}",
+ "suite",
+ "{{entityName}}"{{#requiredEntities}},
+ [$this->{{entityName}}{{^last}}, {{/last}}]{{/requiredEntities}}{{#customFields}},
+ ${{customFields}}{{/customFields}}
+);
{{/createData}}
{{#deleteData}}
-$this->{{entityName}}->deleteEntity();
+PersistedObjectHandler::getInstance()->deleteEntity(
+ "{{entityName}}",
+ "suite"
+);
{{/deleteData}}
{{/actions}}
diff --git a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dataActions.xsd b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dataActions.xsd
index 1a7ea2d78..2cd614266 100644
--- a/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dataActions.xsd
+++ b/src/Magento/FunctionalTestingFramework/Test/etc/Actions/dataActions.xsd
@@ -43,6 +43,14 @@
+
+
+
+ StepKey of the ActionGroup where this data was created, if it was created in one.
+
+
+
+
@@ -66,6 +74,7 @@
+
@@ -77,6 +86,7 @@
+
@@ -108,6 +118,7 @@
+
diff --git a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php
index cb3defe1a..eebaccf26 100644
--- a/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php
+++ b/src/Magento/FunctionalTestingFramework/Util/TestGenerator.php
@@ -7,6 +7,7 @@
namespace Magento\FunctionalTestingFramework\Util;
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;
+use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
use Magento\FunctionalTestingFramework\Exceptions\TestReferenceException;
use Magento\FunctionalTestingFramework\Suite\Handlers\SuiteObjectHandler;
@@ -33,6 +34,9 @@ class TestGenerator
const REQUIRED_ENTITY_REFERENCE = 'createDataKey';
const GENERATED_DIR = '_generated';
const DEFAULT_DIR = 'default';
+ const TEST_SCOPE = 'test';
+ const HOOK_SCOPE = 'hook';
+ const SUITE_SCOPE = 'suite';
/**
* Path to the export dir.
@@ -69,6 +73,13 @@ class TestGenerator
*/
private $debug;
+ /**
+ * Current generation scope.
+ *
+ * @var string
+ */
+ private $currentGenerationScope;
+
/**
* TestGenerator constructor.
*
@@ -296,11 +307,8 @@ private function debug($messages)
private function generateUseStatementsPhp()
{
$useStatementsPhp = "use Magento\FunctionalTestingFramework\AcceptanceTester;\n";
-
- $useStatementsPhp .= "use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;\n";
- $useStatementsPhp .= "use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;\n";
- $useStatementsPhp .= "use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;\n";
$useStatementsPhp .= "use Magento\FunctionalTestingFramework\DataGenerator\Handlers\CredentialStore;\n";
+ $useStatementsPhp .= "use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;\n";
$useStatementsPhp .= "use \Codeception\Util\Locator;\n";
$allureStatements = [
@@ -461,22 +469,22 @@ private function generateClassAnnotations($annotationType, $annotationName)
* statement to handle each unique action. At the bottom of the case statement there is a generic function that can
* construct the PHP string for nearly half of all Codeception actions.
*
- * @param array $actionObjects
- * @param array|boolean $hookObject
- * @param string $actor
+ * @param array $actionObjects
+ * @param string $generationScope
+ * @param string $actor
* @return string
* @throws TestReferenceException
* @throws \Exception
* @SuppressWarnings(PHPMD)
*/
- public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "I")
+ public function generateStepsPhp($actionObjects, $generationScope = TestGenerator::TEST_SCOPE, $actor = "I")
{
//TODO: Refactor Method according to PHPMD warnings, remove @SuppressWarnings accordingly.
$testSteps = "";
+ $this->currentGenerationScope = $generationScope;
foreach ($actionObjects as $actionObject) {
$stepKey = $actionObject->getStepKey();
-
$customActionAttributes = $actionObject->getCustomActionAttributes();
$attribute = null;
$selector = null;
@@ -695,91 +703,77 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
$actor,
$stepKey
);
- //Get Entity from Static data.
- $testSteps .= sprintf(
- "\t\t$%s = DataObjectHandler::getInstance()->getObject(\"%s\");\n",
- $entity,
- $entity
- );
- //HookObject End-Product needs to be created in the Class scope,
- //otherwise create them in the Test scope.
- //Determine if there are required-entities and create array of required-entities for merging.
- $requiredEntities = [];
+ //TODO refactor entity field override to not be individual actionObjects
$customEntityFields =
$customActionAttributes[ActionObjectExtractor::ACTION_OBJECT_PERSISTENCE_FIELDS] ?? [];
- $requiredEntityObjects = [];
- foreach ($customActionAttributes as $customAttribute) {
- if (is_array($customAttribute) && $customAttribute['nodeName'] == 'requiredEntity') {
- if ($hookObject) {
- $requiredEntities [] = "\$this->" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE] .
- "->getName() => " . "\$this->" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE] .
- "->getType()";
- $requiredEntityObjects [] = '$this->' . $customAttribute
- [self::REQUIRED_ENTITY_REFERENCE];
- } else {
- $requiredEntities [] = "\$" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE]
- . "->getName() => " . "\$" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE] .
- "->getType()";
- $requiredEntityObjects [] = '$' . $customAttribute[self::REQUIRED_ENTITY_REFERENCE];
- }
+
+ $requiredEntityKeys = [];
+ foreach ($actionObject->getCustomActionAttributes() as $actionAttribute) {
+ if (is_array($actionAttribute) && $actionAttribute['nodeName'] == 'requiredEntity') {
+ //append ActionGroup if provided
+ $requiredEntityActionGroup = $actionAttribute['actionGroup'] ?? null;
+ $requiredEntityKeys[] = $actionAttribute['createDataKey'] . $requiredEntityActionGroup;
}
}
-
- if ($hookObject) {
- $createEntityFunctionCall = sprintf("\t\t\$this->%s->createEntity(", $stepKey);
- $dataPersistenceHandlerFunctionCall = sprintf(
- "\t\t\$this->%s = new DataPersistenceHandler($%s",
- $stepKey,
- $entity
- );
- } else {
- $createEntityFunctionCall = sprintf("\t\t\$%s->createEntity(", $stepKey);
- $dataPersistenceHandlerFunctionCall = sprintf(
- "\t\t$%s = new DataPersistenceHandler($%s",
- $stepKey,
- $entity
- );
+ // Build array of requiredEntities
+ $requiredEntityKeysArray = "";
+ if (!empty($requiredEntityKeys)) {
+ $requiredEntityKeysArray = '"' . implode('", "', $requiredEntityKeys) . '"';
}
-
- if ($storeCode) {
- $createEntityFunctionCall .= sprintf("\"%s\");\n", $storeCode);
- } else {
- $createEntityFunctionCall .= ");\n";
+ //Determine Scope
+ $scope = PersistedObjectHandler::TEST_SCOPE;
+ if ($generationScope == TestGenerator::HOOK_SCOPE) {
+ $scope = PersistedObjectHandler::HOOK_SCOPE;
+ } elseif ($generationScope == TestGenerator::SUITE_SCOPE) {
+ $scope = PersistedObjectHandler::SUITE_SCOPE;
}
-
- // Add a reference to the requiredEntityObjects to the new DataPersistenceHandler. If there are none
- // defined, an empty array will be passed in to the constructor.
- $dataPersistenceHandlerFunctionCall .= sprintf(
- ", [%s]",
- implode(', ', $requiredEntityObjects)
- );
-
+
+ $createEntityFunctionCall = "\t\tPersistedObjectHandler::getInstance()->createEntity(";
+ $createEntityFunctionCall .= "\n\t\t\t\"{$stepKey}\",";
+ $createEntityFunctionCall .= "\n\t\t\t\"{$scope}\",";
+ $createEntityFunctionCall .= "\n\t\t\t\"{$entity}\"";
+ $createEntityFunctionCall .= ",\n\t\t\t[{$requiredEntityKeysArray}]";
if (count($customEntityFields) > 1) {
- $dataPersistenceHandlerFunctionCall .= ", \${$stepKey}Fields";
+ $createEntityFunctionCall .= ",\n\t\t\t\${$stepKey}Fields";
+ } else {
+ $createEntityFunctionCall .= ",\n\t\t\tnull";
}
-
- $dataPersistenceHandlerFunctionCall .= ");\n";
- $testSteps .= $dataPersistenceHandlerFunctionCall;
+ if ($storeCode !== null) {
+ $createEntityFunctionCall .= ",\n\t\t\t\"{$storeCode}\"";
+ }
+ $createEntityFunctionCall .= "\n\t\t);\n";
$testSteps .= $createEntityFunctionCall;
break;
case "deleteData":
if (isset($customActionAttributes['createDataKey'])) {
- $key = $customActionAttributes['createDataKey'];
+ $key = $this->resolveStepKeyReferences(
+ $customActionAttributes['createDataKey'],
+ $actionObject->getActionOrigin(),
+ true
+ );
+ $actionGroup = $actionObject->getCustomActionAttributes()['actionGroup'] ?? null;
+ $key .= $actionGroup;
//Add an informative statement to help the user debug test runs
$contextSetter = sprintf(
"\t\t$%s->amGoingTo(\"delete entity that has the createDataKey: %s\");\n",
$actor,
$key
);
- $deleteEntityFunctionCall = "";
- if ($hookObject) {
- $deleteEntityFunctionCall .= sprintf("\t\t\$this->%s->deleteEntity();\n", $key);
- } else {
- $deleteEntityFunctionCall .= sprintf("\t\t$%s->deleteEntity();\n", $key);
+ //Determine Scope
+ $scope = PersistedObjectHandler::TEST_SCOPE;
+ if ($generationScope == TestGenerator::HOOK_SCOPE) {
+ $scope = PersistedObjectHandler::HOOK_SCOPE;
+ } elseif ($generationScope == TestGenerator::SUITE_SCOPE) {
+ $scope = PersistedObjectHandler::SUITE_SCOPE;
}
+ $deleteEntityFunctionCall = "\t\tPersistedObjectHandler::getInstance()->deleteEntity(";
+ $deleteEntityFunctionCall .= "\n\t\t\t\"{$key}\",";
+ $deleteEntityFunctionCall .= "\n\t\t\t\"{$scope}\"";
+ $deleteEntityFunctionCall .= "\n\t\t);\n";
+
$testSteps .= $contextSetter;
$testSteps .= $deleteEntityFunctionCall;
} else {
@@ -794,8 +788,14 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
}
break;
case "updateData":
- $key = $customActionAttributes['createDataKey'];
+ $key = $this->resolveStepKeyReferences(
+ $customActionAttributes['createDataKey'],
+ $actionObject->getActionOrigin(),
+ true
+ );
$updateEntity = $customActionAttributes['entity'];
+ $actionGroup = $actionObject->getCustomActionAttributes()['actionGroup'] ?? null;
+ $key .= $actionGroup;
//Add an informative statement to help the user debug test runs
$testSteps .= sprintf(
@@ -803,128 +803,91 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
$actor,
$key
);
-
- //HookObject End-Product needs to be created in the Class scope,
- //otherwise create them in the Test scope.
- //Determine if there are required-entities and create array of required-entities for merging.
- $requiredEntities = [];
- $requiredEntityObjects = [];
- foreach ($customActionAttributes as $customAttribute) {
- if (is_array($customAttribute) && $customAttribute['nodeName'] == 'requiredEntity') {
- if ($hookObject) {
- $requiredEntities [] = "\$this->" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE] .
- "->getName() => " . "\$this->" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE] .
- "->getType()";
- $requiredEntityObjects [] = '$this->' . $customAttribute
- [self::REQUIRED_ENTITY_REFERENCE];
- } else {
- $requiredEntities [] = "\$" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE]
- . "->getName() => " . "\$" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE] .
- "->getType()";
- $requiredEntityObjects [] = '$' . $customAttribute[self::REQUIRED_ENTITY_REFERENCE];
- }
+
+ // Build array of requiredEntities
+ $requiredEntityKeys = [];
+ foreach ($actionObject->getCustomActionAttributes() as $actionAttribute) {
+ if (is_array($actionAttribute) && $actionAttribute['nodeName'] == 'requiredEntity') {
+ //append ActionGroup if provided
+ $requiredEntityActionGroup = $actionAttribute['actionGroup'] ?? null;
+ $requiredEntityKeys[] = $actionAttribute['createDataKey'] . $requiredEntityActionGroup;
}
}
-
- if ($hookObject) {
- $updateEntityFunctionCall = sprintf("\t\t\$this->%s->updateEntity(\"%s\"", $key, $updateEntity);
- } else {
- $updateEntityFunctionCall = sprintf("\t\t\$%s->updateEntity(\"%s\"", $key, $updateEntity);
+ $requiredEntityKeysArray = "";
+ if (!empty($requiredEntityKeys)) {
+ $requiredEntityKeysArray = '"' . implode('", "', $requiredEntityKeys) . '"';
}
- if (!empty($requiredEntities)) {
- $updateEntityFunctionCall .= sprintf(
- ", [%s]",
- implode(', ', $requiredEntityObjects)
- );
+ $scope = PersistedObjectHandler::TEST_SCOPE;
+ if ($generationScope == TestGenerator::HOOK_SCOPE) {
+ $scope = PersistedObjectHandler::HOOK_SCOPE;
+ } elseif ($generationScope == TestGenerator::SUITE_SCOPE) {
+ $scope = PersistedObjectHandler::SUITE_SCOPE;
}
- if ($storeCode) {
- $updateEntityFunctionCall .= sprintf(", \"%s\");\n", $storeCode);
- } else {
- $updateEntityFunctionCall .= ");\n";
+ $updateEntityFunctionCall = "\t\tPersistedObjectHandler::getInstance()->updateEntity(";
+ $updateEntityFunctionCall .= "\n\t\t\t\"{$key}\",";
+ $updateEntityFunctionCall .= "\n\t\t\t\"{$scope}\",";
+ $updateEntityFunctionCall .= "\n\t\t\t\"{$updateEntity}\"";
+ $updateEntityFunctionCall .= ",\n\t\t\t[{$requiredEntityKeysArray}]";
+ if ($storeCode !== null) {
+ $updateEntityFunctionCall .= ",\n\t\t\t\"{$storeCode}\"";
}
-
+ $updateEntityFunctionCall .= "\n\t\t);\n";
$testSteps .= $updateEntityFunctionCall;
+
break;
case "getData":
$entity = $customActionAttributes['entity'];
+ $index = null;
+ if (isset($customActionAttributes['index'])) {
+ $index = (int)$customActionAttributes['index'];
+ }
//Add an informative statement to help the user debug test runs
$testSteps .= sprintf(
"\t\t$%s->amGoingTo(\"get entity that has the stepKey: %s\");\n",
$actor,
$stepKey
);
- //Get Entity from Static data.
- $testSteps .= sprintf(
- "\t\t$%s = DataObjectHandler::getInstance()->getObject(\"%s\");\n",
- $entity,
- $entity
- );
- //HookObject End-Product needs to be created in the Class scope,
- //otherwise create them in the Test scope.
- //Determine if there are required-entities and create array of required-entities for merging.
- $requiredEntities = [];
- $requiredEntityObjects = [];
- foreach ($customActionAttributes as $customAttribute) {
- if (is_array($customAttribute) && $customAttribute['nodeName'] = 'requiredEntity') {
- if ($hookObject) {
- $requiredEntities [] = "\$this->" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE] .
- "->getName() => " . "\$this->" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE] .
- "->getType()";
- $requiredEntityObjects [] = '$this->' . $customAttribute
- [self::REQUIRED_ENTITY_REFERENCE];
- } else {
- $requiredEntities [] = "\$" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE]
- . "->getName() => " . "\$" . $customAttribute[self::REQUIRED_ENTITY_REFERENCE] .
- "->getType()";
- $requiredEntityObjects [] = '$' . $customAttribute[self::REQUIRED_ENTITY_REFERENCE];
- }
+ // Build array of requiredEntities
+ $requiredEntityKeys = [];
+ foreach ($actionObject->getCustomActionAttributes() as $actionAttribute) {
+ if (is_array($actionAttribute) && $actionAttribute['nodeName'] == 'requiredEntity') {
+ $requiredEntityActionGroup = $actionAttribute['actionGroup'] ?? null;
+ $requiredEntityKeys[] = $actionAttribute['createDataKey'] . $requiredEntityActionGroup;
}
}
-
- if ($hookObject) {
- $getEntityFunctionCall = sprintf("\t\t\$this->%s->getEntity(", $stepKey);
- $dataPersistenceHandlerFunctionCall = sprintf(
- "\t\t\$this->%s = new DataPersistenceHandler($%s",
- $stepKey,
- $entity
- );
- } else {
- $getEntityFunctionCall = sprintf("\t\t\$%s->getEntity(", $stepKey);
- $dataPersistenceHandlerFunctionCall = sprintf(
- "\t\t$%s = new DataPersistenceHandler($%s",
- $stepKey,
- $entity
- );
+ $requiredEntityKeysArray = "";
+ if (!empty($requiredEntityKeys)) {
+ $requiredEntityKeysArray = '"' . implode('", "', $requiredEntityKeys) . '"';
}
- if (isset($customActionAttributes['index'])) {
- $getEntityFunctionCall .= sprintf("%s", (int)$customActionAttributes['index']);
- } else {
- $getEntityFunctionCall .= 'null';
+ //Determine Scope
+ $scope = PersistedObjectHandler::TEST_SCOPE;
+ if ($generationScope == TestGenerator::HOOK_SCOPE) {
+ $scope = PersistedObjectHandler::HOOK_SCOPE;
+ } elseif ($generationScope == TestGenerator::SUITE_SCOPE) {
+ $scope = PersistedObjectHandler::SUITE_SCOPE;
}
- if ($storeCode) {
- $getEntityFunctionCall .= sprintf(", \"%s\");\n", $storeCode);
+ //Create Function
+ $getEntityFunctionCall = "\t\tPersistedObjectHandler::getInstance()->getEntity(";
+ $getEntityFunctionCall .= "\n\t\t\t\"{$stepKey}\",";
+ $getEntityFunctionCall .= "\n\t\t\t\"{$scope}\",";
+ $getEntityFunctionCall .= "\n\t\t\t\"{$entity}\"";
+ $getEntityFunctionCall .= ",\n\t\t\t[{$requiredEntityKeysArray}]";
+ if ($storeCode !== null) {
+ $getEntityFunctionCall .= ",\n\t\t\t\"{$storeCode}\"";
} else {
- $getEntityFunctionCall .= ");\n";
+ $getEntityFunctionCall .= ",\n\t\t\tnull";
}
-
- //If required-entities are defined, reassign dataObject to not overwrite the static definition.
- //Also, DataPersistenceHandler needs to be defined with customData array.
- if (!empty($requiredEntities)) {
- $dataPersistenceHandlerFunctionCall .= sprintf(
- ", [%s]);\n",
- implode(', ', $requiredEntityObjects)
- );
- } else {
- $dataPersistenceHandlerFunctionCall .= ");\n";
+ if ($index !== null) {
+ $getEntityFunctionCall .= ",\n\t\t\t{$index}";
}
-
- $testSteps .= $dataPersistenceHandlerFunctionCall;
+ $getEntityFunctionCall .= "\n\t\t);\n";
$testSteps .= $getEntityFunctionCall;
+
break;
case "assertArrayIsSorted":
$testSteps .= $this->wrapFunctionCall(
@@ -965,7 +928,12 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
case "dontSeeCookie":
case "resetCookie":
case "seeCookie":
- $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $input, $parameterArray);
+ $testSteps .= $this->wrapFunctionCall(
+ $actor,
+ $actionObject,
+ $input,
+ $parameterArray
+ );
break;
case "grabCookie":
$testSteps .= $this->wrapFunctionCallWithReturnValue(
@@ -982,7 +950,12 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
case "seeElement":
case "seeElementInDOM":
case "seeInFormFields":
- $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $selector, $parameterArray);
+ $testSteps .= $this->wrapFunctionCall(
+ $actor,
+ $actionObject,
+ $selector,
+ $parameterArray
+ );
break;
case "pressKey":
$parameterArray = $customActionAttributes['parameterArray'] ?? null;
@@ -1006,17 +979,42 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
// put the array together as a string to be passed as args
$parameterArray = implode(",", $tmpParameterArray);
}
- $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $selector, $input, $parameterArray);
+ $testSteps .= $this->wrapFunctionCall(
+ $actor,
+ $actionObject,
+ $selector,
+ $input,
+ $parameterArray
+ );
break;
case "selectOption":
case "unselectOption":
- $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $selector, $input, $parameterArray);
+ $testSteps .= $this->wrapFunctionCall(
+ $actor,
+ $actionObject,
+ $selector,
+ $input,
+ $parameterArray
+ );
break;
case "submitForm":
- $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $selector, $parameterArray, $button);
+ $testSteps .= $this->wrapFunctionCall(
+ $actor,
+ $actionObject,
+ $selector,
+ $parameterArray,
+ $button
+ );
break;
case "dragAndDrop":
- $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $selector1, $selector2, $x, $y);
+ $testSteps .= $this->wrapFunctionCall(
+ $actor,
+ $actionObject,
+ $selector1,
+ $selector2,
+ $x,
+ $y
+ );
break;
case "selectMultipleOptions":
$testSteps .= $this->wrapFunctionCall(
@@ -1041,7 +1039,13 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
break;
case "performOn":
case "waitForElementChange":
- $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $selector, $function, $time);
+ $testSteps .= $this->wrapFunctionCall(
+ $actor,
+ $actionObject,
+ $selector,
+ $function,
+ $time
+ );
break;
case "waitForJS":
$testSteps .= $this->wrapFunctionCall(
@@ -1060,7 +1064,13 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
break;
case "waitForPageLoad":
case "waitForText":
- $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $input, $time, $selector);
+ $testSteps .= $this->wrapFunctionCall(
+ $actor,
+ $actionObject,
+ $input,
+ $time,
+ $selector
+ );
break;
case "formatMoney":
$testSteps .= $this->wrapFunctionCallWithReturnValue(
@@ -1264,7 +1274,10 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
break;
case "field":
$fieldKey = $actionObject->getCustomActionAttributes()['key'];
- $input = $this->resolveTestVariable([$input], $actionObject->getActionOrigin())[0];
+ $input = $this->resolveTestVariable(
+ [$input],
+ $actionObject->getActionOrigin()
+ )[0];
$argRef = "\t\t\$";
$argRef .= str_replace(ucfirst($fieldKey), "", $stepKey) . "Fields['{$fieldKey}'] = ${input};\n";
$testSteps .= $argRef;
@@ -1286,7 +1299,13 @@ public function generateStepsPhp($actionObjects, $hookObject = false, $actor = "
$testSteps .= $this->wrapFunctionCall($actor, $actionObject, $customActionAttributes['state']);
break;
default:
- $testSteps .= $this->wrapFunctionCall($actor, $actionObject, $selector, $input, $parameter);
+ $testSteps .= $this->wrapFunctionCall(
+ $actor,
+ $actionObject,
+ $selector,
+ $input,
+ $parameter
+ );
}
}
@@ -1325,13 +1344,9 @@ private function resolveTestVariable($args, $actionOrigin)
continue;
}
$outputArg = $arg;
- // Match on any $$data.key$$ found inside arg, matches[0] will be array of $$data.key$$
- preg_match_all("/\\$\\$[\w.\[\]]+\\$\\$/", $outputArg, $matches);
- $this->replaceMatchesIntoArg($matches[0], $outputArg, "$$");
-
- // Match on any $data.key$ found inside arg, matches[0] will be array of $data.key$
- preg_match_all("/\\$[\w.\[\]]+\\$/", $outputArg, $matches);
- $this->replaceMatchesIntoArg($matches[0], $outputArg, "$");
+ // Math on $data.key$ and $$data.key$$
+ preg_match_all('/\${1,2}[\w.\[\]]+\${1,2}/', $outputArg, $matches);
+ $this->replaceMatchesIntoArg($matches[0], $outputArg);
//trim "{$variable}" into $variable
$outputArg = $this->trimVariableIfNeeded($outputArg);
@@ -1365,16 +1380,16 @@ private function trimVariableIfNeeded($input)
*
* @param array $matches
* @param string $outputArg
- * @param string $delimiter
* @return void
* @throws \Exception
*/
- private function replaceMatchesIntoArg($matches, &$outputArg, $delimiter)
+ private function replaceMatchesIntoArg($matches, &$outputArg)
{
// Remove Duplicate $matches from array. Duplicate matches are replaced all in one go.
$matches = array_unique($matches);
foreach ($matches as $match) {
$replacement = null;
+ $delimiter = '$';
$variable = $this->stripAndSplitReference($match, $delimiter);
if (count($variable) != 2) {
throw new \Exception(
@@ -1382,11 +1397,9 @@ private function replaceMatchesIntoArg($matches, &$outputArg, $delimiter)
Test persisted entity references must follow {$delimiter}entityStepKey.field{$delimiter} format."
);
}
- if ($delimiter == "$") {
- $replacement = sprintf("$%s->getCreatedDataByName('%s')", $variable[0], $variable[1]);
- } elseif ($delimiter == "$$") {
- $replacement = sprintf("\$this->%s->getCreatedDataByName('%s')", $variable[0], $variable[1]);
- }
+
+ $replacement = "PersistedObjectHandler::getInstance()->retrieveEntityField";
+ $replacement .= "('{$variable[0]}', '$variable[1]', '{$this->currentGenerationScope}')";
//Determine if quoteBreak check is necessary. Assume replacement is surrounded in quotes, then override
if (strpos($outputArg, "\"") !== false) {
@@ -1424,7 +1437,7 @@ private function processQuoteBreaks($match, $argument, $replacement)
* @param array $actionGroupOrigin
* @return string
*/
- private function resolveStepKeyReferences($input, $actionGroupOrigin)
+ private function resolveStepKeyReferences($input, $actionGroupOrigin, $matchAll = false)
{
if ($actionGroupOrigin == null) {
return $input;
@@ -1440,14 +1453,21 @@ private function resolveStepKeyReferences($input, $actionGroupOrigin)
foreach ($stepKeys as $stepKey) {
// MQE-1011
$stepKeyVarRef = "$" . $stepKey;
- $classVarRef = "\$this->$stepKey";
+ $persistedVarRef = "PersistedObjectHandler::getInstance()->retrieveEntityField('{$stepKey}'"
+ . ", 'field', 'test')";
+ $persistedVarRefInvoked = "PersistedObjectHandler::getInstance()->retrieveEntityField('"
+ . $stepKey . $testInvocationKey . "', 'field', 'test')";
if (strpos($output, $stepKeyVarRef) !== false) {
$output = str_replace($stepKeyVarRef, $stepKeyVarRef . $testInvocationKey, $output);
}
- if (strpos($output, $classVarRef) !== false) {
- $output = str_replace($classVarRef, $classVarRef . $testInvocationKey, $output);
+ if (strpos($output, $persistedVarRef) !== false) {
+ $output = str_replace($persistedVarRef, $persistedVarRefInvoked, $output);
+ }
+
+ if ($matchAll && strpos($output, $stepKey) !== false) {
+ $output = str_replace($stepKey, $stepKey . $testInvocationKey, $output);
}
}
return $output;
@@ -1515,29 +1535,11 @@ private function stripAndSplitReference($reference, $delimiter)
private function generateHooksPhp($hookObjects)
{
$hooks = "";
- $createData = false;
foreach ($hookObjects as $hookObject) {
$type = $hookObject->getType();
$dependencies = 'AcceptanceTester $I';
- foreach ($hookObject->getActions() as $step) {
- if ($hookObject->getType() == TestObjectExtractor::TEST_FAILED_HOOK) {
- continue;
- }
-
- if (($step->getType() == "createData")
- || ($step->getType() == "updateData")
- || ($step->getType() == "getData")
- ) {
- $hooks .= "\t/**\n";
- $hooks .= sprintf("\t * @var DataPersistenceHandler $%s;\n", $step->getStepKey());
- $hooks .= "\t */\n";
- $hooks .= sprintf("\tprotected $%s;\n\n", $step->getStepKey());
- $createData = true;
- }
- }
-
$hooks .= "\t/**\n";
$hooks .= "\t * @param AcceptanceTester \$I\n";
$hooks .= "\t * @throws \Exception\n";
@@ -1546,7 +1548,7 @@ private function generateHooksPhp($hookObjects)
try {
$steps = $this->generateStepsPhp(
$hookObject->getActions(),
- $createData
+ TestGenerator::HOOK_SCOPE
);
} catch (TestReferenceException $e) {
throw new TestReferenceException($e->getMessage() . " in Element \"" . $type . "\"");
@@ -1715,6 +1717,7 @@ private function addDollarSign($input)
*
* @param string $actor
* @param actionObject $action
+ * @param string $scope
* @param array ...$args
* @return string
* @throws \Exception
@@ -1746,6 +1749,7 @@ private function wrapFunctionCall($actor, $action, ...$args)
* @param string $returnVariable
* @param string $actor
* @param string $action
+ * @param string $scope
* @param array ...$args
* @return string
* @throws \Exception