1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
<?php
declare(strict_types = 1);
namespace Williamdes\MariaDBMySQLKBS\Test;
use PHPUnit\Framework\Attributes\Depends;
use PHPUnit\Framework\TestCase;
use Williamdes\MariaDBMySQLKBS\SlimData;
class SlimDataTest extends TestCase
{
/**
* Create an instance of SlimData
*
* @return SlimData
*/
public function testCreateInstance(): SlimData
{
$slimData = new SlimData();
$this->assertInstanceOf(SlimData::class, $slimData);
return $slimData;
}
/**
* Test json_encode empty object
*
* @param SlimData $slimData SlimData instance
* @return void
*/
#[Depends('testCreateInstance')]
public function testToJsonEmpty(SlimData $slimData): void
{
$this->assertEquals('{"version":2}', json_encode($slimData));
}
/**
* Test json_encode with variables
*
* @param SlimData $slimData SlimData instance
* @return void
*/
#[Depends('testCreateInstance')]
public function testToJsonWithVariables(SlimData $slimData): void
{
$slimData->addVariable('Test_var', 'boolean', true);
$slimData->addVariable('another-variable', 'string', false);
$kbe = $slimData->addVariable('doc-variable_ok', 'integer', true);
$kbe->addDocumentation('https://example.org/williamdes/mariadb-mysql-kbs', 'a_doc-variable_ok');
$kbe->addDocumentation('https://example.org/williamdes/mariadb-mysql-kbs', 'a_href_ok');
$kbe->addDocumentation('https://example.org/williamdes/mariadb-mysql-kbs/_doc-variable_ok');
$kbe->addDocumentation('https://dev.mysql.com/');
$kbe->addDocumentation('https://mariadb.com/');
$kbe->addDocumentation('https://mariadb.com/', 'anchorname');
$this->assertEquals(
file_get_contents(__DIR__ . '/data/ultraSlimDataTestWithVariables.json'),
json_encode($slimData, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT)
);
}
}
|