aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/williamdes/mariadb-mysql-kbs/test/DataTest.php
blob: c12f576e56f478e1126b1c6dcce0607b94a2259b (plain)
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
63
64
65
66
67
68
69
70
71
72
73
74
<?php
declare(strict_types = 1);
namespace Williamdes\MariaDBMySQLKBS\Test;

use \PHPUnit\Framework\TestCase;
use \Swaggest\JsonSchema\Schema;
use \Swaggest\JsonSchema\Context;
use \stdClass;

class DataTest extends TestCase
{

    /**
     * Validate json data
     *
     * @param stdClass $contents The file contents
     * @param string   $id       The schema id
     * @example validate($slimData, "urn:williamdes:mariadb-mysql-kbs:slimdata");
     * @return bool
     */
    public static function validate(stdClass $contents, string $id): bool
    {
        $options = new Context();
        $options->setRemoteRefProvider(new RefProvider());
        $schema = Schema::import($id, $options);
        $schema->in($contents);
        return true;// No exception occured
    }

    /**
     * test files
     *
     * @return void
     */
    public function testFileSample(): void
    {
        $slimDataTestData = json_decode((string) file_get_contents(__DIR__."/data/ultraSlimDataTestWithVariables.json"));
        $this->assertTrue(self::validate($slimDataTestData, "urn:williamdes:mariadb-mysql-kbs:ultraslimdata"));
    }

    /**
     * test slim data
     *
     * @return void
     */
    public function testFileSlim(): void
    {
        $slimData = json_decode((string) file_get_contents(__DIR__."/../dist/merged-slim.json"));
        $this->assertTrue(self::validate($slimData, "urn:williamdes:mariadb-mysql-kbs:slimdata"));
    }

    /**
     * test ultra slim data
     *
     * @return void
     */
    public function testFileUltraSlim(): void
    {
        $slimData = json_decode((string) file_get_contents(__DIR__."/../dist/merged-ultraslim.json"));
        $this->assertTrue(self::validate($slimData, "urn:williamdes:mariadb-mysql-kbs:ultraslimdata"));
    }

    /**
     * test ultra slim data
     *
     * @return void
     */
    public function testFileRaw(): void
    {
        $slimData = json_decode((string) file_get_contents(__DIR__."/../dist/merged-raw.json"));
        $this->assertTrue(self::validate($slimData, "urn:williamdes:mariadb-mysql-kbs:rawdata"));
    }

}