Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
MftfTestCase.php
Go to the documentation of this file.
1 <?php
6 namespace tests\util;
7 
11 use PHPUnit\Framework\TestCase;
12 
13 abstract class MftfTestCase extends TestCase
14 {
16  DIRECTORY_SEPARATOR .
17  '..' .
18  DIRECTORY_SEPARATOR .
19  'verification' .
20  DIRECTORY_SEPARATOR .
21  'Resources';
22 
29  public function generateAndCompareTest($testName)
30  {
31  $testObject = TestObjectHandler::getInstance()->getObject($testName);
32  $test = TestGenerator::getInstance(null, [$testObject]);
33  $test->createAllTestFiles();
34 
35  $cestFile = $test->getExportDir() .
36  DIRECTORY_SEPARATOR .
37  $testObject->getCodeceptionName() .
38  ".php";
39 
40  $this->assertTrue(file_exists($cestFile));
41 
42  $this->assertFileEquals(
43  self::RESOURCES_PATH . DIRECTORY_SEPARATOR . $testObject->getName() . ".txt",
44  $cestFile
45  );
46  }
47 
56  public function validateSchemaErrorWithTest($fileContents, $objectType ,$expectedError)
57  {
58  $this->clearHandler();
59  $fullTestModulePath = TESTS_MODULE_PATH .
60  DIRECTORY_SEPARATOR .
61  'TestModule' .
62  DIRECTORY_SEPARATOR .
63  $objectType .
64  DIRECTORY_SEPARATOR;
65 
66  foreach ($fileContents as $fileName => $fileContent) {
67  $tempFile = $fullTestModulePath . $fileName;
68  $handle = fopen($tempFile, 'w') or die('Cannot open file: ' . $tempFile);
69  fwrite($handle, $fileContent);
70  fclose($handle);
71  }
72  try {
73  $this->expectExceptionMessage($expectedError);
74  TestObjectHandler::getInstance()->getObject("someTest");
75  } finally {
76  foreach (array_keys($fileContents) as $fileName) {
77  unlink($fullTestModulePath . $fileName);
78  }
79  $this->clearHandler();
80  }
81  }
82 
88  private function clearHandler()
89  {
90  // clear test object handler to force recollection of test data
91  $property = new \ReflectionProperty(TestObjectHandler::class, 'testObjectHandler');
92  $property->setAccessible(true);
93  $property->setValue(null);
94 
95  // clear test object handler to force recollection of test data
96  $property = new \ReflectionProperty(ObjectManager::class, 'instance');
97  $property->setAccessible(true);
98  $property->setValue(null);
99  }
100 }
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60
static getInstance($dir=null, $tests=[], $debug=false)
validateSchemaErrorWithTest($fileContents, $objectType, $expectedError)
$fileName
Definition: translate.phtml:15
$handle
generateAndCompareTest($testName)