Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

jsarnowski / jsarnowski/brizy-pro   php

Repository URL to install this package:

Version: 2.3.7 

/ bagrinsergiu / brizy-forms-sdk / tests / BrizyForms / FieldMapTest.php

<?php

namespace Tests\BrizyForms;

use BrizyForms\FieldMap;
use BrizyForms\Model\Data;
use BrizyForms\Model\FieldLink;
use BrizyForms\Model\TransformedData;

require __DIR__ . '/../../vendor/autoload.php';

class FieldMapTest extends \PHPUnit_Framework_TestCase
{
    public function testMap1()
    {
        $this->setExpectedException('BrizyForms\Exception\FieldMapException', '"sourceId" && "sourceTitle" && "target" are required properties');

        new FieldMap([['test' => 'test']]);
    }

    public function testMap2()
    {
        $this->setExpectedException('BrizyForms\Exception\FieldMapException', '"sourceId" && "sourceTitle" && "target" are required properties');

        new FieldMap([['source_id' => 'dfdfd']]);
    }

    public function testMap3()
    {
        $this->setExpectedException('BrizyForms\Exception\FieldMapException', '"sourceId" && "sourceTitle" && "target" are required properties');

        new FieldMap([['source_id' => 'dfdfd', 'source_title' => 'dfdfd']]);
    }

    public function testMap4()
    {
        $this->setExpectedException('BrizyForms\Exception\FieldMapException', '"sourceId" && "sourceTitle" && "target" are required properties');

        new FieldMap([['source_id' => 'dfdfd', 'target' => 'dfdfd']]);
    }

    public function testMapOutputToArray()
    {
        $fieldMap = new FieldMap([['sourceId' => 'dfdfd', 'target' => 'dfdfd', 'sourceTitle' => 'sdasdas']]);

        $fieldLink = new FieldLink();
        $fieldLink
            ->setSourceTitle('sdasdas')
            ->setSourceId('dfdfd')
            ->setTarget('dfdfd');

        $output = [
            $fieldLink
        ];

        $this->assertEquals($output, $fieldMap->toArray());
    }

    public function testTransform()
    {
        //data from editor integration setting
        $fieldMap = new FieldMap([
            ['sourceId' => '1', 'target' => 'email', 'sourceTitle' => 'Email'],
            ['sourceId' => '2', 'target' => 'name', 'sourceTitle' => 'Name']
        ]);

        // data from preview (form.submit)
        $data = [
            new Data('1', 'bodnar@gmail.com'),
            new Data('2', 'Anthony')
        ];

        $actual = $fieldMap->transform($data);

        $output = new TransformedData();
        $output
            ->setEmail("bodnar@gmail.com")
            ->setFields([
                'name' => 'Anthony'
            ]);

        $this->assertEquals($output, $actual);
    }

    public function testTransformExpectedException()
    {
        $this->setExpectedException('BrizyForms\Exception\FieldMapException', 'Not instanceof Data');

        //data from editor integration setting
        $fieldMap = new FieldMap([
            ['sourceId' => '1', 'target' => 'email', 'sourceTitle' => 'Email'],
            ['sourceId' => '2', 'target' => 'name', 'sourceTitle' => 'Name']
        ]);

        $data = '[{"name":"2","value":"Anthony","required":false,"type":"text","slug":"name"},{"name":"1","value":"bodnar.llk@gmail.com","required":false,"type":"email","slug":"email"}]';
        $data = json_decode($data, true);

        $actual = $fieldMap->transform($data);

        $output = new TransformedData();
        $output
            ->setEmail("bodnar@gmail.com")
            ->setFields([
                'name' => 'Anthony'
            ]);

        $this->assertEquals($output, $actual);
    }

    public function testTransformExpectedExceptionNotEmail()
    {
        $this->setExpectedException('BrizyForms\Exception\FieldMapException', 'Email was not found.');

        //data from editor integration setting
        $fieldMap = new FieldMap([
            ['sourceId' => '1', 'target' => 'email', 'sourceTitle' => 'Email'],
            ['sourceId' => '2', 'target' => 'name', 'sourceTitle' => 'Name']
        ]);

        // data from preview (form.submit)
        $data = [
            new Data('1', 'notvalidemail'),
            new Data('2', 'Anthony')
        ];

        $actual = $fieldMap->transform($data);

        $output = new TransformedData();
        $output
            ->setEmail("bodnar@gmail.com")
            ->setFields([
                'name' => 'Anthony'
            ]);

        $this->assertEquals($output, $actual);
    }

}