6fcfaa44aded83c9c2657b331d1e466715b1cd33
[yaffs-website] / web / core / tests / Drupal / KernelTests / Core / Database / DatabaseTestBase.php
1 <?php
2
3 namespace Drupal\KernelTests\Core\Database;
4
5 use Drupal\KernelTests\KernelTestBase;
6
7 /**
8  * Base class for databases database tests.
9  *
10  * Because all database tests share the same test data, we can centralize that
11  * here.
12  */
13 abstract class DatabaseTestBase extends KernelTestBase {
14
15   public static $modules = ['database_test'];
16
17   protected function setUp() {
18     parent::setUp();
19     $this->installSchema('database_test', [
20       'test',
21       'test_people',
22       'test_people_copy',
23       'test_one_blob',
24       'test_two_blobs',
25       'test_task',
26       'test_null',
27       'test_serialized',
28       'test_special_columns',
29       'TEST_UPPERCASE',
30     ]);
31     self::addSampleData();
32   }
33
34   /**
35    * Sets up tables for NULL handling.
36    */
37   public function ensureSampleDataNull() {
38     db_insert('test_null')
39       ->fields(['name', 'age'])
40       ->values([
41       'name' => 'Kermit',
42       'age' => 25,
43     ])
44       ->values([
45       'name' => 'Fozzie',
46       'age' => NULL,
47     ])
48       ->values([
49       'name' => 'Gonzo',
50       'age' => 27,
51     ])
52       ->execute();
53   }
54
55   /**
56    * Sets up our sample data.
57    */
58   public static function addSampleData() {
59     // We need the IDs, so we can't use a multi-insert here.
60     $john = db_insert('test')
61       ->fields([
62         'name' => 'John',
63         'age' => 25,
64         'job' => 'Singer',
65       ])
66       ->execute();
67
68     $george = db_insert('test')
69       ->fields([
70         'name' => 'George',
71         'age' => 27,
72         'job' => 'Singer',
73       ])
74       ->execute();
75
76     db_insert('test')
77       ->fields([
78         'name' => 'Ringo',
79         'age' => 28,
80         'job' => 'Drummer',
81       ])
82       ->execute();
83
84     $paul = db_insert('test')
85       ->fields([
86         'name' => 'Paul',
87         'age' => 26,
88         'job' => 'Songwriter',
89       ])
90       ->execute();
91
92     db_insert('test_people')
93       ->fields([
94         'name' => 'Meredith',
95         'age' => 30,
96         'job' => 'Speaker',
97       ])
98       ->execute();
99
100     db_insert('test_task')
101       ->fields(['pid', 'task', 'priority'])
102       ->values([
103         'pid' => $john,
104         'task' => 'eat',
105         'priority' => 3,
106       ])
107       ->values([
108         'pid' => $john,
109         'task' => 'sleep',
110         'priority' => 4,
111       ])
112       ->values([
113         'pid' => $john,
114         'task' => 'code',
115         'priority' => 1,
116       ])
117       ->values([
118         'pid' => $george,
119         'task' => 'sing',
120         'priority' => 2,
121       ])
122       ->values([
123         'pid' => $george,
124         'task' => 'sleep',
125         'priority' => 2,
126       ])
127       ->values([
128         'pid' => $paul,
129         'task' => 'found new band',
130         'priority' => 1,
131       ])
132       ->values([
133         'pid' => $paul,
134         'task' => 'perform at superbowl',
135         'priority' => 3,
136       ])
137       ->execute();
138
139     db_insert('test_special_columns')
140       ->fields([
141         'id' => 1,
142         'offset' => 'Offset value 1',
143       ])
144       ->execute();
145   }
146
147 }