8 use AspectMock\Test as AspectMock;
15 use tests\unit\Util\DataObjectHandlerReflectionUtil;
39 $testObjNamePosBeforeFirst =
'testBeforeBeforeMerge';
40 $testObjNamePosFirst =
'testBeforeMerge0';
41 $testObjNamePosEnd =
'testAfterMerge10';
42 $testObjNamePosAfterEnd =
'testAfterAfterMerge10';
44 for (
$i = 1;
$i < $actionsLength;
$i++) {
45 $stepKey =
'stepKey'.
$i;
47 $actionAttributes = [];
53 $testObjNamePosAfterEnd,
60 $testObjNamePosBeforeFirst,
77 'stepKey' . (
string)($actionsLength - 1),
82 $orderedActions = $mergeUtil->resolveActionSteps($actions);
83 $orderedActionKeys = array_keys($orderedActions);
85 $this->assertEquals($testObjNamePosBeforeFirst, $orderedActionKeys[0]);
86 $this->assertEquals($testObjNamePosFirst, $orderedActionKeys[1]);
87 $this->assertEquals($testObjNamePosEnd, $orderedActionKeys[$actionsLength + 1]);
88 $this->assertEquals($testObjNamePosAfterEnd, $orderedActionKeys[$actionsLength + 2]);
98 $dataObjectName =
'myObject';
99 $dataObjectType =
'testObject';
100 $dataFieldName =
'myfield';
101 $dataFieldValue =
'myValue';
102 $userInputKey =
"userInput";
103 $userinputValue =
"{{" .
"${dataObjectName}.${dataFieldName}}}";
104 $actionName =
"myAction";
105 $actionType =
"myCustomType";
108 $mockData = [$dataFieldName => $dataFieldValue];
109 $mockDataObject =
new EntityDataObject($dataObjectName, $dataObjectType, $mockData,
null,
null,
null);
112 $mockDOHInstance = AspectMock::double(DataObjectHandler::class, [
'getObject' => $mockDataObject])->make();
113 AspectMock::double(DataObjectHandler::class, [
'getInstance' => $mockDOHInstance]);
116 $actionAttributes = [$userInputKey => $userinputValue];
117 $actions[$actionName] =
new ActionObject($actionName, $actionType, $actionAttributes);
119 $this->assertEquals($userinputValue, $actions[$actionName]->getCustomActionAttributes()[$userInputKey]);
122 $resolvedActions = $mergeUtil->resolveActionSteps($actions);
124 $this->assertEquals($dataFieldValue, $resolvedActions[$actionName]->getCustomActionAttributes()[$userInputKey]);
136 $actionObjects[] =
new ActionObject(
'actionKey1',
'bogusType', []);
141 'badActionReference',
145 $this->expectException(\
Magento\FunctionalTestingFramework\Exceptions\XmlException::class);
147 $actionMergeUtil =
new ActionMergeUtil(
"actionMergeUtilTest",
"TestCase");
148 $actionMergeUtil->resolveActionSteps($actionObjects);
158 $actionObjectOne =
new ActionObject(
'actionKey1',
'bogusType', []);
159 $actionObjectOne->setTimeout(42);
160 $actionObjects = [$actionObjectOne];
162 $actionMergeUtil =
new ActionMergeUtil(
"actionMergeUtilTest",
"TestCase");
163 $result = $actionMergeUtil->resolveActionSteps($actionObjects);
165 $actual =
$result[
'actionKey1WaitForPageLoad'];
167 'actionKey1WaitForPageLoad',
173 $this->assertEquals($expected, $actual);
testResolveActionStepOrdering()
const MERGE_ACTION_ORDER_AFTER
testResolveActionStepEntityData()
const MERGE_ACTION_ORDER_BEFORE
static tearDownAfterClass()