Skip to content

Commit 0f496ed

Browse files
committed
MQE-742: Add ability to pass in non-entity parameters when calling operations
- add new field arg for createEntity operations - update object model to handle new field - update verification tests
1 parent a1b7c6c commit 0f496ed

26 files changed

+366
-33
lines changed

dev/tests/verification/Resources/ActionGroupWithDataOverrideTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ActionGroupWithDataOverrideTestCest
3636
{
3737
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
3838
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
39-
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson);
39+
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
4040
$this->createPersonParam->createEntity();
4141
$I->fillField("#foo", "myData1");
4242
$I->fillField("#bar", "myData2");

dev/tests/verification/Resources/ActionGroupWithDataTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ActionGroupWithDataTestCest
3636
{
3737
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
3838
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
39-
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson);
39+
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
4040
$this->createPersonParam->createEntity();
4141
$I->fillField("#foo", "myData1");
4242
$I->fillField("#bar", "myData2");

dev/tests/verification/Resources/ActionGroupWithNoDefaultTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ActionGroupWithNoDefaultTestCest
3636
{
3737
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
3838
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
39-
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson);
39+
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
4040
$this->createPersonParam->createEntity();
4141
$I->fillField("#foo", "myData1");
4242
$I->fillField("#bar", "myData2");

dev/tests/verification/Resources/ActionGroupWithPersistedData.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ActionGroupWithPersistedDataCest
3636
{
3737
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
3838
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
39-
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson);
39+
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
4040
$this->createPersonParam->createEntity();
4141
$I->fillField("#foo", "myData1");
4242
$I->fillField("#bar", "myData2");
@@ -73,7 +73,7 @@ class ActionGroupWithPersistedDataCest
7373
{
7474
$I->amGoingTo("create entity that has the stepKey: createPerson");
7575
$DefaultPerson = DataObjectHandler::getInstance()->getObject("DefaultPerson");
76-
$createPerson = new DataPersistenceHandler($DefaultPerson);
76+
$createPerson = new DataPersistenceHandler($DefaultPerson, []);
7777
$createPerson->createEntity();
7878
$I->amOnPage("/" . $createPerson->getCreatedDataByName('firstname') . "/" . $createPerson->getCreatedDataByName('lastname') . ".html");
7979
$I->fillField("#foo", $createPerson->getCreatedDataByName('firstname'));

dev/tests/verification/Resources/ActionGroupWithTopLevelPersistedData.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ActionGroupWithTopLevelPersistedDataCest
3636
{
3737
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
3838
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
39-
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson);
39+
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
4040
$this->createPersonParam->createEntity();
4141
$I->fillField("#foo", "myData1");
4242
$I->fillField("#bar", "myData2");

dev/tests/verification/Resources/ArgumentWithSameNameAsElement.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class ArgumentWithSameNameAsElementCest
3636
{
3737
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
3838
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
39-
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson);
39+
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
4040
$this->createPersonParam->createEntity();
4141
$I->fillField("#foo", "myData1");
4242
$I->fillField("#bar", "myData2");

dev/tests/verification/Resources/AssertTest.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class AssertTestCest
3232
{
3333
$I->amGoingTo("create entity that has the stepKey: createData1");
3434
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
35-
$this->createData1 = new DataPersistenceHandler($ReplacementPerson);
35+
$this->createData1 = new DataPersistenceHandler($ReplacementPerson, []);
3636
$this->createData1->createEntity();
3737
}
3838

@@ -46,7 +46,7 @@ class AssertTestCest
4646
{
4747
$I->amGoingTo("create entity that has the stepKey: createData2");
4848
$UniquePerson = DataObjectHandler::getInstance()->getObject("UniquePerson");
49-
$createData2 = new DataPersistenceHandler($UniquePerson);
49+
$createData2 = new DataPersistenceHandler($UniquePerson, []);
5050
$createData2->createEntity();
5151
$grabTextFrom1 = $I->grabTextFrom(".copyright>span");
5252
$I->assertArrayIsSorted(["1", "2", "3", "4", "5"], "asc");

dev/tests/verification/Resources/BasicActionGroupTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class BasicActionGroupTestCest
3636
{
3737
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
3838
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
39-
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson);
39+
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
4040
$this->createPersonParam->createEntity();
4141
$I->fillField("#foo", "myData1");
4242
$I->fillField("#bar", "myData2");

dev/tests/verification/Resources/HookActionsTest.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ class HookActionsTestCest
3737
{
3838
$I->amGoingTo("create entity that has the stepKey: sampleCreateBefore");
3939
$sampleCreatedEntity = DataObjectHandler::getInstance()->getObject("sampleCreatedEntity");
40-
$this->sampleCreateBefore = new DataPersistenceHandler($sampleCreatedEntity);
40+
$this->sampleCreateBefore = new DataPersistenceHandler($sampleCreatedEntity, []);
4141
$this->sampleCreateBefore->createEntity();
4242
$I->amGoingTo("delete entity that has the createDataKey: sampleCreateBefore");
4343
$this->sampleCreateBefore->deleteEntity();
4444
$I->amGoingTo("create entity that has the stepKey: sampleCreateForAfter");
4545
$sampleCreatedEntity = DataObjectHandler::getInstance()->getObject("sampleCreatedEntity");
46-
$this->sampleCreateForAfter = new DataPersistenceHandler($sampleCreatedEntity);
46+
$this->sampleCreateForAfter = new DataPersistenceHandler($sampleCreatedEntity, []);
4747
$this->sampleCreateForAfter->createEntity();
4848
}
4949

@@ -60,7 +60,7 @@ class HookActionsTestCest
6060
{
6161
$I->amGoingTo("create entity that has the stepKey: sampleCreateAfter");
6262
$sampleCreatedEntity = DataObjectHandler::getInstance()->getObject("sampleCreatedEntity");
63-
$this->sampleCreateAfter = new DataPersistenceHandler($sampleCreatedEntity);
63+
$this->sampleCreateAfter = new DataPersistenceHandler($sampleCreatedEntity, []);
6464
$this->sampleCreateAfter->createEntity();
6565
$I->amGoingTo("delete entity that has the createDataKey: sampleCreateForAfter");
6666
$this->sampleCreateForAfter->deleteEntity();

dev/tests/verification/Resources/LocatorFunctionTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class LocatorFunctionTestCest
2929
{
3030
$I->amGoingTo("create entity that has the stepKey: data");
3131
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
32-
$data = new DataPersistenceHandler($ReplacementPerson);
32+
$data = new DataPersistenceHandler($ReplacementPerson, []);
3333
$data->createEntity();
3434
$I->click(Locator::contains("'label'", "'Name'"));
3535
$I->click(Locator::contains("'label'", "'Name'"));

dev/tests/verification/Resources/MergedActionGroupTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class MergedActionGroupTestCest
3636
{
3737
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
3838
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
39-
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson);
39+
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
4040
$this->createPersonParam->createEntity();
4141
$I->fillField("#foo", "myData1");
4242
$I->fillField("#bar", "myData2");

dev/tests/verification/Resources/MultipleActionGroupsTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class MultipleActionGroupsTestCest
3636
{
3737
$I->amGoingTo("create entity that has the stepKey: createPersonParam");
3838
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
39-
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson);
39+
$this->createPersonParam = new DataPersistenceHandler($ReplacementPerson, []);
4040
$this->createPersonParam->createEntity();
4141
$I->fillField("#foo", "myData1");
4242
$I->fillField("#bar", "myData2");

dev/tests/verification/Resources/PageReplacementTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class PageReplacementTestCest
2929
{
3030
$I->amGoingTo("create entity that has the stepKey: datakey");
3131
$simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
32-
$datakey = new DataPersistenceHandler($simpleData);
32+
$datakey = new DataPersistenceHandler($simpleData, []);
3333
$datakey->createEntity();
3434
$I->amOnPage("/page.html");
3535
$I->amOnPage("/StringLiteral/page.html");

dev/tests/verification/Resources/ParameterArrayTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class ParameterArrayTestCest
2929
{
3030
$I->amGoingTo("create entity that has the stepKey: simpleDataKey");
3131
$simpleParamData = DataObjectHandler::getInstance()->getObject("simpleParamData");
32-
$simpleDataKey = new DataPersistenceHandler($simpleParamData);
32+
$simpleDataKey = new DataPersistenceHandler($simpleParamData, []);
3333
$simpleDataKey->createEntity();
3434
$I->searchAndMultiSelectOption("#selector", ["name"]);
3535
$I->searchAndMultiSelectOption("#selector", [msq("simpleParamData")."prename"]);

dev/tests/verification/Resources/PersistedReplacementTest.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class PersistedReplacementTestCest
3232
{
3333
$I->amGoingTo("create entity that has the stepKey: createData1");
3434
$ReplacementPerson = DataObjectHandler::getInstance()->getObject("ReplacementPerson");
35-
$this->createData1 = new DataPersistenceHandler($ReplacementPerson);
35+
$this->createData1 = new DataPersistenceHandler($ReplacementPerson, []);
3636
$this->createData1->createEntity();
3737
}
3838

@@ -46,7 +46,7 @@ class PersistedReplacementTestCest
4646
{
4747
$I->amGoingTo("create entity that has the stepKey: createdData");
4848
$simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
49-
$createdData = new DataPersistenceHandler($simpleData);
49+
$createdData = new DataPersistenceHandler($simpleData, []);
5050
$createdData->createEntity();
5151
$I->fillField("#selector", "StringBefore " . $createdData->getCreatedDataByName('firstname') . " StringAfter");
5252
$I->fillField("#" . $createdData->getCreatedDataByName('firstname'), "input");
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
<?php
2+
namespace Magento\AcceptanceTest\_generated\Backend;
3+
4+
use Magento\FunctionalTestingFramework\AcceptanceTester;
5+
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
6+
use Magento\FunctionalTestingFramework\DataGenerator\Persist\DataPersistenceHandler;
7+
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
8+
use \Codeception\Util\Locator;
9+
use Yandex\Allure\Adapter\Annotation\Features;
10+
use Yandex\Allure\Adapter\Annotation\Stories;
11+
use Yandex\Allure\Adapter\Annotation\Title;
12+
use Yandex\Allure\Adapter\Annotation\Description;
13+
use Yandex\Allure\Adapter\Annotation\Parameter;
14+
use Yandex\Allure\Adapter\Annotation\Severity;
15+
use Yandex\Allure\Adapter\Model\SeverityLevel;
16+
use Yandex\Allure\Adapter\Annotation\TestCaseId;
17+
18+
/**
19+
*/
20+
class PersistenceCustomFieldsTestCest
21+
{
22+
/**
23+
* @var DataPersistenceHandler $createData1;
24+
*/
25+
protected $createData1;
26+
27+
/**
28+
* @var DataPersistenceHandler $createData2;
29+
*/
30+
protected $createData2;
31+
32+
/**
33+
* @param AcceptanceTester $I
34+
* @throws \Exception
35+
*/
36+
public function _before(AcceptanceTester $I)
37+
{
38+
$createData1Fields['firstname'] = "Mac";
39+
$createData1Fields['lastname'] = "Doe";
40+
$I->amGoingTo("create entity that has the stepKey: createData1");
41+
$DefaultPerson = DataObjectHandler::getInstance()->getObject("DefaultPerson");
42+
$this->createData1 = new DataPersistenceHandler($DefaultPerson, [], $createData1Fields);
43+
$this->createData1->createEntity();
44+
$createData2Fields['firstname'] = $this->createData1->getCreatedDataByName('firstname');
45+
$I->amGoingTo("create entity that has the stepKey: createData2");
46+
$uniqueData = DataObjectHandler::getInstance()->getObject("uniqueData");
47+
$this->createData2 = new DataPersistenceHandler($uniqueData, [$this->createData1], $createData2Fields);
48+
$this->createData2->createEntity();
49+
}
50+
51+
/**
52+
* @Parameter(name = "AcceptanceTester", value="$I")
53+
* @param AcceptanceTester $I
54+
* @return void
55+
* @throws \Exception
56+
*/
57+
public function PersistenceCustomFieldsTest(AcceptanceTester $I)
58+
{
59+
$createdDataFields['favoriteIndex'] = "1";
60+
$createdDataFields['middlename'] = "Kovacs";
61+
$I->amGoingTo("create entity that has the stepKey: createdData");
62+
$simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
63+
$createdData = new DataPersistenceHandler($simpleData, [], $createdDataFields);
64+
$createdData->createEntity();
65+
$createdData3Fields['firstname'] = "Takeshi";
66+
$createdData3Fields['lastname'] = "Kovacs";
67+
$I->amGoingTo("create entity that has the stepKey: createdData3");
68+
$UniquePerson = DataObjectHandler::getInstance()->getObject("UniquePerson");
69+
$createdData3 = new DataPersistenceHandler($UniquePerson, [$createdData], $createdData3Fields);
70+
$createdData3->createEntity();
71+
$createDataAG1createdAGFields['firstname'] = "string1";
72+
$I->amGoingTo("create entity that has the stepKey: createDataAG1createdAG");
73+
$simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
74+
$createDataAG1createdAG = new DataPersistenceHandler($simpleData, [], $createDataAG1createdAGFields);
75+
$createDataAG1createdAG->createEntity();
76+
$createDataAG2createdAGFields['firstname'] = "Jane";
77+
$I->amGoingTo("create entity that has the stepKey: createDataAG2createdAG");
78+
$simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
79+
$createDataAG2createdAG = new DataPersistenceHandler($simpleData, [], $createDataAG2createdAGFields);
80+
$createDataAG2createdAG->createEntity();
81+
$createDataAG3createdAGFields['firstname'] = $createdData3->getCreatedDataByName('firstname');
82+
$I->amGoingTo("create entity that has the stepKey: createDataAG3createdAG");
83+
$simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
84+
$createDataAG3createdAG = new DataPersistenceHandler($simpleData, [], $createDataAG3createdAGFields);
85+
$createDataAG3createdAG->createEntity();
86+
}
87+
}

dev/tests/verification/Resources/SectionReplacementTest.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class SectionReplacementTestCest
4848
$I->click("#Doe".msq("uniqueData")."-stringLiteral2 .Doe");
4949
$I->amGoingTo("create entity that has the stepKey: createdData");
5050
$simpleData = DataObjectHandler::getInstance()->getObject("simpleData");
51-
$createdData = new DataPersistenceHandler($simpleData);
51+
$createdData = new DataPersistenceHandler($simpleData, []);
5252
$createdData->createEntity();
5353
$I->click("#element ." . $createdData->getCreatedDataByName('firstname'));
5454
$I->click("#" . $createdData->getCreatedDataByName('firstname') . " .stringLiteral2");
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9+
xsi:noNamespaceSchemaLocation="../../../../../src/Magento/FunctionalTestingFramework/Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="PersistenceActionGroup">
11+
<arguments>
12+
<argument name="arg1" type="string"/>
13+
<argument name="arg2"/>
14+
<argument name="arg3"/>
15+
</arguments>
16+
<createData entity="simpleData" stepKey="createDataAG1">
17+
<field key="firstname">{{arg1}}</field>
18+
</createData>
19+
<createData entity="simpleData" stepKey="createDataAG2">
20+
<field key="firstname">{{arg2}}</field>
21+
</createData>
22+
<createData entity="simpleData" stepKey="createDataAG3">
23+
<field key="firstname">{{arg3}}</field>
24+
</createData>
25+
</actionGroup>
26+
</actionGroups>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10+
xsi:noNamespaceSchemaLocation="../../../../../src/Magento/FunctionalTestingFramework/Test/etc/testSchema.xsd">
11+
<test name="PersistenceCustomFieldsTest">
12+
<before>
13+
<createData entity="DefaultPerson" stepKey="createData1">
14+
<field key="firstname">Mac</field>
15+
<field key="lastname">{{simpleData.lastname}}</field>
16+
</createData>
17+
<createData entity="uniqueData" stepKey="createData2">
18+
<requiredEntity createDataKey="createData1"/>
19+
<field key="firstname">$$createData1.firstname$$</field>
20+
</createData>
21+
</before>
22+
<createData entity="simpleData" stepKey="createdData">
23+
<field key="favoriteIndex">1</field>
24+
<field key="middlename">Kovacs</field>
25+
</createData>
26+
<createData entity="UniquePerson" stepKey="createdData3">
27+
<requiredEntity createDataKey="createdData"/>
28+
<field key="firstname">Takeshi</field>
29+
<field key="lastname">Kovacs</field>
30+
</createData>
31+
<actionGroup ref="PersistenceActionGroup" stepKey="createdAG">
32+
<argument name="arg1" value="string1"/>
33+
<argument name="arg2" value="DefaultPerson.firstname"/>
34+
<argument name="arg3" value="$createdData3.firstname$"/>
35+
</actionGroup>
36+
</test>
37+
</tests>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace tests\verification\Tests;
7+
8+
use tests\util\MftfTestCase;
9+
10+
class PersistenceGenerationTest extends MftfTestCase
11+
{
12+
/**
13+
* Tests complex persistence declarations in xml as they are generated to php.
14+
*/
15+
public function testPersistedDeclarations()
16+
{
17+
$this->generateAndCompareTest('PersistenceCustomFieldsTest');
18+
}
19+
}

0 commit comments

Comments
 (0)