Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace app\tests\unit;
- use app\helpers\MergeField;
- use app\tests\_fixture\AccountFixture;
- use app\tests\_fixture\EventFixture;
- use app\tests\_fixture\MergeFieldFixture;
- use app\tests\_fixture\RegistrantFixture;
- use app\tests\UnitTester;
- use Codeception\Test\Unit;
- class MergeFieldTest extends Unit
- {
- /** @var UnitTester */
- protected $tester;
- protected $mergeFields = [];
- public function __construct($name = null, array $data = [], $dataName = '')
- {
- parent::__construct($name, $data, $dataName);
- \Yii::$container->setSingleton(RegistrantFixture::class);
- \Yii::$container->setSingleton(EventFixture::class);
- \Yii::$container->setSingleton(AccountFixture::class);
- }
- public function _fixtures(): array
- {
- return [
- 'registrant' => ['class' => RegistrantFixture::class, 'dataFile' => codecept_data_dir() . 'registrant.php'],
- 'account' => ['class' => AccountFixture::class, 'dataFile' => codecept_data_dir() . 'account.php'],
- 'event' => ['class' => EventFixture::class, 'dataFile' => codecept_data_dir() . 'event.php'],
- 'mergeField' => ['class' => MergeFieldFixture::class, 'dataFile' => codecept_data_dir() . 'mergeField.php'],
- ];
- }
- protected function executeTest($name)
- {
- /** @var MergeFieldFixture $fixture */
- $fixture = $this->tester->grabFixture('mergeField');
- $cases = $fixture->getCase($name);
- $mergeData = $fixture->getMergeData($name);
- foreach ($cases as $case) {
- $actual = MergeField::replace($case['merge'], $mergeData);
- $expected = is_callable($case['expected']) ? $case['expected']($mergeData) : $case['expected'];
- $this->assertEquals($expected, $actual);
- }
- }
- public function testFistName()
- {
- $this->executeTest('firstName');
- }
- public function testComments()
- {
- $this->executeTest('comment');
- }
- public function testLink()
- {
- $this->executeTest('link');
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement