Skip to content

Commit

Permalink
Added Dumpable tests
Browse files Browse the repository at this point in the history
  • Loading branch information
rudashi committed Jun 19, 2024
1 parent 5967cfa commit 6e9deda
Showing 1 changed file with 83 additions and 0 deletions.
83 changes: 83 additions & 0 deletions tests/Unit/DumpableTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
<?php

declare(strict_types=1);

use Rudashi\FluentBuilder;
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Symfony\Component\VarDumper\Dumper\CliDumper;
use Symfony\Component\VarDumper\Test\VarDumperTestTrait;
use Symfony\Component\VarDumper\VarDumper;

uses(VarDumperTestTrait::class);

const EXPECTED_DUMP = [
FluentBuilder::class,
'#context: ""\n',
'#patterns: []\n',
'#pattern: []\n',
'#modifiers: []\n',
'#anchors: Rudashi\Anchors',
'-prefix: []\n',
'-suffix: []\n',
'-builder: Rudashi\FluentBuilder',
'-delimiter: "/"\n',
'-isSub: false\n',
];

beforeEach(function () {
$cloner = new VarCloner();
$dumper = new CliDumper('php://output');
VarDumper::setHandler(function ($var) use ($cloner, $dumper) {
$dumper->dump($cloner->cloneVar($var));
});

$this->builder = new FluentBuilder();
});

it('can use `dump`', function () {
ob_start();

$result = $this->builder->dump();
$dump = ob_get_clean();

expect($result)
->toBeInstanceOf(FluentBuilder::class)
->and($this->getDump($dump))
->toContain(...EXPECTED_DUMP);
});

it('can use `dump` with argument', function () {
$var1 = 'Lorem ipsum';

ob_start();
$this->builder->dump($var1);
$dump = ob_get_clean();

expect($this->getDump($dump))
->toContain(
'}\n
"Lorem ipsum"\n
"""',
...EXPECTED_DUMP,
);
});

it('can use `dump` with arguments', function () {
$var1 = 'Lorem';
$var2 = 'ipsum';
$var3 = 'dolor';

ob_start();
$this->builder->dump($var1, $var2, $var3);
$dump = ob_get_clean();

expect($this->getDump($dump))
->toContain(
'}\n
"Lorem"\n
"ipsum"\n
"dolor"\n
"""',
...EXPECTED_DUMP,
);
});

0 comments on commit 6e9deda

Please sign in to comment.