1
+ <?php
2
+
3
+ namespace Tests \Unit ;
4
+
5
+ use Illuminate \Foundation \Testing \DatabaseMigrations ;
6
+ use Illuminate \Foundation \Testing \RefreshDatabase ;
7
+ use Illuminate \Foundation \Testing \WithFaker ;
8
+ use Spatie \Permission \Models \Role ;
9
+ use Tests \TestCase ;
10
+ use App \Models \Menulist ;
11
+ use App \Models \Menus ;
12
+ use App \Models \Menurole ;
13
+
14
+ class MenuElementTest extends TestCase
15
+ {
16
+ use DatabaseMigrations;
17
+
18
+ public function testMenuElementsIndex (){
19
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
20
+ Role::create (['name ' => 'admin ' ]);
21
+ $ user ->assignRole ('admin ' );
22
+ $ menulist = new Menulist ();
23
+ $ menulist ->name = 'test2 ' ;
24
+ $ menulist ->save ();
25
+ $ menulist2 = new Menulist ();
26
+ $ menulist2 ->name = 'test3 ' ;
27
+ $ menulist2 ->save ();
28
+ $ menus = new Menus ();
29
+ $ menus ->slug = 'link ' ;
30
+ $ menus ->menu_id = $ menulist2 ->id ;
31
+ $ menus ->name = 'test2 ' ;
32
+ $ menus ->icon = 'test4 ' ;
33
+ $ menus ->href = 'test3 ' ;
34
+ $ menus ->parent_id = null ;
35
+ $ menus ->sequence = 1 ;
36
+ $ menus ->save ();
37
+ $ response = $ this ->actingAs ($ user )->get ('/api/menu/element?menu= ' . $ menulist2 ->id );
38
+ $ response ->assertStatus (200 )->assertJson ([
39
+ 'menuToEdit ' => [
40
+ [
41
+ 'name ' => 'test2 '
42
+ ]
43
+ ],
44
+ 'thisMenu ' => '' . $ menulist2 ->id ,
45
+ ]);
46
+ }
47
+
48
+ public function testMenuCreate (){
49
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
50
+ Role::create (['name ' => 'admin ' ]);
51
+ Role::create (['name ' => 'test ' ]);
52
+ $ user ->assignRole ('admin ' );
53
+ $ menulist = new Menulist ();
54
+ $ menulist ->name = 'test2 ' ;
55
+ $ menulist ->save ();
56
+ $ response = $ this ->actingAs ($ user )->get ('/api/menu/element/create ' );
57
+ $ response ->assertStatus (200 )->assertJson ([
58
+ 'roles ' => ['admin ' , 'test ' ],
59
+ 'menulist ' => [
60
+ ['label ' => 'test2 ' ]
61
+ ],
62
+ ]);
63
+ }
64
+
65
+ public function testMenuStore (){
66
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
67
+ Role::create (['name ' => 'admin ' ]);
68
+ $ user ->assignRole ('admin ' );
69
+ $ menulist = new Menulist ();
70
+ $ menulist ->name = 'test2 ' ;
71
+ $ menulist ->save ();
72
+ $ postArray = [
73
+ 'menu ' => '1 ' ,
74
+ 'role ' => [
75
+ 'admin '
76
+ ],
77
+ 'name ' => 'test2 ' ,
78
+ 'type ' => 'link ' ,
79
+ 'href ' => 'test3 ' ,
80
+ 'parent ' => '1 ' ,
81
+ 'icon ' => 'test4 ' ,
82
+ ];
83
+ $ response = $ this ->actingAs ($ user )->post ('/api/menu/element/store ' , $ postArray );
84
+ $ this ->assertDatabaseHas ('menu_role ' ,[
85
+ 'role_name ' => 'admin ' ,
86
+ 'menus_id ' => 1 ,
87
+ ]);
88
+ $ this ->assertDatabaseHas ('menus ' ,[
89
+ 'slug ' => 'link ' ,
90
+ 'menu_id ' => 1 ,
91
+ 'name ' => 'test2 ' ,
92
+ 'icon ' => 'test4 ' ,
93
+ 'href ' => 'test3 ' ,
94
+ 'parent_id ' => 1 ,
95
+ 'sequence ' => 1 ,
96
+ ]);
97
+ }
98
+
99
+ public function testMenuEdit (){
100
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
101
+ Role::create (['name ' => 'admin ' ]);
102
+ Role::create (['name ' => 'test ' ]);
103
+ $ user ->assignRole ('admin ' );
104
+ $ menulist = new Menulist ();
105
+ $ menulist ->name = 'test2 ' ;
106
+ $ menulist ->save ();
107
+ $ menus = new Menus ();
108
+ $ menus ->slug = 'link ' ;
109
+ $ menus ->menu_id = 1 ;
110
+ $ menus ->name = 'test2menus ' ;
111
+ $ menus ->icon = 'test4 ' ;
112
+ $ menus ->href = 'test3 ' ;
113
+ $ menus ->parent_id = null ;
114
+ $ menus ->sequence = 1 ;
115
+ $ menus ->save ();
116
+ $ menuRole = new Menurole ();
117
+ $ menuRole ->role_name = 'admin ' ;
118
+ $ menuRole ->menus_id = $ menus ->id ;
119
+ $ menuRole ->save ();
120
+ $ response = $ this ->actingAs ($ user )->get ('/api/menu/element/edit?id=1 ' );
121
+ $ response ->assertStatus (200 )->assertJson ([
122
+ 'roles ' => ['admin ' , 'test ' ],
123
+ 'menulist ' => [
124
+ ['label ' => 'test2 ' ]
125
+ ],
126
+ 'menuElement ' => ['name ' =>'test2menus ' ],
127
+ 'menuroles ' => [
128
+ [
129
+ 'role_name ' => 'admin ' ,
130
+ 'menus_id ' => '' . $ menus ->id ,
131
+ ]
132
+ ],
133
+ ]);
134
+ }
135
+
136
+ public function testMenuUpdate (){
137
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
138
+ Role::create (['name ' => 'admin ' ]);
139
+ $ user ->assignRole ('admin ' );
140
+ $ menulist = new Menulist ();
141
+ $ menulist ->name = 'test2 ' ;
142
+ $ menulist ->save ();
143
+ $ menus = new Menus ();
144
+ $ menus ->slug = 'link ' ;
145
+ $ menus ->menu_id = 1 ;
146
+ $ menus ->name = 'test2 ' ;
147
+ $ menus ->icon = 'test4 ' ;
148
+ $ menus ->href = 'test3 ' ;
149
+ $ menus ->parent_id = null ;
150
+ $ menus ->sequence = 1 ;
151
+ $ menus ->save ();
152
+ $ postArray = [
153
+ 'id ' => '1 ' ,
154
+ 'menu ' => '1 ' ,
155
+ 'role ' => [
156
+ 'admin '
157
+ ],
158
+ 'name ' => 'test22 ' ,
159
+ 'type ' => 'link ' ,
160
+ 'href ' => 'test33 ' ,
161
+ 'parent ' => '2 ' ,
162
+ 'icon ' => 'test44 ' ,
163
+ ];
164
+ $ this ->assertDatabaseHas ('menus ' ,[
165
+ 'slug ' => 'link ' ,
166
+ 'menu_id ' => 1 ,
167
+ 'name ' => 'test2 ' ,
168
+ 'icon ' => 'test4 ' ,
169
+ 'href ' => 'test3 ' ,
170
+ 'parent_id ' => null ,
171
+ 'sequence ' => 1 ,
172
+ ]);
173
+ $ response = $ this ->actingAs ($ user )->post ('/api/menu/element/update ' , $ postArray );
174
+ $ this ->assertDatabaseHas ('menu_role ' ,[
175
+ 'role_name ' => 'admin ' ,
176
+ 'menus_id ' => 1 ,
177
+ ]);
178
+ $ this ->assertDatabaseHas ('menus ' ,[
179
+ 'slug ' => 'link ' ,
180
+ 'menu_id ' => 1 ,
181
+ 'name ' => 'test22 ' ,
182
+ 'icon ' => 'test44 ' ,
183
+ 'href ' => 'test33 ' ,
184
+ 'parent_id ' => 2 ,
185
+ 'sequence ' => 1 ,
186
+ ]);
187
+ }
188
+
189
+ public function testMenuDelete (){
190
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
191
+ Role::create (['name ' => 'admin ' ]);
192
+ $ user ->assignRole ('admin ' );
193
+ $ menus = new Menus ();
194
+ $ menus ->slug = 'link ' ;
195
+ $ menus ->menu_id = 1 ;
196
+ $ menus ->name = 'test2 ' ;
197
+ $ menus ->icon = 'test4 ' ;
198
+ $ menus ->href = 'test3 ' ;
199
+ $ menus ->parent_id = 1 ;
200
+ $ menus ->sequence = 1 ;
201
+ $ menus ->save ();
202
+ $ menuRole = new Menurole ();
203
+ $ menuRole ->role_name = 'admin ' ;
204
+ $ menuRole ->menus_id = $ menus ->id ;
205
+ $ menuRole ->save ();
206
+ $ this ->assertDatabaseHas ('menus ' ,['id ' => $ menus ->id ]);
207
+ $ response = $ this ->actingAs ($ user )->get ('/api/menu/element/delete?id= ' . $ menus ->id );
208
+ $ this ->assertDatabaseMissing ('menus ' ,['id ' => $ menus ->id ]);
209
+ $ this ->assertDatabaseMissing ('menu_role ' ,['menus_id ' => $ menus ->id ]);
210
+ }
211
+
212
+ public function testMoveUp (){
213
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
214
+ Role::create (['name ' => 'admin ' ]);
215
+ $ user ->assignRole ('admin ' );
216
+ $ menulist = new Menulist ();
217
+ $ menulist ->name = 'test2 ' ;
218
+ $ menulist ->save ();
219
+ $ menus1 = new Menus ();
220
+ $ menus1 ->slug = 'link ' ;
221
+ $ menus1 ->menu_id = 1 ;
222
+ $ menus1 ->name = 'test2 ' ;
223
+ $ menus1 ->icon = 'test4 ' ;
224
+ $ menus1 ->href = 'test3 ' ;
225
+ $ menus1 ->parent_id = null ;
226
+ $ menus1 ->sequence = 10 ;
227
+ $ menus1 ->save ();
228
+ $ menus2 = new Menus ();
229
+ $ menus2 ->slug = 'link ' ;
230
+ $ menus2 ->menu_id = 1 ;
231
+ $ menus2 ->name = 'test2 ' ;
232
+ $ menus2 ->icon = 'test4 ' ;
233
+ $ menus2 ->href = 'test3 ' ;
234
+ $ menus2 ->parent_id = null ;
235
+ $ menus2 ->sequence = 11 ;
236
+ $ menus2 ->save ();
237
+ $ menus3 = new Menus ();
238
+ $ menus3 ->slug = 'link ' ;
239
+ $ menus3 ->menu_id = 1 ;
240
+ $ menus3 ->name = 'test2 ' ;
241
+ $ menus3 ->icon = 'test4 ' ;
242
+ $ menus3 ->href = 'test3 ' ;
243
+ $ menus3 ->parent_id = null ;
244
+ $ menus3 ->sequence = 12 ;
245
+ $ menus3 ->save ();
246
+ $ this ->assertDatabaseHas ('menus ' ,[
247
+ 'id ' => $ menus1 ->id ,
248
+ 'sequence ' => 10 ,
249
+ ]);
250
+ $ this ->assertDatabaseHas ('menus ' ,[
251
+ 'id ' => $ menus2 ->id ,
252
+ 'sequence ' => 11 ,
253
+ ]);
254
+ $ this ->assertDatabaseHas ('menus ' ,[
255
+ 'id ' => $ menus3 ->id ,
256
+ 'sequence ' => 12 ,
257
+ ]);
258
+ $ response = $ this ->actingAs ($ user )->get ('/api/menu/element/move-up?id= ' . $ menus2 ->id );
259
+ $ response ->assertStatus (200 );
260
+ $ this ->assertDatabaseHas ('menus ' ,[
261
+ 'id ' => $ menus1 ->id ,
262
+ 'sequence ' => 11 ,
263
+ ]);
264
+ $ this ->assertDatabaseHas ('menus ' ,[
265
+ 'id ' => $ menus2 ->id ,
266
+ 'sequence ' => 10 ,
267
+ ]);
268
+ $ this ->assertDatabaseHas ('menus ' ,[
269
+ 'id ' => $ menus3 ->id ,
270
+ 'sequence ' => 12 ,
271
+ ]);
272
+ }
273
+
274
+ public function testMoveDown (){
275
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
276
+ Role::create (['name ' => 'admin ' ]);
277
+ $ user ->assignRole ('admin ' );
278
+ $ menulist = new Menulist ();
279
+ $ menulist ->name = 'test2 ' ;
280
+ $ menulist ->save ();
281
+ $ menus1 = new Menus ();
282
+ $ menus1 ->slug = 'link ' ;
283
+ $ menus1 ->menu_id = 1 ;
284
+ $ menus1 ->name = 'test2 ' ;
285
+ $ menus1 ->icon = 'test4 ' ;
286
+ $ menus1 ->href = 'test3 ' ;
287
+ $ menus1 ->parent_id = null ;
288
+ $ menus1 ->sequence = 10 ;
289
+ $ menus1 ->save ();
290
+ $ menus2 = new Menus ();
291
+ $ menus2 ->slug = 'link ' ;
292
+ $ menus2 ->menu_id = 1 ;
293
+ $ menus2 ->name = 'test2 ' ;
294
+ $ menus2 ->icon = 'test4 ' ;
295
+ $ menus2 ->href = 'test3 ' ;
296
+ $ menus2 ->parent_id = null ;
297
+ $ menus2 ->sequence = 11 ;
298
+ $ menus2 ->save ();
299
+ $ menus3 = new Menus ();
300
+ $ menus3 ->slug = 'link ' ;
301
+ $ menus3 ->menu_id = 1 ;
302
+ $ menus3 ->name = 'test2 ' ;
303
+ $ menus3 ->icon = 'test4 ' ;
304
+ $ menus3 ->href = 'test3 ' ;
305
+ $ menus3 ->parent_id = null ;
306
+ $ menus3 ->sequence = 12 ;
307
+ $ menus3 ->save ();
308
+ $ this ->assertDatabaseHas ('menus ' ,[
309
+ 'id ' => $ menus1 ->id ,
310
+ 'sequence ' => 10 ,
311
+ ]);
312
+ $ this ->assertDatabaseHas ('menus ' ,[
313
+ 'id ' => $ menus2 ->id ,
314
+ 'sequence ' => 11 ,
315
+ ]);
316
+ $ this ->assertDatabaseHas ('menus ' ,[
317
+ 'id ' => $ menus3 ->id ,
318
+ 'sequence ' => 12 ,
319
+ ]);
320
+ $ response = $ this ->actingAs ($ user )->get ('/api/menu/element/move-down?id= ' . $ menus2 ->id );
321
+ $ response ->assertStatus (200 );
322
+ $ this ->assertDatabaseHas ('menus ' ,[
323
+ 'id ' => $ menus1 ->id ,
324
+ 'sequence ' => 10 ,
325
+ ]);
326
+ $ this ->assertDatabaseHas ('menus ' ,[
327
+ 'id ' => $ menus2 ->id ,
328
+ 'sequence ' => 12 ,
329
+ ]);
330
+ $ this ->assertDatabaseHas ('menus ' ,[
331
+ 'id ' => $ menus3 ->id ,
332
+ 'sequence ' => 11 ,
333
+ ]);
334
+ }
335
+
336
+ }
0 commit comments