Skip to content

Commit f8dd6db

Browse files
committed
MQE-1974: Report used deprecated metadata in Test
1 parent cc36743 commit f8dd6db

File tree

5 files changed

+39
-41
lines changed

5 files changed

+39
-41
lines changed

src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/DataObjectHandler.php

Lines changed: 19 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,8 @@ class DataObjectHandler implements ObjectHandlerInterface
7575

7676
/**
7777
* Constructor
78-
* @param boolean $validateName Set to false to disable name validations.
79-
* @throws XmlException
8078
*/
81-
private function __construct($validateName = true)
79+
private function __construct()
8280
{
8381
$parser = ObjectManagerFactory::getObjectManager()->create(DataProfileSchemaParser::class);
8482
$parserOutput = $parser->readDataProfiles();
@@ -87,21 +85,20 @@ private function __construct($validateName = true)
8785
}
8886
$this->entityNameValidator = new NameValidationUtil();
8987
$this->entityKeyValidator = new NameValidationUtil();
90-
$this->entityDataObjects = $this->processParserOutput($parserOutput, $validateName);
88+
$this->entityDataObjects = $this->processParserOutput($parserOutput);
9189
$this->extendUtil = new DataExtensionUtil();
9290
}
9391

9492
/**
9593
* Return the singleton instance of this class. Initialize it if needed.
9694
*
97-
* @param boolean $validateName
9895
* @return DataObjectHandler
9996
* @throws \Exception
10097
*/
101-
public static function getInstance($validateName = true)
98+
public static function getInstance()
10299
{
103100
if (!self::$INSTANCE) {
104-
self::$INSTANCE = new DataObjectHandler($validateName);
101+
self::$INSTANCE = new DataObjectHandler();
105102
}
106103
return self::$INSTANCE;
107104
}
@@ -138,13 +135,11 @@ public function getAllObjects()
138135
* Convert the parser output into a collection of EntityDataObjects
139136
*
140137
* @param string[] $parserOutput Primitive array output from the Magento parser.
141-
* @param boolean $validateName
142138
* @return EntityDataObject[]
143139
* @throws XmlException
144140
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
145-
* @SuppressWarnings(PHPMD.NPathComplexity)
146141
*/
147-
private function processParserOutput($parserOutput, $validateName = true)
142+
private function processParserOutput($parserOutput)
148143
{
149144
$entityDataObjects = [];
150145
$rawEntities = $parserOutput[self::_ENTITY];
@@ -155,13 +150,11 @@ private function processParserOutput($parserOutput, $validateName = true)
155150
}
156151

157152
$filename = $rawEntity[self::_FILENAME] ?? null;
158-
if ($validateName) {
159-
$this->entityNameValidator->validatePascalCase(
160-
$name,
161-
NameValidationUtil::DATA_ENTITY_NAME,
162-
$filename
163-
);
164-
}
153+
$this->entityNameValidator->validatePascalCase(
154+
$name,
155+
NameValidationUtil::DATA_ENTITY_NAME,
156+
$filename
157+
);
165158
$type = $rawEntity[self::_TYPE] ?? null;
166159
$data = [];
167160
$deprecated = null;
@@ -171,7 +164,7 @@ private function processParserOutput($parserOutput, $validateName = true)
171164
$parentEntity = null;
172165

173166
if (array_key_exists(self::_DATA, $rawEntity)) {
174-
$data = $this->processDataElements($rawEntity, $validateName);
167+
$data = $this->processDataElements($rawEntity);
175168
$uniquenessData = $this->processUniquenessData($rawEntity);
176169
}
177170

@@ -217,10 +210,8 @@ private function processParserOutput($parserOutput, $validateName = true)
217210

218211
$entityDataObjects[$entityDataObject->getName()] = $entityDataObject;
219212
}
220-
if ($validateName) {
221-
$this->entityNameValidator->summarize(NameValidationUtil::DATA_ENTITY_NAME);
222-
$this->entityKeyValidator->summarize(NameValidationUtil::DATA_ENTITY_KEY);
223-
}
213+
$this->entityNameValidator->summarize(NameValidationUtil::DATA_ENTITY_NAME);
214+
$this->entityKeyValidator->summarize(NameValidationUtil::DATA_ENTITY_KEY);
224215
return $entityDataObjects;
225216
}
226217

@@ -246,22 +237,19 @@ private function processArray($arrayItems, $data, $key)
246237
* Parses <data> elements in an entity, and returns them as an array of "lowerKey"=>value.
247238
*
248239
* @param string[] $entityData
249-
* @param boolean $validateName
250240
* @return string[]
251241
*/
252-
private function processDataElements($entityData, $validateName = true)
242+
private function processDataElements($entityData)
253243
{
254244
$dataValues = [];
255245
foreach ($entityData[self::_DATA] as $dataElement) {
256246
$originalDataElementKey = $dataElement[self::_KEY];
257247
$filename = $entityData[self::_FILENAME] ?? null;
258-
if ($validateName) {
259-
$this->entityKeyValidator->validateCamelCase(
260-
$originalDataElementKey,
261-
NameValidationUtil::DATA_ENTITY_KEY,
262-
$filename
263-
);
264-
}
248+
$this->entityKeyValidator->validateCamelCase(
249+
$originalDataElementKey,
250+
NameValidationUtil::DATA_ENTITY_KEY,
251+
$filename
252+
);
265253
$dataElementKey = strtolower($originalDataElementKey);
266254
$dataElementValue = $dataElement[self::_VALUE] ?? "";
267255
$dataValues[$dataElementKey] = $dataElementValue;

src/Magento/FunctionalTestingFramework/DataGenerator/Handlers/PersistedObjectHandler.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public function createEntity(
8787
$retrievedDependentObjects[] = $this->retrieveEntity($objectKey, $scope);
8888
}
8989

90-
$retrievedEntity = DataObjectHandler::getInstance(false)->getObject($entity);
90+
$retrievedEntity = DataObjectHandler::getInstance()->getObject($entity);
9191

9292
if ($retrievedEntity === null) {
9393
throw new TestReferenceException(
@@ -163,7 +163,7 @@ public function getEntity($key, $scope, $entity, $dependentObjectKeys = [], $sto
163163
$retrievedDependentObjects[] = $this->retrieveEntity($objectKey, $scope);
164164
}
165165

166-
$retrievedEntity = DataObjectHandler::getInstance(false)->getObject($entity);
166+
$retrievedEntity = DataObjectHandler::getInstance()->getObject($entity);
167167
$persistedObject = new DataPersistenceHandler(
168168
$retrievedEntity,
169169
$retrievedDependentObjects

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ public function __construct($operation, $entityObject, $storeCode = null)
9292
$this->operation,
9393
$this->entityObject->getType()
9494
);
95-
$this->operationDefinition->logDeprecated();
9695
$this->isJson = false;
9796
}
9897

@@ -124,6 +123,7 @@ public function executeRequest($dependentEntities)
124123
$returnRegex = $this->operationDefinition->getReturnRegex();
125124
$returnIndex = $this->operationDefinition->getReturnIndex();
126125
$method = $this->operationDefinition->getApiMethod();
126+
$this->operationDefinition->logDeprecated();
127127
AllureHelper::addAttachmentToCurrentStep($apiUrl, 'API Endpoint');
128128
AllureHelper::addAttachmentToCurrentStep(json_encode($headers, JSON_PRETTY_PRINT), 'Request Headers');
129129

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public function updateEntity($updateDataName, $updateDependentObjects = [])
110110
foreach ($updateDependentObjects as $dependentObject) {
111111
$this->dependentObjects[] = $dependentObject->getCreatedObject();
112112
}
113-
$updateEntityObject = DataObjectHandler::getInstance(false)->getObject($updateDataName);
113+
$updateEntityObject = DataObjectHandler::getInstance()->getObject($updateDataName);
114114
$curlHandler = new CurlHandler('update', $updateEntityObject, $this->storeCode);
115115
$result = $curlHandler->executeRequest(array_merge($this->dependentObjects, [$this->createdObject]));
116116
$this->setCreatedObject(

src/Magento/FunctionalTestingFramework/Util/Logger/MftfLogger.php

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public function __construct($name, array $handlers = [], array $processors = [])
3636

3737
/**
3838
* Prints a deprecation warning, as well as adds a log at the WARNING level.
39+
* Suppresses logging during execution phase.
3940
*
4041
* @param string $message The log message.
4142
* @param array $context The log context.
@@ -45,11 +46,16 @@ public function __construct($name, array $handlers = [], array $processors = [])
4546
public function deprecation($message, array $context = [], $verbose = false)
4647
{
4748
$message = "DEPRECATION: " . $message;
48-
// Suppress print during unit testing
49-
if ($this->phase !== MftfApplicationConfig::UNIT_TEST_PHASE && $verbose) {
49+
// print during test generation including metadata
50+
if ((array_key_exists('operationType', $context) ||
51+
$this->phase === MftfApplicationConfig::GENERATION_PHASE) && $verbose) {
5052
print ($message . json_encode($context) . "\n");
5153
}
52-
parent::warning($message, $context);
54+
// suppress logging during test execution except metadata
55+
if (array_key_exists('operationType', $context) ||
56+
$this->phase !== MftfApplicationConfig::EXECUTION_PHASE) {
57+
parent::warning($message, $context);
58+
}
5359
}
5460

5561
/**
@@ -72,6 +78,7 @@ public function criticalFailure($message, array $context = [], $verbose = false)
7278

7379
/**
7480
* Adds a log record at the NOTICE level.
81+
* Suppresses logging during execution phase.
7582
*
7683
* @param string $message
7784
* @param array $context
@@ -81,10 +88,13 @@ public function criticalFailure($message, array $context = [], $verbose = false)
8188
public function notification($message, array $context = [], $verbose = false)
8289
{
8390
$message = "NOTICE: " . $message;
84-
// Suppress print during unit testing
85-
if ($this->phase !== MftfApplicationConfig::UNIT_TEST_PHASE && $verbose) {
91+
// print during test generation
92+
if ($this->phase === MftfApplicationConfig::GENERATION_PHASE && $verbose) {
8693
print ($message . json_encode($context) . "\n");
8794
}
88-
parent::notice($message, $context);
95+
// suppress logging during test execution
96+
if ($this->phase !== MftfApplicationConfig::EXECUTION_PHASE) {
97+
parent::notice($message, $context);
98+
}
8999
}
90100
}

0 commit comments

Comments
 (0)