xref: /plugin/struct/_test/SchemaTest.php (revision 8fed17f342cc190557a6ce94d1787f9e2f63cb6c)
1*8fed17f3SAndreas Gohr<?php
2*8fed17f3SAndreas Gohr
3*8fed17f3SAndreas Gohrnamespace dokuwiki\plugin\struct\test;
4*8fed17f3SAndreas Gohr
5*8fed17f3SAndreas Gohruse dokuwiki\plugin\struct\meta\Schema;
6*8fed17f3SAndreas Gohruse dokuwiki\plugin\struct\meta\StructException;
7*8fed17f3SAndreas Gohr
8*8fed17f3SAndreas Gohr/**
9*8fed17f3SAndreas Gohr * @group plugin_struct
10*8fed17f3SAndreas Gohr * @group plugins
11*8fed17f3SAndreas Gohr *
12*8fed17f3SAndreas Gohr */
13*8fed17f3SAndreas Gohrclass SchemaTest extends StructTest
14*8fed17f3SAndreas Gohr{
15*8fed17f3SAndreas Gohr
16*8fed17f3SAndreas Gohr    /**
17*8fed17f3SAndreas Gohr     * @return array
18*8fed17f3SAndreas Gohr     * @see schema_struct_test::test_cleanTableName
19*8fed17f3SAndreas Gohr     */
20*8fed17f3SAndreas Gohr    public static function cleanTableName_testdata()
21*8fed17f3SAndreas Gohr    {
22*8fed17f3SAndreas Gohr        return [
23*8fed17f3SAndreas Gohr            [
24*8fed17f3SAndreas Gohr                'abc',
25*8fed17f3SAndreas Gohr                'abc',
26*8fed17f3SAndreas Gohr            ],
27*8fed17f3SAndreas Gohr            [
28*8fed17f3SAndreas Gohr                '123abc',
29*8fed17f3SAndreas Gohr                'abc',
30*8fed17f3SAndreas Gohr            ],
31*8fed17f3SAndreas Gohr            [
32*8fed17f3SAndreas Gohr                'abc123',
33*8fed17f3SAndreas Gohr                'abc123',
34*8fed17f3SAndreas Gohr            ],
35*8fed17f3SAndreas Gohr            [
36*8fed17f3SAndreas Gohr                '_a_b_c_',
37*8fed17f3SAndreas Gohr                'a_b_c_',
38*8fed17f3SAndreas Gohr            ],
39*8fed17f3SAndreas Gohr            [
40*8fed17f3SAndreas Gohr                '-a-b-c-',
41*8fed17f3SAndreas Gohr                'abc',
42*8fed17f3SAndreas Gohr            ],
43*8fed17f3SAndreas Gohr            [
44*8fed17f3SAndreas Gohr                '/a/b/c/',
45*8fed17f3SAndreas Gohr                'abc',
46*8fed17f3SAndreas Gohr            ],
47*8fed17f3SAndreas Gohr            [
48*8fed17f3SAndreas Gohr                '\\a\\b\\c\\',
49*8fed17f3SAndreas Gohr                'abc',
50*8fed17f3SAndreas Gohr            ]
51*8fed17f3SAndreas Gohr        ];
52*8fed17f3SAndreas Gohr    }
53*8fed17f3SAndreas Gohr
54*8fed17f3SAndreas Gohr    /**
55*8fed17f3SAndreas Gohr     * @dataProvider cleanTableName_testdata
56*8fed17f3SAndreas Gohr     *
57*8fed17f3SAndreas Gohr     * @covers       \dokuwiki\plugin\struct\meta\Schema::cleanTableName
58*8fed17f3SAndreas Gohr     *
59*8fed17f3SAndreas Gohr     * @param string $input_name
60*8fed17f3SAndreas Gohr     * @param string $expected_cleaned_name
61*8fed17f3SAndreas Gohr     */
62*8fed17f3SAndreas Gohr    public function test_cleanTableName($input_name, $expected_cleaned_name)
63*8fed17f3SAndreas Gohr    {
64*8fed17f3SAndreas Gohr        $actual_cleaned_name = Schema::cleanTableName($input_name);
65*8fed17f3SAndreas Gohr        $this->assertSame($expected_cleaned_name, $actual_cleaned_name, $input_name);
66*8fed17f3SAndreas Gohr    }
67*8fed17f3SAndreas Gohr
68*8fed17f3SAndreas Gohr    public function test_deletefail()
69*8fed17f3SAndreas Gohr    {
70*8fed17f3SAndreas Gohr        $this->expectException(StructException::class);
71*8fed17f3SAndreas Gohr        $schema = new Schema('foo');
72*8fed17f3SAndreas Gohr        $schema->delete();
73*8fed17f3SAndreas Gohr    }
74*8fed17f3SAndreas Gohr
75*8fed17f3SAndreas Gohr    public function test_deleteok()
76*8fed17f3SAndreas Gohr    {
77*8fed17f3SAndreas Gohr        $this->loadSchemaJSON('schema1');
78*8fed17f3SAndreas Gohr
79*8fed17f3SAndreas Gohr        $schema = new Schema('schema1');
80*8fed17f3SAndreas Gohr        $this->assertEquals(1, $schema->getId());
81*8fed17f3SAndreas Gohr        $schema->delete();
82*8fed17f3SAndreas Gohr        $this->assertEquals(0, $schema->getId());
83*8fed17f3SAndreas Gohr
84*8fed17f3SAndreas Gohr        $schema = new Schema('schema1');
85*8fed17f3SAndreas Gohr        $this->assertEquals(0, $schema->getId());
86*8fed17f3SAndreas Gohr    }
87*8fed17f3SAndreas Gohr}
88