Completed
Push — master ( bf06ad...9a7adb )
by Martin
01:18
created

DataToTwigConvertorTest::testNothing()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Webuni\FrontMatter\Tests\Twig;
4
5
use PHPUnit\Framework\TestCase;
6
use Symfony\Component\Yaml\Yaml;
7
use Webuni\FrontMatter\Twig\DataToTwigConvertor;
8
9
class DataToTwigConvertorTest extends TestCase
10
{
11
    private $data;
12
13
    public function __construct()
14
    {
15
        parent::__construct();
16
        $this->data = Yaml::parse(file_get_contents(__DIR__.'/data.yaml'), Yaml::PARSE_DATETIME);
17
    }
18
19
    public function testNothing(): void
20
    {
21
        $convertor = DataToTwigConvertor::nothing();
22
        $this->assertEquals('', $convertor->convert($this->data));
23
    }
24
25
    public function testVars(): void
26
    {
27
        $convertor = DataToTwigConvertor::vars();
28
        $twig = '{% set foo = "bar" %}
29
{% set number = 1234 %}
30
{% set pi = 3.14159 %}
31
{% set date = (1464307200|date_modify(\'0sec\')) %}
32
{% set empty = null %}
33
{% set multiline = "Multiple\nLine\nString\n" %}
34
{% set object = {key: "value", datetime: (1605185652|date_modify(\'0sec\')), values: {0: "one", 1: "two", }, } %}
35
';
36
        $this->assertEquals($twig, $convertor->convert($this->data));
37
    }
38
39
    public function testOptionalVars(): void
40
    {
41
        $convertor = DataToTwigConvertor::vars(false);
42
        $twig = '{% set foo = foo is defined ? foo : "bar" %}
43
{% set number = number is defined ? number : 1234 %}
44
{% set pi = pi is defined ? pi : 3.14159 %}
45
{% set date = date is defined ? date : (1464307200|date_modify(\'0sec\')) %}
46
{% set empty = empty is defined ? empty : null %}
47
{% set multiline = multiline is defined ? multiline : "Multiple\nLine\nString\n" %}
48
{% set object = object is defined ? object : {key: "value", datetime: (1605185652|date_modify(\'0sec\')), values: {0: "one", 1: "two", }, } %}
49
';
50
        $this->assertEquals($twig, $convertor->convert($this->data));
51
    }
52
53
    public function testVar(): void
54
    {
55
        $convertor = DataToTwigConvertor::var('parameters');
56
        $twig = '{% set parameters = {foo: "bar", number: 1234, pi: 3.14159, date: (1464307200|date_modify(\'0sec\')), empty: null, multiline: "Multiple\nLine\nString\n", object: {key: "value", datetime: (1605185652|date_modify(\'0sec\')), values: {0: "one", 1: "two", }, }, }%}'."\n";
57
        $this->assertEquals($twig, $convertor->convert($this->data));
58
    }
59
}