Skip to content

Commit 06432dd

Browse files
authored
Merge branch 'develop' into pr-809
2 parents e4f5060 + 7dbf22b commit 06432dd

File tree

5 files changed

+61
-21
lines changed

5 files changed

+61
-21
lines changed

dev/tests/functional/standalone_bootstrap.php

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,3 @@
7070

7171
$RELATIVE_TESTS_MODULE_PATH = '/tests/functional/tests/MFTF';
7272
defined('TESTS_MODULE_PATH') || define('TESTS_MODULE_PATH', realpath(TESTS_BP . $RELATIVE_TESTS_MODULE_PATH));
73-
74-
75-
// add the debug flag here
76-
$debug_mode = $_ENV['MFTF_DEBUG'] ?? false;
77-
if (!(bool)$debug_mode && extension_loaded('xdebug')) {
78-
xdebug_disable();
79-
}

dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Persist/OperationDataArrayResolverTest.php

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,60 @@ public function testNestedMetadataArrayOfDiverseObjects()
477477
$this->assertEquals($expectedResult, $result);
478478
}
479479

480+
public function testExtendedWithRequiredEntity()
481+
{
482+
$entityDataObjectBuilder = new EntityDataObjectBuilder();
483+
$extEntityDataObject = $entityDataObjectBuilder
484+
->withName("extEntity")
485+
->withType("entity")
486+
->withLinkedEntities(["baseSubentity" => "subentity","extSubentity" => "subentity"])
487+
->build();
488+
489+
$mockDOHInstance = AspectMock::double(DataObjectHandler::class, ["getObject" => function ($name) {
490+
$entityDataObjectBuilder = new EntityDataObjectBuilder();
491+
492+
if ($name == "baseSubentity") {
493+
return $entityDataObjectBuilder
494+
->withName("baseSubentity")
495+
->withType("subentity")
496+
->withDataFields(["subtest" => "BaseSubtest"])
497+
->build();
498+
}
499+
500+
if ($name == "extSubentity") {
501+
return $entityDataObjectBuilder
502+
->withName("extSubentity")
503+
->withType("subentity")
504+
->withDataFields(["subtest" => "ExtSubtest"])
505+
->build();
506+
}
507+
}])->make();
508+
AspectMock::double(DataObjectHandler::class, ['getInstance' => $mockDOHInstance]);
509+
510+
$subentityOpElementBuilder = new OperationElementBuilder();
511+
$subentityOpElement = $subentityOpElementBuilder
512+
->withKey("sub")
513+
->withType("subentity")
514+
->withElementType("object")
515+
->withFields(["subtest" => "string"])
516+
->build();
517+
518+
$operationResolver = new OperationDataArrayResolver();
519+
$result = $operationResolver->resolveOperationDataArray(
520+
$extEntityDataObject,
521+
[$subentityOpElement],
522+
"create",
523+
false
524+
);
525+
526+
$expected = [
527+
"sub" => [
528+
"subtest" => "ExtSubtest"
529+
]
530+
];
531+
532+
$this->assertEquals($expected, $result);
533+
}
480534
/**
481535
* After class functionality
482536
* @return void

src/Magento/FunctionalTestingFramework/Config/MftfApplicationConfig.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,17 +100,15 @@ private function __construct(
100100

101101
$this->phase = $phase;
102102
$this->verboseEnabled = $verboseEnabled;
103-
if (isset($debugLevel) && !in_array(strtolower($debugLevel), self::MFTF_DEBUG_LEVEL)) {
103+
if (!in_array(strtolower($debugLevel), self::MFTF_DEBUG_LEVEL)) {
104104
throw new TestFrameworkException("{$debugLevel} is not a debug level. Use 'DEFAULT' or 'DEVELOPER'");
105105
}
106106
switch (strtolower($debugLevel)) {
107-
case self::LEVEL_DEVELOPER:
108107
case self::LEVEL_DEFAULT:
109-
$this->debugLevel = $debugLevel;
108+
$this->debugLevel = self::LEVEL_DEFAULT;
110109
break;
111-
case null:
110+
default:
112111
$this->debugLevel = self::LEVEL_DEVELOPER;
113-
break;
114112
}
115113
$this->allowSkipped = $allowSkipped;
116114
$this->filterList = new FilterList($filters);
@@ -196,7 +194,7 @@ public function verboseEnabled()
196194
*/
197195
public function getDebugLevel()
198196
{
199-
return $this->debugLevel ?? getenv('MFTF_DEBUG');
197+
return $this->debugLevel;
200198
}
201199

202200
/**

src/Magento/FunctionalTestingFramework/DataGenerator/Persist/OperationDataArrayResolver.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,11 @@ private function getDependentEntitiesOfType($type)
245245
private function resolveOperationObjectAndEntityData($entityObject, $operationElementValue)
246246
{
247247
if ($operationElementValue != $entityObject->getType()) {
248-
// if we have a mismatch attempt to retrieve linked data and return just the first linkage
248+
// if we have a mismatch attempt to retrieve linked data and return just the last linkage
249+
// this enables overwriting of required entity fields
249250
$linkName = $entityObject->getLinkedEntitiesOfType($operationElementValue);
250251
if (!empty($linkName)) {
251-
$linkName = $linkName[0];
252+
$linkName = array_pop($linkName);
252253
return DataObjectHandler::getInstance()->getObject($linkName);
253254
}
254255
return null;

src/Magento/FunctionalTestingFramework/_bootstrap.php

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,3 @@
7474
'TESTS_MODULE_PATH',
7575
realpath(TESTS_BP . $RELATIVE_TESTS_MODULE_PATH)
7676
);
77-
78-
// add the debug flag here
79-
$debugMode = $_ENV['MFTF_DEBUG'] ?? false;
80-
if (!(bool)$debugMode && extension_loaded('xdebug')) {
81-
xdebug_disable();
82-
}

0 commit comments

Comments
 (0)