Skip to content

Commit c271e1f

Browse files
committed
test: add assertSameFieldData()
1 parent a444ab1 commit c271e1f

6 files changed

Lines changed: 279 additions & 283 deletions

File tree

tests/system/Database/Live/AbstractGetFieldDataTest.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,17 @@ protected function createTableForDefault()
9292
}
9393

9494
abstract public function testGetFieldDataDefault(): void;
95+
96+
protected function assertSameFieldData(array $expected, array $actual)
97+
{
98+
$expected = json_decode(json_encode($expected), true);
99+
$names = array_column($expected, 'name');
100+
array_multisort($names, SORT_ASC, $expected);
101+
102+
$fields = json_decode(json_encode($actual), true);
103+
$names = array_column($fields, 'name');
104+
array_multisort($names, SORT_ASC, $fields);
105+
106+
$this->assertSame($expected, $fields);
107+
}
95108
}

tests/system/Database/Live/MySQLi/GetFieldDataTest.php

Lines changed: 59 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -52,66 +52,64 @@ public function testGetFieldDataDefault(): void
5252

5353
$fields = $this->db->getFieldData($this->table);
5454

55-
$this->assertJsonStringEqualsJsonString(
56-
json_encode([
57-
(object) [
58-
'name' => 'id',
59-
'type' => 'int',
60-
'max_length' => $this->isOldMySQL() ? 11 : null,
61-
'default' => null, // The default value is not defined.
62-
'primary_key' => 1,
63-
'nullable' => false,
64-
],
65-
(object) [
66-
'name' => 'text_not_null',
67-
'type' => 'varchar',
68-
'max_length' => 64,
69-
'default' => null, // The default value is not defined.
70-
'primary_key' => 0,
71-
'nullable' => false,
72-
],
73-
(object) [
74-
'name' => 'text_null',
75-
'type' => 'varchar',
76-
'max_length' => 64,
77-
'default' => null, // The default value is not defined.
78-
'primary_key' => 0,
79-
'nullable' => true,
80-
],
81-
(object) [
82-
'name' => 'int_default_0',
83-
'type' => 'int',
84-
'max_length' => $this->isOldMySQL() ? 11 : null,
85-
'default' => '0', // int 0
86-
'primary_key' => 0,
87-
'nullable' => false,
88-
],
89-
(object) [
90-
'name' => 'text_default_null',
91-
'type' => 'varchar',
92-
'max_length' => 64,
93-
'default' => null, // NULL value
94-
'primary_key' => 0,
95-
'nullable' => true,
96-
],
97-
(object) [
98-
'name' => 'text_default_text_null',
99-
'type' => 'varchar',
100-
'max_length' => 64,
101-
'default' => 'null', // string "null"
102-
'primary_key' => 0,
103-
'nullable' => false,
104-
],
105-
(object) [
106-
'name' => 'text_default_abc',
107-
'type' => 'varchar',
108-
'max_length' => 64,
109-
'default' => 'abc', // string "abc"
110-
'primary_key' => 0,
111-
'nullable' => false,
112-
],
113-
]),
114-
json_encode($fields)
115-
);
55+
$expected = [
56+
(object) [
57+
'name' => 'id',
58+
'type' => 'int',
59+
'max_length' => $this->isOldMySQL() ? 11 : null,
60+
'nullable' => false,
61+
'default' => null, // The default value is not defined.
62+
'primary_key' => 1,
63+
],
64+
(object) [
65+
'name' => 'text_not_null',
66+
'type' => 'varchar',
67+
'max_length' => 64,
68+
'nullable' => false,
69+
'default' => null, // The default value is not defined.
70+
'primary_key' => 0,
71+
],
72+
(object) [
73+
'name' => 'text_null',
74+
'type' => 'varchar',
75+
'max_length' => 64,
76+
'nullable' => true,
77+
'default' => null, // The default value is not defined.
78+
'primary_key' => 0,
79+
],
80+
(object) [
81+
'name' => 'int_default_0',
82+
'type' => 'int',
83+
'max_length' => $this->isOldMySQL() ? 11 : null,
84+
'nullable' => false,
85+
'default' => '0', // int 0
86+
'primary_key' => 0,
87+
],
88+
(object) [
89+
'name' => 'text_default_null',
90+
'type' => 'varchar',
91+
'max_length' => 64,
92+
'nullable' => true,
93+
'default' => null, // NULL value
94+
'primary_key' => 0,
95+
],
96+
(object) [
97+
'name' => 'text_default_text_null',
98+
'type' => 'varchar',
99+
'max_length' => 64,
100+
'nullable' => false,
101+
'default' => 'null', // string "null"
102+
'primary_key' => 0,
103+
],
104+
(object) [
105+
'name' => 'text_default_abc',
106+
'type' => 'varchar',
107+
'max_length' => 64,
108+
'nullable' => false,
109+
'default' => 'abc', // string "abc"
110+
'primary_key' => 0,
111+
],
112+
];
113+
$this->assertSameFieldData($expected, $fields);
116114
}
117115
}

tests/system/Database/Live/OCI8/GetFieldDataTest.php

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public function testGetFieldDataDefault(): void
4747
$idDefault = $data['id']->default;
4848
$this->assertMatchesRegularExpression('/"ORACLE"."ISEQ\$\$_[0-9]+".nextval/', $idDefault);
4949

50-
$expected = json_decode(json_encode([
50+
$expected = [
5151
(object) [
5252
'name' => 'id',
5353
'type' => 'NUMBER',
@@ -104,14 +104,7 @@ public function testGetFieldDataDefault(): void
104104
'default' => "'abc' ", // string "abc"
105105
// 'primary_key' => 0,
106106
],
107-
]), true);
108-
$names = array_column($expected, 'name');
109-
array_multisort($names, SORT_ASC, $expected);
110-
111-
$fields = json_decode(json_encode($fields), true);
112-
$names = array_column($fields, 'name');
113-
array_multisort($names, SORT_ASC, $fields);
114-
115-
$this->assertSame($expected, $fields);
107+
];
108+
$this->assertSameFieldData($expected, $fields);
116109
}
117110
}

tests/system/Database/Live/Postgre/GetFieldDataTest.php

Lines changed: 59 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -38,66 +38,64 @@ public function testGetFieldDataDefault(): void
3838

3939
$fields = $this->db->getFieldData('test1');
4040

41-
$this->assertJsonStringEqualsJsonString(
42-
json_encode([
43-
(object) [
44-
'name' => 'id',
45-
'type' => 'integer',
46-
'max_length' => '32',
47-
'default' => "nextval('db_test1_id_seq'::regclass)", // The default value is not defined.
48-
// 'primary_key' => 1,
49-
'nullable' => false,
50-
],
51-
(object) [
52-
'name' => 'text_not_null',
53-
'type' => 'character varying',
54-
'max_length' => '64',
55-
'default' => null, // The default value is not defined.
56-
// 'primary_key' => 0,
57-
'nullable' => false,
58-
],
59-
(object) [
60-
'name' => 'text_null',
61-
'type' => 'character varying',
62-
'max_length' => '64',
63-
'default' => null, // The default value is not defined.
64-
// 'primary_key' => 0,
65-
'nullable' => true,
66-
],
67-
(object) [
68-
'name' => 'int_default_0',
69-
'type' => 'integer',
70-
'max_length' => '32',
71-
'default' => '0', // int 0
72-
// 'primary_key' => 0,
73-
'nullable' => false,
74-
],
75-
(object) [
76-
'name' => 'text_default_null',
77-
'type' => 'character varying',
78-
'max_length' => '64',
79-
'default' => 'NULL::character varying', // NULL value
80-
// 'primary_key' => 0,
81-
'nullable' => true,
82-
],
83-
(object) [
84-
'name' => 'text_default_text_null',
85-
'type' => 'character varying',
86-
'max_length' => '64',
87-
'default' => "'null'::character varying", // string "null"
88-
// 'primary_key' => 0,
89-
'nullable' => false,
90-
],
91-
(object) [
92-
'name' => 'text_default_abc',
93-
'type' => 'character varying',
94-
'max_length' => '64',
95-
'default' => "'abc'::character varying", // string "abc"
96-
// 'primary_key' => 0,
97-
'nullable' => false,
98-
],
99-
]),
100-
json_encode($fields)
101-
);
41+
$expected = [
42+
(object) [
43+
'name' => 'id',
44+
'type' => 'integer',
45+
'max_length' => '32',
46+
'nullable' => false,
47+
// 'primary_key' => 1,
48+
'default' => "nextval('db_test1_id_seq'::regclass)", // The default value is not defined.
49+
],
50+
(object) [
51+
'name' => 'text_not_null',
52+
'type' => 'character varying',
53+
'max_length' => '64',
54+
'nullable' => false,
55+
// 'primary_key' => 0,
56+
'default' => null, // The default value is not defined.
57+
],
58+
(object) [
59+
'name' => 'text_null',
60+
'type' => 'character varying',
61+
'max_length' => '64',
62+
'nullable' => true,
63+
// 'primary_key' => 0,
64+
'default' => null, // The default value is not defined.
65+
],
66+
(object) [
67+
'name' => 'int_default_0',
68+
'type' => 'integer',
69+
'max_length' => '32',
70+
'nullable' => false,
71+
// 'primary_key' => 0,
72+
'default' => '0', // int 0
73+
],
74+
(object) [
75+
'name' => 'text_default_null',
76+
'type' => 'character varying',
77+
'max_length' => '64',
78+
'nullable' => true,
79+
// 'primary_key' => 0,
80+
'default' => 'NULL::character varying', // NULL value
81+
],
82+
(object) [
83+
'name' => 'text_default_text_null',
84+
'type' => 'character varying',
85+
'max_length' => '64',
86+
'nullable' => false,
87+
// 'primary_key' => 0,
88+
'default' => "'null'::character varying", // string "null"
89+
],
90+
(object) [
91+
'name' => 'text_default_abc',
92+
'type' => 'character varying',
93+
'max_length' => '64',
94+
'nullable' => false,
95+
// 'primary_key' => 0,
96+
'default' => "'abc'::character varying", // string "abc"
97+
],
98+
];
99+
$this->assertSameFieldData($expected, $fields);
102100
}
103101
}

0 commit comments

Comments
 (0)