File: schemaentryelementtest.php

package info (click to toggle)
kuserfeedback 1.3.0-9
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 3,496 kB
  • sloc: cpp: 13,251; php: 2,192; xml: 224; yacc: 90; lex: 82; sh: 17; makefile: 8
file content (57 lines) | stat: -rw-r--r-- 1,754 bytes parent folder | download | duplicates (3)
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
<?php
/*
    SPDX-FileCopyrightText: 2016 Volker Krause <vkrause@kde.org>

    SPDX-License-Identifier: MIT
*/

require_once('../src/server/shared/product.php');
require_once('../src/server/shared/schemaentry.php');
require_once('../src/server/shared/schemaentryelement.php');

class SchemaEntryElementTest extends PHPUnit\Framework\TestCase
{
    public static function dataColumnName_data()
    {
        return [
            'normal' => [ 'foo', 'col_data_entry_foo' ],
            'dot' => [ 'my.value', 'col_data_entry_my_value' ]
        ];
    }

    /** @dataProvider dataColumnName_data */
    public function testDataTableName($input, $output)
    {
        $p = new Product;
        $p->name = 'org.kde.TestProduct';
        $se = new SchemaEntry($p);
        $se->name = 'entry';
        $see = new SchemaEntryElement($se);
        $see->name = $input;
        $this->assertEquals($output, $see->dataColumnName());
    }

    public static function invalidJson_data()
    {
        return [
            'empty' => [ '{}' ],
            'empty name' => [ '{ "name": "", "type": "string" }' ],
            'empty type' => [ '{ "name": "foo", "type": "" }' ],
            'invalid type' => [ '{ "name": "foo", "type": "bla" }' ],
            'invalid name' => [ '{ "name": " foo ", "type": "string" }' ],
            'invalid name 2' => [ '{ "name": "1foo ", "type": "string" }' ]
        ];
    }

    /**
     * @dataProvider invalidJson_data
     */
    public function testInvalidJson($input)
    {
        $this->expectException(RESTException::class);
        $this->expectExceptionCode(400);
        $p = new Product;
        $se = new SchemaEntry($p);
        SchemaEntryElement::fromJson(json_decode('[ ' . $input . ' ]'), $se);
    }
}