@@ -84,6 +84,18 @@ public function testRenamingAndChangingColumnsWork()
84
84
'INSERT INTO users (first_name, age) SELECT name, age FROM __temp__users ' ,
85
85
'DROP TABLE __temp__users ' ,
86
86
],
87
+ [
88
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name, age FROM users ' ,
89
+ 'DROP TABLE users ' ,
90
+ 'CREATE TABLE users (name VARCHAR(255) NOT NULL COLLATE "BINARY", age INTEGER NOT NULL) ' ,
91
+ 'INSERT INTO users (name, age) SELECT name, age FROM __temp__users ' ,
92
+ 'DROP TABLE __temp__users ' ,
93
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name, age FROM users ' ,
94
+ 'DROP TABLE users ' ,
95
+ 'CREATE TABLE users (first_name VARCHAR(255) NOT NULL, age VARCHAR(255) NOT NULL COLLATE "BINARY") ' ,
96
+ 'INSERT INTO users (first_name, age) SELECT name, age FROM __temp__users ' ,
97
+ 'DROP TABLE __temp__users ' ,
98
+ ],
87
99
];
88
100
89
101
$ this ->assertTrue (in_array ($ queries , $ expected ));
@@ -104,26 +116,46 @@ public function testChangingColumnWithCollationWorks()
104
116
});
105
117
106
118
$ queries = $ blueprint ->toSql ($ this ->db ->connection (), new SQLiteGrammar );
107
- $ queries2 = $ blueprint2 ->toSql ($ this ->db ->connection (), new SQLiteGrammar );
108
119
109
120
$ expected = [
110
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
111
- 'DROP TABLE users ' ,
112
- 'CREATE TABLE users (age INTEGER NOT NULL COLLATE RTRIM) ' ,
113
- 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
114
- 'DROP TABLE __temp__users ' ,
121
+ [
122
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
123
+ 'DROP TABLE users ' ,
124
+ 'CREATE TABLE users (age INTEGER NOT NULL COLLATE RTRIM) ' ,
125
+ 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
126
+ 'DROP TABLE __temp__users ' ,
127
+ ],
128
+ [
129
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
130
+ 'DROP TABLE users ' ,
131
+ 'CREATE TABLE users (age INTEGER NOT NULL COLLATE "RTRIM") ' ,
132
+ 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
133
+ 'DROP TABLE __temp__users ' ,
134
+ ],
115
135
];
116
136
117
- $ expected2 = [
118
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
119
- 'DROP TABLE users ' ,
120
- 'CREATE TABLE users (age INTEGER NOT NULL COLLATE NOCASE) ' ,
121
- 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
122
- 'DROP TABLE __temp__users ' ,
137
+ $ this ->assertContains ($ queries , $ expected );
138
+
139
+ $ queries = $ blueprint2 ->toSql ($ this ->db ->connection (), new SQLiteGrammar );
140
+
141
+ $ expected = [
142
+ [
143
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
144
+ 'DROP TABLE users ' ,
145
+ 'CREATE TABLE users (age INTEGER NOT NULL COLLATE NOCASE) ' ,
146
+ 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
147
+ 'DROP TABLE __temp__users ' ,
148
+ ],
149
+ [
150
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT age FROM users ' ,
151
+ 'DROP TABLE users ' ,
152
+ 'CREATE TABLE users (age INTEGER NOT NULL COLLATE "NOCASE") ' ,
153
+ 'INSERT INTO users (age) SELECT age FROM __temp__users ' ,
154
+ 'DROP TABLE __temp__users ' ,
155
+ ],
123
156
];
124
157
125
- $ this ->assertEquals ($ expected , $ queries );
126
- $ this ->assertEquals ($ expected2 , $ queries2 );
158
+ $ this ->assertContains ($ queries , $ expected );
127
159
}
128
160
129
161
public function testRenameIndexWorks ()
@@ -188,15 +220,25 @@ public function testAddUniqueIndexWithoutNameWorks()
188
220
$ queries = $ blueprintMySql ->toSql ($ this ->db ->connection (), new MySqlGrammar );
189
221
190
222
$ expected = [
191
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
192
- 'DROP TABLE users ' ,
193
- 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
194
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
195
- 'DROP TABLE __temp__users ' ,
196
- 'alter table `users` add unique `users_name_unique`(`name`) ' ,
223
+ [
224
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
225
+ 'DROP TABLE users ' ,
226
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
227
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
228
+ 'DROP TABLE __temp__users ' ,
229
+ 'alter table `users` add unique `users_name_unique`(`name`) ' ,
230
+ ],
231
+ [
232
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
233
+ 'DROP TABLE users ' ,
234
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE "BINARY") ' ,
235
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
236
+ 'DROP TABLE __temp__users ' ,
237
+ 'alter table `users` add unique `users_name_unique`(`name`) ' ,
238
+ ],
197
239
];
198
240
199
- $ this ->assertEquals ( $ expected , $ queries );
241
+ $ this ->assertContains ( $ queries , $ expected );
200
242
201
243
$ blueprintPostgres = new Blueprint ('users ' , function ($ table ) {
202
244
$ table ->string ('name ' )->nullable ()->unique ()->change ();
@@ -205,15 +247,25 @@ public function testAddUniqueIndexWithoutNameWorks()
205
247
$ queries = $ blueprintPostgres ->toSql ($ this ->db ->connection (), new PostgresGrammar );
206
248
207
249
$ expected = [
208
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
209
- 'DROP TABLE users ' ,
210
- 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
211
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
212
- 'DROP TABLE __temp__users ' ,
213
- 'alter table "users" add constraint "users_name_unique" unique ("name") ' ,
250
+ [
251
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
252
+ 'DROP TABLE users ' ,
253
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
254
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
255
+ 'DROP TABLE __temp__users ' ,
256
+ 'alter table "users" add constraint "users_name_unique" unique ("name") ' ,
257
+ ],
258
+ [
259
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
260
+ 'DROP TABLE users ' ,
261
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE "BINARY") ' ,
262
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
263
+ 'DROP TABLE __temp__users ' ,
264
+ 'alter table "users" add constraint "users_name_unique" unique ("name") ' ,
265
+ ],
214
266
];
215
267
216
- $ this ->assertEquals ( $ expected , $ queries );
268
+ $ this ->assertContains ( $ queries , $ expected );
217
269
218
270
$ blueprintSQLite = new Blueprint ('users ' , function ($ table ) {
219
271
$ table ->string ('name ' )->nullable ()->unique ()->change ();
@@ -222,15 +274,25 @@ public function testAddUniqueIndexWithoutNameWorks()
222
274
$ queries = $ blueprintSQLite ->toSql ($ this ->db ->connection (), new SQLiteGrammar );
223
275
224
276
$ expected = [
225
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
226
- 'DROP TABLE users ' ,
227
- 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
228
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
229
- 'DROP TABLE __temp__users ' ,
230
- 'create unique index "users_name_unique" on "users" ("name") ' ,
277
+ [
278
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
279
+ 'DROP TABLE users ' ,
280
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
281
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
282
+ 'DROP TABLE __temp__users ' ,
283
+ 'create unique index "users_name_unique" on "users" ("name") ' ,
284
+ ],
285
+ [
286
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
287
+ 'DROP TABLE users ' ,
288
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE "BINARY") ' ,
289
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
290
+ 'DROP TABLE __temp__users ' ,
291
+ 'create unique index "users_name_unique" on "users" ("name") ' ,
292
+ ],
231
293
];
232
294
233
- $ this ->assertEquals ( $ expected , $ queries );
295
+ $ this ->assertContains ( $ queries , $ expected );
234
296
235
297
$ blueprintSqlServer = new Blueprint ('users ' , function ($ table ) {
236
298
$ table ->string ('name ' )->nullable ()->unique ()->change ();
@@ -239,15 +301,25 @@ public function testAddUniqueIndexWithoutNameWorks()
239
301
$ queries = $ blueprintSqlServer ->toSql ($ this ->db ->connection (), new SqlServerGrammar );
240
302
241
303
$ expected = [
242
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
243
- 'DROP TABLE users ' ,
244
- 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
245
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
246
- 'DROP TABLE __temp__users ' ,
247
- 'create unique index "users_name_unique" on "users" ("name") ' ,
304
+ [
305
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
306
+ 'DROP TABLE users ' ,
307
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
308
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
309
+ 'DROP TABLE __temp__users ' ,
310
+ 'create unique index "users_name_unique" on "users" ("name") ' ,
311
+ ],
312
+ [
313
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
314
+ 'DROP TABLE users ' ,
315
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE "BINARY") ' ,
316
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
317
+ 'DROP TABLE __temp__users ' ,
318
+ 'create unique index "users_name_unique" on "users" ("name") ' ,
319
+ ],
248
320
];
249
321
250
- $ this ->assertEquals ( $ expected , $ queries );
322
+ $ this ->assertContains ( $ queries , $ expected );
251
323
}
252
324
253
325
public function testAddUniqueIndexWithNameWorks ()
@@ -263,15 +335,25 @@ public function testAddUniqueIndexWithNameWorks()
263
335
$ queries = $ blueprintMySql ->toSql ($ this ->db ->connection (), new MySqlGrammar );
264
336
265
337
$ expected = [
266
- 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
267
- 'DROP TABLE users ' ,
268
- 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
269
- 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
270
- 'DROP TABLE __temp__users ' ,
271
- 'alter table `users` add unique `index1`(`name`) ' ,
338
+ [
339
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
340
+ 'DROP TABLE users ' ,
341
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE BINARY) ' ,
342
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
343
+ 'DROP TABLE __temp__users ' ,
344
+ 'alter table `users` add unique `index1`(`name`) ' ,
345
+ ],
346
+ [
347
+ 'CREATE TEMPORARY TABLE __temp__users AS SELECT name FROM users ' ,
348
+ 'DROP TABLE users ' ,
349
+ 'CREATE TABLE users (name VARCHAR(255) DEFAULT NULL COLLATE "BINARY") ' ,
350
+ 'INSERT INTO users (name) SELECT name FROM __temp__users ' ,
351
+ 'DROP TABLE __temp__users ' ,
352
+ 'alter table `users` add unique `index1`(`name`) ' ,
353
+ ],
272
354
];
273
355
274
- $ this ->assertEquals ( $ expected , $ queries );
356
+ $ this ->assertContains ( $ queries , $ expected );
275
357
276
358
$ blueprintPostgres = new Blueprint ('users ' , function ($ table ) {
277
359
$ table ->unsignedInteger ('name ' )->nullable ()->unique ('index1 ' )->change ();
0 commit comments