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