Advertisement
oborudko

unit1

Mar 19th, 2021
833
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.09 KB | None | 0 0
  1. <?php
  2.  
  3. namespace app\tests\unit;
  4.  
  5.  
  6. use app\helpers\MergeField;
  7. use app\tests\_fixture\AccountFixture;
  8. use app\tests\_fixture\EventFixture;
  9. use app\tests\_fixture\MergeFieldFixture;
  10. use app\tests\_fixture\RegistrantFixture;
  11. use app\tests\UnitTester;
  12. use Codeception\Test\Unit;
  13.  
  14. class MergeFieldTest extends Unit
  15. {
  16.     /** @var UnitTester */
  17.     protected $tester;
  18.  
  19.     protected $mergeFields = [];
  20.  
  21.     public function __construct($name = null, array $data = [], $dataName = '')
  22.     {
  23.         parent::__construct($name, $data, $dataName);
  24.         \Yii::$container->setSingleton(RegistrantFixture::class);
  25.         \Yii::$container->setSingleton(EventFixture::class);
  26.         \Yii::$container->setSingleton(AccountFixture::class);
  27.  
  28.     }
  29.  
  30.     public function _fixtures(): array
  31.     {
  32.         return [
  33.             'registrant' => ['class' => RegistrantFixture::class, 'dataFile' => codecept_data_dir() . 'registrant.php'],
  34.             'account' => ['class' => AccountFixture::class, 'dataFile' => codecept_data_dir() . 'account.php'],
  35.             'event' => ['class' => EventFixture::class, 'dataFile' => codecept_data_dir() . 'event.php'],
  36.             'mergeField' => ['class' => MergeFieldFixture::class, 'dataFile' => codecept_data_dir() . 'mergeField.php'],
  37.         ];
  38.     }
  39.  
  40.     protected function executeTest($name)
  41.     {
  42.         /** @var MergeFieldFixture $fixture */
  43.         $fixture = $this->tester->grabFixture('mergeField');
  44.         $cases = $fixture->getCase($name);
  45.         $mergeData = $fixture->getMergeData($name);
  46.         foreach ($cases as $case) {
  47.             $actual = MergeField::replace($case['merge'], $mergeData);
  48.             $expected = is_callable($case['expected']) ? $case['expected']($mergeData) : $case['expected'];
  49.             $this->assertEquals($expected, $actual);
  50.         }
  51.     }
  52.  
  53.     public function testFistName()
  54.     {
  55.         $this->executeTest('firstName');
  56.     }
  57.  
  58.     public function testComments()
  59.     {
  60.         $this->executeTest('comment');
  61.     }
  62.  
  63.     public function testLink()
  64.     {
  65.         $this->executeTest('link');
  66.     }
  67.  
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement